Commit 98a15cd0987ae99e3ce2cec298e953905bba3a99

Authored by Igor Kulikov
2 parents 66db4c7f 503bca90

Merge branch 'ArtemHalushko-map/3.0' into develop/3.0

Showing 25 changed files with 1964 additions and 589 deletions
@@ -4,6 +4,152 @@ @@ -4,6 +4,152 @@
4 "lockfileVersion": 1, 4 "lockfileVersion": 1,
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
  7 + "@azure/abort-controller": {
  8 + "version": "1.0.1",
  9 + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.1.tgz",
  10 + "integrity": "sha512-wP2Jw6uPp8DEDy0n4KNidvwzDjyVV2xnycEIq7nPzj1rHyb/r+t3OPeNT1INZePP2wy5ZqlwyuyOMTi0ePyY1A==",
  11 + "requires": {
  12 + "tslib": "^1.9.3"
  13 + }
  14 + },
  15 + "@azure/amqp-common": {
  16 + "version": "1.0.0-preview.13",
  17 + "resolved": "https://registry.npmjs.org/@azure/amqp-common/-/amqp-common-1.0.0-preview.13.tgz",
  18 + "integrity": "sha512-v19NGXFm8Hzr2bj/DSWYc2anaDcoAeFQXJGuBT8QO7eS13vaELQNGaynOGipEcI313A1778R/FFCk4o+dylIiw==",
  19 + "requires": {
  20 + "@types/async-lock": "^1.1.0",
  21 + "@types/is-buffer": "^2.0.0",
  22 + "async-lock": "^1.1.3",
  23 + "buffer": "^5.2.1",
  24 + "debug": "^3.1.0",
  25 + "events": "^3.0.0",
  26 + "is-buffer": "^2.0.3",
  27 + "jssha": "^2.3.1",
  28 + "process": "^0.11.10",
  29 + "rhea": "^1.0.18",
  30 + "rhea-promise": "^0.1.15",
  31 + "stream-browserify": "^2.0.2",
  32 + "tslib": "^1.9.3",
  33 + "url": "^0.11.0",
  34 + "util": "^0.11.1"
  35 + },
  36 + "dependencies": {
  37 + "is-buffer": {
  38 + "version": "2.0.4",
  39 + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
  40 + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
  41 + }
  42 + }
  43 + },
  44 + "@azure/core-auth": {
  45 + "version": "1.1.2",
  46 + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.1.2.tgz",
  47 + "integrity": "sha512-IUbP/f3v96dpHgXUwsAjUwDzjlUjawyUhWhGKKB6Qxy+iqppC/pVBPyc6kdpyTe7H30HN+4H3f0lar7Wp9Hx6A==",
  48 + "requires": {
  49 + "@azure/abort-controller": "^1.0.0",
  50 + "@azure/core-tracing": "1.0.0-preview.8",
  51 + "@opentelemetry/api": "^0.6.1",
  52 + "tslib": "^1.10.0"
  53 + }
  54 + },
  55 + "@azure/core-http": {
  56 + "version": "1.1.1",
  57 + "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-1.1.1.tgz",
  58 + "integrity": "sha512-yBxH5CtYaCj0f1CKoi3OjQw5C5Go8TbgNA6Q2rX7XsDpN2eeKu0n3kRvzZnKW+brtO1u3YnBBuBLF2KcGoZv6g==",
  59 + "requires": {
  60 + "@azure/abort-controller": "^1.0.0",
  61 + "@azure/core-auth": "^1.1.2",
  62 + "@azure/core-tracing": "1.0.0-preview.8",
  63 + "@azure/logger": "^1.0.0",
  64 + "@opentelemetry/api": "^0.6.1",
  65 + "@types/node-fetch": "^2.5.0",
  66 + "@types/tunnel": "^0.0.1",
  67 + "cross-env": "^6.0.3",
  68 + "form-data": "^3.0.0",
  69 + "node-fetch": "^2.6.0",
  70 + "process": "^0.11.10",
  71 + "tough-cookie": "^3.0.1",
  72 + "tslib": "^1.10.0",
  73 + "tunnel": "^0.0.6",
  74 + "uuid": "^3.3.2",
  75 + "xml2js": "^0.4.19"
  76 + },
  77 + "dependencies": {
  78 + "form-data": {
  79 + "version": "3.0.0",
  80 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
  81 + "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
  82 + "requires": {
  83 + "asynckit": "^0.4.0",
  84 + "combined-stream": "^1.0.8",
  85 + "mime-types": "^2.1.12"
  86 + }
  87 + },
  88 + "tough-cookie": {
  89 + "version": "3.0.1",
  90 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
  91 + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
  92 + "requires": {
  93 + "ip-regex": "^2.1.0",
  94 + "psl": "^1.1.28",
  95 + "punycode": "^2.1.1"
  96 + }
  97 + }
  98 + }
  99 + },
  100 + "@azure/core-tracing": {
  101 + "version": "1.0.0-preview.8",
  102 + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.8.tgz",
  103 + "integrity": "sha512-ZKUpCd7Dlyfn7bdc+/zC/sf0aRIaNQMDuSj2RhYRFe3p70hVAnYGp3TX4cnG2yoEALp/LTj/XnZGQ8Xzf6Ja/Q==",
  104 + "requires": {
  105 + "@opencensus/web-types": "0.0.7",
  106 + "@opentelemetry/api": "^0.6.1",
  107 + "tslib": "^1.10.0"
  108 + }
  109 + },
  110 + "@azure/logger": {
  111 + "version": "1.0.0",
  112 + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.0.tgz",
  113 + "integrity": "sha512-g2qLDgvmhyIxR3JVS8N67CyIOeFRKQlX/llxYJQr1OSGQqM3HTpVP8MjmjcEKbL/OIt2N9C9UFaNQuKOw1laOA==",
  114 + "requires": {
  115 + "tslib": "^1.9.3"
  116 + }
  117 + },
  118 + "@azure/service-bus": {
  119 + "version": "1.1.6",
  120 + "resolved": "https://registry.npmjs.org/@azure/service-bus/-/service-bus-1.1.6.tgz",
  121 + "integrity": "sha512-eCJXcJZGWdlVwLEqMcoIqtUrh/NtyFcDDfq/y8gdCOy3Dzuv8JkPTxjdjcxDthwG9mc5Qter3dGOTwh0U8gwiw==",
  122 + "requires": {
  123 + "@azure/amqp-common": "1.0.0-preview.13",
  124 + "@azure/core-http": "^1.0.0",
  125 + "@opentelemetry/types": "^0.2.0",
  126 + "@types/is-buffer": "^2.0.0",
  127 + "@types/long": "^4.0.0",
  128 + "buffer": "^5.2.1",
  129 + "debug": "^4.1.1",
  130 + "is-buffer": "^2.0.3",
  131 + "long": "^4.0.0",
  132 + "process": "^0.11.10",
  133 + "rhea": "^1.0.18",
  134 + "rhea-promise": "^0.1.15",
  135 + "tslib": "^1.10.0"
  136 + },
  137 + "dependencies": {
  138 + "debug": {
  139 + "version": "4.1.1",
  140 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
  141 + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
  142 + "requires": {
  143 + "ms": "^2.1.1"
  144 + }
  145 + },
  146 + "is-buffer": {
  147 + "version": "2.0.4",
  148 + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
  149 + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
  150 + }
  151 + }
  152 + },
7 "@babel/parser": { 153 "@babel/parser": {
8 "version": "7.8.4", 154 "version": "7.8.4",
9 "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", 155 "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz",
@@ -19,6 +165,69 @@ @@ -19,6 +165,69 @@
19 "regenerator-runtime": "^0.13.2" 165 "regenerator-runtime": "^0.13.2"
20 } 166 }
21 }, 167 },
  168 + "@google-cloud/paginator": {
  169 + "version": "2.0.3",
  170 + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-2.0.3.tgz",
  171 + "integrity": "sha512-kp/pkb2p/p0d8/SKUu4mOq8+HGwF8NPzHWkj+VKrIPQPyMRw8deZtrO/OcSiy9C/7bpfU5Txah5ltUNfPkgEXg==",
  172 + "requires": {
  173 + "arrify": "^2.0.0",
  174 + "extend": "^3.0.2"
  175 + }
  176 + },
  177 + "@google-cloud/precise-date": {
  178 + "version": "1.0.3",
  179 + "resolved": "https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-1.0.3.tgz",
  180 + "integrity": "sha512-wWnDGh9y3cJHLuVEY8t6un78vizzMWsS7oIWKeFtPj+Ndy+dXvHW0HTx29ZUhen+tswSlQYlwFubvuRP5kKdzQ=="
  181 + },
  182 + "@google-cloud/projectify": {
  183 + "version": "1.0.4",
  184 + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-1.0.4.tgz",
  185 + "integrity": "sha512-ZdzQUN02eRsmTKfBj9FDL0KNDIFNjBn/d6tHQmA/+FImH5DO6ZV8E7FzxMgAUiVAUq41RFAkb25p1oHOZ8psfg=="
  186 + },
  187 + "@google-cloud/promisify": {
  188 + "version": "1.0.4",
  189 + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-1.0.4.tgz",
  190 + "integrity": "sha512-VccZDcOql77obTnFh0TbNED/6ZbbmHDf8UMNnzO1d5g9V0Htfm4k5cllY8P1tJsRKC3zWYGRLaViiupcgVjBoQ=="
  191 + },
  192 + "@google-cloud/pubsub": {
  193 + "version": "1.7.2",
  194 + "resolved": "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-1.7.2.tgz",
  195 + "integrity": "sha512-/TziioDSV4FS4wKF1sIaQ+1gvE+um83oHz1nRsZ3L87uWSoOciBjJAcocgPjqrpnW441+Nuw4w0QdSUV1Lka/g==",
  196 + "requires": {
  197 + "@google-cloud/paginator": "^2.0.0",
  198 + "@google-cloud/precise-date": "^1.0.0",
  199 + "@google-cloud/projectify": "^1.0.0",
  200 + "@google-cloud/promisify": "^1.0.0",
  201 + "@types/duplexify": "^3.6.0",
  202 + "@types/long": "^4.0.0",
  203 + "arrify": "^2.0.0",
  204 + "async-each": "^1.0.1",
  205 + "extend": "^3.0.2",
  206 + "google-auth-library": "^5.5.0",
  207 + "google-gax": "^1.14.2",
  208 + "is-stream-ended": "^0.1.4",
  209 + "lodash.snakecase": "^4.1.1",
  210 + "p-defer": "^3.0.0",
  211 + "protobufjs": "^6.8.1"
  212 + }
  213 + },
  214 + "@grpc/grpc-js": {
  215 + "version": "1.0.3",
  216 + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.0.3.tgz",
  217 + "integrity": "sha512-JKV3f5Bv2TZxK6eJSB9EarsZrnLxrvcFNwI9goq0YRXa3S6NNoCSnI3cG3lkXVIJ03Wng1WXe76kc2JQtRe7AQ==",
  218 + "requires": {
  219 + "semver": "^6.2.0"
  220 + }
  221 + },
  222 + "@grpc/proto-loader": {
  223 + "version": "0.5.4",
  224 + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.4.tgz",
  225 + "integrity": "sha512-HTM4QpI9B2XFkPz7pjwMyMgZchJ93TVkL3kWPW8GDMDKYxsMnmf4w2TNMJK7+KNiYHS5cJrCEAFlF+AwtXWVPA==",
  226 + "requires": {
  227 + "lodash.camelcase": "^4.3.0",
  228 + "protobufjs": "^6.8.6"
  229 + }
  230 + },
22 "@nodelib/fs.scandir": { 231 "@nodelib/fs.scandir": {
23 "version": "2.1.3", 232 "version": "2.1.3",
24 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", 233 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
@@ -45,23 +254,193 @@ @@ -45,23 +254,193 @@
45 "fastq": "^1.6.0" 254 "fastq": "^1.6.0"
46 } 255 }
47 }, 256 },
  257 + "@opencensus/web-types": {
  258 + "version": "0.0.7",
  259 + "resolved": "https://registry.npmjs.org/@opencensus/web-types/-/web-types-0.0.7.tgz",
  260 + "integrity": "sha512-xB+w7ZDAu3YBzqH44rCmG9/RlrOmFuDPt/bpf17eJr8eZSrLt7nc7LnWdxM9Mmoj/YKMHpxRg28txu3TcpiL+g=="
  261 + },
  262 + "@opentelemetry/api": {
  263 + "version": "0.6.1",
  264 + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-0.6.1.tgz",
  265 + "integrity": "sha512-wpufGZa7tTxw7eAsjXJtiyIQ42IWQdX9iUQp7ACJcKo1hCtuhLU+K2Nv1U6oRwT1oAlZTE6m4CgWKZBhOiau3Q==",
  266 + "requires": {
  267 + "@opentelemetry/context-base": "^0.6.1"
  268 + }
  269 + },
  270 + "@opentelemetry/context-base": {
  271 + "version": "0.6.1",
  272 + "resolved": "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.6.1.tgz",
  273 + "integrity": "sha512-5bHhlTBBq82ti3qPT15TRxkYTFPPQWbnkkQkmHPtqiS1XcTB69cEKd3Jm7Cfi/vkPoyxapmePE9tyA7EzLt8SQ=="
  274 + },
  275 + "@opentelemetry/types": {
  276 + "version": "0.2.0",
  277 + "resolved": "https://registry.npmjs.org/@opentelemetry/types/-/types-0.2.0.tgz",
  278 + "integrity": "sha512-GtwNB6BNDdsIPAYEdpp3JnOGO/3AJxjPvny53s3HERBdXSJTGQw8IRhiaTEX0b3w9P8+FwFZde4k+qkjn67aVw=="
  279 + },
  280 + "@protobufjs/aspromise": {
  281 + "version": "1.1.2",
  282 + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
  283 + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78="
  284 + },
  285 + "@protobufjs/base64": {
  286 + "version": "1.1.2",
  287 + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
  288 + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
  289 + },
  290 + "@protobufjs/codegen": {
  291 + "version": "2.0.4",
  292 + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
  293 + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
  294 + },
  295 + "@protobufjs/eventemitter": {
  296 + "version": "1.1.0",
  297 + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
  298 + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A="
  299 + },
  300 + "@protobufjs/fetch": {
  301 + "version": "1.1.0",
  302 + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
  303 + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
  304 + "requires": {
  305 + "@protobufjs/aspromise": "^1.1.1",
  306 + "@protobufjs/inquire": "^1.1.0"
  307 + }
  308 + },
  309 + "@protobufjs/float": {
  310 + "version": "1.0.2",
  311 + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
  312 + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E="
  313 + },
  314 + "@protobufjs/inquire": {
  315 + "version": "1.1.0",
  316 + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
  317 + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik="
  318 + },
  319 + "@protobufjs/path": {
  320 + "version": "1.1.2",
  321 + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
  322 + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0="
  323 + },
  324 + "@protobufjs/pool": {
  325 + "version": "1.1.0",
  326 + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
  327 + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q="
  328 + },
  329 + "@protobufjs/utf8": {
  330 + "version": "1.1.0",
  331 + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
  332 + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
  333 + },
  334 + "@types/async-lock": {
  335 + "version": "1.1.2",
  336 + "resolved": "https://registry.npmjs.org/@types/async-lock/-/async-lock-1.1.2.tgz",
  337 + "integrity": "sha512-j9n4bb6RhgFIydBe0+kpjnBPYumDaDyU8zvbWykyVMkku+c2CSu31MZkLeaBfqIwU+XCxlDpYDfyMQRkM0AkeQ=="
  338 + },
48 "@types/color-name": { 339 "@types/color-name": {
49 "version": "1.1.1", 340 "version": "1.1.1",
50 "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 341 "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
51 "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", 342 "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
52 "dev": true 343 "dev": true
53 }, 344 },
  345 + "@types/duplexify": {
  346 + "version": "3.6.0",
  347 + "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz",
  348 + "integrity": "sha512-5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==",
  349 + "requires": {
  350 + "@types/node": "*"
  351 + }
  352 + },
  353 + "@types/fs-extra": {
  354 + "version": "8.1.0",
  355 + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.0.tgz",
  356 + "integrity": "sha512-UoOfVEzAUpeSPmjm7h1uk5MH6KZma2z2O7a75onTGjnNvAvMVrPzPL/vBbT65iIGHWj6rokwfmYcmxmlSf2uwg==",
  357 + "requires": {
  358 + "@types/node": "*"
  359 + }
  360 + },
  361 + "@types/is-buffer": {
  362 + "version": "2.0.0",
  363 + "resolved": "https://registry.npmjs.org/@types/is-buffer/-/is-buffer-2.0.0.tgz",
  364 + "integrity": "sha512-0f7N/e3BAz32qDYvgB4d2cqv1DqUwvGxHkXsrucICn8la1Vb6Yl6Eg8mPScGwUiqHJeE7diXlzaK+QMA9m4Gxw==",
  365 + "requires": {
  366 + "@types/node": "*"
  367 + }
  368 + },
  369 + "@types/long": {
  370 + "version": "4.0.1",
  371 + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
  372 + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
  373 + },
  374 + "@types/node": {
  375 + "version": "13.13.4",
  376 + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.4.tgz",
  377 + "integrity": "sha512-x26ur3dSXgv5AwKS0lNfbjpCakGIduWU1DU91Zz58ONRWrIKGunmZBNv4P7N+e27sJkiGDsw/3fT4AtsqQBrBA=="
  378 + },
  379 + "@types/node-fetch": {
  380 + "version": "2.5.7",
  381 + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz",
  382 + "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==",
  383 + "requires": {
  384 + "@types/node": "*",
  385 + "form-data": "^3.0.0"
  386 + },
  387 + "dependencies": {
  388 + "form-data": {
  389 + "version": "3.0.0",
  390 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
  391 + "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
  392 + "requires": {
  393 + "asynckit": "^0.4.0",
  394 + "combined-stream": "^1.0.8",
  395 + "mime-types": "^2.1.12"
  396 + }
  397 + }
  398 + }
  399 + },
  400 + "@types/tunnel": {
  401 + "version": "0.0.1",
  402 + "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.1.tgz",
  403 + "integrity": "sha512-AOqu6bQu5MSWwYvehMXLukFHnupHrpZ8nvgae5Ggie9UwzDR1CCwoXgSSWNZJuyOlCdfdsWMA5F2LlmvyoTv8A==",
  404 + "requires": {
  405 + "@types/node": "*"
  406 + }
  407 + },
54 "abbrev": { 408 "abbrev": {
55 "version": "1.1.1", 409 "version": "1.1.1",
56 "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 410 "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
57 "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 411 "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
58 "dev": true 412 "dev": true
59 }, 413 },
  414 + "abort-controller": {
  415 + "version": "3.0.0",
  416 + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
  417 + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
  418 + "requires": {
  419 + "event-target-shim": "^5.0.0"
  420 + }
  421 + },
  422 + "agent-base": {
  423 + "version": "6.0.0",
  424 + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz",
  425 + "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==",
  426 + "requires": {
  427 + "debug": "4"
  428 + },
  429 + "dependencies": {
  430 + "debug": {
  431 + "version": "4.1.1",
  432 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
  433 + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
  434 + "requires": {
  435 + "ms": "^2.1.1"
  436 + }
  437 + }
  438 + }
  439 + },
60 "ajv": { 440 "ajv": {
61 "version": "6.11.0", 441 "version": "6.11.0",
62 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", 442 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
63 "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", 443 "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
64 - "dev": true,  
65 "requires": { 444 "requires": {
66 "fast-deep-equal": "^3.1.1", 445 "fast-deep-equal": "^3.1.1",
67 "fast-json-stable-stringify": "^2.0.0", 446 "fast-json-stable-stringify": "^2.0.0",
@@ -69,6 +448,47 @@ @@ -69,6 +448,47 @@
69 "uri-js": "^4.2.2" 448 "uri-js": "^4.2.2"
70 } 449 }
71 }, 450 },
  451 + "amqplib": {
  452 + "version": "0.5.5",
  453 + "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.5.5.tgz",
  454 + "integrity": "sha512-sWx1hbfHbyKMw6bXOK2k6+lHL8TESWxjAx5hG8fBtT7wcxoXNIsFxZMnFyBjxt3yL14vn7WqBDe5U6BGOadtLg==",
  455 + "requires": {
  456 + "bitsyntax": "~0.1.0",
  457 + "bluebird": "^3.5.2",
  458 + "buffer-more-ints": "~1.0.0",
  459 + "readable-stream": "1.x >=1.1.9",
  460 + "safe-buffer": "~5.1.2",
  461 + "url-parse": "~1.4.3"
  462 + },
  463 + "dependencies": {
  464 + "isarray": {
  465 + "version": "0.0.1",
  466 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
  467 + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
  468 + },
  469 + "readable-stream": {
  470 + "version": "1.1.14",
  471 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
  472 + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
  473 + "requires": {
  474 + "core-util-is": "~1.0.0",
  475 + "inherits": "~2.0.1",
  476 + "isarray": "0.0.1",
  477 + "string_decoder": "~0.10.x"
  478 + }
  479 + },
  480 + "safe-buffer": {
  481 + "version": "5.1.2",
  482 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
  483 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
  484 + },
  485 + "string_decoder": {
  486 + "version": "0.10.31",
  487 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
  488 + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
  489 + }
  490 + }
  491 + },
72 "ansi-align": { 492 "ansi-align": {
73 "version": "2.0.0", 493 "version": "2.0.0",
74 "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", 494 "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
@@ -152,11 +572,15 @@ @@ -152,11 +572,15 @@
152 "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", 572 "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
153 "dev": true 573 "dev": true
154 }, 574 },
  575 + "arrify": {
  576 + "version": "2.0.1",
  577 + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
  578 + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug=="
  579 + },
155 "asn1": { 580 "asn1": {
156 "version": "0.2.4", 581 "version": "0.2.4",
157 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 582 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
158 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 583 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
159 - "dev": true,  
160 "requires": { 584 "requires": {
161 "safer-buffer": "~2.1.0" 585 "safer-buffer": "~2.1.0"
162 } 586 }
@@ -164,8 +588,7 @@ @@ -164,8 +588,7 @@
164 "assert-plus": { 588 "assert-plus": {
165 "version": "1.0.0", 589 "version": "1.0.0",
166 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 590 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
167 - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",  
168 - "dev": true 591 + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
169 }, 592 },
170 "assign-symbols": { 593 "assign-symbols": {
171 "version": "1.0.0", 594 "version": "1.0.0",
@@ -184,14 +607,17 @@ @@ -184,14 +607,17 @@
184 "async-each": { 607 "async-each": {
185 "version": "1.0.3", 608 "version": "1.0.3",
186 "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", 609 "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
187 - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",  
188 - "dev": true 610 + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
  611 + },
  612 + "async-lock": {
  613 + "version": "1.2.2",
  614 + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.2.2.tgz",
  615 + "integrity": "sha512-uczz62z2fMWOFbyo6rG4NlV2SdxugJT6sZA2QcfB1XaSjEiOh8CuOb/TttyMnYQCda6nkWecJe465tGQDPJiKw=="
189 }, 616 },
190 "asynckit": { 617 "asynckit": {
191 "version": "0.4.0", 618 "version": "0.4.0",
192 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 619 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
193 - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",  
194 - "dev": true 620 + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
195 }, 621 },
196 "atob": { 622 "atob": {
197 "version": "2.1.2", 623 "version": "2.1.2",
@@ -199,17 +625,126 @@ @@ -199,17 +625,126 @@
199 "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", 625 "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
200 "dev": true 626 "dev": true
201 }, 627 },
  628 + "aws-sdk": {
  629 + "version": "2.669.0",
  630 + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.669.0.tgz",
  631 + "integrity": "sha512-kuVcSRpDzvkgmeSmMX6Q32eTOb8UeihhUdavMrvUOP6fzSU19cNWS9HAIkYOi/jrEDK85cCZxXjxqE3JGZIGcw==",
  632 + "requires": {
  633 + "buffer": "4.9.1",
  634 + "events": "1.1.1",
  635 + "ieee754": "1.1.13",
  636 + "jmespath": "0.15.0",
  637 + "querystring": "0.2.0",
  638 + "sax": "1.2.1",
  639 + "url": "0.10.3",
  640 + "uuid": "3.3.2",
  641 + "xml2js": "0.4.19"
  642 + },
  643 + "dependencies": {
  644 + "buffer": {
  645 + "version": "4.9.1",
  646 + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
  647 + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
  648 + "requires": {
  649 + "base64-js": "^1.0.2",
  650 + "ieee754": "^1.1.4",
  651 + "isarray": "^1.0.0"
  652 + }
  653 + },
  654 + "events": {
  655 + "version": "1.1.1",
  656 + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
  657 + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
  658 + },
  659 + "punycode": {
  660 + "version": "1.3.2",
  661 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
  662 + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
  663 + },
  664 + "sax": {
  665 + "version": "1.2.1",
  666 + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
  667 + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o="
  668 + },
  669 + "url": {
  670 + "version": "0.10.3",
  671 + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
  672 + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=",
  673 + "requires": {
  674 + "punycode": "1.3.2",
  675 + "querystring": "0.2.0"
  676 + }
  677 + },
  678 + "uuid": {
  679 + "version": "3.3.2",
  680 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
  681 + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
  682 + },
  683 + "xml2js": {
  684 + "version": "0.4.19",
  685 + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
  686 + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
  687 + "requires": {
  688 + "sax": ">=0.6.0",
  689 + "xmlbuilder": "~9.0.1"
  690 + }
  691 + },
  692 + "xmlbuilder": {
  693 + "version": "9.0.7",
  694 + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
  695 + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="
  696 + }
  697 + }
  698 + },
202 "aws-sign2": { 699 "aws-sign2": {
203 "version": "0.7.0", 700 "version": "0.7.0",
204 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 701 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
205 - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",  
206 - "dev": true 702 + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
207 }, 703 },
208 "aws4": { 704 "aws4": {
209 "version": "1.9.1", 705 "version": "1.9.1",
210 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", 706 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
211 - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==",  
212 - "dev": true 707 + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
  708 + },
  709 + "azure-common": {
  710 + "version": "0.9.22",
  711 + "resolved": "https://registry.npmjs.org/azure-common/-/azure-common-0.9.22.tgz",
  712 + "integrity": "sha512-0r9tK9D+1xl2/VPVtfmGmtkMqfooiBLS87fX+Ab0hOCPVVe/6CgVC4in0wSf2Ta8r65DbvxV5P4/t8fp8Q3EsQ==",
  713 + "requires": {
  714 + "dateformat": "1.0.2-1.2.3",
  715 + "duplexer": "~0.1.1",
  716 + "envconf": "~0.0.4",
  717 + "request": "^2.81.0",
  718 + "through": "~2.3.4",
  719 + "tunnel": "~0.0.2",
  720 + "underscore": "1.4.x",
  721 + "validator": "^9.4.1",
  722 + "xml2js": "^0.4.19",
  723 + "xmlbuilder": "0.4.3"
  724 + },
  725 + "dependencies": {
  726 + "underscore": {
  727 + "version": "1.4.4",
  728 + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
  729 + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ="
  730 + },
  731 + "xmlbuilder": {
  732 + "version": "0.4.3",
  733 + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-0.4.3.tgz",
  734 + "integrity": "sha1-xGFLp04K0ZbmCcknLNnh3bKKilg="
  735 + }
  736 + }
  737 + },
  738 + "azure-sb": {
  739 + "version": "0.11.1",
  740 + "resolved": "https://registry.npmjs.org/azure-sb/-/azure-sb-0.11.1.tgz",
  741 + "integrity": "sha512-ZYgPeSDMD99i/Em+6wT78zvBkJ/dbh2ypb4DbqQ1Flaif5vWJFzC/iKxxcq/vq+THWoO3+UbqWa0JNXnW3zAvw==",
  742 + "requires": {
  743 + "azure-common": "^0.9.22",
  744 + "mpns": "2.1.3",
  745 + "underscore": "^1.8.3",
  746 + "wns": "~0.5.3"
  747 + }
213 }, 748 },
214 "balanced-match": { 749 "balanced-match": {
215 "version": "1.0.0", 750 "version": "1.0.0",
@@ -272,15 +807,24 @@ @@ -272,15 +807,24 @@
272 } 807 }
273 } 808 }
274 }, 809 },
  810 + "base64-js": {
  811 + "version": "1.3.1",
  812 + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
  813 + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
  814 + },
