Merge branch 'master' of github.com:LucasBrazi06/ev-simulator into rollup
authorJérôme Benoit <jerome.benoit@sap.com>
Sat, 13 Feb 2021 17:50:08 +0000 (18:50 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Sat, 13 Feb 2021 17:50:08 +0000 (18:50 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
1  2 
package-lock.json
package.json

diff --combined package-lock.json
index d891e9020c184b1c6fb9df127148c937471cefb1,3c27360002d982e1ced1a15194dc55c8778412ea..98175782dee5d7b6b71358ac27a8c67a4cf6c0b7
          "fastq": "^1.6.0"
        }
      },
 +    "@rollup/pluginutils": {
 +      "version": "3.1.0",
 +      "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
 +      "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
 +      "dev": true,
 +      "requires": {
 +        "@types/estree": "0.0.39",
 +        "estree-walker": "^1.0.1",
 +        "picomatch": "^2.2.2"
 +      },
 +      "dependencies": {
 +        "@types/estree": {
 +          "version": "0.0.39",
 +          "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
 +          "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
 +          "dev": true
 +        }
 +      }
 +    },
      "@sindresorhus/is": {
        "version": "0.14.0",
        "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
        "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==",
        "dev": true
      },
 +    "@types/fs-extra": {
 +      "version": "8.1.1",
 +      "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.1.tgz",
 +      "integrity": "sha512-TcUlBem321DFQzBNuz8p0CLLKp0VvF/XH9E4KHNmgwyp4E3AfgI5cjiIVZWlbfThBop2qxFIh4+LeY6hVWWZ2w==",
 +      "dev": true,
 +      "requires": {
 +        "@types/node": "*"
 +      }
 +    },
 +    "@types/glob": {
 +      "version": "7.1.3",
 +      "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
 +      "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==",
 +      "dev": true,
 +      "requires": {
 +        "@types/minimatch": "*",
 +        "@types/node": "*"
 +      }
 +    },
      "@types/json-schema": {
        "version": "7.0.7",
        "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
        "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
        "dev": true
      },
 +    "@types/minimatch": {
 +      "version": "3.0.3",
 +      "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
 +      "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
 +      "dev": true
 +    },
      "@types/node": {
        "version": "14.14.27",
        "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.27.tgz",
        "integrity": "sha1-nbVjk33YaRX2kJK8QyWdL0hXjkE=",
        "dev": true
      },
--    "@types/strip-bom": {
--      "version": "3.0.0",
--      "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz",
--      "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=",
--      "dev": true
--    },
--    "@types/strip-json-comments": {
--      "version": "0.0.30",
--      "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz",
--      "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==",
--      "dev": true
--    },
      "@types/uuid": {
        "version": "8.3.0",
        "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz",
        "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
        "dev": true
      },
 +    "aggregate-error": {
 +      "version": "3.1.0",
 +      "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
 +      "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
 +      "dev": true,
 +      "requires": {
 +        "clean-stack": "^2.0.0",
 +        "indent-string": "^4.0.0"
 +      },
 +      "dependencies": {
 +        "indent-string": {
 +          "version": "4.0.0",
 +          "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
 +          "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
 +          "dev": true
 +        }
 +      }
 +    },
      "ajv": {
        "version": "6.12.2",
        "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
          }
        }
      },
--    "arg": {
--      "version": "4.1.3",
--      "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
--      "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
--      "dev": true
--    },
      "argparse": {
        "version": "1.0.10",
        "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
          }
        }
      },
 +    "clean-stack": {
 +      "version": "2.2.0",
 +      "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
 +      "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
 +      "dev": true
 +    },
      "cli-boxes": {
        "version": "1.0.0",
        "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
          "minimist": "^1.1.0"
        }
      },
 +    "commondir": {
 +      "version": "1.0.1",
 +      "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
 +      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
 +      "dev": true
 +    },
      "component-emitter": {
        "version": "1.3.0",
        "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
          "sha.js": "^2.4.8"
        }
      },
--    "create-require": {
--      "version": "1.1.1",
--      "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
--      "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
--      "dev": true
--    },
      "cross-argv": {
        "version": "1.0.0",
        "resolved": "https://registry.npmjs.org/cross-argv/-/cross-argv-1.0.0.tgz",
        "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
        "dev": true
      },
 +    "del": {
 +      "version": "5.1.0",
 +      "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz",
 +      "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==",
 +      "dev": true,
 +      "requires": {
 +        "globby": "^10.0.1",
 +        "graceful-fs": "^4.2.2",
 +        "is-glob": "^4.0.1",
 +        "is-path-cwd": "^2.2.0",
 +        "is-path-inside": "^3.0.1",
 +        "p-map": "^3.0.0",
 +        "rimraf": "^3.0.0",
 +        "slash": "^3.0.0"
 +      },
 +      "dependencies": {
 +        "array-union": {
 +          "version": "2.1.0",
 +          "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
 +          "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
 +          "dev": true
 +        },
 +        "globby": {
 +          "version": "10.0.2",
 +          "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz",
 +          "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==",
 +          "dev": true,
 +          "requires": {
 +            "@types/glob": "^7.1.1",
 +            "array-union": "^2.1.0",
 +            "dir-glob": "^3.0.1",
 +            "fast-glob": "^3.0.3",
 +            "glob": "^7.1.3",
 +            "ignore": "^5.1.1",
 +            "merge2": "^1.2.3",
 +            "slash": "^3.0.0"
 +          }
 +        },
 +        "graceful-fs": {
 +          "version": "4.2.6",
 +          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
 +          "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
 +          "dev": true
 +        },
 +        "is-path-inside": {
 +          "version": "3.0.2",
 +          "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz",
 +          "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==",
 +          "dev": true
 +        }
 +      }
 +    },
      "delayed-stream": {
        "version": "1.0.0",
        "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
          "minimist": "^1.1.1"
        }
      },
--    "diff": {
--      "version": "4.0.2",
--      "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
--      "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
--      "dev": true
--    },
      "diffie-hellman": {
        "version": "5.0.3",
        "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
          }
        }
      },
--    "dynamic-dedupe": {
--      "version": "0.3.0",
--      "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz",
--      "integrity": "sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE=",
--      "dev": true,
--      "requires": {
--        "xtend": "^4.0.0"
--      }
--    },
      "ecc-jsbn": {
        "version": "0.1.2",
        "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
        "integrity": "sha512-Ec+X44CapIGExvSZN+pGkmr5p7HwUVQoPQSd458Lqwvaf4/61k/invHSh4BYK8OXnCkfEhWuIoG5hayKLQStIg==",
        "dev": true
      },
 +    "estree-walker": {
 +      "version": "1.0.1",
 +      "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
 +      "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
 +      "dev": true
 +    },
      "esutils": {
        "version": "2.0.2",
        "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
          "moment": "^2.11.2"
        }
      },
+     "file-sync-cmp": {
+       "version": "0.1.1",
+       "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz",
+       "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=",
+       "dev": true
+     },
      "file-uri-to-path": {
        "version": "1.0.0",
        "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
          "to-regex-range": "^5.0.1"
        }
      },
 +    "find-cache-dir": {
 +      "version": "3.3.1",
 +      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
 +      "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
 +      "dev": true,
 +      "requires": {
 +        "commondir": "^1.0.1",
 +        "make-dir": "^3.0.2",
 +        "pkg-dir": "^4.1.0"
 +      },
 +      "dependencies": {
 +        "find-up": {
 +          "version": "4.1.0",
 +          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
 +          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
 +          "dev": true,
 +          "requires": {
 +            "locate-path": "^5.0.0",
 +            "path-exists": "^4.0.0"
 +          }
 +        },
 +        "locate-path": {
 +          "version": "5.0.0",
 +          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
 +          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
 +          "dev": true,
 +          "requires": {
 +            "p-locate": "^4.1.0"
 +          }
 +        },
 +        "make-dir": {
 +          "version": "3.1.0",
 +          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
 +          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
 +          "dev": true,
 +          "requires": {
 +            "semver": "^6.0.0"
 +          }
 +        },
 +        "p-locate": {
 +          "version": "4.1.0",
 +          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
 +          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
 +          "dev": true,
 +          "requires": {
 +            "p-limit": "^2.2.0"
 +          }
 +        },
 +        "path-exists": {
 +          "version": "4.0.0",
 +          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
 +          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
 +          "dev": true
 +        },
 +        "pkg-dir": {
 +          "version": "4.2.0",
 +          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
 +          "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
 +          "dev": true,
 +          "requires": {
 +            "find-up": "^4.0.0"
 +          }
 +        },
 +        "semver": {
 +          "version": "6.3.0",
 +          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
 +          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
 +          "dev": true
 +        }
 +      }
 +    },
      "find-parent-dir": {
        "version": "0.3.0",
        "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz",
          "from2": "^2.0.3"
        }
      },
 +    "fs-extra": {
 +      "version": "8.1.0",
 +      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
 +      "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
 +      "dev": true,
 +      "requires": {
 +        "graceful-fs": "^4.2.0",
 +        "jsonfile": "^4.0.0",
 +        "universalify": "^0.1.0"
 +      },
 +      "dependencies": {
 +        "graceful-fs": {
 +          "version": "4.2.6",
 +          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
 +          "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
 +          "dev": true
 +        }
 +      }
 +    },
      "fs-minipass": {
        "version": "1.2.7",
        "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
          }
        }
      },