275 "bcrypt-pbkdf": { 815 "bcrypt-pbkdf": {
276 "version": "1.0.2", 816 "version": "1.0.2",
277 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 817 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
278 "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 818 "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
279 - "dev": true,  
280 "requires": { 819 "requires": {
281 "tweetnacl": "^0.14.3" 820 "tweetnacl": "^0.14.3"
282 } 821 }
283 }, 822 },
  823 + "bignumber.js": {
  824 + "version": "7.2.1",
  825 + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
  826 + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ=="
  827 + },
284 "binary-extensions": { 828 "binary-extensions": {
285 "version": "1.13.1", 829 "version": "1.13.1",
286 "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", 830 "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
@@ -297,6 +841,41 @@ @@ -297,6 +841,41 @@
297 "file-uri-to-path": "1.0.0" 841 "file-uri-to-path": "1.0.0"
298 } 842 }
299 }, 843 },
  844 + "bitsyntax": {
  845 + "version": "0.1.0",
  846 + "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz",
  847 + "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==",
  848 + "requires": {
  849 + "buffer-more-ints": "~1.0.0",
  850 + "debug": "~2.6.9",
  851 + "safe-buffer": "~5.1.2"
  852 + },
  853 + "dependencies": {
  854 + "debug": {
  855 + "version": "2.6.9",
  856 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
  857 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
  858 + "requires": {
  859 + "ms": "2.0.0"
  860 + }
  861 + },
  862 + "ms": {
  863 + "version": "2.0.0",
  864 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
  865 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
  866 + },
  867 + "safe-buffer": {
  868 + "version": "5.1.2",
  869 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
  870 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
  871 + }
  872 + }
  873 + },
  874 + "bluebird": {
  875 + "version": "3.7.2",
  876 + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
  877 + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
  878 + },
300 "boxen": { 879 "boxen": {
301 "version": "1.3.0", 880 "version": "1.3.0",
302 "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", 881 "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
@@ -351,6 +930,25 @@ @@ -351,6 +930,25 @@
351 } 930 }
352 } 931 }
353 }, 932 },
  933 + "buffer": {
  934 + "version": "5.6.0",
  935 + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
  936 + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
  937 + "requires": {
  938 + "base64-js": "^1.0.2",
  939 + "ieee754": "^1.1.4"
  940 + }
  941 + },
  942 + "buffer-equal-constant-time": {
  943 + "version": "1.0.1",
  944 + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
  945 + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
  946 + },
  947 + "buffer-more-ints": {
  948 + "version": "1.0.0",
  949 + "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz",
  950 + "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg=="
  951 + },
354 "byline": { 952 "byline": {
355 "version": "5.0.0", 953 "version": "5.0.0",
356 "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", 954 "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
@@ -389,8 +987,7 @@ @@ -389,8 +987,7 @@
389 "caseless": { 987 "caseless": {
390 "version": "0.12.0", 988 "version": "0.12.0",
391 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 989 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
392 - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",  
393 - "dev": true 990 + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
394 }, 991 },
395 "chalk": { 992 "chalk": {
396 "version": "2.4.2", 993 "version": "2.4.2",
@@ -522,7 +1119,6 @@ @@ -522,7 +1119,6 @@
522 "version": "1.0.8", 1119 "version": "1.0.8",
523 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 1120 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
524 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 1121 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
525 - "dev": true,  
526 "requires": { 1122 "requires": {
527 "delayed-stream": "~1.0.0" 1123 "delayed-stream": "~1.0.0"
528 } 1124 }
@@ -581,6 +1177,52 @@ @@ -581,6 +1177,52 @@
581 "capture-stack-trace": "^1.0.0" 1177 "capture-stack-trace": "^1.0.0"
582 } 1178 }
583 }, 1179 },
  1180 + "cross-env": {
  1181 + "version": "6.0.3",
  1182 + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-6.0.3.tgz",
  1183 + "integrity": "sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag==",
  1184 + "requires": {
  1185 + "cross-spawn": "^7.0.0"
  1186 + },
  1187 + "dependencies": {
  1188 + "cross-spawn": {
  1189 + "version": "7.0.2",
  1190 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz",
  1191 + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==",
  1192 + "requires": {
  1193 + "path-key": "^3.1.0",
  1194 + "shebang-command": "^2.0.0",
  1195 + "which": "^2.0.1"
  1196 + }
  1197 + },
  1198 + "path-key": {
  1199 + "version": "3.1.1",
  1200 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
  1201 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
  1202 + },
  1203 + "shebang-command": {
  1204 + "version": "2.0.0",
  1205 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
  1206 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
  1207 + "requires": {
  1208 + "shebang-regex": "^3.0.0"
  1209 + }
  1210 + },
  1211 + "shebang-regex": {
  1212 + "version": "3.0.0",
  1213 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
  1214 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
  1215 + },
  1216 + "which": {
  1217 + "version": "2.0.2",
  1218 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
  1219 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
  1220 + "requires": {
  1221 + "isexe": "^2.0.0"
  1222 + }
  1223 + }
  1224 + }
  1225 + },
584 "cross-spawn": { 1226 "cross-spawn": {
585 "version": "5.1.0", 1227 "version": "5.1.0",
586 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 1228 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
@@ -607,16 +1249,19 @@ @@ -607,16 +1249,19 @@
607 "version": "1.14.1", 1249 "version": "1.14.1",
608 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 1250 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
609 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 1251 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
610 - "dev": true,  
611 "requires": { 1252 "requires": {
612 "assert-plus": "^1.0.0" 1253 "assert-plus": "^1.0.0"
613 } 1254 }
614 }, 1255 },
  1256 + "dateformat": {
  1257 + "version": "1.0.2-1.2.3",
  1258 + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
  1259 + "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk="
  1260 + },
615 "debug": { 1261 "debug": {
616 "version": "3.2.6", 1262 "version": "3.2.6",
617 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 1263 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
618 "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 1264 "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
619 - "dev": true,  
620 "requires": { 1265 "requires": {
621 "ms": "^2.1.1" 1266 "ms": "^2.1.1"
622 } 1267 }
@@ -683,8 +1328,7 @@ @@ -683,8 +1328,7 @@
683 "delayed-stream": { 1328 "delayed-stream": {
684 "version": "1.0.0", 1329 "version": "1.0.0",
685 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1330 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
686 - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",  
687 - "dev": true 1331 + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
688 }, 1332 },
689 "diagnostics": { 1333 "diagnostics": {
690 "version": "1.1.1", 1334 "version": "1.1.1",
@@ -714,22 +1358,74 @@ @@ -714,22 +1358,74 @@
714 "is-obj": "^1.0.0" 1358 "is-obj": "^1.0.0"
715 } 1359 }
716 }, 1360 },
717 - "duplexer3": {  
718 - "version": "0.1.4",  
719 - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",  
720 - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",  
721 - "dev": true  
722 - }, 1361 + "duplexer": {
  1362 + "version": "0.1.1",
  1363 + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
  1364 + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E="
  1365 + },
  1366 + "duplexer3": {
  1367 + "version": "0.1.4",
  1368 + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
  1369 + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
  1370 + "dev": true
  1371 + },
  1372 + "duplexify": {
  1373 + "version": "3.7.1",
  1374 + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
  1375 + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
  1376 + "requires": {
  1377 + "end-of-stream": "^1.0.0",
  1378 + "inherits": "^2.0.1",
  1379 + "readable-stream": "^2.0.0",
  1380 + "stream-shift": "^1.0.0"
  1381 + },
  1382 + "dependencies": {
  1383 + "readable-stream": {
  1384 + "version": "2.3.7",
  1385 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
  1386 + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
  1387 + "requires": {
  1388 + "core-util-is": "~1.0.0",
  1389 + "inherits": "~2.0.3",
  1390 + "isarray": "~1.0.0",
  1391 + "process-nextick-args": "~2.0.0",
  1392 + "safe-buffer": "~5.1.1",
  1393 + "string_decoder": "~1.1.1",
  1394 + "util-deprecate": "~1.0.1"
  1395 + }
  1396 + },
  1397 + "safe-buffer": {
  1398 + "version": "5.1.2",
  1399 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
  1400 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
  1401 + },
  1402 + "string_decoder": {
  1403 + "version": "1.1.1",
  1404 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
  1405 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
  1406 + "requires": {
  1407 + "safe-buffer": "~5.1.0"
  1408 + }
  1409 + }
  1410 + }
  1411 + },
723 "ecc-jsbn": { 1412 "ecc-jsbn": {
724 "version": "0.1.2", 1413 "version": "0.1.2",
725 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 1414 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
726 "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 1415 "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
727 - "dev": true,  
728 "requires": { 1416 "requires": {
729 "jsbn": "~0.1.0", 1417 "jsbn": "~0.1.0",
730 "safer-buffer": "^2.1.0" 1418 "safer-buffer": "^2.1.0"
731 } 1419 }
732 }, 1420 },
  1421 + "ecdsa-sig-formatter": {
  1422 + "version": "1.0.11",
  1423 + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
  1424 + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
  1425 + "requires": {
  1426 + "safe-buffer": "^5.0.1"
  1427 + }
  1428 + },
733 "enabled": { 1429 "enabled": {
734 "version": "1.0.2", 1430 "version": "1.0.2",
735 "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", 1431 "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
@@ -738,11 +1434,24 @@ @@ -738,11 +1434,24 @@
738 "env-variable": "0.0.x" 1434 "env-variable": "0.0.x"
739 } 1435 }
740 }, 1436 },
  1437 + "end-of-stream": {
  1438 + "version": "1.4.4",
  1439 + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
  1440 + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
  1441 + "requires": {
  1442 + "once": "^1.4.0"
  1443 + }
  1444 + },
741 "env-variable": { 1445 "env-variable": {
742 "version": "0.0.6", 1446 "version": "0.0.6",
743 "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz", 1447 "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz",
744 "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==" 1448 "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg=="
745 }, 1449 },
  1450 + "envconf": {
  1451 + "version": "0.0.4",
  1452 + "resolved": "https://registry.npmjs.org/envconf/-/envconf-0.0.4.tgz",
  1453 + "integrity": "sha1-hWda+6I3xD+Y3i1GrcDlMqTc9Is="
  1454 + },
746 "escape-string-regexp": { 1455 "escape-string-regexp": {
747 "version": "1.0.5", 1456 "version": "1.0.5",
748 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1457 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -788,6 +1497,16 @@ @@ -788,6 +1497,16 @@
788 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1497 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
789 "dev": true 1498 "dev": true
790 }, 1499 },
  1500 + "event-target-shim": {
  1501 + "version": "5.0.1",
  1502 + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
  1503 + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
  1504 + },
  1505 + "events": {
  1506 + "version": "3.1.0",
  1507 + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
  1508 + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg=="
  1509 + },