+     "grunt-contrib-clean": {
+       "version": "2.0.0",
+       "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-2.0.0.tgz",
+       "integrity": "sha512-g5ZD3ORk6gMa5ugZosLDQl3dZO7cI3R14U75hTM+dVLVxdMNJCPVmwf9OUt4v4eWgpKKWWoVK9DZc1amJp4nQw==",
+       "dev": true,
+       "requires": {
+         "async": "^2.6.1",
+         "rimraf": "^2.6.2"
+       },
+       "dependencies": {
+         "async": {
+           "version": "2.6.3",
+           "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+           "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+           "dev": true,
+           "requires": {
+             "lodash": "^4.17.14"
+           }
+         },
+         "rimraf": {
+           "version": "2.7.1",
+           "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+           "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+           "dev": true,
+           "requires": {
+             "glob": "^7.1.3"
+           }
+         }
+       }
+     },
+     "grunt-contrib-copy": {
+       "version": "1.0.0",
+       "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz",
+       "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=",
+       "dev": true,
+       "requires": {
+         "chalk": "^1.1.1",
+         "file-sync-cmp": "^0.1.0"
+       },
+       "dependencies": {
+         "ansi-regex": {
+           "version": "2.1.1",
+           "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+           "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+           "dev": true
+         },
+         "ansi-styles": {
+           "version": "2.2.1",
+           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+           "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+           "dev": true
+         },
+         "chalk": {
+           "version": "1.1.3",
+           "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+           "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+           "dev": true,
+           "requires": {
+             "ansi-styles": "^2.2.1",
+             "escape-string-regexp": "^1.0.2",
+             "has-ansi": "^2.0.0",
+             "strip-ansi": "^3.0.0",
+             "supports-color": "^2.0.0"
+           }
+         },
+         "strip-ansi": {
+           "version": "3.0.1",
+           "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+           "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+           "dev": true,
+           "requires": {
+             "ansi-regex": "^2.0.0"
+           }
+         },
+         "supports-color": {
+           "version": "2.0.0",
+           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+           "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+           "dev": true
+         }
+       }
+     },
      "grunt-known-options": {
        "version": "1.1.1",
        "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
          }
        }
      },
+     "grunt-mkdir": {
+       "version": "1.1.0",
+       "resolved": "https://registry.npmjs.org/grunt-mkdir/-/grunt-mkdir-1.1.0.tgz",
+       "integrity": "sha512-FRE17OYVveNbVJFX8GPGa5bzH2ZiAdBx3q0Kwk2Dg6l+TzLGaTdufUxiUWUbS2MERFacnmXZwDDOR5ZbYW0o+Q==",
+       "dev": true
+     },
      "grunt-ts": {
        "version": "6.0.0-beta.22",
        "resolved": "https://registry.npmjs.org/grunt-ts/-/grunt-ts-6.0.0-beta.22.tgz",
        "dev": true,
        "requires": {
          "rollup": "^1.31.1"
 +      },
 +      "dependencies": {
 +        "rollup": {
 +          "version": "1.32.1",
 +          "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz",
 +          "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==",
 +          "dev": true,
 +          "requires": {
 +            "@types/estree": "*",
 +            "@types/node": "*",
 +            "acorn": "^7.1.0"
 +          }
 +        }
        }
      },
      "is-arguments": {
        "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
        "dev": true
      },
 +    "is-path-cwd": {
 +      "version": "2.2.0",
 +      "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
 +      "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
 +      "dev": true
 +    },
      "is-path-inside": {
        "version": "1.0.1",
        "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
        "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
        "dev": true
      },
 +    "jsonfile": {
 +      "version": "4.0.0",
 +      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
 +      "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
 +      "dev": true,
 +      "requires": {
 +        "graceful-fs": "^4.1.6"
 +      }
 +    },
      "jsonify": {
        "version": "0.0.0",
        "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
          }
        }
      },
--    "make-error": {
--      "version": "1.3.6",
--      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
--      "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
--      "dev": true
--    },
      "make-iterator": {
        "version": "1.0.1",
        "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
          "p-limit": "^2.0.0"
        }
      },
 +    "p-map": {
 +      "version": "3.0.0",
 +      "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
 +      "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
 +      "dev": true,
 +      "requires": {
 +        "aggregate-error": "^3.0.0"
 +      }
 +    },
      "p-try": {
        "version": "2.2.0",
        "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
        }
      },
      "rollup": {
 -      "version": "1.32.1",
 -      "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz",
 -      "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==",
 +      "version": "2.39.0",
 +      "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.39.0.tgz",
 +      "integrity": "sha512-+WR3bttcq7zE+BntH09UxaW3bQo3vItuYeLsyk4dL2tuwbeSKJuvwiawyhEnvRdRgrII0Uzk00FpctHO/zB1kw==",
 +      "dev": true,
 +      "requires": {
 +        "fsevents": "~2.3.1"
 +      },
 +      "dependencies": {
 +        "fsevents": {
 +          "version": "2.3.2",
 +          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
 +          "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
 +          "dev": true,
 +          "optional": true
 +        }
 +      }
 +    },
 +    "rollup-plugin-copy": {
 +      "version": "3.3.0",
 +      "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.3.0.tgz",
 +      "integrity": "sha512-euDjCUSBXZa06nqnwCNADbkAcYDfzwowfZQkto9K/TFhiH+QG7I4PUsEMwM9tDgomGWJc//z7KLW8t+tZwxADA==",
 +      "dev": true,
 +      "requires": {
 +        "@types/fs-extra": "^8.0.1",
 +        "colorette": "^1.1.0",
 +        "fs-extra": "^8.1.0",
 +        "globby": "10.0.1",
 +        "is-plain-object": "^3.0.0"
 +      },
 +      "dependencies": {
 +        "array-union": {
 +          "version": "2.1.0",
 +          "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
 +          "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
 +          "dev": true
 +        },
 +        "globby": {
 +          "version": "10.0.1",
 +          "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz",
 +          "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==",
 +          "dev": true,
 +          "requires": {
 +            "@types/glob": "^7.1.1",
 +            "array-union": "^2.1.0",
 +            "dir-glob": "^3.0.1",
 +            "fast-glob": "^3.0.3",
 +            "glob": "^7.1.3",
 +            "ignore": "^5.1.1",
 +            "merge2": "^1.2.3",
 +            "slash": "^3.0.0"
 +          }
 +        },
 +        "is-plain-object": {
 +          "version": "3.0.1",
 +          "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz",
 +          "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==",
 +          "dev": true
 +        }
 +      }
 +    },
 +    "rollup-plugin-delete": {
 +      "version": "2.0.0",
 +      "resolved": "https://registry.npmjs.org/rollup-plugin-delete/-/rollup-plugin-delete-2.0.0.tgz",
 +      "integrity": "sha512-/VpLMtDy+8wwRlDANuYmDa9ss/knGsAgrDhM+tEwB1npHwNu4DYNmDfUL55csse/GHs9Q+SMT/rw9uiaZ3pnzA==",
 +      "dev": true,
 +      "requires": {
 +        "del": "^5.1.0"
 +      }
 +    },
 +    "rollup-plugin-typescript2": {
 +      "version": "0.29.0",
 +      "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.29.0.tgz",
 +      "integrity": "sha512-YytahBSZCIjn/elFugEGQR5qTsVhxhUwGZIsA9TmrSsC88qroGo65O5HZP/TTArH2dm0vUmYWhKchhwi2wL9bw==",
        "dev": true,
        "requires": {
 -        "@types/estree": "*",
 -        "@types/node": "*",
 -        "acorn": "^7.1.0"
 +        "@rollup/pluginutils": "^3.1.0",
 +        "find-cache-dir": "^3.3.1",
 +        "fs-extra": "8.1.0",
 +        "resolve": "1.17.0",
 +        "tslib": "2.0.1"
 +      },
 +      "dependencies": {
 +        "@types/estree": {
 +          "version": "0.0.39",
 +          "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
 +          "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="
 +        },
 +        "resolve": {
 +          "version": "1.17.0",
 +          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
 +          "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
 +          "dev": true,
 +          "requires": {
 +            "path-parse": "^1.0.6"
 +          }
 +        },
 +        "tslib": {
 +          "version": "2.0.1",
 +          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
 +          "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==",
 +          "dev": true
 +        }
        }
      },
      "run-async": {
        "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
        "dev": true
      },