791 "execa": { 1510 "execa": {
792 "version": "0.7.0", 1511 "version": "0.7.0",
793 "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 1512 "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
@@ -862,8 +1581,7 @@ @@ -862,8 +1581,7 @@
862 "extend": { 1581 "extend": {
863 "version": "3.0.2", 1582 "version": "3.0.2",
864 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1583 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
865 - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",  
866 - "dev": true 1584 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
867 }, 1585 },
868 "extend-shallow": { 1586 "extend-shallow": {
869 "version": "3.0.2", 1587 "version": "3.0.2",
@@ -954,14 +1672,12 @@ @@ -954,14 +1672,12 @@
954 "extsprintf": { 1672 "extsprintf": {
955 "version": "1.3.0", 1673 "version": "1.3.0",
956 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1674 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
957 - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",  
958 - "dev": true 1675 + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
959 }, 1676 },
960 "fast-deep-equal": { 1677 "fast-deep-equal": {
961 "version": "3.1.1", 1678 "version": "3.1.1",
962 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", 1679 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
963 - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",  
964 - "dev": true 1680 + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
965 }, 1681 },
966 "fast-glob": { 1682 "fast-glob": {
967 "version": "3.1.1", 1683 "version": "3.1.1",
@@ -1033,8 +1749,7 @@ @@ -1033,8 +1749,7 @@
1033 "fast-json-stable-stringify": { 1749 "fast-json-stable-stringify": {
1034 "version": "2.1.0", 1750 "version": "2.1.0",
1035 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1751 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1036 - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",  
1037 - "dev": true 1752 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
1038 }, 1753 },
1039 "fast-levenshtein": { 1754 "fast-levenshtein": {
1040 "version": "2.0.6", 1755 "version": "2.0.6",
@@ -1047,6 +1762,11 @@ @@ -1047,6 +1762,11 @@
1047 "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", 1762 "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
1048 "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" 1763 "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="
1049 }, 1764 },
  1765 + "fast-text-encoding": {
  1766 + "version": "1.0.2",
  1767 + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.2.tgz",
  1768 + "integrity": "sha512-5rQdinSsycpzvAoHga2EDn+LRX1d5xLFsuNG0Kg61JrAT/tASXcLL0nf/33v+sAxlQcfYmWbTURa1mmAf55jGw=="
  1769 + },
1050 "fastq": { 1770 "fastq": {
1051 "version": "1.6.0", 1771 "version": "1.6.0",
1052 "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz", 1772 "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz",
@@ -1108,14 +1828,12 @@ @@ -1108,14 +1828,12 @@
1108 "forever-agent": { 1828 "forever-agent": {
1109 "version": "0.6.1", 1829 "version": "0.6.1",
1110 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1830 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
1111 - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",  
1112 - "dev": true 1831 + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
1113 }, 1832 },
1114 "form-data": { 1833 "form-data": {
1115 "version": "2.3.3", 1834 "version": "2.3.3",
1116 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 1835 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
1117 "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 1836 "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
1118 - "dev": true,  
1119 "requires": { 1837 "requires": {
1120 "asynckit": "^0.4.0", 1838 "asynckit": "^0.4.0",
1121 "combined-stream": "^1.0.6", 1839 "combined-stream": "^1.0.6",
@@ -1226,12 +1944,14 @@ @@ -1226,12 +1944,14 @@
1226 "balanced-match": { 1944 "balanced-match": {
1227 "version": "1.0.0", 1945 "version": "1.0.0",
1228 "bundled": true, 1946 "bundled": true,
1229 - "dev": true 1947 + "dev": true,
  1948 + "optional": true
1230 }, 1949 },
1231 "brace-expansion": { 1950 "brace-expansion": {
1232 "version": "1.1.11", 1951 "version": "1.1.11",
1233 "bundled": true, 1952 "bundled": true,
1234 "dev": true, 1953 "dev": true,
  1954 + "optional": true,
1235 "requires": { 1955 "requires": {
1236 "balanced-match": "^1.0.0", 1956 "balanced-match": "^1.0.0",
1237 "concat-map": "0.0.1" 1957 "concat-map": "0.0.1"
@@ -1251,7 +1971,8 @@ @@ -1251,7 +1971,8 @@
1251 "concat-map": { 1971 "concat-map": {
1252 "version": "0.0.1", 1972 "version": "0.0.1",
1253 "bundled": true, 1973 "bundled": true,
1254 - "dev": true 1974 + "dev": true,
  1975 + "optional": true
1255 }, 1976 },
1256 "console-control-strings": { 1977 "console-control-strings": {
1257 "version": "1.1.0", 1978 "version": "1.1.0",
@@ -1399,6 +2120,7 @@ @@ -1399,6 +2120,7 @@
1399 "version": "3.0.4", 2120 "version": "3.0.4",
1400 "bundled": true, 2121 "bundled": true,
1401 "dev": true, 2122 "dev": true,
  2123 + "optional": true,
1402 "requires": { 2124 "requires": {
1403 "brace-expansion": "^1.1.7" 2125 "brace-expansion": "^1.1.7"
1404 } 2126 }
@@ -1723,6 +2445,34 @@ @@ -1723,6 +2445,34 @@
1723 } 2445 }
1724 } 2446 }
1725 }, 2447 },
  2448 + "gaxios": {
  2449 + "version": "2.3.4",
  2450 + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.4.tgz",
  2451 + "integrity": "sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==",
  2452 + "requires": {
  2453 + "abort-controller": "^3.0.0",
  2454 + "extend": "^3.0.2",
  2455 + "https-proxy-agent": "^5.0.0",
  2456 + "is-stream": "^2.0.0",
  2457 + "node-fetch": "^2.3.0"
  2458 + },
  2459 + "dependencies": {
  2460 + "is-stream": {
  2461 + "version": "2.0.0",
  2462 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
  2463 + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="
  2464 + }
  2465 + }
  2466 + },
  2467 + "gcp-metadata": {
  2468 + "version": "3.5.0",
  2469 + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.5.0.tgz",
  2470 + "integrity": "sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA==",
  2471 + "requires": {
  2472 + "gaxios": "^2.1.0",
  2473 + "json-bigint": "^0.3.0"
  2474 + }
  2475 + },
1726 "get-stream": { 2476 "get-stream": {
1727 "version": "3.0.0", 2477 "version": "3.0.0",
1728 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 2478 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
@@ -1739,7 +2489,6 @@ @@ -1739,7 +2489,6 @@
1739 "version": "0.1.7", 2489 "version": "0.1.7",
1740 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 2490 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
1741 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 2491 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
1742 - "dev": true,  
1743 "requires": { 2492 "requires": {
1744 "assert-plus": "^1.0.0" 2493 "assert-plus": "^1.0.0"
1745 } 2494 }
@@ -1788,6 +2537,67 @@ @@ -1788,6 +2537,67 @@
1788 "slash": "^3.0.0" 2537 "slash": "^3.0.0"
1789 } 2538 }
1790 }, 2539 },
  2540 + "google-auth-library": {
  2541 + "version": "5.10.1",
  2542 + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.10.1.tgz",
  2543 + "integrity": "sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg==",
  2544 + "requires": {
  2545 + "arrify": "^2.0.0",
  2546 + "base64-js": "^1.3.0",
  2547 + "ecdsa-sig-formatter": "^1.0.11",
  2548 + "fast-text-encoding": "^1.0.0",
  2549 + "gaxios": "^2.1.0",
  2550 + "gcp-metadata": "^3.4.0",
  2551 + "gtoken": "^4.1.0",
  2552 + "jws": "^4.0.0",
  2553 + "lru-cache": "^5.0.0"
  2554 + },
  2555 + "dependencies": {
  2556 + "lru-cache": {
  2557 + "version": "5.1.1",
  2558 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
  2559 + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
  2560 + "requires": {
  2561 + "yallist": "^3.0.2"
  2562 + }
  2563 + },
  2564 + "yallist": {
  2565 + "version": "3.1.1",
  2566 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
  2567 + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
  2568 + }
  2569 + }
  2570 + },
  2571 + "google-gax": {
  2572 + "version": "1.15.3",
  2573 + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-1.15.3.tgz",
  2574 + "integrity": "sha512-3JKJCRumNm3x2EksUTw4P1Rad43FTpqrtW9jzpf3xSMYXx+ogaqTM1vGo7VixHB4xkAyATXVIa3OcNSh8H9zsQ==",
  2575 + "requires": {
  2576 + "@grpc/grpc-js": "~1.0.3",
  2577 + "@grpc/proto-loader": "^0.5.1",
  2578 + "@types/fs-extra": "^8.0.1",
  2579 + "@types/long": "^4.0.0",
  2580 + "abort-controller": "^3.0.0",
  2581 + "duplexify": "^3.6.0",
  2582 + "google-auth-library": "^5.0.0",
  2583 + "is-stream-ended": "^0.1.4",
  2584 + "lodash.at": "^4.6.0",
  2585 + "lodash.has": "^4.5.2",
  2586 + "node-fetch": "^2.6.0",
  2587 + "protobufjs": "^6.8.9",
  2588 + "retry-request": "^4.0.0",
  2589 + "semver": "^6.0.0",
  2590 + "walkdir": "^0.4.0"
  2591 + }
  2592 + },
  2593 + "google-p12-pem": {
  2594 + "version": "2.0.4",
  2595 + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.4.tgz",
  2596 + "integrity": "sha512-S4blHBQWZRnEW44OcR7TL9WR+QCqByRvhNDZ/uuQfpxywfupikf/miba8js1jZi6ZOGv5slgSuoshCWh6EMDzg==",
  2597 + "requires": {
  2598 + "node-forge": "^0.9.0"
  2599 + }
  2600 + },
1791 "got": { 2601 "got": {
1792 "version": "6.7.1", 2602 "version": "6.7.1",
1793 "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", 2603 "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
@@ -1813,17 +2623,26 @@ @@ -1813,17 +2623,26 @@
1813 "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", 2623 "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
1814 "dev": true 2624 "dev": true
1815 }, 2625 },
  2626 + "gtoken": {
  2627 + "version": "4.1.4",
  2628 + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz",
  2629 + "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==",
  2630 + "requires": {
  2631 + "gaxios": "^2.1.0",
  2632 + "google-p12-pem": "^2.0.0",
  2633 + "jws": "^4.0.0",
  2634 + "mime": "^2.2.0"
  2635 + }
  2636 + },
1816 "har-schema": { 2637 "har-schema": {
1817 "version": "2.0.0", 2638 "version": "2.0.0",
1818 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 2639 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
1819 - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",  
1820 - "dev": true 2640 + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
1821 }, 2641 },
1822 "har-validator": { 2642 "har-validator": {
1823 "version": "5.1.3", 2643 "version": "5.1.3",
1824 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 2644 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
1825 "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 2645 "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
1826 - "dev": true,  
1827 "requires": { 2646 "requires": {
1828 "ajv": "^6.5.5", 2647 "ajv": "^6.5.5",
1829 "har-schema": "^2.0.0" 2648 "har-schema": "^2.0.0"
@@ -1871,13 +2690,36 @@ @@ -1871,13 +2690,36 @@
1871 "version": "1.2.0", 2690 "version": "1.2.0",
1872 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 2691 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
1873 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 2692 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1874 - "dev": true,  
1875 "requires": { 2693 "requires": {
1876 "assert-plus": "^1.0.0", 2694 "assert-plus": "^1.0.0",
1877 "jsprim": "^1.2.2", 2695 "jsprim": "^1.2.2",
1878 "sshpk": "^1.7.0" 2696 "sshpk": "^1.7.0"
1879 } 2697 }
1880 }, 2698 },
  2699 + "https-proxy-agent": {
  2700 + "version": "5.0.0",
  2701 + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
  2702 + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
  2703 + "requires": {
  2704 + "agent-base": "6",
  2705 + "debug": "4"
  2706 + },
  2707 + "dependencies": {
  2708 + "debug": {
  2709 + "version": "4.1.1",
  2710 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
  2711 + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
  2712 + "requires": {
  2713 + "ms": "^2.1.1"
  2714 + }
  2715 + }
  2716 + }
  2717 + },
  2718 + "ieee754": {
  2719 + "version": "1.1.13",
  2720 + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
  2721 + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
  2722 + },
1881 "ignore": { 2723 "ignore": {
1882 "version": "5.1.4", 2724 "version": "5.1.4",
1883 "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", 2725 "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz",
@@ -1923,6 +2765,11 @@ @@ -1923,6 +2765,11 @@
1923 "p-is-promise": "^3.0.0" 2765 "p-is-promise": "^3.0.0"
1924 } 2766 }
1925 }, 2767 },
  2768 + "ip-regex": {
  2769 + "version": "2.1.0",
  2770 + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
  2771 + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk="
  2772 + },
1926 "is-accessor-descriptor": { 2773 "is-accessor-descriptor": {
1927 "version": "0.1.6", 2774 "version": "0.1.6",
1928 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", 2775 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
@@ -2115,11 +2962,15 @@ @@ -2115,11 +2962,15 @@
2115 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 2962 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
2116 "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 2963 "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
2117 }, 2964 },
  2965 + "is-stream-ended": {
  2966 + "version": "0.1.4",
  2967 + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz",
  2968 + "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw=="
  2969 + },
2118 "is-typedarray": { 2970 "is-typedarray": {
2119 "version": "1.0.0", 2971 "version": "1.0.0",
2120 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 2972 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
2121 - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",  
2122 - "dev": true 2973 + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
2123 }, 2974 },
2124 "is-windows": { 2975 "is-windows": {
2125 "version": "1.0.2", 2976 "version": "1.0.2",
@@ -2135,8 +2986,7 @@ @@ -2135,8 +2986,7 @@
2135 "isexe": { 2986 "isexe": {
2136 "version": "2.0.0", 2987 "version": "2.0.0",
2137 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2988 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2138 - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",  
2139 - "dev": true 2989 + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
2140 }, 2990 },
2141 "isobject": { 2991 "isobject": {
2142 "version": "3.0.1", 2992 "version": "3.0.1",
@@ -2147,8 +2997,12 @@ @@ -2147,8 +2997,12 @@
2147 "isstream": { 2997 "isstream": {
2148 "version": "0.1.2", 2998 "version": "0.1.2",
2149 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 2999 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
2150 - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",  
2151 - "dev": true 3000 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
  3001 + },
  3002 + "jmespath": {
  3003 + "version": "0.15.0",
  3004 + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz",
  3005 + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc="
2152 }, 3006 },
2153 "js-yaml": { 3007 "js-yaml": {
2154 "version": "3.13.1", 3008 "version": "3.13.1",
@@ -2162,26 +3016,30 @@ @@ -2162,26 +3016,30 @@
2162 "jsbn": { 3016 "jsbn": {
2163 "version": "0.1.1", 3017 "version": "0.1.1",
2164 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 3018 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
2165 - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",  
2166 - "dev": true 3019 + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
  3020 + },
  3021 + "json-bigint": {
  3022 + "version": "0.3.0",
  3023 + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.0.tgz",
  3024 + "integrity": "sha1-DM2RLEuCcNBfBW+9E4FLU9OCWx4=",
  3025 + "requires": {
  3026 + "bignumber.js": "^7.0.0"
  3027 + }
2167 }, 3028 },
2168 "json-schema": { 3029 "json-schema": {
2169 "version": "0.2.3", 3030 "version": "0.2.3",
2170 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 3031 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
2171 - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",  
2172 - "dev": true 3032 + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
2173 }, 3033 },
2174 "json-schema-traverse": { 3034 "json-schema-traverse": {
2175 "version": "0.4.1", 3035 "version": "0.4.1",
2176 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 3036 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2177 - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",  
2178 - "dev": true 3037 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
2179 }, 3038 },
2180 "json-stringify-safe": { 3039 "json-stringify-safe": {
2181 "version": "5.0.1", 3040 "version": "5.0.1",
2182 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 3041 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
2183 - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",  
2184 - "dev": true 3042 + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
2185 }, 3043 },
2186 "json5": { 3044 "json5": {
2187 "version": "1.0.1", 3045 "version": "1.0.1",
@@ -2204,7 +3062,6 @@ @@ -2204,7 +3062,6 @@
2204 "version": "1.4.1", 3062 "version": "1.4.1",
2205 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 3063 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
2206 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 3064 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
2207 - "dev": true,  
2208 "requires": { 3065 "requires": {
2209 "assert-plus": "1.0.0", 3066 "assert-plus": "1.0.0",
2210 "extsprintf": "1.3.0", 3067 "extsprintf": "1.3.0",
@@ -2212,6 +3069,30 @@ @@ -2212,6 +3069,30 @@
2212 "verror": "1.10.0" 3069 "verror": "1.10.0"
2213 } 3070 }
2214 }, 3071 },
  3072 + "jssha": {
  3073 + "version": "2.4.2",
  3074 + "resolved": "https://registry.npmjs.org/jssha/-/jssha-2.4.2.tgz",
  3075 + "integrity": "sha512-/jsi/9C0S70zfkT/4UlKQa5E1xKurDnXcQizcww9JSR/Fv+uIbWM2btG+bFcL3iNoK9jIGS0ls9HWLr1iw0kFg=="
  3076 + },
  3077 + "jwa": {
  3078 + "version": "2.0.0",
  3079 + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
  3080 + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==",
  3081 + "requires": {
  3082 + "buffer-equal-constant-time": "1.0.1",
  3083 + "ecdsa-sig-formatter": "1.0.11",
  3084 + "safe-buffer": "^5.0.1"
  3085 + }
  3086 + },
  3087 + "jws": {
  3088 + "version": "4.0.0",
  3089 + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
  3090 + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
  3091 + "requires": {
  3092 + "jwa": "^2.0.0",
  3093 + "safe-buffer": "^5.0.1"
  3094 + }
  3095 + },
2215 "kafkajs": { 3096 "kafkajs": {
2216 "version": "1.12.0", 3097 "version": "1.12.0",
2217 "resolved": "https://registry.npmjs.org/kafkajs/-/kafkajs-1.12.0.tgz", 3098 "resolved": "https://registry.npmjs.org/kafkajs/-/kafkajs-1.12.0.tgz",
@@ -2258,6 +3139,26 @@ @@ -2258,6 +3139,26 @@
2258 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", 3139 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
2259 "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" 3140 "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
2260 }, 3141 },
  3142 + "lodash.at": {
  3143 + "version": "4.6.0",
  3144 + "resolved": "https://registry.npmjs.org/lodash.at/-/lodash.at-4.6.0.tgz",
  3145 + "integrity": "sha1-k83OZk8KGZTqM9181A4jr9EbD/g="
  3146 + },
  3147 + "lodash.camelcase": {
  3148 + "version": "4.3.0",
  3149 + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
  3150 + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
  3151 + },
  3152 + "lodash.has": {
  3153 + "version": "4.5.2",
  3154 + "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz",
  3155 + "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI="
  3156 + },
  3157 + "lodash.snakecase": {
  3158 + "version": "4.1.1",
  3159 + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz",
  3160 + "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40="
  3161 + },
2261 "logform": { 3162 "logform": {
2262 "version": "2.1.2", 3163 "version": "2.1.2",
2263 "resolved": "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz", 3164 "resolved": "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz",
@@ -2342,17 +3243,20 @@ @@ -2342,17 +3243,20 @@
2342 "to-regex": "^3.0.2" 3243 "to-regex": "^3.0.2"
2343 } 3244 }
2344 }, 3245 },
  3246 + "mime": {
  3247 + "version": "2.4.5",
  3248 + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz",
  3249 + "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w=="
  3250 + },
2345 "mime-db": { 3251 "mime-db": {
2346 "version": "1.43.0", 3252 "version": "1.43.0",
2347 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", 3253 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
2348 - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",  
2349 - "dev": true 3254 + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
2350 }, 3255 },
2351 "mime-types": { 3256 "mime-types": {
2352 "version": "2.1.26", 3257 "version": "2.1.26",
2353 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", 3258 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
2354 "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", 3259 "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
2355 - "dev": true,  
2356 "requires": { 3260 "requires": {
2357 "mime-db": "1.43.0" 3261 "mime-db": "1.43.0"
2358 } 3262 }
@@ -2414,6 +3318,11 @@ @@ -2414,6 +3318,11 @@
2414 "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", 3318 "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
2415 "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" 3319 "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
2416 }, 3320 },
  3321 + "mpns": {
  3322 + "version": "2.1.3",
  3323 + "resolved": "https://registry.npmjs.org/mpns/-/mpns-2.1.3.tgz",
  3324 + "integrity": "sha512-gPLNoVqwYoKUmNYZ2shMSdaE2XvHSRxWNzyG4DUi6Av7MSujyeOw/nj61nnQeuV/vke5E0Dni468xn0qxTHIZQ=="
  3325 + },
2417 "ms": { 3326 "ms": {
2418 "version": "2.1.2", 3327 "version": "2.1.2",
2419 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 3328 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -2487,6 +3396,16 @@ @@ -2487,6 +3396,16 @@
2487 "to-regex": "^3.0.1" 3396 "to-regex": "^3.0.1"
2488 } 3397 }
2489 }, 3398 },
  3399 + "node-fetch": {
  3400 + "version": "2.6.0",
  3401 + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
  3402 + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
  3403 + },
  3404 + "node-forge": {
  3405 + "version": "0.9.1",
  3406 + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.1.tgz",
  3407 + "integrity": "sha512-G6RlQt5Sb4GMBzXvhfkeFmbqR6MzhtnT7VTHuLadjkii3rdYHNdw0m8zA4BTxVIh68FicCQ2NSUANpsqkr9jvQ=="
  3408 + },
2490 "nodemon": { 3409 "nodemon": {
2491 "version": "1.19.4", 3410 "version": "1.19.4",
2492 "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.19.4.tgz", 3411 "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.19.4.tgz",
@@ -2540,8 +3459,7 @@ @@ -2540,8 +3459,7 @@
2540 "oauth-sign": { 3459 "oauth-sign": {
2541 "version": "0.9.0", 3460 "version": "0.9.0",
2542 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 3461 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
2543 - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",  
2544 - "dev": true 3462 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
2545 }, 3463 },
2546 "object-copy": { 3464 "object-copy": {
2547 "version": "0.1.0", 3465 "version": "0.1.0",
@@ -2597,6 +3515,14 @@ @@ -2597,6 +3515,14 @@
2597 "isobject": "^3.0.1" 3515 "isobject": "^3.0.1"
2598 } 3516 }
2599 }, 3517 },
  3518 + "once": {
  3519 + "version": "1.4.0",
  3520 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
  3521 + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
  3522 + "requires": {
  3523 + "wrappy": "1"
  3524 + }
  3525 + },
2600 "one-time": { 3526 "one-time": {
2601 "version": "0.0.4", 3527 "version": "0.0.4",
2602 "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz", 3528 "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz",
@@ -2622,6 +3548,11 @@ @@ -2622,6 +3548,11 @@
2622 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 3548 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
2623 "dev": true 3549 "dev": true
2624 }, 3550 },
  3551 + "p-defer": {
  3552 + "version": "3.0.0",
  3553 + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz",
  3554 + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw=="
  3555 + },
2625 "p-finally": { 3556 "p-finally": {
2626 "version": "1.0.0", 3557 "version": "1.0.0",
2627 "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 3558 "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
@@ -2699,8 +3630,7 @@ @@ -2699,8 +3630,7 @@
2699 "performance-now": { 3630 "performance-now": {
2700 "version": "2.1.0", 3631 "version": "2.1.0",
2701 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 3632 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
2702 - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",  
2703 - "dev": true 3633 + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
2704 }, 3634 },
2705 "picomatch": { 3635 "picomatch": {
2706 "version": "2.2.1", 3636 "version": "2.2.1",
@@ -2898,6 +3828,11 @@ @@ -2898,6 +3828,11 @@
2898 "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", 3828 "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
2899 "dev": true 3829 "dev": true
2900 }, 3830 },
  3831 + "process": {
  3832 + "version": "0.11.10",
  3833 + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
  3834 + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
  3835 + },
2901 "process-nextick-args": { 3836 "process-nextick-args": {
2902 "version": "2.0.1", 3837 "version": "2.0.1",
2903 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 3838 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -2909,6 +3844,26 @@ @@ -2909,6 +3844,26 @@
2909 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 3844 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
2910 "dev": true 3845 "dev": true
2911 }, 3846 },
  3847 + "protobufjs": {
  3848 + "version": "6.9.0",
  3849 + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.9.0.tgz",
  3850 + "integrity": "sha512-LlGVfEWDXoI/STstRDdZZKb/qusoAWUnmLg9R8OLSO473mBLWHowx8clbX5/+mKDEI+v7GzjoK9tRPZMMcoTrg==",
  3851 + "requires": {
  3852 + "@protobufjs/aspromise": "^1.1.2",
  3853 + "@protobufjs/base64": "^1.1.2",
  3854 + "@protobufjs/codegen": "^2.0.4",
  3855 + "@protobufjs/eventemitter": "^1.1.0",
  3856 + "@protobufjs/fetch": "^1.1.0",
  3857 + "@protobufjs/float": "^1.0.2",
  3858 + "@protobufjs/inquire": "^1.1.0",
  3859 + "@protobufjs/path": "^1.1.2",
  3860 + "@protobufjs/pool": "^1.1.0",
  3861 + "@protobufjs/utf8": "^1.1.0",
  3862 + "@types/long": "^4.0.1",
  3863 + "@types/node": "^13.7.0",
  3864 + "long": "^4.0.0"
  3865 + }
  3866 + },
2912 "pseudomap": { 3867 "pseudomap": {
2913 "version": "1.0.2", 3868 "version": "1.0.2",
2914 "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 3869 "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
@@ -2918,8 +3873,7 @@ @@ -2918,8 +3873,7 @@
2918 "psl": { 3873 "psl": {
2919 "version": "1.7.0", 3874 "version": "1.7.0",
2920 "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", 3875 "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
2921 - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==",  
2922 - "dev": true 3876 + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ=="
2923 }, 3877 },
2924 "pstree.remy": { 3878 "pstree.remy": {
2925 "version": "1.1.7", 3879 "version": "1.1.7",
@@ -2930,14 +3884,22 @@ @@ -2930,14 +3884,22 @@
2930 "punycode": { 3884 "punycode": {
2931 "version": "2.1.1", 3885 "version": "2.1.1",
2932 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 3886 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2933 - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",  
2934 - "dev": true 3887 + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
2935 }, 3888 },
2936 "qs": { 3889 "qs": {
2937 "version": "6.5.2", 3890 "version": "6.5.2",
2938 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 3891 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
2939 - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",  
2940 - "dev": true 3892 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
  3893 + },
  3894 + "querystring": {
  3895 + "version": "0.2.0",
  3896 + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
  3897 + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
  3898 + },
  3899 + "querystringify": {
  3900 + "version": "2.1.1",
  3901 + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
  3902 + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA=="
2941 }, 3903 },
2942 "rc": { 3904 "rc": {
2943 "version": "1.2.8", 3905 "version": "1.2.8",
@@ -3061,7 +4023,6 @@ @@ -3061,7 +4023,6 @@
3061 "version": "2.88.2", 4023 "version": "2.88.2",
3062 "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", 4024 "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
3063 "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", 4025 "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
3064 - "dev": true,  
3065 "requires": { 4026 "requires": {
3066 "aws-sign2": "~0.7.0", 4027 "aws-sign2": "~0.7.0",
3067 "aws4": "^1.8.0", 4028 "aws4": "^1.8.0",
@@ -3094,6 +4055,11 @@ @@ -3094,6 +4055,11 @@
3094 "throttleit": "^1.0.0" 4055 "throttleit": "^1.0.0"
3095 } 4056 }
3096 }, 4057 },
  4058 + "requires-port": {
  4059 + "version": "1.0.0",
  4060 + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
  4061 + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
  4062 + },
3097 "resolve": { 4063 "resolve": {
3098 "version": "1.15.1", 4064 "version": "1.15.1",
3099 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", 4065 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
@@ -3115,12 +4081,49 @@ @@ -3115,12 +4081,49 @@
3115 "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", 4081 "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
3116 "dev": true 4082 "dev": true
3117 }, 4083 },
  4084 + "retry-request": {
  4085 + "version": "4.1.1",
  4086 + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.1.1.tgz",
  4087 + "integrity": "sha512-BINDzVtLI2BDukjWmjAIRZ0oglnCAkpP2vQjM3jdLhmT62h0xnQgciPwBRDAvHqpkPT2Wo1XuUyLyn6nbGrZQQ==",
  4088 + "requires": {
  4089 + "debug": "^4.1.1",
  4090 + "through2": "^3.0.1"
  4091 + },
  4092 + "dependencies": {
  4093 + "debug": {
  4094 + "version": "4.1.1",
  4095 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
  4096 + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
  4097 + "requires": {
  4098 + "ms": "^2.1.1"
  4099 + }
  4100 + }
  4101 + }
  4102 + },
3118 "reusify": { 4103 "reusify": {
3119 "version": "1.0.4", 4104 "version": "1.0.4",
3120 "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 4105 "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
3121 "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 4106 "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
3122 "dev": true 4107 "dev": true
3123 }, 4108 },
  4109 + "rhea": {
  4110 + "version": "1.0.20",
  4111 + "resolved": "https://registry.npmjs.org/rhea/-/rhea-1.0.20.tgz",
  4112 + "integrity": "sha512-qj4LSEykJ0SEYESQLg9Vee6VXH5xHN1pYj7ozPeUk+l+S1OaGKx1FugAu+g+3pPwK46WXV1PJD9XiRx8+tS4cw==",
  4113 + "requires": {
  4114 + "debug": "0.8.0 - 3.5.0"
  4115 + }
  4116 + },
  4117 + "rhea-promise": {
  4118 + "version": "0.1.15",
  4119 + "resolved": "https://registry.npmjs.org/rhea-promise/-/rhea-promise-0.1.15.tgz",
  4120 + "integrity": "sha512-+6uilZXSJGyiqVeHQI3Krv6NTAd8cWRCY2uyCxmzR4/5IFtBqqFem1HV2OiwSj0Gu7OFChIJDfH2JyjN7J0vRA==",
  4121 + "requires": {
  4122 + "debug": "^3.1.0",
  4123 + "rhea": "^1.0.4",
  4124 + "tslib": "^1.9.3"
  4125 + }
  4126 + },
3124 "run-parallel": { 4127 "run-parallel": {
3125 "version": "1.1.9", 4128 "version": "1.1.9",
3126 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", 4129 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
@@ -3144,8 +4147,12 @@ @@ -3144,8 +4147,12 @@
3144 "safer-buffer": { 4147 "safer-buffer": {
3145 "version": "2.1.2", 4148 "version": "2.1.2",
3146 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 4149 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3147 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",  
3148 - "dev": true 4150 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
  4151 + },
  4152 + "sax": {
  4153 + "version": "1.2.4",
  4154 + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
  4155 + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
3149 }, 4156 },
3150 "semver": { 4157 "semver": {
3151 "version": "6.3.0", 4158 "version": "6.3.0",
@@ -3392,7 +4399,6 @@ @@ -3392,7 +4399,6 @@
3392 "version": "1.16.1", 4399 "version": "1.16.1",
3393 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 4400 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
3394 "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 4401 "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
3395 - "dev": true,  
3396 "requires": { 4402 "requires": {
3397 "asn1": "~0.2.3", 4403 "asn1": "~0.2.3",
3398 "assert-plus": "^1.0.0", 4404 "assert-plus": "^1.0.0",
@@ -3431,6 +4437,44 @@ @@ -3431,6 +4437,44 @@
3431 } 4437 }
3432 } 4438 }
3433 }, 4439 },
  4440 + "stream-browserify": {
  4441 + "version": "2.0.2",
  4442 + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
  4443 + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
  4444 + "requires": {
  4445 + "inherits": "~2.0.1",
  4446 + "readable-stream": "^2.0.2"
  4447 + },
  4448 + "dependencies": {
  4449 + "readable-stream": {
  4450 + "version": "2.3.7",
  4451 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
  4452 + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
  4453 + "requires": {
  4454 + "core-util-is": "~1.0.0",
  4455 + "inherits": "~2.0.3",
  4456 + "isarray": "~1.0.0",
  4457 + "process-nextick-args": "~2.0.0",
  4458 + "safe-buffer": "~5.1.1",
  4459 + "string_decoder": "~1.1.1",
  4460 + "util-deprecate": "~1.0.1"
  4461 + }
  4462 + },
  4463 + "safe-buffer": {
  4464 + "version": "5.1.2",
  4465 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
  4466 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
  4467 + },
  4468 + "string_decoder": {
  4469 + "version": "1.1.1",
  4470 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
  4471 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
  4472 + "requires": {
  4473 + "safe-buffer": "~5.1.0"
  4474 + }
  4475 + }
  4476 + }
  4477 + },
3434 "stream-meter": { 4478 "stream-meter": {
3435 "version": "1.0.4", 4479 "version": "1.0.4",
3436 "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", 4480 "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz",
@@ -3472,6 +4516,11 @@ @@ -3472,6 +4516,11 @@
3472 } 4516 }
3473 } 4517 }
3474 }, 4518 },
  4519 + "stream-shift": {
  4520 + "version": "1.0.1",
  4521 + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
  4522 + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
  4523 + },
3475 "string-width": { 4524 "string-width": {
3476 "version": "2.1.1", 4525 "version": "2.1.1",
3477 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 4526 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@@ -3540,6 +4589,19 @@ @@ -3540,6 +4589,19 @@
3540 "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", 4589 "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
3541 "dev": true 4590 "dev": true
3542 }, 4591 },
  4592 + "through": {
  4593 + "version": "2.3.8",
  4594 + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
  4595 + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
  4596 + },
  4597 + "through2": {
  4598 + "version": "3.0.1",
  4599 + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
  4600 + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
  4601 + "requires": {
  4602 + "readable-stream": "2 || 3"
  4603 + }
  4604 + },
3543 "timed-out": { 4605 "timed-out": {
3544 "version": "4.0.1", 4606 "version": "4.0.1",
3545 "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 4607 "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
@@ -3601,7 +4663,6 @@ @@ -3601,7 +4663,6 @@
3601 "version": "2.5.0", 4663 "version": "2.5.0",
3602 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 4664 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
3603 "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", 4665 "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
3604 - "dev": true,  
3605 "requires": { 4666 "requires": {
3606 "psl": "^1.1.28", 4667 "psl": "^1.1.28",
3607 "punycode": "^2.1.1" 4668 "punycode": "^2.1.1"
@@ -3612,11 +4673,20 @@ @@ -3612,11 +4673,20 @@
3612 "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", 4673 "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
3613 "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" 4674 "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
3614 }, 4675 },
  4676 + "tslib": {
  4677 + "version": "1.11.1",
  4678 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
  4679 + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
  4680 + },
  4681 + "tunnel": {
  4682 + "version": "0.0.6",
  4683 + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
  4684 + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
  4685 + },
3615 "tunnel-agent": { 4686 "tunnel-agent": {
3616 "version": "0.6.0", 4687 "version": "0.6.0",
3617 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 4688 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
3618 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 4689 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
3619 - "dev": true,  
3620 "requires": { 4690 "requires": {
3621 "safe-buffer": "^5.0.1" 4691 "safe-buffer": "^5.0.1"
3622 } 4692 }
@@ -3624,8 +4694,7 @@ @@ -3624,8 +4694,7 @@
3624 "tweetnacl": { 4694 "tweetnacl": {
3625 "version": "0.14.5", 4695 "version": "0.14.5",
3626 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 4696 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
3627 - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",  
3628 - "dev": true 4697 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
3629 }, 4698 },
3630 "type-check": { 4699 "type-check": {
3631 "version": "0.3.2", 4700 "version": "0.3.2",
@@ -3668,6 +4737,11 @@ @@ -3668,6 +4737,11 @@
3668 } 4737 }
3669 } 4738 }
3670 }, 4739 },
  4740 + "underscore": {
  4741 + "version": "1.10.2",
  4742 + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz",
  4743 + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg=="
  4744 + },
3671 "union-value": { 4745 "union-value": {
3672 "version": "1.0.1", 4746 "version": "1.0.1",
3673 "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", 4747 "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
@@ -3780,7 +4854,6 @@ @@ -3780,7 +4854,6 @@
3780 "version": "4.2.2", 4854 "version": "4.2.2",
3781 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 4855 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
3782 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 4856 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
3783 - "dev": true,  
3784 "requires": { 4857 "requires": {
3785 "punycode": "^2.1.0" 4858 "punycode": "^2.1.0"
3786 } 4859 }
@@ -3791,6 +4864,31 @@ @@ -3791,6 +4864,31 @@
3791 "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", 4864 "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
3792 "dev": true 4865 "dev": true
3793 }, 4866 },
  4867 + "url": {
  4868 + "version": "0.11.0",
  4869 + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
  4870 + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
  4871 + "requires": {
  4872 + "punycode": "1.3.2",
  4873 + "querystring": "0.2.0"
  4874 + },
  4875 + "dependencies": {
  4876 + "punycode": {
  4877 + "version": "1.3.2",
  4878 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
  4879 + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
  4880 + }
  4881 + }
  4882 + },
  4883 + "url-parse": {
  4884 + "version": "1.4.7",
  4885 + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
  4886 + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
  4887 + "requires": {
  4888 + "querystringify": "^2.1.1",
  4889 + "requires-port": "^1.0.0"
  4890 + }
  4891 + },
3794 "url-parse-lax": { 4892 "url-parse-lax": {
3795 "version": "1.0.0", 4893 "version": "1.0.0",
3796 "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", 4894 "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
@@ -3806,6 +4904,21 @@ @@ -3806,6 +4904,21 @@
3806 "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", 4904 "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
3807 "dev": true 4905 "dev": true
3808 }, 4906 },
  4907 + "util": {
  4908 + "version": "0.11.1",
  4909 + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
  4910 + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
  4911 + "requires": {
  4912 + "inherits": "2.0.3"
  4913 + },
  4914 + "dependencies": {
  4915 + "inherits": {
  4916 + "version": "2.0.3",
  4917 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
  4918 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
  4919 + }
  4920 + }
  4921 + },
3809 "util-deprecate": { 4922 "util-deprecate": {
3810 "version": "1.0.2", 4923 "version": "1.0.2",
3811 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4924 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -3814,25 +4927,38 @@ @@ -3814,25 +4927,38 @@
3814 "uuid": { 4927 "uuid": {
3815 "version": "3.4.0", 4928 "version": "3.4.0",
3816 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", 4929 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
3817 - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",  
3818 - "dev": true 4930 + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
3819 }, 4931 },
3820 "uuid-parse": { 4932 "uuid-parse": {
3821 "version": "1.1.0", 4933 "version": "1.1.0",
3822 "resolved": "https://registry.npmjs.org/uuid-parse/-/uuid-parse-1.1.0.tgz", 4934 "resolved": "https://registry.npmjs.org/uuid-parse/-/uuid-parse-1.1.0.tgz",
3823 "integrity": "sha512-OdmXxA8rDsQ7YpNVbKSJkNzTw2I+S5WsbMDnCtIWSQaosNAcWtFuI/YK1TjzUI6nbkgiqEyh8gWngfcv8Asd9A==" 4935 "integrity": "sha512-OdmXxA8rDsQ7YpNVbKSJkNzTw2I+S5WsbMDnCtIWSQaosNAcWtFuI/YK1TjzUI6nbkgiqEyh8gWngfcv8Asd9A=="
3824 }, 4936 },
  4937 + "uuid-random": {
  4938 + "version": "1.3.0",
  4939 + "resolved": "https://registry.npmjs.org/uuid-random/-/uuid-random-1.3.0.tgz",
  4940 + "integrity": "sha512-FSIlv8RFRPOjcHeDYStV7u6aJRfp+THrcWkbAJpw51JCyQLDxsFz+4dHgTYP8hSpZeSMXBpb/1qrK4bodXpSRA=="
  4941 + },
  4942 + "validator": {
  4943 + "version": "9.4.1",
  4944 + "resolved": "https://registry.npmjs.org/validator/-/validator-9.4.1.tgz",
  4945 + "integrity": "sha512-YV5KjzvRmSyJ1ee/Dm5UED0G+1L4GZnLN3w6/T+zZm8scVua4sOhYKWTUrKa0H/tMiJyO9QLHMPN+9mB/aMunA=="
  4946 + },
3825 "verror": { 4947 "verror": {
3826 "version": "1.10.0", 4948 "version": "1.10.0",
3827 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 4949 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
3828 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 4950 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
3829 - "dev": true,  
3830 "requires": { 4951 "requires": {
3831 "assert-plus": "^1.0.0", 4952 "assert-plus": "^1.0.0",
3832 "core-util-is": "1.0.2", 4953 "core-util-is": "1.0.2",
3833 "extsprintf": "^1.2.0" 4954 "extsprintf": "^1.2.0"
3834 } 4955 }
3835 }, 4956 },
  4957 + "walkdir": {
  4958 + "version": "0.4.1",
  4959 + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz",
  4960 + "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ=="
  4961 + },
3836 "which": { 4962 "which": {
3837 "version": "1.3.1", 4963 "version": "1.3.1",
3838 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 4964 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -3942,12 +5068,22 @@ @@ -3942,12 +5068,22 @@
3942 } 5068 }
3943 } 5069 }
3944 }, 5070 },
  5071 + "wns": {
  5072 + "version": "0.5.4",
  5073 + "resolved": "https://registry.npmjs.org/wns/-/wns-0.5.4.tgz",
  5074 + "integrity": "sha512-WYiJ7khIwUGBD5KAm+YYmwJDDRzFRs4YGAjtbFSoRIdbn9Jcix3p9khJmpvBTXGommaKkvduAn+pc9l4d9yzVQ=="
  5075 + },
3945 "word-wrap": { 5076 "word-wrap": {
3946 "version": "1.2.3", 5077 "version": "1.2.3",
3947 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 5078 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
3948 "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 5079 "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
3949 "dev": true 5080 "dev": true
3950 }, 5081 },
  5082 + "wrappy": {
  5083 + "version": "1.0.2",
  5084 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
  5085 + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
  5086 + },
3951 "write-file-atomic": { 5087 "write-file-atomic": {
3952 "version": "2.4.3", 5088 "version": "2.4.3",
3953 "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", 5089 "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
@@ -3965,6 +5101,20 @@ @@ -3965,6 +5101,20 @@
3965 "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", 5101 "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
3966 "dev": true 5102 "dev": true
3967 }, 5103 },
  5104 + "xml2js": {
  5105 + "version": "0.4.23",
  5106 + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
  5107 + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
  5108 + "requires": {
  5109 + "sax": ">=0.6.0",
  5110 + "xmlbuilder": "~11.0.0"
  5111 + }
  5112 + },
  5113 + "xmlbuilder": {
  5114 + "version": "11.0.1",
  5115 + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
  5116 + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
  5117 + },
3968 "yallist": { 5118 "yallist": {
3969 "version": "2.1.2", 5119 "version": "2.1.2",
3970 "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 5120 "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
@@ -40,21 +40,21 @@ @@ -40,21 +40,21 @@
40 } 40 }
41 }, 41 },
42 "@angular-devkit/build-angular": { 42 "@angular-devkit/build-angular": {
43 - "version": "0.901.3",  
44 - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.901.3.tgz",  
45 - "integrity": "sha512-0ivl+rxiFWY/cWpAhflaJfUmTGNRZn3m4gyt0YNFyHh7oJcwKFVpd9lxJAM4t47Xfyj0ICpTL99UBi4aeo3lEg==", 43 + "version": "0.901.4",
  44 + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.901.4.tgz",
  45 + "integrity": "sha512-Vod4bc6d38fuvqauIDQxKMe9hKW9m4QNzPKxEc+Dv5Xkv95WaGzkbUVu8M8t4E//sDDMpmcPdYOXSdR27WBi2Q==",
46 "dev": true, 46 "dev": true,
47 "requires": { 47 "requires": {
48 - "@angular-devkit/architect": "0.901.3",  
49 - "@angular-devkit/build-optimizer": "0.901.3",  
50 - "@angular-devkit/build-webpack": "0.901.3",  
51 - "@angular-devkit/core": "9.1.3", 48 + "@angular-devkit/architect": "0.901.4",
  49 + "@angular-devkit/build-optimizer": "0.901.4",
  50 + "@angular-devkit/build-webpack": "0.901.4",
  51 + "@angular-devkit/core": "9.1.4",
52 "@babel/core": "7.9.0", 52 "@babel/core": "7.9.0",
53 "@babel/generator": "7.9.3", 53 "@babel/generator": "7.9.3",
54 "@babel/preset-env": "7.9.0", 54 "@babel/preset-env": "7.9.0",
55 "@babel/template": "7.8.6", 55 "@babel/template": "7.8.6",
56 "@jsdevtools/coverage-istanbul-loader": "3.0.3", 56 "@jsdevtools/coverage-istanbul-loader": "3.0.3",
57 - "@ngtools/webpack": "9.1.3", 57 + "@ngtools/webpack": "9.1.4",
58 "ajv": "6.12.0", 58 "ajv": "6.12.0",
59 "autoprefixer": "9.7.4", 59 "autoprefixer": "9.7.4",
60 "babel-loader": "8.0.6", 60 "babel-loader": "8.0.6",
@@ -108,6 +108,29 @@ @@ -108,6 +108,29 @@
108 "worker-plugin": "4.0.2" 108 "worker-plugin": "4.0.2"
109 }, 109 },
110 "dependencies": { 110 "dependencies": {
  111 + "@angular-devkit/architect": {
  112 + "version": "0.901.4",
  113 + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.4.tgz",
  114 + "integrity": "sha512-w4RMj7eLhUSh70HUy5tW4EXjLQFXk0Lfr9WiSy5gvPGp+zzYxknI+Wn4Xid1wU/WS+4tuMv5nJIaNaH2sABESQ==",
  115 + "dev": true,
  116 + "requires": {
  117 + "@angular-devkit/core": "9.1.4",
  118 + "rxjs": "6.5.4"
  119 + }
  120 + },
  121 + "@angular-devkit/core": {
  122 + "version": "9.1.4",
  123 + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.4.tgz",
  124 + "integrity": "sha512-OPFQDmT4XabLMSRDgmnzedlOrc83DzQIgLcfoh/UhZ7aJKf/2Vq4l09p/DkMNI36vN5BRL0zDZt7TjvKNgyYgA==",
  125 + "dev": true,
  126 + "requires": {
  127 + "ajv": "6.12.0",
  128 + "fast-json-stable-stringify": "2.1.0",
  129 + "magic-string": "0.25.7",
  130 + "rxjs": "6.5.4",
  131 + "source-map": "0.7.3"
  132 + }
  133 + },
111 "core-js": { 134 "core-js": {
112 "version": "3.6.4", 135 "version": "3.6.4",
113 "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", 136 "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
@@ -138,9 +161,9 @@ @@ -138,9 +161,9 @@
138 } 161 }
139 }, 162 },
140 "@angular-devkit/build-optimizer": { 163 "@angular-devkit/build-optimizer": {
141 - "version": "0.901.3",  
142 - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.901.3.tgz",  
143 - "integrity": "sha512-fLRiQ1egH1qsmj5GMJ4ZWawtUYLwpIz1hKJ3WwAIFEFJF2+CDWhO1feUaXZRxPf5qwoj8S+8cSWjdcnKLf/mBw==", 164 + "version": "0.901.4",
  165 + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.901.4.tgz",
  166 + "integrity": "sha512-iDMlNRwd8ICMBKnycfw55hdnL5kCiqUjQn+aK/4uOMJMz49tiYMNJAaznXX2BFKmYSmbapKjEbzx9yMYRi9Y7w==",
144 "dev": true, 167 "dev": true,
145 "requires": { 168 "requires": {
146 "loader-utils": "2.0.0", 169 "loader-utils": "2.0.0",
@@ -159,16 +182,39 @@ @@ -159,16 +182,39 @@
159 } 182 }
160 }, 183 },
161 "@angular-devkit/build-webpack": { 184 "@angular-devkit/build-webpack": {
162 - "version": "0.901.3",  
163 - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.901.3.tgz",  
164 - "integrity": "sha512-tZOiVNCrKaEAo7SuyXPpOoaPy/pbX70G8NFtyhKvoGt5dPbgybWTlibACyzOciBI9wUlGSaJiGPZzKTgL4O5OA==", 185 + "version": "0.901.4",
  186 + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.901.4.tgz",
  187 + "integrity": "sha512-YBOufI4TGAtIDCS6erFygYJX/fkd8xwI58d+7iFIBmtIJC4/fpGjX6qkHMCBgh8HXAkEPSORBCYQn9O44J1ZXQ==",
165 "dev": true, 188 "dev": true,
166 "requires": { 189 "requires": {
167 - "@angular-devkit/architect": "0.901.3",  
168 - "@angular-devkit/core": "9.1.3", 190 + "@angular-devkit/architect": "0.901.4",
  191 + "@angular-devkit/core": "9.1.4",
169 "rxjs": "6.5.4" 192 "rxjs": "6.5.4"
170 }, 193 },
171 "dependencies": { 194 "dependencies": {
  195 + "@angular-devkit/architect": {
  196 + "version": "0.901.4",
  197 + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.4.tgz",
  198 + "integrity": "sha512-w4RMj7eLhUSh70HUy5tW4EXjLQFXk0Lfr9WiSy5gvPGp+zzYxknI+Wn4Xid1wU/WS+4tuMv5nJIaNaH2sABESQ==",
  199 + "dev": true,
  200 + "requires": {
  201 + "@angular-devkit/core": "9.1.4",
  202 + "rxjs": "6.5.4"
  203 + }
  204 + },
  205 + "@angular-devkit/core": {
  206 + "version": "9.1.4",
  207 + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.4.tgz",
  208 + "integrity": "sha512-OPFQDmT4XabLMSRDgmnzedlOrc83DzQIgLcfoh/UhZ7aJKf/2Vq4l09p/DkMNI36vN5BRL0zDZt7TjvKNgyYgA==",
  209 + "dev": true,
  210 + "requires": {
  211 + "ajv": "6.12.0",
  212 + "fast-json-stable-stringify": "2.1.0",
  213 + "magic-string": "0.25.7",
  214 + "rxjs": "6.5.4",
  215 + "source-map": "0.7.3"
  216 + }
  217 + },
172 "rxjs": { 218 "rxjs": {
173 "version": "6.5.4", 219 "version": "6.5.4",
174 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", 220 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
@@ -205,16 +251,29 @@ @@ -205,16 +251,29 @@
205 } 251 }
206 }, 252 },
207 "@angular-devkit/schematics": { 253 "@angular-devkit/schematics": {
208 - "version": "9.1.3",  
209 - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.3.tgz",  
210 - "integrity": "sha512-nNRoQPqoin5jzLKmTabIPLSqVw2Zjnk78XC4AhAM7rSisWMsZ6pw5+BNDITiKfq0LkSXfOs0DoJV/Vr9mLkn/A==", 254 + "version": "9.1.4",
  255 + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.4.tgz",
  256 + "integrity": "sha512-RAbdnUEZ3JTLmWSBiXT5trsVx8Fi72fxN9CiRaluM09Cytg6BUc1wC5XCO0YPvhI400+3Ro1nwjPXezjg7LXzQ==",
211 "dev": true, 257 "dev": true,
212 "requires": { 258 "requires": {
213 - "@angular-devkit/core": "9.1.3", 259 + "@angular-devkit/core": "9.1.4",
214 "ora": "4.0.3", 260 "ora": "4.0.3",
215 "rxjs": "6.5.4" 261 "rxjs": "6.5.4"
216 }, 262 },
217 "dependencies": { 263 "dependencies": {
  264 + "@angular-devkit/core": {
  265 + "version": "9.1.4",
  266 + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.4.tgz",
  267 + "integrity": "sha512-OPFQDmT4XabLMSRDgmnzedlOrc83DzQIgLcfoh/UhZ7aJKf/2Vq4l09p/DkMNI36vN5BRL0zDZt7TjvKNgyYgA==",
  268 + "dev": true,
  269 + "requires": {
  270 + "ajv": "6.12.0",
  271 + "fast-json-stable-stringify": "2.1.0",
  272 + "magic-string": "0.25.7",
  273 + "rxjs": "6.5.4",
  274 + "source-map": "0.7.3"
  275 + }
  276 + },
218 "rxjs": { 277 "rxjs": {
219 "version": "6.5.4", 278 "version": "6.5.4",
220 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", 279 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
@@ -227,29 +286,29 @@ @@ -227,29 +286,29 @@
227 } 286 }
228 }, 287 },
229 "@angular/animations": { 288 "@angular/animations": {
230 - "version": "9.1.3",  
231 - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.1.3.tgz",  
232 - "integrity": "sha512-QTQZSnXxr9SCgrN2SZsTMzS/UldrZ65y6Kuqs9yyghNc694eMbabgiPdeegjvcKlDhVPCN2x9Bjfb1vXPOfdvQ==" 289 + "version": "9.1.4",
  290 + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.1.4.tgz",
  291 + "integrity": "sha512-gMo/DbCm5BDArladMAeC7/75T2DvhLr4CSUGJt/P/aimTEG2ywoAALs3pzwSSe4qxrHiR0OIksVW3l4km3iXEw=="
233 }, 292 },
234 "@angular/cdk": { 293 "@angular/cdk": {
235 - "version": "9.2.1",  
236 - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.2.1.tgz",  
237 - "integrity": "sha512-aSG1UNPszkSnpNuDCNd7ZgT29oQ8vqHPmoqjvJI0JkEv3i6uEs5tRuhWl3TK39wDNuwdlq0AY47XTa/0Ppb5RQ==", 294 + "version": "9.2.2",
  295 + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.2.2.tgz",
  296 + "integrity": "sha512-VNd+KuMN6cBcy4/8OyMxqYaxdjPP6IyCqIVijB2JREkc5Sg4VWmPgx2L3rHt/DzjsVBVRgx35uqOMymDezG3jQ==",
238 "requires": { 297 "requires": {
239 "parse5": "^5.0.0" 298 "parse5": "^5.0.0"
240 } 299 }
241 }, 300 },
242 "@angular/cli": { 301 "@angular/cli": {
243 - "version": "9.1.3",  
244 - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.1.3.tgz",  
245 - "integrity": "sha512-/7yHOuiyMgpcoBuADPrF4Eo9VDysA57fsyrMlOH2WZmKdsjW032StS9EIOue5RNQ7y0DwrtgtnkjbpZ6nYo3Pw==", 302 + "version": "9.1.4",
  303 + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.1.4.tgz",
  304 + "integrity": "sha512-H9MqoT4zyIv+Yo3cvRVkzafWGHsqt7jUvtvGwMHIDMTfEX+Q8yiYlDLL6WM3Eb6/hDmLcRGC/GI495sKS1z5qA==",
246 "dev": true, 305 "dev": true,
247 "requires": { 306 "requires": {
248 - "@angular-devkit/architect": "0.901.3",  
249 - "@angular-devkit/core": "9.1.3",  
250 - "@angular-devkit/schematics": "9.1.3",  
251 - "@schematics/angular": "9.1.3",  
252 - "@schematics/update": "0.901.3", 307 + "@angular-devkit/architect": "0.901.4",
  308 + "@angular-devkit/core": "9.1.4",
  309 + "@angular-devkit/schematics": "9.1.4",
  310 + "@schematics/angular": "9.1.4",
  311 + "@schematics/update": "0.901.4",
253 "@yarnpkg/lockfile": "1.1.0", 312 "@yarnpkg/lockfile": "1.1.0",
254 "ansi-colors": "4.1.1", 313 "ansi-colors": "4.1.1",
255 "debug": "4.1.1", 314 "debug": "4.1.1",
@@ -267,12 +326,44 @@ @@ -267,12 +326,44 @@
267 "uuid": "7.0.2" 326 "uuid": "7.0.2"
268 }, 327 },
269 "dependencies": { 328 "dependencies": {
  329 + "@angular-devkit/architect": {
  330 + "version": "0.901.4",
  331 + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.4.tgz",
  332 + "integrity": "sha512-w4RMj7eLhUSh70HUy5tW4EXjLQFXk0Lfr9WiSy5gvPGp+zzYxknI+Wn4Xid1wU/WS+4tuMv5nJIaNaH2sABESQ==",
  333 + "dev": true,
  334 + "requires": {
  335 + "@angular-devkit/core": "9.1.4",
  336 + "rxjs": "6.5.4"
  337 + }
  338 + },
  339 + "@angular-devkit/core": {
  340 + "version": "9.1.4",
  341 + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.4.tgz",
  342 + "integrity": "sha512-OPFQDmT4XabLMSRDgmnzedlOrc83DzQIgLcfoh/UhZ7aJKf/2Vq4l09p/DkMNI36vN5BRL0zDZt7TjvKNgyYgA==",
  343 + "dev": true,
  344 + "requires": {
  345 + "ajv": "6.12.0",
  346 + "fast-json-stable-stringify": "2.1.0",
  347 + "magic-string": "0.25.7",
  348 + "rxjs": "6.5.4",
  349 + "source-map": "0.7.3"
  350 + }
  351 + },
270 "ansi-colors": { 352 "ansi-colors": {
271 "version": "4.1.1", 353 "version": "4.1.1",
272 "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 354 "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
273 "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 355 "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
274 "dev": true 356 "dev": true
275 }, 357 },
  358 + "rxjs": {
  359 + "version": "6.5.4",
  360 + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
  361 + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
  362 + "dev": true,
  363 + "requires": {
  364 + "tslib": "^1.9.0"
  365 + }
  366 + },
276 "semver": { 367 "semver": {
277 "version": "7.1.3", 368 "version": "7.1.3",
278 "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", 369 "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
@@ -288,19 +379,19 @@ @@ -288,19 +379,19 @@
288 } 379 }
289 }, 380 },
290 "@angular/common": { 381 "@angular/common": {
291 - "version": "9.1.3",  
292 - "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.1.3.tgz",  
293 - "integrity": "sha512-OGrd/x+WoceskeJWZI3ur+KqVoBHn2kmbg57RyJ8Ng/BkdDVYiXzQ/UvvX1WYGH/YzmiiVdlnVq55xkHkzGaXw==" 382 + "version": "9.1.4",
  383 + "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.1.4.tgz",
  384 + "integrity": "sha512-JvCoCWVbx0tF7l/0WTi24ui/mc2SElyVSNchR4VK/FViARnkvnSBdI/Ef5QWXrsPyKU4PYBtnWWgyxRspH+FBA=="
294 }, 385 },
295 "@angular/compiler": { 386 "@angular/compiler": {
296 - "version": "9.1.3",  
297 - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.1.3.tgz",  
298 - "integrity": "sha512-NTqGZUwwdm/RIG1rWPIqQwNyyRcPOmNlv+t1KpydFtycpTut0lAh0shiu57h83Cl2LgaFV4veyiAAtNmxFmqXA==" 387 + "version": "9.1.4",
  388 + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.1.4.tgz",
  389 + "integrity": "sha512-B+f3lviFNEJtL9V9exSKYPSz2Ddb6dxgPzQR7GSjGikDo+fKMtC1PjNwgJooS9gavhQx30uwkEEMIPYQbM6nNA=="
299 }, 390 },
300 "@angular/compiler-cli": { 391 "@angular/compiler-cli": {
301 - "version": "9.1.3",  
302 - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.1.3.tgz",  
303 - "integrity": "sha512-FqDPmEbJQmzzxqF08CJfqT9XKJFPYdyZuFFStKkJEZ5s1JrjrBlgQSqdF0qp5jWNsjTB87USLHC5zAlzJtMKxQ==", 392 + "version": "9.1.4",
  393 + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.1.4.tgz",
  394 + "integrity": "sha512-n3PzqNnPD7s/AF9mv5CnarK0sgfoq4txFncHjJWBSltuTQoz6BDZyjuEdqsSLUvgAZPeLsmohemOzEE38HYHZA==",
304 "dev": true, 395 "dev": true,
305 "requires": { 396 "requires": {
306 "canonical-path": "1.0.0", 397 "canonical-path": "1.0.0",
@@ -501,9 +592,9 @@ @@ -501,9 +592,9 @@
501 } 592 }
502 }, 593 },
503 "@angular/core": { 594 "@angular/core": {
504 - "version": "9.1.3",  
505 - "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.1.3.tgz",  
506 - "integrity": "sha512-r+GyeCuBw9SUBzpPWhKxzTOkNYotYp3gANSWndihLC9P6W5T8Hfyg8uYcxKy7L42bpx8eXZOXFq91cioVwZtqA==" 595 + "version": "9.1.4",
  596 + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.1.4.tgz",
  597 + "integrity": "sha512-ND240vncmVD2KVe/KSQU3d/DxxoRipFg1+jFOFZGt0n0orCBHk/V1fu9iaG1sRyldL0+rCQ+fTI+1N4DTmMnxA=="
507 }, 598 },
508 "@angular/flex-layout": { 599 "@angular/flex-layout": {
509 "version": "9.0.0-beta.29", 600 "version": "9.0.0-beta.29",
@@ -511,35 +602,35 @@ @@ -511,35 +602,35 @@
511 "integrity": "sha512-93sxR+kYfYMOdnlWL0Q77FZ428gg8XnBu0YZm6GsCdkw/vLggIT/G1ZAqHlCPIODt6pxmCJ5KXh4ShvniIYDsA==" 602 "integrity": "sha512-93sxR+kYfYMOdnlWL0Q77FZ428gg8XnBu0YZm6GsCdkw/vLggIT/G1ZAqHlCPIODt6pxmCJ5KXh4ShvniIYDsA=="
512 }, 603 },
513 "@angular/forms": { 604 "@angular/forms": {
514 - "version": "9.1.3",  
515 - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.1.3.tgz",  
516 - "integrity": "sha512-t3BexN5EHgCK6q0R04AuyNb6ZUP6sd9fJ+ER98yWws3HXV6FT+J5IB7dVnhelLoU1GTnql4TJSS+LTVradKZ7g==" 605 + "version": "9.1.4",
  606 + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.1.4.tgz",
  607 + "integrity": "sha512-Njt+pMLfPBchL0/ayIjJqXL6ZfM4Ccvf7KO1wS1HMzh3QlmfNa0JSgc4pfrbRJAMN9g7V/FYLyKejs1bJZkenA=="
517 }, 608 },
518 "@angular/language-service": { 609 "@angular/language-service": {
519 - "version": "9.1.3",  
520 - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.1.3.tgz",  
521 - "integrity": "sha512-mcZDO6C2BpDinMjDeMAdohTefpFxNu/S0JEqewYQIQ8TXtKm77xDPUdNdNb4qD4zYW+c46f7UXNMX/tbYCicQw==", 610 + "version": "9.1.4",
  611 + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.1.4.tgz",
  612 + "integrity": "sha512-eyVxxiegdb4ESdFGfkuDN+YfUbOVHRQLjIl6ACFJQDNHzVXzbmuqpyr5hIJANIVady103/7+dqRxxJo1DdIdTQ==",
522 "dev": true 613 "dev": true
523 }, 614 },
524 "@angular/material": { 615 "@angular/material": {
525 - "version": "9.2.1",  
526 - "resolved": "https://registry.npmjs.org/@angular/material/-/material-9.2.1.tgz",  
527 - "integrity": "sha512-nqn/0Eg04DxwnkRGSM1xnmGgtfHYOBcEPbFeTu8c1qAbjFEozd6tpw4y6dQrCCL/JLNIRQPsxsUsVnKeWDF/4Q==" 616 + "version": "9.2.2",
  617 + "resolved": "https://registry.npmjs.org/@angular/material/-/material-9.2.2.tgz",
  618 + "integrity": "sha512-gdQiMJ6PtW/5fd+0mglHFyzxULDCBGjn9RTET3sUq2rkc9+jBXr4OvnsUyBWSnqqv97XqotVDIx5JgE4/YX/Rw=="
528 }, 619 },
529 "@angular/platform-browser": { 620 "@angular/platform-browser": {
530 - "version": "9.1.3",  
531 - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.1.3.tgz",  
532 - "integrity": "sha512-ts6b7QBp4+UpuQS0Eb+FOT4MZVPUwWtWH4iIfBILJaG/0Bk4jHZeXuLFcpgeZkwMNCZEt9f0JrhnHfvuLCez5g==" 621 + "version": "9.1.4",
  622 + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.1.4.tgz",
  623 + "integrity": "sha512-mBCHfTl+5tQfaUiGlDujP7mFBzovFc54Zi2kcCE8DSdSSVQ2TPBo6hXa6y2cL3hJPFZzQ7mC4ORFrsGADhHn/w=="
533 }, 624 },
534 "@angular/platform-browser-dynamic": { 625 "@angular/platform-browser-dynamic": {
535 - "version": "9.1.3",  
536 - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.3.tgz",  
537 - "integrity": "sha512-9U8PkBflnQtKIZ4t0AqYUaKLg7Kx1BvJ1D/S8FZo/V5kBJK6NkGVu58XddWVc+dtO3V+vCC/VLG7fb2PMf/V5g==" 626 + "version": "9.1.4",
  627 + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.4.tgz",
  628 + "integrity": "sha512-YtVbnxyS6FU7xNpA6A95tmSfrB8+WC7OH3mbP8M9NaGk0OYz8B/JOe1HByP4JRpEGCvBtXdJ2NSW/MpLIT8SiQ=="
538 }, 629 },
539 "@angular/router": { 630 "@angular/router": {
540 - "version": "9.1.3",  
541 - "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.1.3.tgz",  
542 - "integrity": "sha512-NmOazeJ2WVT5eTyNHXYxBRAHic6i6Ku5DgsGWBgjUIR/Qmwb/i/xpagbA9WQQZ2OrGbp4ICEYgGkikeIrlQLPA==" 631 + "version": "9.1.4",
  632 + "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.1.4.tgz",
  633 + "integrity": "sha512-yUyjCgG2P2Jh8MvoyC6yirmAtx1Qe7MKLuLvsa9WOB571QNEcNLTYMfAMHUKsQTcE/+o984QyLlneoibgI9wFA=="
543 }, 634 },
544 "@auth0/angular-jwt": { 635 "@auth0/angular-jwt": {
545 "version": "4.0.0", 636 "version": "4.0.0",
@@ -559,12 +650,12 @@ @@ -559,12 +650,12 @@
559 } 650 }
560 }, 651 },
561 "@babel/compat-data": { 652 "@babel/compat-data": {
562 - "version": "7.9.0",  
563 - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz",  
564 - "integrity": "sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==", 653 + "version": "7.9.6",
  654 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.6.tgz",
  655 + "integrity": "sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==",
565 "dev": true, 656 "dev": true,
566 "requires": { 657 "requires": {
567 - "browserslist": "^4.9.1", 658 + "browserslist": "^4.11.1",
568 "invariant": "^2.2.4", 659 "invariant": "^2.2.4",
569 "semver": "^5.5.0" 660 "semver": "^5.5.0"
570 } 661 }
@@ -641,13 +732,13 @@ @@ -641,13 +732,13 @@
641 } 732 }
642 }, 733 },
643 "@babel/helper-compilation-targets": { 734 "@babel/helper-compilation-targets": {
644 - "version": "7.8.7",  
645 - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz",  
646 - "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==", 735 + "version": "7.9.6",
  736 + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz",
  737 + "integrity": "sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==",
647 "dev": true, 738 "dev": true,
648 "requires": { 739 "requires": {
649 - "@babel/compat-data": "^7.8.6",  
650 - "browserslist": "^4.9.1", 740 + "@babel/compat-data": "^7.9.6",
  741 + "browserslist": "^4.11.1",
651 "invariant": "^2.2.4", 742 "invariant": "^2.2.4",
652 "levenary": "^1.1.1", 743 "levenary": "^1.1.1",
653 "semver": "^5.5.0" 744 "semver": "^5.5.0"
@@ -785,15 +876,69 @@ @@ -785,15 +876,69 @@
785 } 876 }
786 }, 877 },
787 "@babel/helper-replace-supers": { 878 "@babel/helper-replace-supers": {
788 - "version": "7.8.6",  
789 - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz",  
790 - "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", 879 + "version": "7.9.6",
  880 + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz",
  881 + "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==",
791 "dev": true, 882 "dev": true,
792 "requires": { 883 "requires": {
793 "@babel/helper-member-expression-to-functions": "^7.8.3", 884 "@babel/helper-member-expression-to-functions": "^7.8.3",
794 "@babel/helper-optimise-call-expression": "^7.8.3", 885 "@babel/helper-optimise-call-expression": "^7.8.3",
795 - "@babel/traverse": "^7.8.6",  
796 - "@babel/types": "^7.8.6" 886 + "@babel/traverse": "^7.9.6",
  887 + "@babel/types": "^7.9.6"
  888 + },
  889 + "dependencies": {
  890 + "@babel/generator": {
  891 + "version": "7.9.6",
  892 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
  893 + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
  894 + "dev": true,
  895 + "requires": {
  896 + "@babel/types": "^7.9.6",
  897 + "jsesc": "^2.5.1",
  898 + "lodash": "^4.17.13",
  899 + "source-map": "^0.5.0"
  900 + }
  901 + },
  902 + "@babel/parser": {
  903 + "version": "7.9.6",
  904 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
  905 + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
  906 + "dev": true
  907 + },
  908 + "@babel/traverse": {
  909 + "version": "7.9.6",
  910 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
  911 + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
  912 + "dev": true,
  913 + "requires": {
  914 + "@babel/code-frame": "^7.8.3",
  915 + "@babel/generator": "^7.9.6",
  916 + "@babel/helper-function-name": "^7.9.5",
  917 + "@babel/helper-split-export-declaration": "^7.8.3",
  918 + "@babel/parser": "^7.9.6",
  919 + "@babel/types": "^7.9.6",
  920 + "debug": "^4.1.0",
  921 + "globals": "^11.1.0",
  922 + "lodash": "^4.17.13"
  923 + }
  924 + },
  925 + "@babel/types": {
  926 + "version": "7.9.6",
  927 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
  928 + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
  929 + "dev": true,
  930 + "requires": {
  931 + "@babel/helper-validator-identifier": "^7.9.5",
  932 + "lodash": "^4.17.13",
  933 + "to-fast-properties": "^2.0.0"
  934 + }
  935 + },
  936 + "source-map": {
  937 + "version": "0.5.7",
  938 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
  939 + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
  940 + "dev": true
  941 + }
797 } 942 }
798 }, 943 },
799 "@babel/helper-simple-access": { 944 "@babel/helper-simple-access": {
@@ -834,14 +979,68 @@ @@ -834,14 +979,68 @@
834 } 979 }
835 }, 980 },
836 "@babel/helpers": { 981 "@babel/helpers": {
837 - "version": "7.9.2",  
838 - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz",  
839 - "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", 982 + "version": "7.9.6",
  983 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz",
  984 + "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==",
840 "dev": true, 985 "dev": true,
841 "requires": { 986 "requires": {
842 "@babel/template": "^7.8.3", 987 "@babel/template": "^7.8.3",
843 - "@babel/traverse": "^7.9.0",  
844 - "@babel/types": "^7.9.0" 988 + "@babel/traverse": "^7.9.6",
  989 + "@babel/types": "^7.9.6"
  990 + },
  991 + "dependencies": {
  992 + "@babel/generator": {
  993 + "version": "7.9.6",
  994 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
  995 + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
  996 + "dev": true,
  997 + "requires": {
  998 + "@babel/types": "^7.9.6",
  999 + "jsesc": "^2.5.1",
  1000 + "lodash": "^4.17.13",
  1001 + "source-map": "^0.5.0"
  1002 + }
  1003 + },
  1004 + "@babel/parser": {
  1005 + "version": "7.9.6",
  1006 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
  1007 + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
  1008 + "dev": true
  1009 + },
  1010 + "@babel/traverse": {
  1011 + "version": "7.9.6",
  1012 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
  1013 + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
  1014 + "dev": true,
  1015 + "requires": {
  1016 + "@babel/code-frame": "^7.8.3",
  1017 + "@babel/generator": "^7.9.6",
  1018 + "@babel/helper-function-name": "^7.9.5",
  1019 + "@babel/helper-split-export-declaration": "^7.8.3",
  1020 + "@babel/parser": "^7.9.6",
  1021 + "@babel/types": "^7.9.6",
  1022 + "debug": "^4.1.0",
  1023 + "globals": "^11.1.0",
  1024 + "lodash": "^4.17.13"
  1025 + }
  1026 + },
  1027 + "@babel/types": {
  1028 + "version": "7.9.6",
  1029 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
  1030 + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
  1031 + "dev": true,
  1032 + "requires": {
  1033 + "@babel/helper-validator-identifier": "^7.9.5",
  1034 + "lodash": "^4.17.13",
  1035 + "to-fast-properties": "^2.0.0"
  1036 + }
  1037 + },
  1038 + "source-map": {
  1039 + "version": "0.5.7",
  1040 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
  1041 + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
  1042 + "dev": true
  1043 + }
845 } 1044 }
846 }, 1045 },
847 "@babel/highlight": { 1046 "@babel/highlight": {
@@ -913,9 +1112,9 @@ @@ -913,9 +1112,9 @@
913 } 1112 }
914 }, 1113 },
915 "@babel/plugin-proposal-object-rest-spread": { 1114 "@babel/plugin-proposal-object-rest-spread": {
916 - "version": "7.9.5",  
917 - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz",  
918 - "integrity": "sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg==", 1115 + "version": "7.9.6",
  1116 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz",
  1117 + "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==",
919 "dev": true, 1118 "dev": true,
920 "requires": { 1119 "requires": {
921 "@babel/helper-plugin-utils": "^7.8.3", 1120 "@babel/helper-plugin-utils": "^7.8.3",
@@ -1174,38 +1373,38 @@ @@ -1174,38 +1373,38 @@
1174 } 1373 }
1175 }, 1374 },
1176 "@babel/plugin-transform-modules-amd": { 1375 "@babel/plugin-transform-modules-amd": {
1177 - "version": "7.9.0",  
1178 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz",  
1179 - "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==", 1376 + "version": "7.9.6",
  1377 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz",
  1378 + "integrity": "sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==",
1180 "dev": true, 1379 "dev": true,
1181 "requires": { 1380 "requires": {
1182 "@babel/helper-module-transforms": "^7.9.0", 1381 "@babel/helper-module-transforms": "^7.9.0",
1183 "@babel/helper-plugin-utils": "^7.8.3", 1382 "@babel/helper-plugin-utils": "^7.8.3",
1184 - "babel-plugin-dynamic-import-node": "^2.3.0" 1383 + "babel-plugin-dynamic-import-node": "^2.3.3"
1185 } 1384 }
1186 }, 1385 },
1187 "@babel/plugin-transform-modules-commonjs": { 1386 "@babel/plugin-transform-modules-commonjs": {
1188 - "version": "7.9.0",  
1189 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz",  
1190 - "integrity": "sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==", 1387 + "version": "7.9.6",
  1388 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz",
  1389 + "integrity": "sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==",
1191 "dev": true, 1390 "dev": true,
1192 "requires": { 1391 "requires": {
1193 "@babel/helper-module-transforms": "^7.9.0", 1392 "@babel/helper-module-transforms": "^7.9.0",
1194 "@babel/helper-plugin-utils": "^7.8.3", 1393 "@babel/helper-plugin-utils": "^7.8.3",
1195 "@babel/helper-simple-access": "^7.8.3", 1394 "@babel/helper-simple-access": "^7.8.3",
1196 - "babel-plugin-dynamic-import-node": "^2.3.0" 1395 + "babel-plugin-dynamic-import-node": "^2.3.3"
1197 } 1396 }
1198 }, 1397 },
1199 "@babel/plugin-transform-modules-systemjs": { 1398 "@babel/plugin-transform-modules-systemjs": {
1200 - "version": "7.9.0",  
1201 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz",  
1202 - "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==", 1399 + "version": "7.9.6",
  1400 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz",
  1401 + "integrity": "sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==",
1203 "dev": true, 1402 "dev": true,
1204 "requires": { 1403 "requires": {
1205 "@babel/helper-hoist-variables": "^7.8.3", 1404 "@babel/helper-hoist-variables": "^7.8.3",
1206 "@babel/helper-module-transforms": "^7.9.0", 1405 "@babel/helper-module-transforms": "^7.9.0",
1207 "@babel/helper-plugin-utils": "^7.8.3", 1406 "@babel/helper-plugin-utils": "^7.8.3",
1208 - "babel-plugin-dynamic-import-node": "^2.3.0" 1407 + "babel-plugin-dynamic-import-node": "^2.3.3"
1209 } 1408 }
1210 }, 1409 },
1211 "@babel/plugin-transform-modules-umd": { 1410 "@babel/plugin-transform-modules-umd": {
@@ -1572,14 +1771,14 @@ @@ -1572,14 +1771,14 @@
1572 "integrity": "sha512-Eqy2vuhgTY+BeqjOiXBBmbGPRC4HTa4nBSo9NcyZ8Z0MoaKo9YCbqC4CNCEPYqRbJeDUeBwfejnHR94eVMB2cw==" 1771 "integrity": "sha512-Eqy2vuhgTY+BeqjOiXBBmbGPRC4HTa4nBSo9NcyZ8Z0MoaKo9YCbqC4CNCEPYqRbJeDUeBwfejnHR94eVMB2cw=="
1573 }, 1772 },
1574 "@material-ui/core": { 1773 "@material-ui/core": {
1575 - "version": "4.9.12",  
1576 - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.9.12.tgz",  
1577 - "integrity": "sha512-JtRm1iNw3PRg+bzULS1uRKhdIJ2jhKO3/5ptO6kTADARsv5KmhzMbM+PYmVS09qm9Yu3ilwka4dYrtjqea53Lw==", 1774 + "version": "4.9.13",
  1775 + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.9.13.tgz",
  1776 + "integrity": "sha512-GEXNwUr+laZ0N+F1efmHB64Fyg+uQIRXLqbSejg3ebSXgLYNpIjnMOPRfWdu4rICq0dAIgvvNXGkKDMcf3AMpA==",
1578 "requires": { 1777 "requires": {
1579 "@babel/runtime": "^7.4.4", 1778 "@babel/runtime": "^7.4.4",
1580 "@material-ui/react-transition-group": "^4.3.0", 1779 "@material-ui/react-transition-group": "^4.3.0",
1581 - "@material-ui/styles": "^4.9.10",  
1582 - "@material-ui/system": "^4.9.10", 1780 + "@material-ui/styles": "^4.9.13",
  1781 + "@material-ui/system": "^4.9.13",
1583 "@material-ui/types": "^5.0.1", 1782 "@material-ui/types": "^5.0.1",
1584 "@material-ui/utils": "^4.9.12", 1783 "@material-ui/utils": "^4.9.12",
1585 "@types/react-transition-group": "^4.2.0", 1784 "@types/react-transition-group": "^4.2.0",
@@ -1631,15 +1830,15 @@ @@ -1631,15 +1830,15 @@
1631 } 1830 }
1632 }, 1831 },
1633 "@material-ui/styles": { 1832 "@material-ui/styles": {
1634 - "version": "4.9.10",  
1635 - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.9.10.tgz",  
1636 - "integrity": "sha512-EXIXlqVyFDnjXF6tj72y6ZxiSy+mHtrsCo3Srkm3XUeu3Z01aftDBy7ZSr3TQ02gXHTvDSBvegp3Le6p/tl7eA==", 1833 + "version": "4.9.13",
  1834 + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.9.13.tgz",
  1835 + "integrity": "sha512-lWlXJanBdHQ18jW/yphedRokHcvZD1GdGzUF/wQxKDsHwDDfO45ZkAxuSBI202dG+r1Ph483Z3pFykO2obeSRA==",
1637 "requires": { 1836 "requires": {
1638 "@babel/runtime": "^7.4.4", 1837 "@babel/runtime": "^7.4.4",
1639 "@emotion/hash": "^0.8.0", 1838 "@emotion/hash": "^0.8.0",
1640 "@material-ui/types": "^5.0.1", 1839 "@material-ui/types": "^5.0.1",
1641 "@material-ui/utils": "^4.9.6", 1840 "@material-ui/utils": "^4.9.6",
1642 - "clsx": "^1.0.2", 1841 + "clsx": "^1.0.4",
1643 "csstype": "^2.5.2", 1842 "csstype": "^2.5.2",
1644 "hoist-non-react-statics": "^3.3.2", 1843 "hoist-non-react-statics": "^3.3.2",
1645 "jss": "^10.0.3", 1844 "jss": "^10.0.3",
@@ -1654,9 +1853,9 @@ @@ -1654,9 +1853,9 @@
1654 } 1853 }
1655 }, 1854 },
1656 "@material-ui/system": { 1855 "@material-ui/system": {
1657 - "version": "4.9.10",  
1658 - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.9.10.tgz",  
1659 - "integrity": "sha512-E+t0baX2TBZk6ALm8twG6objpsxLdMM4MDm1++LMt2m7CetCAEc3aIAfDaprk4+tm5hFT1Cah5dRWk8EeIFQYw==", 1856 + "version": "4.9.13",
  1857 + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.9.13.tgz",
  1858 + "integrity": "sha512-6AlpvdW6KJJ5bF1Xo2OD13sCN8k+nlL36412/bWnWZOKIfIMo/Lb8c8d1DOIaT/RKWxTEUaWnKZjabVnA3eZjA==",
1660 "requires": { 1859 "requires": {
1661 "@babel/runtime": "^7.4.4", 1860 "@babel/runtime": "^7.4.4",
1662 "@material-ui/utils": "^4.9.6", 1861 "@material-ui/utils": "^4.9.6",
@@ -1694,17 +1893,30 @@ @@ -1694,17 +1893,30 @@
1694 "integrity": "sha512-KDvuNBxfTgDHjESiouEoPXq8GCUYbHnA+jOs8MzzwVDmxNLeZuDy3amaVzKv9Q5nncI6mNGcXOzTKWzapET8Sw==" 1893 "integrity": "sha512-KDvuNBxfTgDHjESiouEoPXq8GCUYbHnA+jOs8MzzwVDmxNLeZuDy3amaVzKv9Q5nncI6mNGcXOzTKWzapET8Sw=="
1695 }, 1894 },
1696 "@ngtools/webpack": { 1895 "@ngtools/webpack": {
1697 - "version": "9.1.3",  
1698 - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.1.3.tgz",  
1699 - "integrity": "sha512-yQ7LHqICC1Xf4E4Jw1jDCAJHYwPX7T7mRFxMd+R/0EBDcz1XBSh85+vnVs2PoJHVH+8ONOEkZKKSjABe1CZUvg==", 1896 + "version": "9.1.4",
  1897 + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.1.4.tgz",
  1898 + "integrity": "sha512-CDlQzMnWraxf/dT3G5L+0N0VniWHWdzjLRP8pWBoyV0xlzWS1yL/lj8Mas2jEIuaUxZ8bi29mE7xa8prqewtBQ==",
1700 "dev": true, 1899 "dev": true,
1701 "requires": { 1900 "requires": {
1702 - "@angular-devkit/core": "9.1.3", 1901 + "@angular-devkit/core": "9.1.4",
1703 "enhanced-resolve": "4.1.1", 1902 "enhanced-resolve": "4.1.1",
1704 "rxjs": "6.5.4", 1903 "rxjs": "6.5.4",
1705 "webpack-sources": "1.4.3" 1904 "webpack-sources": "1.4.3"
1706 }, 1905 },
1707 "dependencies": { 1906 "dependencies": {
  1907 + "@angular-devkit/core": {
  1908 + "version": "9.1.4",
  1909 + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.4.tgz",
  1910 + "integrity": "sha512-OPFQDmT4XabLMSRDgmnzedlOrc83DzQIgLcfoh/UhZ7aJKf/2Vq4l09p/DkMNI36vN5BRL0zDZt7TjvKNgyYgA==",
  1911 + "dev": true,
  1912 + "requires": {
  1913 + "ajv": "6.12.0",
  1914 + "fast-json-stable-stringify": "2.1.0",
  1915 + "magic-string": "0.25.7",
  1916 + "rxjs": "6.5.4",
  1917 + "source-map": "0.7.3"
  1918 + }
  1919 + },
1708 "rxjs": { 1920 "rxjs": {
1709 "version": "6.5.4", 1921 "version": "6.5.4",
1710 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", 1922 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
@@ -1738,23 +1950,47 @@ @@ -1738,23 +1950,47 @@
1738 } 1950 }
1739 }, 1951 },
1740 "@schematics/angular": { 1952 "@schematics/angular": {
1741 - "version": "9.1.3",  
1742 - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.3.tgz",  
1743 - "integrity": "sha512-3vxrPyvcIWvyWgbx/fpeQvMThXlmcnHTXVn2dpTcE2BzstAYdG17W3qouhvmlqd6m28orxkKKiZaJYMNTtnV/A==", 1953 + "version": "9.1.4",
  1954 + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.4.tgz",
  1955 + "integrity": "sha512-7nbiYBRgXc+f0sa5iXTcF6/VMy/Xq0wyKKnDFiLCb2aFYR7EXRHWF2GuwDIg2bvFugLuCBDoNnXeddLE1TXGWg==",
1744 "dev": true, 1956 "dev": true,
1745 "requires": { 1957 "requires": {
1746 - "@angular-devkit/core": "9.1.3",  
1747 - "@angular-devkit/schematics": "9.1.3" 1958 + "@angular-devkit/core": "9.1.4",
  1959 + "@angular-devkit/schematics": "9.1.4"
  1960 + },
  1961 + "dependencies": {
  1962 + "@angular-devkit/core": {
  1963 + "version": "9.1.4",
  1964 + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.4.tgz",
  1965 + "integrity": "sha512-OPFQDmT4XabLMSRDgmnzedlOrc83DzQIgLcfoh/UhZ7aJKf/2Vq4l09p/DkMNI36vN5BRL0zDZt7TjvKNgyYgA==",
  1966 + "dev": true,
  1967 + "requires": {
  1968 + "ajv": "6.12.0",
  1969 + "fast-json-stable-stringify": "2.1.0",
  1970 + "magic-string": "0.25.7",
  1971 + "rxjs": "6.5.4",
  1972 + "source-map": "0.7.3"
  1973 + }
  1974 + },
  1975 + "rxjs": {
  1976 + "version": "6.5.4",
  1977 + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
  1978 + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
  1979 + "dev": true,
  1980 + "requires": {
  1981 + "tslib": "^1.9.0"
  1982 + }
  1983 + }
1748 } 1984 }
1749 }, 1985 },
1750 "@schematics/update": { 1986 "@schematics/update": {
1751 - "version": "0.901.3",  
1752 - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.901.3.tgz",  
1753 - "integrity": "sha512-kwfc9LMMi6ryN2oiat9vTqGMK1jKwI1c45Nm1xala35nsbQSQ12qeL3MrVmnSCeI14+cinFUbp8mWI9/3M+/Lg==", 1987 + "version": "0.901.4",
  1988 + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.901.4.tgz",
  1989 + "integrity": "sha512-jCtZY2Fbj502gKN5gdu1brnRy/ssyzTrWm69Ty73V+t8uL7nLr+/hny/VBJ8CiQnKQvxcgVl1xgvI1cXzpysVA==",
1754 "dev": true, 1990 "dev": true,
1755 "requires": { 1991 "requires": {
1756 - "@angular-devkit/core": "9.1.3",  
1757 - "@angular-devkit/schematics": "9.1.3", 1992 + "@angular-devkit/core": "9.1.4",
  1993 + "@angular-devkit/schematics": "9.1.4",
1758 "@yarnpkg/lockfile": "1.1.0", 1994 "@yarnpkg/lockfile": "1.1.0",
1759 "ini": "1.3.5", 1995 "ini": "1.3.5",
1760 "npm-package-arg": "^8.0.0", 1996 "npm-package-arg": "^8.0.0",
@@ -1764,6 +2000,19 @@ @@ -1764,6 +2000,19 @@
1764 "semver-intersect": "1.4.0" 2000 "semver-intersect": "1.4.0"
1765 }, 2001 },
1766 "dependencies": { 2002 "dependencies": {
  2003 + "@angular-devkit/core": {
  2004 + "version": "9.1.4",
  2005 + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.4.tgz",
  2006 + "integrity": "sha512-OPFQDmT4XabLMSRDgmnzedlOrc83DzQIgLcfoh/UhZ7aJKf/2Vq4l09p/DkMNI36vN5BRL0zDZt7TjvKNgyYgA==",
  2007 + "dev": true,
  2008 + "requires": {
  2009 + "ajv": "6.12.0",
  2010 + "fast-json-stable-stringify": "2.1.0",
  2011 + "magic-string": "0.25.7",
  2012 + "rxjs": "6.5.4",
  2013 + "source-map": "0.7.3"
  2014 + }
  2015 + },
1767 "rxjs": { 2016 "rxjs": {
1768 "version": "6.5.4", 2017 "version": "6.5.4",
1769 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", 2018 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
@@ -1846,9 +2095,9 @@ @@ -1846,9 +2095,9 @@
1846 } 2095 }
1847 }, 2096 },
1848 "@types/jquery": { 2097 "@types/jquery": {
1849 - "version": "3.3.36",  
1850 - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.36.tgz",  
1851 - "integrity": "sha512-jHL8J5y5fJ0+C9zCTkeOvX4zqRnPug3r6JhAqAYl2YyBCYHiXTbZSH0MRCpayZADed5TigPjH92dEKczUFT2TQ==", 2098 + "version": "3.3.38",
  2099 + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.38.tgz",
  2100 + "integrity": "sha512-nkDvmx7x/6kDM5guu/YpXkGZ/Xj/IwGiLDdKM99YA5Vag7pjGyTJ8BNUh/6hxEn/sEu5DKtyRgnONJ7EmOoKrA==",
1852 "requires": { 2101 "requires": {
1853 "@types/sizzle": "*" 2102 "@types/sizzle": "*"
1854 } 2103 }
@@ -3223,9 +3472,9 @@ @@ -3223,9 +3472,9 @@
3223 } 3472 }
3224 }, 3473 },
3225 "caniuse-lite": { 3474 "caniuse-lite": {
3226 - "version": "1.0.30001048",  
3227 - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz",  
3228 - "integrity": "sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg==", 3475 + "version": "1.0.30001051",
  3476 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001051.tgz",
  3477 + "integrity": "sha512-sw8UUnTlRevawTMZKN7vpfwSjCBVoiMPlYd8oT2VwNylyPCBdMAUmLGUApnYYTtIm5JXsQegUAY7GPHqgfDzjw==",
3229 "dev": true 3478 "dev": true
3230 }, 3479 },
3231 "canonical-path": { 3480 "canonical-path": {
@@ -4873,9 +5122,9 @@ @@ -4873,9 +5122,9 @@
4873 "dev": true 5122 "dev": true
4874 }, 5123 },
4875 "electron-to-chromium": { 5124 "electron-to-chromium": {
4876 - "version": "1.3.421",  
4877 - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.421.tgz",  
4878 - "integrity": "sha512-ogxgmvHGfDuLA+GtgfK0jkFWlBb4MCZK2U1MM+l98sf4U3Ixtrfw1iC9w4mQqNvo+lHgM4pR62TqoT4QrvKJCw==", 5125 + "version": "1.3.428",
  5126 + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.428.tgz",
  5127 + "integrity": "sha512-u3+5jEfgLKq/hGO96YfAoOAM1tgFnRDTCD5mLuev44tttcXix+INtVegAkmGzUcfDsnzkPt51XXurXZLLwXt0w==",
4879 "dev": true 5128 "dev": true
4880 }, 5129 },
4881 "elliptic": { 5130 "elliptic": {
@@ -6084,13 +6333,33 @@ @@ -6084,13 +6333,33 @@
6084 } 6333 }
6085 }, 6334 },
6086 "hash-base": { 6335 "hash-base": {
6087 - "version": "3.0.4",  
6088 - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",  
6089 - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 6336 + "version": "3.1.0",
  6337 + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
  6338 + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
6090 "dev": true, 6339 "dev": true,
6091 "requires": { 6340 "requires": {
6092 - "inherits": "^2.0.1",  
6093 - "safe-buffer": "^5.0.1" 6341 + "inherits": "^2.0.4",
  6342 + "readable-stream": "^3.6.0",
  6343 + "safe-buffer": "^5.2.0"
  6344 + },
  6345 + "dependencies": {
  6346 + "readable-stream": {
  6347 + "version": "3.6.0",
  6348 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
  6349 + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
  6350 + "dev": true,
  6351 + "requires": {
  6352 + "inherits": "^2.0.3",
  6353 + "string_decoder": "^1.1.1",
  6354 + "util-deprecate": "^1.0.1"
  6355 + }
  6356 + },
  6357 + "safe-buffer": {
  6358 + "version": "5.2.0",
  6359 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
  6360 + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
  6361 + "dev": true
  6362 + }
6094 } 6363 }
6095 }, 6364 },
6096 "hash.js": { 6365 "hash.js": {
@@ -6900,10 +7169,13 @@ @@ -6900,10 +7169,13 @@
6900 "dev": true 7169 "dev": true
6901 }, 7170 },
6902 "is-wsl": { 7171 "is-wsl": {
6903 - "version": "2.1.1",  
6904 - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",  
6905 - "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==",  
6906 - "dev": true 7172 + "version": "2.2.0",
  7173 + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
  7174 + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
  7175 + "dev": true,
  7176 + "requires": {
  7177 + "is-docker": "^2.0.0"
  7178 + }
6907 }, 7179 },
6908 "isarray": { 7180 "isarray": {
6909 "version": "1.0.0", 7181 "version": "1.0.0",
@@ -7172,9 +7444,9 @@ @@ -7172,9 +7444,9 @@
7172 } 7444 }
7173 }, 7445 },
7174 "jquery": { 7446 "jquery": {
7175 - "version": "3.5.0",  
7176 - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.0.tgz",  
7177 - "integrity": "sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ==" 7447 + "version": "3.5.1",
  7448 + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz",
  7449 + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg=="
7178 }, 7450 },
7179 "jquery.terminal": { 7451 "jquery.terminal": {
7180 "version": "2.15.4", 7452 "version": "2.15.4",
@@ -9777,9 +10049,9 @@ @@ -9777,9 +10049,9 @@
9777 "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" 10049 "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="
9778 }, 10050 },
9779 "portfinder": { 10051 "portfinder": {
9780 - "version": "1.0.25",  
9781 - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz",  
9782 - "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", 10052 + "version": "1.0.26",
  10053 + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz",
  10054 + "integrity": "sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==",
9783 "dev": true, 10055 "dev": true,
9784 "requires": { 10056 "requires": {
9785 "async": "^2.6.2", 10057 "async": "^2.6.2",
@@ -10942,9 +11214,9 @@ @@ -10942,9 +11214,9 @@
10942 } 11214 }
10943 }, 11215 },
10944 "rc-select": { 11216 "rc-select": {
10945 - "version": "10.2.4",  
10946 - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-10.2.4.tgz",  
10947 - "integrity": "sha512-PtfAHQRXof5gX1qEYQc8GIgroajtzU3mcMGbqM1aE1jqaZ4r+p0GJy3rabXoNANsKH7jUV5+zYJb5VhTxj2vmQ==", 11217 + "version": "10.2.5",
  11218 + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-10.2.5.tgz",
  11219 + "integrity": "sha512-E5cdq+8kuTMdvDUmVXGdlHb4D0Effj/Xu988kUWSoALJtEAAdnUbuCJGhu04ehWtKMotGN5I9qlkLR4OdiLrgg==",
10948 "requires": { 11220 "requires": {
10949 "classnames": "2.x", 11221 "classnames": "2.x",
10950 "rc-animate": "^2.10.0", 11222 "rc-animate": "^2.10.0",
@@ -14526,9 +14798,9 @@ @@ -14526,9 +14798,9 @@
14526 } 14798 }
14527 }, 14799 },
14528 "mime": { 14800 "mime": {
14529 - "version": "2.4.4",  
14530 - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",  
14531 - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", 14801 + "version": "2.4.5",
  14802 + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz",
  14803 + "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==",
14532 "dev": true 14804 "dev": true
14533 }, 14805 },
14534 "mkdirp": { 14806 "mkdirp": {
@@ -13,24 +13,24 @@ @@ -13,24 +13,24 @@
13 }, 13 },
14 "private": true, 14 "private": true,
15 "dependencies": { 15 "dependencies": {
16 - "@angular/animations": "^9.1.2",  
17 - "@angular/cdk": "^9.1.3",  
18 - "@angular/common": "^9.1.2",  
19 - "@angular/compiler": "^9.1.2",  
20 - "@angular/core": "^9.1.2", 16 + "@angular/animations": "^9.1.4",
  17 + "@angular/cdk": "^9.2.2",
  18 + "@angular/common": "^9.1.4",
  19 + "@angular/compiler": "^9.1.4",
  20 + "@angular/core": "^9.1.4",
21 "@angular/flex-layout": "^9.0.0-beta.29", 21 "@angular/flex-layout": "^9.0.0-beta.29",
22 - "@angular/forms": "^9.1.2",  
23 - "@angular/material": "^9.2.1",  
24 - "@angular/platform-browser": "^9.1.2",  
25 - "@angular/platform-browser-dynamic": "^9.1.2",  
26 - "@angular/router": "^9.1.2", 22 + "@angular/forms": "^9.1.4",
  23 + "@angular/material": "^9.2.2",
  24 + "@angular/platform-browser": "^9.1.4",
  25 + "@angular/platform-browser-dynamic": "^9.1.4",
  26 + "@angular/router": "^9.1.4",
27 "@auth0/angular-jwt": "^4.0.0", 27 "@auth0/angular-jwt": "^4.0.0",
28 "@date-io/date-fns": "^2.6.1", 28 "@date-io/date-fns": "^2.6.1",
29 "@flowjs/flow.js": "^2.14.0", 29 "@flowjs/flow.js": "^2.14.0",
30 "@flowjs/ngx-flow": "^0.4.3", 30 "@flowjs/ngx-flow": "^0.4.3",
31 "@juggle/resize-observer": "^3.1.3", 31 "@juggle/resize-observer": "^3.1.3",
32 "@mat-datetimepicker/core": "^4.1.0", 32 "@mat-datetimepicker/core": "^4.1.0",
33 - "@material-ui/core": "^4.9.11", 33 + "@material-ui/core": "^4.9.13",
34 "@material-ui/icons": "^4.9.1", 34 "@material-ui/icons": "^4.9.1",
35 "@material-ui/pickers": "^3.2.10", 35 "@material-ui/pickers": "^3.2.10",
36 "@ngrx/effects": "^9.1.0", 36 "@ngrx/effects": "^9.1.0",
@@ -50,7 +50,7 @@ @@ -50,7 +50,7 @@
50 "flot": "git://github.com/thingsboard/flot.git#0.9-work", 50 "flot": "git://github.com/thingsboard/flot.git#0.9-work",
51 "flot.curvedlines": "git://github.com/MichaelZinsmaier/CurvedLines.git#master", 51 "flot.curvedlines": "git://github.com/MichaelZinsmaier/CurvedLines.git#master",
52 "font-awesome": "^4.7.0", 52 "font-awesome": "^4.7.0",
53 - "jquery": "^3.5.0", 53 + "jquery": "^3.5.1",
54 "jquery.terminal": "^2.15.4", 54 "jquery.terminal": "^2.15.4",
55 "js-beautify": "^1.11.0", 55 "js-beautify": "^1.11.0",
56 "json-schema-defaults": "^0.4.0", 56 "json-schema-defaults": "^0.4.0",
@@ -75,7 +75,7 @@ @@ -75,7 +75,7 @@
75 "objectpath": "^2.0.0", 75 "objectpath": "^2.0.0",
76 "prop-types": "^15.7.2", 76 "prop-types": "^15.7.2",
77 "raphael": "^2.3.0", 77 "raphael": "^2.3.0",
78 - "rc-select": "^10.2.4", 78 + "rc-select": "^10.2.5",
79 "react": "^16.13.1", 79 "react": "^16.13.1",
80 "react-ace": "^8.1.0", 80 "react-ace": "^8.1.0",
81 "react-dom": "^16.13.1", 81 "react-dom": "^16.13.1",
@@ -95,21 +95,21 @@ @@ -95,21 +95,21 @@
95 }, 95 },
96 "devDependencies": { 96 "devDependencies": {
97 "@angular-builders/custom-webpack": "^9.1.0", 97 "@angular-builders/custom-webpack": "^9.1.0",
98 - "@angular-devkit/build-angular": "^0.901.1",  
99 - "@angular/cli": "^9.1.1",  
100 - "@angular/compiler-cli": "^9.1.2",  
101 - "@angular/language-service": "^9.1.2", 98 + "@angular-devkit/build-angular": "^0.901.4",
  99 + "@angular/cli": "^9.1.4",
  100 + "@angular/compiler-cli": "^9.1.4",
  101 + "@angular/language-service": "^9.1.4",
102 "@types/canvas-gauges": "^2.1.2", 102 "@types/canvas-gauges": "^2.1.2",
103 "@types/flot": "^0.0.31", 103 "@types/flot": "^0.0.31",
104 "@types/jasmine": "^3.5.10", 104 "@types/jasmine": "^3.5.10",
105 "@types/jasminewd2": "^2.0.8", 105 "@types/jasminewd2": "^2.0.8",
106 - "@types/jquery": "^3.3.35", 106 + "@types/jquery": "^3.3.38",
107 "@types/js-beautify": "^1.8.2", 107 "@types/js-beautify": "^1.8.2",
108 "@types/jstree": "^3.3.39", 108 "@types/jstree": "^3.3.39",
109 "@types/jszip": "^3.1.7", 109 "@types/jszip": "^3.1.7",
110 "@types/leaflet": "^1.5.12", 110 "@types/leaflet": "^1.5.12",
111 - "@types/leaflet-polylinedecorator": "^1.6.0",  
112 "@types/leaflet-markercluster": "^1.0.3", 111 "@types/leaflet-markercluster": "^1.0.3",
  112 + "@types/leaflet-polylinedecorator": "^1.6.0",
113 "@types/lodash": "^4.14.150", 113 "@types/lodash": "^4.14.150",
114 "@types/raphael": "^2.3.0", 114 "@types/raphael": "^2.3.0",
115 "@types/react": "^16.9.34", 115 "@types/react": "^16.9.34",
@@ -28,7 +28,7 @@ import { @@ -28,7 +28,7 @@ import {
28 } from '@shared/models/telemetry/telemetry.models'; 28 } from '@shared/models/telemetry/telemetry.models';
29 import { DatasourceListener } from './datasource.service'; 29 import { DatasourceListener } from './datasource.service';
30 import { AggregationType, SubscriptionTimewindow, YEAR } from '@shared/models/time/time.models'; 30 import { AggregationType, SubscriptionTimewindow, YEAR } from '@shared/models/time/time.models';
31 -import { deepClone, isDefinedAndNotNull, isObject } from '@core/utils'; 31 +import { deepClone, isDefinedAndNotNull, isObject, objectHashCode } from '@core/utils';
32 import { UtilsService } from '@core/services/utils.service'; 32 import { UtilsService } from '@core/services/utils.service';
33 import { EntityType } from '@shared/models/entity-type.models'; 33 import { EntityType } from '@shared/models/entity-type.models';
34 import { DataAggregator } from '@core/api/data-aggregator'; 34 import { DataAggregator } from '@core/api/data-aggregator';
@@ -120,7 +120,7 @@ export class DatasourceSubscription { @@ -120,7 +120,7 @@ export class DatasourceSubscription {
120 data: [] 120 data: []
121 }; 121 };
122 } else { 122 } else {
123 - key = String(this.utils.objectHashCode(dataKey)); 123 + key = String(objectHashCode(dataKey));
124 this.datasourceData[key] = { 124 this.datasourceData[key] = {
125 data: [] 125 data: []
126 }; 126 };
@@ -25,7 +25,7 @@ import { @@ -25,7 +25,7 @@ import {
25 DatasourceSubscriptionOptions, 25 DatasourceSubscriptionOptions,
26 SubscriptionDataKey 26 SubscriptionDataKey
27 } from '@core/api/datasource-subcription'; 27 } from '@core/api/datasource-subcription';
28 -import { deepClone } from '@core/utils'; 28 +import { deepClone, objectHashCode } from '@core/utils';
29 29
30 export interface DatasourceListener { 30 export interface DatasourceListener {
31 subscriptionType: widgetType; 31 subscriptionType: widgetType;
@@ -79,7 +79,7 @@ export class DatasourceService { @@ -79,7 +79,7 @@ export class DatasourceService {
79 datasourceSubscriptionOptions.entityType = listener.entityType; 79 datasourceSubscriptionOptions.entityType = listener.entityType;
80 datasourceSubscriptionOptions.entityId = listener.entityId; 80 datasourceSubscriptionOptions.entityId = listener.entityId;
81 } 81 }
82 - listener.datasourceSubscriptionKey = this.utils.objectHashCode(datasourceSubscriptionOptions); 82 + listener.datasourceSubscriptionKey = objectHashCode(datasourceSubscriptionOptions);
83 let subscription: DatasourceSubscription; 83 let subscription: DatasourceSubscription;
84 if (this.subscriptions[listener.datasourceSubscriptionKey]) { 84 if (this.subscriptions[listener.datasourceSubscriptionKey]) {
85 subscription = this.subscriptions[listener.datasourceSubscriptionKey]; 85 subscription = this.subscriptions[listener.datasourceSubscriptionKey];
@@ -163,32 +163,6 @@ export class UtilsService { @@ -163,32 +163,6 @@ export class UtilsService {
163 return obj; 163 return obj;
164 } 164 }
165 165
166 - public hashCode(str: string): number {  
167 - let hash = 0;  
168 - let i: number;  
169 - let char: number;  
170 - if (str.length === 0) {  
171 - return hash;  
172 - }  
173 - for (i = 0; i < str.length; i++) {  
174 - char = str.charCodeAt(i);  
175 - // tslint:disable-next-line:no-bitwise  
176 - hash = ((hash << 5) - hash) + char;  
177 - // tslint:disable-next-line:no-bitwise  
178 - hash = hash & hash; // Convert to 32bit integer  
179 - }  
180 - return hash;  
181 - }  
182 -  
183 - public objectHashCode(obj: any): number {  
184 - let hash = 0;  
185 - if (obj) {  
186 - const str = JSON.stringify(obj);  
187 - hash = this.hashCode(str);  
188 - }  
189 - return hash;  
190 - }  
191 -  
192 public processWidgetException(exception: any): ExceptionData { 166 public processWidgetException(exception: any): ExceptionData {
193 const data = this.parseException(exception, -6); 167 const data = this.parseException(exception, -6);
194 if (this.widgetEditMode) { 168 if (this.widgetEditMode) {
@@ -15,8 +15,8 @@ @@ -15,8 +15,8 @@
15 /// 15 ///
16 16
17 import _ from 'lodash'; 17 import _ from 'lodash';
18 -import { Observable, Observer, of, Subject } from 'rxjs';  
19 -import { finalize, map, share } from 'rxjs/operators'; 18 +import { Observable, Subject } from 'rxjs';
  19 +import { finalize, share } from 'rxjs/operators';
20 import base64js from 'base64-js'; 20 import base64js from 'base64-js';
21 import { Datasource } from '@app/shared/models/widget.models'; 21 import { Datasource } from '@app/shared/models/widget.models';
22 22
@@ -32,7 +32,7 @@ export function onParentScrollOrWindowResize(el: Node): Observable<Event> { @@ -32,7 +32,7 @@ export function onParentScrollOrWindowResize(el: Node): Observable<Event> {
32 scrollParentNode.addEventListener('scroll', eventListenerObject); 32 scrollParentNode.addEventListener('scroll', eventListenerObject);
33 }); 33 });
34 window.addEventListener('resize', eventListenerObject); 34 window.addEventListener('resize', eventListenerObject);
35 - const shared = scrollSubject.pipe( 35 + return scrollSubject.pipe(
36 finalize(() => { 36 finalize(() => {
37 scrollParentNodes.forEach((scrollParentNode) => { 37 scrollParentNodes.forEach((scrollParentNode) => {
38 scrollParentNode.removeEventListener('scroll', eventListenerObject); 38 scrollParentNode.removeEventListener('scroll', eventListenerObject);
@@ -41,18 +41,13 @@ export function onParentScrollOrWindowResize(el: Node): Observable<Event> { @@ -41,18 +41,13 @@ export function onParentScrollOrWindowResize(el: Node): Observable<Event> {
41 }), 41 }),
42 share() 42 share()
43 ); 43 );
44 - return shared;  
45 } 44 }
46 45
47 export function isLocalUrl(url: string): boolean { 46 export function isLocalUrl(url: string): boolean {
48 const parser = document.createElement('a'); 47 const parser = document.createElement('a');
49 parser.href = url; 48 parser.href = url;
50 const host = parser.hostname; 49 const host = parser.hostname;
51 - if (host === 'localhost' || host === '127.0.0.1') {  
52 - return true;  
53 - } else {  
54 - return false;  
55 - } 50 + return host === 'localhost' || host === '127.0.0.1';
56 } 51 }
57 52
58 export function animatedScroll(element: HTMLElement, scrollTop: number, delay?: number) { 53 export function animatedScroll(element: HTMLElement, scrollTop: number, delay?: number) {
@@ -67,8 +62,7 @@ export function animatedScroll(element: HTMLElement, scrollTop: number, delay?: @@ -67,8 +62,7 @@ export function animatedScroll(element: HTMLElement, scrollTop: number, delay?:
67 element.scrollTop = to; 62 element.scrollTop = to;
68 } else { 63 } else {
69 currentTime += increment; 64 currentTime += increment;
70 - const val = easeInOut(currentTime, start, remaining, duration);  
71 - element.scrollTop = val; 65 + element.scrollTop = easeInOut(currentTime, start, remaining, duration);
72 if (currentTime < duration) { 66 if (currentTime < duration) {
73 setTimeout(animateScroll, increment); 67 setTimeout(animateScroll, increment);
74 } 68 }
@@ -117,7 +111,7 @@ export function formatValue(value: any, dec?: number, units?: string, showZeroDe @@ -117,7 +111,7 @@ export function formatValue(value: any, dec?: number, units?: string, showZeroDe
117 formatted = formatted.toFixed(dec); 111 formatted = formatted.toFixed(dec);
118 } 112 }
119 if (!showZeroDecimals) { 113 if (!showZeroDecimals) {
120 - formatted = (Number(formatted) * 1); 114 + formatted = (Number(formatted));
121 } 115 }
122 formatted = formatted.toString(); 116 formatted = formatted.toString();
123 if (isDefined(units) && units.length > 0) { 117 if (isDefined(units) && units.length > 0) {
@@ -153,15 +147,13 @@ export function deleteNullProperties(obj: any) { @@ -153,15 +147,13 @@ export function deleteNullProperties(obj: any) {
153 export function objToBase64(obj: any): string { 147 export function objToBase64(obj: any): string {
154 const json = JSON.stringify(obj); 148 const json = JSON.stringify(obj);
155 const encoded = utf8Encode(json); 149 const encoded = utf8Encode(json);
156 - const b64Encoded: string = base64js.fromByteArray(encoded);  
157 - return b64Encoded; 150 + return base64js.fromByteArray(encoded);
158 } 151 }
159 152
160 export function base64toObj(b64Encoded: string): any { 153 export function base64toObj(b64Encoded: string): any {
161 const encoded: Uint8Array | number[] = base64js.toByteArray(b64Encoded); 154 const encoded: Uint8Array | number[] = base64js.toByteArray(b64Encoded);
162 const json = utf8Decode(encoded); 155 const json = utf8Decode(encoded);
163 - const obj = JSON.parse(json);  
164 - return obj; 156 + return JSON.parse(json);
165 } 157 }
166 158
167 function utf8Encode(str: string): Uint8Array | number[] { 159 function utf8Encode(str: string): Uint8Array | number[] {
@@ -222,11 +214,13 @@ function scrollParents(node: Node): Node[] { @@ -222,11 +214,13 @@ function scrollParents(node: Node): Node[] {
222 return scrollParentNodes; 214 return scrollParentNodes;
223 } 215 }
224 216
225 -function hashCode(str) { 217 +export function hashCode(str: string): number {
226 let hash = 0; 218 let hash = 0;
227 - let i;  
228 - let char;  
229 - if (str.length === 0) return hash; 219 + let i: number;
  220 + let char: number;
  221 + if (str.length === 0) {
  222 + return hash;
  223 + }
230 for (i = 0; i < str.length; i++) { 224 for (i = 0; i < str.length; i++) {
231 char = str.charCodeAt(i); 225 char = str.charCodeAt(i);
232 // tslint:disable-next-line:no-bitwise 226 // tslint:disable-next-line:no-bitwise
@@ -237,6 +231,15 @@ function hashCode(str) { @@ -237,6 +231,15 @@ function hashCode(str) {
237 return hash; 231 return hash;
238 } 232 }
239 233
  234 +export function objectHashCode(obj: any): number {
  235 + let hash = 0;
  236 + if (obj) {
  237 + const str = JSON.stringify(obj);
  238 + hash = hashCode(str);
  239 + }
  240 + return hash;
  241 +}
  242 +
240 function easeInOut( 243 function easeInOut(
241 currentTime: number, 244 currentTime: number,
242 startTime: number, 245 startTime: number,
@@ -432,29 +435,8 @@ export function getDescendantProp(obj: any, path: string): any { @@ -432,29 +435,8 @@ export function getDescendantProp(obj: any, path: string): any {
432 return path.split('.').reduce((acc, part) => acc && acc[part], obj); 435 return path.split('.').reduce((acc, part) => acc && acc[part], obj);
433 } 436 }
434 437
435 -export function imageLoader(imageUrl: string): Observable<HTMLImageElement> {  
436 - return new Observable((observer: Observer<HTMLImageElement>) => {  
437 - const image = new Image();  
438 - image.style.position = 'absolute';  
439 - image.style.left = '-99999px';  
440 - image.style.top = '-99999px';  
441 - image.onload = () => {  
442 - observer.next(image);  
443 - document.body.removeChild(image);  
444 - observer.complete();  
445 - };  
446 - image.onerror = err => {  
447 - observer.error(err);  
448 - document.body.removeChild(image);  
449 - observer.complete();  
450 - };  
451 - document.body.appendChild(image)  
452 - image.src = imageUrl;  
453 - });  
454 -}  
455 -  
456 export function createLabelFromDatasource(datasource: Datasource, pattern: string) { 438 export function createLabelFromDatasource(datasource: Datasource, pattern: string) {
457 - const varsRegex = /\$\{([^}]*)\}/g; 439 + const varsRegex = /\${([^}]*)}/g;
458 let label = pattern; 440 let label = pattern;
459 if (!datasource) { 441 if (!datasource) {
460 return label; 442 return label;
@@ -481,142 +463,6 @@ export function createLabelFromDatasource(datasource: Datasource, pattern: strin @@ -481,142 +463,6 @@ export function createLabelFromDatasource(datasource: Datasource, pattern: strin
481 return label; 463 return label;
482 } 464 }
483 465
484 -const imageAspectMap = {};  
485 -  
486 -export function aspectCache(imageUrl: string): Observable<number> {  
487 - if (imageUrl?.length) {  
488 - const hash = hashCode(imageUrl);  
489 - let aspect = imageAspectMap[hash];  
490 - if (aspect) {  
491 - return of(aspect);  
492 - }  
493 - else return imageLoader(imageUrl).pipe(map(image => {  
494 - aspect = image.width / image.height;  
495 - imageAspectMap[hash] = aspect;  
496 - return aspect;  
497 - }))  
498 - }  
499 -}  
500 -  
501 -export function parseArray(input: any[]): any[] {  
502 - return _(input).groupBy(el => el?.datasource?.entityName)  
503 - .values().value().map((entityArray, dsIndex) =>  
504 - entityArray[0].data.map((el, i) => {  
505 - const obj = {  
506 - entityName: entityArray[0]?.datasource?.entityName,  
507 - $datasource: entityArray[0]?.datasource,  
508 - dsIndex,  
509 - time: el[0],  
510 - deviceType: null  
511 - };  
512 - entityArray.filter(el => el.data.length).forEach(entity => {  
513 - obj[entity?.dataKey?.label] = entity?.data[i][1];  
514 - obj[entity?.dataKey?.label + '|ts'] = entity?.data[0][0];  
515 - if (entity?.dataKey?.label === 'type') {  
516 - obj.deviceType = entity?.data[0][1];  
517 - }  
518 - });  
519 - return obj;  
520 - })  
521 - );  
522 -}  
523 -  
524 -export function parseData(input: any[]): any[] {  
525 - return _(input).groupBy(el => el?.datasource?.entityName)  
526 - .values().value().map((entityArray, i) => {  
527 - const obj = {  
528 - entityName: entityArray[0]?.datasource?.entityName,  
529 - $datasource: entityArray[0]?.datasource,  
530 - dsIndex: i,  
531 - deviceType: null  
532 - };  
533 - entityArray.filter(el => el.data.length).forEach(el => {  
534 - obj[el?.dataKey?.label] = el?.data[0][1];  
535 - obj[el?.dataKey?.label + '|ts'] = el?.data[0][0];  
536 - if (el?.dataKey?.label === 'type') {  
537 - obj.deviceType = el?.data[0][1];  
538 - }  
539 - });  
540 - return obj;  
541 - });  
542 -}  
543 -  
544 -export function safeExecute(func: Function, params = []) {  
545 - let res = null;  
546 - if (func && typeof (func) === 'function') {  
547 - try {  
548 - res = func(...params);  
549 - }  
550 - catch (err) {  
551 - console.log('error in external function:', err);  
552 - res = null;  
553 - }  
554 - }  
555 - return res;  
556 -}  
557 -  
558 -export function parseFunction(source: any, params: string[] = ['def']): Function {  
559 - let res = null;  
560 - if (source?.length) {  
561 - try {  
562 - res = new Function(...params, source);  
563 - }  
564 - catch (err) {  
565 - res = null;  
566 - }  
567 - }  
568 - return res;  
569 -}  
570 -  
571 -export function parseTemplate(template: string, data: { $datasource?: Datasource, [key: string]: any },  
572 - translateFn?: (key: string) => string) {  
573 - let res = '';  
574 - try {  
575 - if (template.match(/<link-act/g)) {  
576 - template = template.replace(/<link-act/g, '<a').replace(/link-act>/g, 'a>')  
577 - .replace(/name=(\'|")(.*?)(\'|")/g, `class='tb-custom-action' id='$2'`);  
578 - }  
579 - if (translateFn) {  
580 - template = translateFn(template);  
581 - }  
582 - template = createLabelFromDatasource(data.$datasource, template);  
583 - const formatted = template.match(/\$\{([^}]*)\:\d*\}/g);  
584 - if (formatted)  
585 - formatted.forEach(value => {  
586 - const [variable, digits] = value.replace('${', '').replace('}', '').split(':');  
587 - data[variable] = padValue(data[variable], +digits);  
588 - if (isNaN(data[variable])) data[value] = '';  
589 - template = template.replace(value, '${' + variable + '}');  
590 - });  
591 - const variables = template.match(/\$\{.*?\}/g);  
592 - if (variables) {  
593 - variables.forEach(variable => {  
594 - variable = variable.replace('${', '').replace('}', '');  
595 - if (!data[variable])  
596 - data[variable] = '';  
597 - })  
598 - }  
599 - const compiled = _.template(template);  
600 - res = compiled(data);  
601 - }  
602 - catch (ex) {  
603 - console.log(ex, template)  
604 - }  
605 - return res;  
606 -}  
607 -  
608 -export let parseWithTranslation = {  
609 - translate(): string {  
610 - throw console.error('Translate not assigned');  
611 - },  
612 - parseTemplate(template: string, data: object, forceTranslate = false): string {  
613 - return parseTemplate(forceTranslate ? this.translate(template) : template, data, this?.translate);  
614 - },  
615 - setTranslate(translateFn: (key: string, defaultTranslation?: string) => string) {  
616 - this.translate = translateFn;  
617 - }  
618 -}  
619 -  
620 export function padValue(val: any, dec: number): string { 466 export function padValue(val: any, dec: number): string {
621 let strVal; 467 let strVal;
622 let n; 468 let n;
@@ -33,7 +33,7 @@ import { Datasource, WidgetActionDescriptor, WidgetConfig } from '@shared/models @@ -33,7 +33,7 @@ import { Datasource, WidgetActionDescriptor, WidgetConfig } from '@shared/models
33 import { IWidgetSubscription } from '@core/api/widget-api.models'; 33 import { IWidgetSubscription } from '@core/api/widget-api.models';
34 import { UtilsService } from '@core/services/utils.service'; 34 import { UtilsService } from '@core/services/utils.service';
35 import { TranslateService } from '@ngx-translate/core'; 35 import { TranslateService } from '@ngx-translate/core';
36 -import { deepClone, isDefined, isNumber, createLabelFromDatasource } from '@core/utils'; 36 +import { deepClone, isDefined, isNumber, createLabelFromDatasource, hashCode } from '@core/utils';
37 import cssjs from '@core/css/css'; 37 import cssjs from '@core/css/css';
38 import { PageLink } from '@shared/models/page/page-link'; 38 import { PageLink } from '@shared/models/page/page-link';
39 import { Direction, SortOrder, sortOrderFromString } from '@shared/models/page/sort-order'; 39 import { Direction, SortOrder, sortOrderFromString } from '@shared/models/page/sort-order';
@@ -304,7 +304,7 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit, @@ -304,7 +304,7 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit,
304 const cssString = constructTableCssString(this.widgetConfig); 304 const cssString = constructTableCssString(this.widgetConfig);
305 const cssParser = new cssjs(); 305 const cssParser = new cssjs();
306 cssParser.testMode = false; 306 cssParser.testMode = false;
307 - const namespace = 'alarms-table-' + this.utils.hashCode(cssString); 307 + const namespace = 'alarms-table-' + hashCode(cssString);
308 cssParser.cssPreviewNamespace = namespace; 308 cssParser.cssPreviewNamespace = namespace;
309 cssParser.createStyleElement(namespace, cssString); 309 cssParser.createStyleElement(namespace, cssString);
310 $(this.elementRef.nativeElement).addClass(namespace); 310 $(this.elementRef.nativeElement).addClass(namespace);
@@ -37,7 +37,7 @@ import { @@ -37,7 +37,7 @@ import {
37 import { BaseData } from '@shared/models/base-data'; 37 import { BaseData } from '@shared/models/base-data';
38 import { EntityId } from '@shared/models/id/entity-id'; 38 import { EntityId } from '@shared/models/id/entity-id';
39 import { EntityType } from '@shared/models/entity-type.models'; 39 import { EntityType } from '@shared/models/entity-type.models';
40 -import { deepClone } from '@core/utils'; 40 +import { deepClone, hashCode } from '@core/utils';
41 import { 41 import {
42 defaultNodeIconFunction, 42 defaultNodeIconFunction,
43 defaultNodeOpenedFunction, 43 defaultNodeOpenedFunction,
@@ -186,7 +186,7 @@ export class EntitiesHierarchyWidgetComponent extends PageComponent implements O @@ -186,7 +186,7 @@ export class EntitiesHierarchyWidgetComponent extends PageComponent implements O
186 const cssString = constructTableCssString(this.widgetConfig); 186 const cssString = constructTableCssString(this.widgetConfig);
187 const cssParser = new cssjs(); 187 const cssParser = new cssjs();
188 cssParser.testMode = false; 188 cssParser.testMode = false;
189 - const namespace = 'entities-hierarchy-' + this.utils.hashCode(cssString); 189 + const namespace = 'entities-hierarchy-' + hashCode(cssString);
190 cssParser.cssPreviewNamespace = namespace; 190 cssParser.cssPreviewNamespace = namespace;
191 cssParser.createStyleElement(namespace, cssString); 191 cssParser.createStyleElement(namespace, cssString);
192 $(this.elementRef.nativeElement).addClass(namespace); 192 $(this.elementRef.nativeElement).addClass(namespace);
@@ -39,7 +39,7 @@ import { @@ -39,7 +39,7 @@ import {
39 import { IWidgetSubscription } from '@core/api/widget-api.models'; 39 import { IWidgetSubscription } from '@core/api/widget-api.models';
40 import { UtilsService } from '@core/services/utils.service'; 40 import { UtilsService } from '@core/services/utils.service';
41 import { TranslateService } from '@ngx-translate/core'; 41 import { TranslateService } from '@ngx-translate/core';
42 -import { deepClone, isDefined, isNumber, createLabelFromDatasource } from '@core/utils'; 42 +import { deepClone, isDefined, isNumber, createLabelFromDatasource, hashCode } from '@core/utils';
43 import cssjs from '@core/css/css'; 43 import cssjs from '@core/css/css';
44 import { PageLink } from '@shared/models/page/page-link'; 44 import { PageLink } from '@shared/models/page/page-link';
45 import { Direction, SortOrder, sortOrderFromString } from '@shared/models/page/sort-order'; 45 import { Direction, SortOrder, sortOrderFromString } from '@shared/models/page/sort-order';
@@ -226,7 +226,7 @@ export class EntitiesTableWidgetComponent extends PageComponent implements OnIni @@ -226,7 +226,7 @@ export class EntitiesTableWidgetComponent extends PageComponent implements OnIni
226 const cssString = constructTableCssString(this.widgetConfig); 226 const cssString = constructTableCssString(this.widgetConfig);
227 const cssParser = new cssjs(); 227 const cssParser = new cssjs();
228 cssParser.testMode = false; 228 cssParser.testMode = false;
229 - const namespace = 'entities-table-' + this.utils.hashCode(cssString); 229 + const namespace = 'entities-table-' + hashCode(cssString);
230 cssParser.cssPreviewNamespace = namespace; 230 cssParser.cssPreviewNamespace = namespace;
231 cssParser.createStyleElement(namespace, cssString); 231 cssParser.createStyleElement(namespace, cssString);
232 $(this.elementRef.nativeElement).addClass(namespace); 232 $(this.elementRef.nativeElement).addClass(namespace);
@@ -14,19 +14,26 @@ @@ -14,19 +14,26 @@
14 /// limitations under the License. 14 /// limitations under the License.
15 /// 15 ///
16 16
17 -import L, { LatLngTuple, LatLngBounds, Point, MarkerClusterGroupOptions, markerClusterGroup } from 'leaflet'; 17 +import L, { LatLngBounds, LatLngTuple, markerClusterGroup, MarkerClusterGroupOptions } from 'leaflet';
18 18
19 import 'leaflet-providers'; 19 import 'leaflet-providers';
20 import 'leaflet.markercluster/dist/leaflet.markercluster'; 20 import 'leaflet.markercluster/dist/leaflet.markercluster';
21 21
22 -import { MapSettings, MarkerSettings, FormattedData, UnitedMapSettings, PolygonSettings, PolylineSettings } from './map-models'; 22 +import {
  23 + FormattedData,
  24 + MapSettings,
  25 + MarkerSettings,
  26 + PolygonSettings,
  27 + PolylineSettings,
  28 + UnitedMapSettings
  29 +} from './map-models';
23 import { Marker } from './markers'; 30 import { Marker } from './markers';
24 import { BehaviorSubject, Observable } from 'rxjs'; 31 import { BehaviorSubject, Observable } from 'rxjs';
25 import { filter } from 'rxjs/operators'; 32 import { filter } from 'rxjs/operators';
26 import { Polyline } from './polyline'; 33 import { Polyline } from './polyline';
27 import { Polygon } from './polygon'; 34 import { Polygon } from './polygon';
28 import { DatasourceData } from '@app/shared/models/widget.models'; 35 import { DatasourceData } from '@app/shared/models/widget.models';
29 -import { safeExecute } from '@app/core/utils'; 36 +import { safeExecute } from '@home/components/widget/lib/maps/maps-utils';
30 37
31 export default abstract class LeafletMap { 38 export default abstract class LeafletMap {
32 39
@@ -38,13 +45,11 @@ export default abstract class LeafletMap { @@ -38,13 +45,11 @@ export default abstract class LeafletMap {
38 map$: BehaviorSubject<L.Map> = new BehaviorSubject(null); 45 map$: BehaviorSubject<L.Map> = new BehaviorSubject(null);
39 ready$: Observable<L.Map> = this.map$.pipe(filter(map => !!map)); 46 ready$: Observable<L.Map> = this.map$.pipe(filter(map => !!map));
40 options: UnitedMapSettings; 47 options: UnitedMapSettings;
41 - isMarketCluster: boolean;  
42 bounds: L.LatLngBounds; 48 bounds: L.LatLngBounds;
43 - newMarker: L.Marker;  
44 datasources: FormattedData[]; 49 datasources: FormattedData[];
45 markersCluster; 50 markersCluster;
46 51
47 - constructor(public $container: HTMLElement, options: UnitedMapSettings) { 52 + protected constructor(public $container: HTMLElement, options: UnitedMapSettings) {
48 this.options = options; 53 this.options = options;
49 } 54 }
50 55
@@ -125,7 +130,7 @@ export default abstract class LeafletMap { @@ -125,7 +130,7 @@ export default abstract class LeafletMap {
125 addMarker.setPosition('topright') 130 addMarker.setPosition('topright')
126 } 131 }
127 L.Control.AddMarker = L.Control.extend({ 132 L.Control.AddMarker = L.Control.extend({
128 - onAdd(map) { 133 + onAdd() {
129 const img = L.DomUtil.create('img') as any; 134 const img = L.DomUtil.create('img') as any;
130 img.src = `assets/add_location.svg`; 135 img.src = `assets/add_location.svg`;
131 img.style.width = '32px'; 136 img.style.width = '32px';
@@ -138,7 +143,7 @@ export default abstract class LeafletMap { @@ -138,7 +143,7 @@ export default abstract class LeafletMap {
138 draggableImg.on('dragend', dragListener) 143 draggableImg.on('dragend', dragListener)
139 return img; 144 return img;
140 }, 145 },
141 - onRemove(map) { 146 + onRemove() {
142 }, 147 },
143 dragMarker: this.dragMarker 148 dragMarker: this.dragMarker
144 } as any); 149 } as any);
@@ -166,7 +171,7 @@ export default abstract class LeafletMap { @@ -166,7 +171,7 @@ export default abstract class LeafletMap {
166 this.datasources = dataSources; 171 this.datasources = dataSources;
167 } 172 }
168 173
169 - public saveMarkerLocation(e) { 174 + public saveMarkerLocation(_e) {
170 175
171 } 176 }
172 177
@@ -198,9 +203,15 @@ export default abstract class LeafletMap { @@ -198,9 +203,15 @@ export default abstract class LeafletMap {
198 203
199 fitBounds(bounds: LatLngBounds, useDefaultZoom = false, padding?: LatLngTuple) { 204 fitBounds(bounds: LatLngBounds, useDefaultZoom = false, padding?: LatLngTuple) {
200 if (bounds.isValid()) { 205 if (bounds.isValid()) {
201 - if ((!this.options.fitMapBounds || this.options.useDefaultCenterPosition) && this.options.defaultZoomLevel) { 206 + this.bounds = this.bounds.extend(bounds);
  207 + if (!this.options.fitMapBounds && this.options.defaultZoomLevel) {
202 this.map.setZoom(this.options.defaultZoomLevel, { animate: false }); 208 this.map.setZoom(this.options.defaultZoomLevel, { animate: false });
203 - this.map.panTo(this.options.defaultCenterPosition, { animate: false }); 209 + if (this.options.useDefaultCenterPosition) {
  210 + this.map.panTo(this.options.defaultCenterPosition, { animate: false });
  211 + }
  212 + else {
  213 + this.map.panTo(this.bounds.getCenter());
  214 + }
204 } else { 215 } else {
205 this.map.once('zoomend', () => { 216 this.map.once('zoomend', () => {
206 if (!this.options.defaultZoomLevel && this.map.getZoom() > this.options.minZoomLevel) { 217 if (!this.options.defaultZoomLevel && this.map.getZoom() > this.options.minZoomLevel) {
@@ -212,7 +223,6 @@ export default abstract class LeafletMap { @@ -212,7 +223,6 @@ export default abstract class LeafletMap {
212 } 223 }
213 this.map.fitBounds(bounds, { padding: padding || [50, 50], animate: false }); 224 this.map.fitBounds(bounds, { padding: padding || [50, 50], animate: false });
214 } 225 }
215 - this.bounds = bounds;  
216 } 226 }
217 } 227 }
218 228
@@ -14,7 +14,8 @@ @@ -14,7 +14,8 @@
14 /// limitations under the License. 14 /// limitations under the License.
15 /// 15 ///
16 16
17 -import { LatLngTuple, LeafletMouseEvent } from 'leaflet'; 17 +import { LatLngTuple } from 'leaflet';
  18 +import { Datasource } from '@app/shared/models/widget.models';
18 19
19 export type GenericFunction = (data: FormattedData, dsData: FormattedData[], dsIndex: number) => string; 20 export type GenericFunction = (data: FormattedData, dsData: FormattedData[], dsIndex: number) => string;
20 export type MarkerImageFunction = (data: FormattedData, dsData: FormattedData[], dsIndex: number) => string; 21 export type MarkerImageFunction = (data: FormattedData, dsData: FormattedData[], dsIndex: number) => string;
@@ -96,11 +97,11 @@ export type MarkerSettings = { @@ -96,11 +97,11 @@ export type MarkerSettings = {
96 } 97 }
97 98
98 export interface FormattedData { 99 export interface FormattedData {
99 - aliasName: string; 100 + $datasource: Datasource;
100 entityName: string; 101 entityName: string;
101 - $datasource: string;  
102 dsIndex: number; 102 dsIndex: number;
103 - deviceType: string 103 + deviceType: string;
  104 + [key: string]: any
104 } 105 }
105 106
106 export type PolygonSettings = { 107 export type PolygonSettings = {
@@ -115,7 +116,7 @@ export type PolygonSettings = { @@ -115,7 +116,7 @@ export type PolygonSettings = {
115 autocloseTooltip: boolean; 116 autocloseTooltip: boolean;
116 tooltipFunction: GenericFunction; 117 tooltipFunction: GenericFunction;
117 showTooltipAction: string; 118 showTooltipAction: string;
118 - tooltipAction: object; 119 + tooltipAction: { [name: string]: actionsHandler };
119 tooltipPattern: string; 120 tooltipPattern: string;
120 useTooltipFunction: boolean; 121 useTooltipFunction: boolean;
121 polygonClick: { [name: string]: actionsHandler }; 122 polygonClick: { [name: string]: actionsHandler };
@@ -151,6 +152,6 @@ export interface HistorySelectSettings { @@ -151,6 +152,6 @@ export interface HistorySelectSettings {
151 buttonColor: string; 152 buttonColor: string;
152 } 153 }
153 154
154 -export type actionsHandler = ($event: Event | LeafletMouseEvent) => void; 155 +export type actionsHandler = ($event: Event, datasource: Datasource) => void;
155 156
156 export type UnitedMapSettings = MapSettings & PolygonSettings & MarkerSettings & PolylineSettings; 157 export type UnitedMapSettings = MapSettings & PolygonSettings & MarkerSettings & PolylineSettings;
@@ -31,12 +31,11 @@ import { @@ -31,12 +31,11 @@ import {
31 } from './schemes'; 31 } from './schemes';
32 import { MapWidgetStaticInterface, MapWidgetInterface } from './map-widget.interface'; 32 import { MapWidgetStaticInterface, MapWidgetInterface } from './map-widget.interface';
33 import { OpenStreetMap, TencentMap, GoogleMap, HEREMap, ImageMap } from './providers'; 33 import { OpenStreetMap, TencentMap, GoogleMap, HEREMap, ImageMap } from './providers';
34 -import { parseFunction, parseArray, parseData, parseWithTranslation } from '@core/utils';  
35 import { initSchema, addToSchema, mergeSchemes, addCondition, addGroupInfo } from '@core/schema-utils'; 34 import { initSchema, addToSchema, mergeSchemes, addCondition, addGroupInfo } from '@core/schema-utils';
36 import { of, Subject } from 'rxjs'; 35 import { of, Subject } from 'rxjs';
37 import { WidgetContext } from '@app/modules/home/models/widget-component.models'; 36 import { WidgetContext } from '@app/modules/home/models/widget-component.models';
38 -import { getDefCenterPosition } from './maps-utils';  
39 -import { JsonSettingsSchema, WidgetActionDescriptor, DatasourceType, widgetType } from '@shared/models/widget.models'; 37 +import { getDefCenterPosition, parseArray, parseData, parseFunction, parseWithTranslation } from './maps-utils';
  38 +import { JsonSettingsSchema, WidgetActionDescriptor, DatasourceType, widgetType, Datasource } from '@shared/models/widget.models';
40 import { EntityId } from '@shared/models/id/entity-id'; 39 import { EntityId } from '@shared/models/id/entity-id';
41 import { AttributeScope, DataKeyType, LatestTelemetry } from '@shared/models/telemetry/telemetry.models'; 40 import { AttributeScope, DataKeyType, LatestTelemetry } from '@shared/models/telemetry/telemetry.models';
42 import { AttributeService } from '@core/http/attribute.service'; 41 import { AttributeService } from '@core/http/attribute.service';
@@ -138,11 +137,11 @@ export class MapWidgetController implements MapWidgetInterface { @@ -138,11 +137,11 @@ export class MapWidgetController implements MapWidgetInterface {
138 else return ''; 137 else return '';
139 } 138 }
140 139
141 - getDescriptors(name: string): { [name: string]: ($event: Event) => void } { 140 + getDescriptors(name: string): { [name: string]: ($event: Event, datasource: Datasource) => void } {
142 const descriptors = this.ctx.actionsApi.getActionDescriptors(name); 141 const descriptors = this.ctx.actionsApi.getActionDescriptors(name);
143 const actions = {}; 142 const actions = {};
144 descriptors.forEach(descriptor => { 143 descriptors.forEach(descriptor => {
145 - actions[descriptor.name] = ($event: Event) => this.onCustomAction(descriptor, $event); 144 + actions[descriptor.name] = ($event: Event, datasource: Datasource) => this.onCustomAction(descriptor, $event, datasource);
146 }, actions); 145 }, actions);
147 return actions; 146 return actions;
148 } 147 }
@@ -150,16 +149,16 @@ export class MapWidgetController implements MapWidgetInterface { @@ -150,16 +149,16 @@ export class MapWidgetController implements MapWidgetInterface {
150 onInit() { 149 onInit() {
151 } 150 }
152 151
153 - private onCustomAction(descriptor: WidgetActionDescriptor, $event: any) {  
154 - if ($event && $event.stopPropagation) {  
155 - $event?.stopPropagation(); 152 + private onCustomAction(descriptor: WidgetActionDescriptor, $event: Event, entityInfo: Datasource) {
  153 + if ($event) {
  154 + $event.preventDefault();
  155 + $event.stopPropagation();
156 } 156 }
157 - // safeExecute(parseFunction(descriptor.customFunction, ['$event', 'widgetContext']), [$event, this.ctx])  
158 - const entityInfo = this.ctx.actionsApi.getActiveEntityInfo();  
159 - const entityId = entityInfo ? entityInfo.entityId : null;  
160 - const entityName = entityInfo ? entityInfo.entityName : null;  
161 - const entityLabel = entityInfo ? entityInfo.entityLabel : null;  
162 - this.ctx.actionsApi.handleWidgetAction($event, descriptor, entityId, entityName, null, entityLabel); 157 + const { entityId, entityName, entityLabel, entityType } = entityInfo;
  158 + this.ctx.actionsApi.handleWidgetAction($event, descriptor, {
  159 + entityType,
  160 + id: entityId
  161 + }, entityName, null, entityLabel);
163 } 162 }
164 163
165 setMarkerLocation = (e) => { 164 setMarkerLocation = (e) => {
@@ -15,20 +15,27 @@ @@ -15,20 +15,27 @@
15 /// 15 ///
16 16
17 import L from 'leaflet'; 17 import L from 'leaflet';
18 -import { MarkerSettings, PolygonSettings, PolylineSettings } from './map-models'; 18 +import { FormattedData, MarkerSettings, PolygonSettings, PolylineSettings } from './map-models';
  19 +import { Datasource } from '@app/shared/models/widget.models';
  20 +import _ from 'lodash';
  21 +import { Observable, Observer, of } from 'rxjs';
  22 +import { map } from 'rxjs/operators';
  23 +import { createLabelFromDatasource, hashCode, padValue } from '@core/utils';
19 24
20 export function createTooltip(target: L.Layer, 25 export function createTooltip(target: L.Layer,
21 settings: MarkerSettings | PolylineSettings | PolygonSettings, 26 settings: MarkerSettings | PolylineSettings | PolygonSettings,
22 - content?: string | HTMLElement): L.Popup { 27 + datasource: Datasource,
  28 + content?: string | HTMLElement
  29 +): L.Popup {
23 const popup = L.popup(); 30 const popup = L.popup();
24 popup.setContent(content); 31 popup.setContent(content);
25 target.bindPopup(popup, { autoClose: settings.autocloseTooltip, closeOnClick: false }); 32 target.bindPopup(popup, { autoClose: settings.autocloseTooltip, closeOnClick: false });
26 if (settings.showTooltipAction === 'hover') { 33 if (settings.showTooltipAction === 'hover') {
27 target.off('click'); 34 target.off('click');
28 - target.on('mouseover', function () { 35 + target.on('mouseover', () => {
29 target.openPopup(); 36 target.openPopup();
30 }); 37 });
31 - target.on('mouseout', function () { 38 + target.on('mouseout', () => {
32 target.closePopup(); 39 target.closePopup();
33 }); 40 });
34 } 41 }
@@ -37,7 +44,7 @@ export function createTooltip(target: L.Layer, @@ -37,7 +44,7 @@ export function createTooltip(target: L.Layer,
37 Array.from(actions).forEach( 44 Array.from(actions).forEach(
38 (element: HTMLElement) => { 45 (element: HTMLElement) => {
39 if (element && settings.tooltipAction[element.id]) { 46 if (element && settings.tooltipAction[element.id]) {
40 - element.addEventListener('click', settings.tooltipAction[element.id]) 47 + element.addEventListener('click', ($event) => settings.tooltipAction[element.id]($event, datasource));
41 } 48 }
42 }); 49 });
43 }); 50 });
@@ -46,7 +53,7 @@ export function createTooltip(target: L.Layer, @@ -46,7 +53,7 @@ export function createTooltip(target: L.Layer,
46 53
47 export function getRatio(firsMoment: number, secondMoment: number, intermediateMoment: number): number { 54 export function getRatio(firsMoment: number, secondMoment: number, intermediateMoment: number): number {
48 return (intermediateMoment - firsMoment) / (secondMoment - firsMoment); 55 return (intermediateMoment - firsMoment) / (secondMoment - firsMoment);
49 -}; 56 +}
50 57
51 export function findAngle(startPoint, endPoint) { 58 export function findAngle(startPoint, endPoint) {
52 let angle = -Math.atan2(endPoint.latitude - startPoint.latitude, endPoint.longitude - startPoint.longitude); 59 let angle = -Math.atan2(endPoint.latitude - startPoint.latitude, endPoint.longitude - startPoint.longitude);
@@ -62,3 +69,170 @@ export function getDefCenterPosition(position) { @@ -62,3 +69,170 @@ export function getDefCenterPosition(position) {
62 return position; 69 return position;
63 return [0, 0]; 70 return [0, 0];
64 } 71 }
  72 +
  73 +
  74 +const imageAspectMap = {};
  75 +
  76 +function imageLoader(imageUrl: string): Observable<HTMLImageElement> {
  77 + return new Observable((observer: Observer<HTMLImageElement>) => {
  78 + const image = new Image();
  79 + image.style.position = 'absolute';
  80 + image.style.left = '-99999px';
  81 + image.style.top = '-99999px';
  82 + image.onload = () => {
  83 + observer.next(image);
  84 + document.body.removeChild(image);
  85 + observer.complete();
  86 + };
  87 + image.onerror = err => {
  88 + observer.error(err);
  89 + document.body.removeChild(image);
  90 + observer.complete();
  91 + };
  92 + document.body.appendChild(image)
  93 + image.src = imageUrl;
  94 + });
  95 +}
  96 +
  97 +export function aspectCache(imageUrl: string): Observable<number> {
  98 + if (imageUrl?.length) {
  99 + const hash = hashCode(imageUrl);
  100 + let aspect = imageAspectMap[hash];
  101 + if (aspect) {
  102 + return of(aspect);
  103 + }
  104 + else return imageLoader(imageUrl).pipe(map(image => {
  105 + aspect = image.width / image.height;
  106 + imageAspectMap[hash] = aspect;
  107 + return aspect;
  108 + }))
  109 + }
  110 +}
  111 +
  112 +function parseTemplate(template: string, data: { $datasource?: Datasource, [key: string]: any },
  113 + translateFn?: (key: string) => string) {
  114 + let res = '';
  115 + try {
  116 + if (template.match(/<link-act/g)) {
  117 + template = template.replace(/<link-act/g, '<a href="#"').replace(/link-act>/g, 'a>')
  118 + .replace(/name=(['"])(.*?)(['"])/g, `class='tb-custom-action' id='$2'`);
  119 + }
  120 + if (translateFn) {
  121 + template = translateFn(template);
  122 + }
  123 + template = createLabelFromDatasource(data.$datasource, template);
  124 + const formatted = template.match(/\${([^}]*):\d*}/g);
  125 + if (formatted)
  126 + formatted.forEach(value => {
  127 + const [variable, digits] = value.replace('${', '').replace('}', '').split(':');
  128 + data[variable] = padValue(data[variable], +digits);
  129 + if (data[variable] === 'NaN') data[variable] = '';
  130 + template = template.replace(value, '${' + variable + '}');
  131 + });
  132 + const variables = template.match(/\${.*?}/g);
  133 + if (variables) {
  134 + variables.forEach(variable => {
  135 + variable = variable.replace('${', '').replace('}', '');
  136 + if (!data[variable])
  137 + data[variable] = '';
  138 + })
  139 + }
  140 + const compiled = _.template(template);
  141 + res = compiled(data);
  142 + }
  143 + catch (ex) {
  144 + console.log(ex, template)
  145 + }
  146 + return res;
  147 +}
  148 +
  149 +type TranslateFunc = (key: string, defaultTranslation?: string) => string;
  150 +
  151 +export const parseWithTranslation = {
  152 +
  153 + translateFn: null,
  154 +
  155 + translate(key: string, defaultTranslation?: string): string {
  156 + if (this.translateFn) {
  157 + return this.translateFn(key, defaultTranslation);
  158 + } else {
  159 + throw console.error('Translate not assigned');
  160 + }
  161 + },
  162 + parseTemplate(template: string, data: object, forceTranslate = false): string {
  163 + return parseTemplate(forceTranslate ? this.translate(template) : template, data, this.translate.bind(this));
  164 + },
  165 + setTranslate(translateFn: TranslateFunc) {
  166 + this.translateFn = translateFn;
  167 + }
  168 +}
  169 +
  170 +export function parseData(input: any[]): FormattedData[] {
  171 + return _(input).groupBy(el => el?.datasource?.entityName)
  172 + .values().value().map((entityArray, i) => {
  173 + const obj = {
  174 + entityName: entityArray[0]?.datasource?.entityName,
  175 + $datasource: entityArray[0]?.datasource as Datasource,
  176 + dsIndex: i,
  177 + deviceType: null
  178 + };
  179 + entityArray.filter(el => el.data.length).forEach(el => {
  180 + obj[el?.dataKey?.label] = el?.data[0][1];
  181 + obj[el?.dataKey?.label + '|ts'] = el?.data[0][0];
  182 + if (el?.dataKey?.label === 'type') {
  183 + obj.deviceType = el?.data[0][1];
  184 + }
  185 + });
  186 + return obj;
  187 + });
  188 +}
  189 +
  190 +export function parseArray(input: any[]): any[] {
  191 + return _(input).groupBy(el => el?.datasource?.entityName)
  192 + .values().value().map((entityArray, dsIndex) =>
  193 + entityArray[0].data.map((el, i) => {
  194 + const obj = {
  195 + entityName: entityArray[0]?.datasource?.entityName,
  196 + $datasource: entityArray[0]?.datasource,
  197 + dsIndex,
  198 + time: el[0],
  199 + deviceType: null
  200 + };
  201 + entityArray.filter(e => e.data.length).forEach(entity => {
  202 + obj[entity?.dataKey?.label] = entity?.data[i][1];
  203 + obj[entity?.dataKey?.label + '|ts'] = entity?.data[0][0];
  204 + if (entity?.dataKey?.label === 'type') {
  205 + obj.deviceType = entity?.data[0][1];
  206 + }
  207 + });
  208 + return obj;
  209 + })
  210 + );
  211 +}
  212 +
  213 +export function parseFunction(source: any, params: string[] = ['def']): (...args: any[]) => any {
  214 + let res = null;
  215 + if (source?.length) {
  216 + try {
  217 + res = new Function(...params, source);
  218 + }
  219 + catch (err) {
  220 + res = null;
  221 + }
  222 + }
  223 + return res;
  224 +}
  225 +
  226 +export function safeExecute(func: (...args: any[]) => any, params = []) {
  227 + let res = null;
  228 + if (func && typeof (func) === 'function') {
  229 + try {
  230 + res = func(...params);
  231 + }
  232 + catch (err) {
  233 + console.log('error in external function:', err);
  234 + res = null;
  235 + }
  236 + }
  237 + return res;
  238 +}
@@ -14,10 +14,9 @@ @@ -14,10 +14,9 @@
14 /// limitations under the License. 14 /// limitations under the License.
15 /// 15 ///
16 16
17 -import { aspectCache, parseWithTranslation, safeExecute } from '@app/core/utils';  
18 import L, { LeafletMouseEvent } from 'leaflet'; 17 import L, { LeafletMouseEvent } from 'leaflet';
19 import { FormattedData, MarkerSettings } from './map-models'; 18 import { FormattedData, MarkerSettings } from './map-models';
20 -import { createTooltip } from './maps-utils'; 19 +import { aspectCache, createTooltip, parseWithTranslation, safeExecute } from './maps-utils';
21 import tinycolor from 'tinycolor2'; 20 import tinycolor from 'tinycolor2';
22 21
23 export class Marker { 22 export class Marker {
@@ -42,7 +41,7 @@ export class Marker { @@ -42,7 +41,7 @@ export class Marker {
42 }); 41 });
43 42
44 if (settings.showTooltip) { 43 if (settings.showTooltip) {
45 - this.tooltip = createTooltip(this.leafletMarker, settings); 44 + this.tooltip = createTooltip(this.leafletMarker, settings, data.$datasource);
46 this.updateMarkerTooltip(data); 45 this.updateMarkerTooltip(data);
47 } 46 }
48 47
@@ -50,7 +49,7 @@ export class Marker { @@ -50,7 +49,7 @@ export class Marker {
50 this.leafletMarker.on('click', (event: LeafletMouseEvent) => { 49 this.leafletMarker.on('click', (event: LeafletMouseEvent) => {
51 for (const action in this.settings.markerClick) { 50 for (const action in this.settings.markerClick) {
52 if (typeof (this.settings.markerClick[action]) === 'function') { 51 if (typeof (this.settings.markerClick[action]) === 'function') {
53 - this.settings.markerClick[action](event); 52 + this.settings.markerClick[action](event.originalEvent, this.data.$datasource);
54 } 53 }
55 } 54 }
56 }); 55 });
@@ -184,4 +183,4 @@ export class Marker { @@ -184,4 +183,4 @@ export class Marker {
184 setMarkerPosition(latLng) { 183 setMarkerPosition(latLng) {
185 this.leafletMarker.setLatLng(latLng); 184 this.leafletMarker.setLatLng(latLng);
186 } 185 }
187 -}  
  186 +}
@@ -14,11 +14,10 @@ @@ -14,11 +14,10 @@
14 /// limitations under the License. 14 /// limitations under the License.
15 /// 15 ///
16 16
17 -import L, { LatLngExpression, LatLngTuple } from 'leaflet';  
18 -import { createTooltip } from './maps-utils';  
19 -import { PolygonSettings, FormattedData } from './map-models'; 17 +import L, { LatLngExpression, LatLngTuple, LeafletMouseEvent } from 'leaflet';
  18 +import { createTooltip, parseWithTranslation, safeExecute } from './maps-utils';
  19 +import { PolygonSettings } from './map-models';
20 import { DatasourceData } from '@app/shared/models/widget.models'; 20 import { DatasourceData } from '@app/shared/models/widget.models';
21 -import { safeExecute, parseWithTranslation } from '@app/core/utils';  
22 21
23 export class Polygon { 22 export class Polygon {
24 23
@@ -27,7 +26,7 @@ export class Polygon { @@ -27,7 +26,7 @@ export class Polygon {
27 data; 26 data;
28 dataSources; 27 dataSources;
29 28
30 - constructor(public map, polyData: DatasourceData, dataSources, private settings: PolygonSettings, onClickListener?) { 29 + constructor(public map, polyData: DatasourceData, dataSources, private settings: PolygonSettings) {
31 this.leafletPoly = L.polygon(polyData.data, { 30 this.leafletPoly = L.polygon(polyData.data, {
32 fill: true, 31 fill: true,
33 fillColor: settings.polygonColor, 32 fillColor: settings.polygonColor,
@@ -39,11 +38,17 @@ export class Polygon { @@ -39,11 +38,17 @@ export class Polygon {
39 this.dataSources = dataSources; 38 this.dataSources = dataSources;
40 this.data = polyData; 39 this.data = polyData;
41 if (settings.showPolygonTooltip) { 40 if (settings.showPolygonTooltip) {
42 - this.tooltip = createTooltip(this.leafletPoly, settings); 41 + this.tooltip = createTooltip(this.leafletPoly, settings, polyData.datasource);
43 this.updateTooltip(polyData); 42 this.updateTooltip(polyData);
44 } 43 }
45 - if (onClickListener) {  
46 - this.leafletPoly.on('click', onClickListener); 44 + if (settings.polygonClick) {
  45 + this.leafletPoly.on('click', (event: LeafletMouseEvent) => {
  46 + for (const action in this.settings.polygonClick) {
  47 + if (typeof (this.settings.polygonClick[action]) === 'function') {
  48 + this.settings.polygonClick[action](event.originalEvent, polyData.datasource);
  49 + }
  50 + }
  51 + });
47 } 52 }
48 } 53 }
49 54
@@ -17,8 +17,8 @@ @@ -17,8 +17,8 @@
17 import L, { PolylineDecoratorOptions } from 'leaflet'; 17 import L, { PolylineDecoratorOptions } from 'leaflet';
18 import 'leaflet-polylinedecorator'; 18 import 'leaflet-polylinedecorator';
19 19
20 -import { safeExecute } from '@app/core/utils';  
21 import { PolylineSettings } from './map-models'; 20 import { PolylineSettings } from './map-models';
  21 +import { safeExecute } from '@home/components/widget/lib/maps/maps-utils';
22 22
23 export class Polyline { 23 export class Polyline {
24 24
@@ -95,4 +95,4 @@ export class Polyline { @@ -95,4 +95,4 @@ export class Polyline {
95 setPolylineLatLngs(latLngs) { 95 setPolylineLatLngs(latLngs) {
96 this.leafletPoly.setLatLngs(latLngs); 96 this.leafletPoly.setLatLngs(latLngs);
97 } 97 }
98 -}  
  98 +}
@@ -29,7 +29,7 @@ export class GoogleMap extends LeafletMap { @@ -29,7 +29,7 @@ export class GoogleMap extends LeafletMap {
29 super($container, options); 29 super($container, options);
30 this.loadGoogle(() => { 30 this.loadGoogle(() => {
31 const map = L.map($container).setView(options?.defaultCenterPosition, options?.defaultZoomLevel); 31 const map = L.map($container).setView(options?.defaultCenterPosition, options?.defaultZoomLevel);
32 - const roads = (L.gridLayer as any).googleMutant({ 32 + (L.gridLayer as any).googleMutant({
33 type: options?.gmDefaultMapType || 'roadmap' 33 type: options?.gmDefaultMapType || 'roadmap'
34 }).addTo(map); 34 }).addTo(map);
35 super.setMap(map); 35 super.setMap(map);
@@ -14,12 +14,12 @@ @@ -14,12 +14,12 @@
14 /// limitations under the License. 14 /// limitations under the License.
15 /// 15 ///
16 16
17 -import L, { LatLngLiteral } from 'leaflet'; 17 +import L, { LatLngLiteral, LatLngBounds, LatLngTuple } from 'leaflet';
18 import LeafletMap from '../leaflet-map'; 18 import LeafletMap from '../leaflet-map';
19 import { UnitedMapSettings } from '../map-models'; 19 import { UnitedMapSettings } from '../map-models';
20 -import { aspectCache, parseFunction } from '@app/core/utils';  
21 import { Observable } from 'rxjs'; 20 import { Observable } from 'rxjs';
22 import { map, filter, switchMap } from 'rxjs/operators'; 21 import { map, filter, switchMap } from 'rxjs/operators';
  22 +import { aspectCache, parseFunction } from '@home/components/widget/lib/maps/maps-utils';
23 23
24 const maxZoom = 4;// ? 24 const maxZoom = 4;// ?
25 25
@@ -108,11 +108,12 @@ export class ImageMap extends LeafletMap { @@ -108,11 +108,12 @@ export class ImageMap extends LeafletMap {
108 this.updateBounds(updateImage, lastCenterPos); 108 this.updateBounds(updateImage, lastCenterPos);
109 this.map.invalidateSize(true); 109 this.map.invalidateSize(true);
110 } 110 }
111 -  
112 } 111 }
113 } 112 }
114 } 113 }
115 114
  115 + fitBounds(bounds: LatLngBounds, useDefaultZoom = false, padding?: LatLngTuple) { }
  116 +
116 initMap(updateImage?) { 117 initMap(updateImage?) {
117 if (!this.map && this.aspect > 0) { 118 if (!this.map && this.aspect > 0) {
118 const center = this.pointToLatLng(this.width / 2, this.height / 2); 119 const center = this.pointToLatLng(this.width / 2, this.height / 2);
@@ -558,32 +558,6 @@ export const markerClusteringSettingsSchema = @@ -558,32 +558,6 @@ export const markerClusteringSettingsSchema =
558 ] 558 ]
559 }; 559 };
560 560
561 -export const markerClusteringSettingsSchemaGoogle =  
562 -{  
563 - schema: {  
564 - title: 'Marker Clustering Configuration Google',  
565 - type: 'object',  
566 - properties: {  
567 - gridSize: {  
568 - title: 'Maximum radius that a cluster will cover in pixels',  
569 - type: 'number',  
570 - default: 60  
571 - },  
572 - minimumClusterSize: {  
573 - title: 'The minimum number of markers in a cluster',  
574 - type: 'number'  
575 - }  
576 - },  
577 - required: []  
578 - },  
579 - form: [  
580 - 'gridSize',  
581 - 'minimumClusterSize'  
582 - ]  
583 -};  
584 -  
585 -  
586 -  
587 export const markerClusteringSettingsSchemaLeaflet = 561 export const markerClusteringSettingsSchemaLeaflet =
588 { 562 {
589 schema: { 563 schema: {
@@ -1271,4 +1245,4 @@ export const tripAnimationSchema = { @@ -1271,4 +1245,4 @@ export const tripAnimationSchema = {
1271 } 1245 }
1272 ] 1246 ]
1273 }] 1247 }]
1274 -}  
  1248 +}
@@ -40,7 +40,7 @@ import { @@ -40,7 +40,7 @@ import {
40 } from '@shared/models/widget.models'; 40 } from '@shared/models/widget.models';
41 import { UtilsService } from '@core/services/utils.service'; 41 import { UtilsService } from '@core/services/utils.service';
42 import { TranslateService } from '@ngx-translate/core'; 42 import { TranslateService } from '@ngx-translate/core';
43 -import { isDefined, isNumber } from '@core/utils'; 43 +import { hashCode, isDefined, isNumber } from '@core/utils';
44 import cssjs from '@core/css/css'; 44 import cssjs from '@core/css/css';
45 import { PageLink } from '@shared/models/page/page-link'; 45 import { PageLink } from '@shared/models/page/page-link';
46 import { Direction, SortOrder, sortOrderFromString } from '@shared/models/page/sort-order'; 46 import { Direction, SortOrder, sortOrderFromString } from '@shared/models/page/sort-order';
@@ -230,7 +230,7 @@ export class TimeseriesTableWidgetComponent extends PageComponent implements OnI @@ -230,7 +230,7 @@ export class TimeseriesTableWidgetComponent extends PageComponent implements OnI
230 230
231 const cssParser = new cssjs(); 231 const cssParser = new cssjs();
232 cssParser.testMode = false; 232 cssParser.testMode = false;
233 - const namespace = 'ts-table-' + this.utils.hashCode(cssString); 233 + const namespace = 'ts-table-' + hashCode(cssString);
234 cssParser.cssPreviewNamespace = namespace; 234 cssParser.cssPreviewNamespace = namespace;
235 cssParser.createStyleElement(namespace, cssString); 235 cssParser.createStyleElement(namespace, cssString);
236 $(this.elementRef.nativeElement).addClass(namespace); 236 $(this.elementRef.nativeElement).addClass(namespace);
@@ -22,12 +22,11 @@ import { interpolateOnPointSegment } from 'leaflet-geometryutil'; @@ -22,12 +22,11 @@ import { interpolateOnPointSegment } from 'leaflet-geometryutil';
22 import { AfterViewInit, ChangeDetectorRef, Component, Input, OnInit, SecurityContext, ViewChild } from '@angular/core'; 22 import { AfterViewInit, ChangeDetectorRef, Component, Input, OnInit, SecurityContext, ViewChild } from '@angular/core';
23 import { MapWidgetController, TbMapWidgetV2 } from '../lib/maps/map-widget2'; 23 import { MapWidgetController, TbMapWidgetV2 } from '../lib/maps/map-widget2';
24 import { MapProviders } from '../lib/maps/map-models'; 24 import { MapProviders } from '../lib/maps/map-models';
25 -import { parseArray, parseWithTranslation, safeExecute, parseTemplate } from '@app/core/utils';  
26 import { initSchema, addToSchema, addGroupInfo } from '@app/core/schema-utils'; 25 import { initSchema, addToSchema, addGroupInfo } from '@app/core/schema-utils';
27 import { tripAnimationSchema } from '../lib/maps/schemes'; 26 import { tripAnimationSchema } from '../lib/maps/schemes';
28 import { DomSanitizer } from '@angular/platform-browser'; 27 import { DomSanitizer } from '@angular/platform-browser';
29 import { WidgetContext } from '@app/modules/home/models/widget-component.models'; 28 import { WidgetContext } from '@app/modules/home/models/widget-component.models';
30 -import { findAngle, getRatio } from '../lib/maps/maps-utils'; 29 +import { findAngle, getRatio, parseArray, parseWithTranslation, safeExecute } from '../lib/maps/maps-utils';
31 import { JsonSettingsSchema, WidgetConfig } from '@shared/models/widget.models'; 30 import { JsonSettingsSchema, WidgetConfig } from '@shared/models/widget.models';
32 import moment from 'moment'; 31 import moment from 'moment';
33 32
@@ -20,4 +20,3 @@ export * from './keyboard-shortcut.pipe'; @@ -20,4 +20,3 @@ export * from './keyboard-shortcut.pipe';
20 export * from './milliseconds-to-time-string.pipe'; 20 export * from './milliseconds-to-time-string.pipe';
21 export * from './nospace.pipe'; 21 export * from './nospace.pipe';
22 export * from './truncate.pipe'; 22 export * from './truncate.pipe';
23 -export * from './template.pipe';  
1 -///  
2 -/// Copyright © 2016-2020 The Thingsboard Authors  
3 -///  
4 -/// Licensed under the Apache License, Version 2.0 (the "License");  
5 -/// you may not use this file except in compliance with the License.  
6 -/// You may obtain a copy of the License at  
7 -///  
8 -/// http://www.apache.org/licenses/LICENSE-2.0  
9 -///  
10 -/// Unless required by applicable law or agreed to in writing, software  
11 -/// distributed under the License is distributed on an "AS IS" BASIS,  
12 -/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
13 -/// See the License for the specific language governing permissions and  
14 -/// limitations under the License.  
15 -///  
16 -  
17 -import { Pipe, PipeTransform } from '@angular/core';  
18 -import { parseTemplate, parseWithTranslation } from '@app/core/utils';  
19 -  
20 -@Pipe({ name: 'tbParseTemplate' })  
21 -export class TbTemplatePipe implements PipeTransform {  
22 - transform(template, data): string {  
23 - return parseWithTranslation.parseTemplate(template, data);  
24 - }  
25 -}  
@@ -131,7 +131,6 @@ import { LedLightComponent } from '@shared/components/led-light.component'; @@ -131,7 +131,6 @@ import { LedLightComponent } from '@shared/components/led-light.component';
131 import { TbJsonToStringDirective } from '@shared/components/directives/tb-json-to-string.directive'; 131 import { TbJsonToStringDirective } from '@shared/components/directives/tb-json-to-string.directive';
132 import { JsonObjectEditDialogComponent } from '@shared/components/dialog/json-object-edit-dialog.component'; 132 import { JsonObjectEditDialogComponent } from '@shared/components/dialog/json-object-edit-dialog.component';
133 import { HistorySelectorComponent } from './components/time/history-selector/history-selector.component'; 133 import { HistorySelectorComponent } from './components/time/history-selector/history-selector.component';
134 -import { TbTemplatePipe } from '@shared/pipe/template.pipe';  
135 import { EntityGatewaySelectComponent } from '@shared/components/entity/entity-gateway-select.component'; 134 import { EntityGatewaySelectComponent } from '@shared/components/entity/entity-gateway-select.component';
136 import { QueueTypeListComponent } from '@shared/components/queue/queue-type-list.component'; 135 import { QueueTypeListComponent } from '@shared/components/queue/queue-type-list.component';
137 136
@@ -215,7 +214,6 @@ import { QueueTypeListComponent } from '@shared/components/queue/queue-type-list @@ -215,7 +214,6 @@ import { QueueTypeListComponent } from '@shared/components/queue/queue-type-list
215 HighlightPipe, 214 HighlightPipe,
216 TruncatePipe, 215 TruncatePipe,
217 TbJsonPipe, 216 TbJsonPipe,
218 - TbTemplatePipe,  
219 KeyboardShortcutPipe, 217 KeyboardShortcutPipe,
220 TbJsonToStringDirective, 218 TbJsonToStringDirective,
221 JsonObjectEditDialogComponent, 219 JsonObjectEditDialogComponent,
@@ -377,7 +375,6 @@ import { QueueTypeListComponent } from '@shared/components/queue/queue-type-list @@ -377,7 +375,6 @@ import { QueueTypeListComponent } from '@shared/components/queue/queue-type-list
377 HighlightPipe, 375 HighlightPipe,
378 TruncatePipe, 376 TruncatePipe,
379 TbJsonPipe, 377 TbJsonPipe,
380 - TbTemplatePipe,  
381 KeyboardShortcutPipe, 378 KeyboardShortcutPipe,
382 TranslateModule, 379 TranslateModule,
383 JsonObjectEditDialogComponent, 380 JsonObjectEditDialogComponent,