--    "tree-kill": {
--      "version": "1.2.2",
--      "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
--      "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
--      "dev": true
--    },
      "trim-newlines": {
        "version": "1.0.0",
        "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
        "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
        "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
      },
--    "ts-node": {
--      "version": "9.1.1",
--      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz",
--      "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==",
--      "dev": true,
--      "requires": {
--        "arg": "^4.1.0",
--        "create-require": "^1.1.0",
--        "diff": "^4.0.1",
--        "make-error": "^1.1.1",
--        "source-map-support": "^0.5.17",
--        "yn": "3.1.1"
--      }
--    },
--    "ts-node-dev": {
--      "version": "1.1.1",
--      "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-1.1.1.tgz",
--      "integrity": "sha512-kAO8LUZgXZSY0+PucMPsQ0Bbdv0x+lgbN7j8gcD4PuTI4uKC6YchekaspmYTBNilkiu+rQYkWJA7cK+Q8/B0tQ==",
--      "dev": true,
--      "requires": {
--        "chokidar": "^3.4.0",
--        "dateformat": "~1.0.4-1.2.3",
--        "dynamic-dedupe": "^0.3.0",
--        "minimist": "^1.2.5",
--        "mkdirp": "^1.0.4",
--        "resolve": "^1.0.0",
--        "rimraf": "^2.6.1",
--        "source-map-support": "^0.5.12",
--        "tree-kill": "^1.2.2",
--        "ts-node": "^9.0.0",
--        "tsconfig": "^7.0.0"
--      },
--      "dependencies": {
--        "anymatch": {
--          "version": "3.1.1",
--          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
--          "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
--          "dev": true,
--          "requires": {
--            "normalize-path": "^3.0.0",
--            "picomatch": "^2.0.4"
--          }
--        },
--        "binary-extensions": {
--          "version": "2.1.0",
--          "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
--          "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
--          "dev": true
--        },
--        "chokidar": {
--          "version": "3.4.3",
--          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
--          "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
--          "dev": true,
--          "requires": {
--            "anymatch": "~3.1.1",
--            "braces": "~3.0.2",
--            "fsevents": "~2.1.2",
--            "glob-parent": "~5.1.0",
--            "is-binary-path": "~2.1.0",
--            "is-glob": "~4.0.1",
--            "normalize-path": "~3.0.0",
--            "readdirp": "~3.5.0"
--          }
--        },
--        "dateformat": {
--          "version": "1.0.12",
--          "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
--          "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
--          "dev": true,
--          "requires": {
--            "get-stdin": "^4.0.1",
--            "meow": "^3.3.0"
--          }
--        },
--        "fsevents": {
--          "version": "2.1.3",
--          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
--          "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
--          "dev": true,
--          "optional": true
--        },
--        "is-binary-path": {
--          "version": "2.1.0",
--          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
--          "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
--          "dev": true,
--          "requires": {
--            "binary-extensions": "^2.0.0"
--          }
--        },
--        "readdirp": {
--          "version": "3.5.0",
--          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
--          "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
--          "dev": true,
--          "requires": {
--            "picomatch": "^2.2.1"
--          }
--        },
--        "rimraf": {
--          "version": "2.7.1",
--          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
--          "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
--          "dev": true,
--          "requires": {
--            "glob": "^7.1.3"
--          }
--        }
--      }
--    },
--    "tsconfig": {
--      "version": "7.0.0",
--      "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz",
--      "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==",
--      "dev": true,
--      "requires": {
--        "@types/strip-bom": "^3.0.0",
--        "@types/strip-json-comments": "0.0.30",
--        "strip-bom": "^3.0.0",
--        "strip-json-comments": "^2.0.0"
--      }
--    },
      "tslib": {
        "version": "2.1.0",
        "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
          "crypto-random-string": "^1.0.0"
        }
      },
 +    "universalify": {
 +      "version": "0.1.2",
 +      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
 +      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
 +      "dev": true
 +    },
      "unset-value": {
        "version": "1.0.0",
        "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
          "camelcase": "^5.0.0",
          "decamelize": "^1.2.0"
        }
--    },
--    "yn": {
--      "version": "3.1.1",
--      "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
--      "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
--      "dev": true
      }
    }
  }
diff --combined package.json
index 7c609d5cb593b3b2ba56397485d5c4e37cc88790,b4fe270f9fbd3a955d5124a420a2f3d2a459d493..0012bda58ce25e6f07c37770c56634eda18ca54d
    "scripts": {
      "prestart": "npm run build",
      "start": "cross-env NODE_ENV=production node -r source-map-support/register dist/start.js",
-     "start:dev": "cross-env NODE_ENV=development ts-node-dev -- src/start.ts",
-     "start:dev:debug": "cross-env NODE_ENV=development ts-node-dev --inspect -- src/start.ts",
      "start:debug": "cross-env NODE_ENV=production node -r source-map-support/register --inspect dist/start.js",
      "start:prof": "cross-env NODE_ENV=production node -r source-map-support/register --prof dist/start.js",
      "start:doctorprof": "cross-env NODE_ENV=production clinic doctor -- node -r source-map-support/register dist/start.js",
      "start:flameprof": "cross-env NODE_ENV=production clinic flame -- node -r source-map-support/register dist/start.js",
      "start:bubbleprof": "cross-env NODE_ENV=production clinic bubbleprof -- node -r source-map-support/register dist/start.js",
      "grunt": "grunt",
 +    "rollup": "rollup --config",
      "build": "npm run grunt",
      "build:mta": "mbt build",
-     "build:clean": "rimraf ./dist",
+     "build:watch": "npm run grunt -- ts:buildWatch",
      "lint": "cross-env TIMING=1 eslint --ext .js,.ts src",
      "lint:fix": "cross-env TIMING=1 eslint --fix --ext .js,.ts src",
      "import-sort": "npx import-sort-cli --write 'src/**/*.ts{,x}'",
      "cross-env": "^7.0.3",
      "eslint": "^7.20.0",
      "grunt": "^1.3.0",
+     "grunt-contrib-clean": "^2.0.0",
+     "grunt-contrib-copy": "^1.0.0",
+     "grunt-mkdir": "^1.1.0",
      "grunt-ts": "^6.0.0-beta.22",
      "mbt": "^1.1.0",
      "npm-check": "^5.9.2",
-     "rimraf": "^3.0.2",
 +    "rollup": "^2.39.0",
 +    "rollup-plugin-copy": "^3.3.0",
 +    "rollup-plugin-delete": "^2.0.0",
 +    "rollup-plugin-typescript2": "^0.29.0",
-     "ts-node-dev": "^1.1.1",
      "typescript": "^4.1.5"
    }
  }