changeset 79:0c188ed3bcd8

starting lit upgrade. total mess right now
author drewp@bigasterisk.com
date Wed, 17 Nov 2021 13:01:08 -0800
parents ea9c9db282d6
children 7c93e17b1111
files index.html package.json pnpm-lock.yaml rollup.config.js src/demo.ts src/graph_queries.ts src/graph_view.ts src/index.ts src/streamed_graph_client.ts
diffstat 9 files changed, 3015 insertions(+), 3210 deletions(-) [+]
line wrap: on
line diff
--- a/index.html	Tue Feb 11 22:55:24 2020 -0800
+++ b/index.html	Wed Nov 17 13:01:08 2021 -0800
@@ -3,13 +3,31 @@
   <body>
     <h1>streamed-graph demo</h1>
     <script type="module" src="./build/demo.js"></script>
-    <dom-bind>
-      <template>
+    
+    <template>
         <streamed-graph
           url="http://bang:9075/graph/events"
           expanded="true"
         ></streamed-graph>
       </template>
-    </dom-bind>
+    
+
+new style:
+    <div id="demo"></div>
+
+    <script type="module">
+      import { html, render } from 'lit';
+      import '../dist/src/graph-view.js';
+  
+      const title = 'Hello owc World!';
+      render(
+        html`
+          <graph-view .title=${title}>
+            some light-dom
+          </graph-view>
+        `,
+        document.querySelector('#demo')
+      );
+    </script>
   </body>
 </html>
--- a/package.json	Tue Feb 11 22:55:24 2020 -0800
+++ b/package.json	Wed Nov 17 13:01:08 2021 -0800
@@ -1,6 +1,6 @@
 {
   "name": "streamed-graph",
-  "version": "0.0.2",
+  "version": "0.0.3",
   "license": "MIT",
   "types": "build/index.d.ts",
   "module": "build/lib.bundle",
@@ -11,30 +11,28 @@
     "test_forever": "jest --watch"
   },
   "dependencies": {
-    "@polymer/decorators": "^3.0.0",
-    "@polymer/polymer": "^3.3.1",
-    "@types/jsonld": "^1.5.1",
-    "@types/n3": "^1.1.5",
-    "jsonld": "^2.0.2",
-    "lit-html": "^1.1.2",
-    "n3": "^1.3.5",
-    "rdf-js": "^1.0.2"
+    "lit": "^2.0.2",
+    "@types/jsonld": "^1.5.6",
+    "@types/n3": "^1.10.4",
+    "jsonld": "^5.2.0",
+    "n3": "^1.11.2",
+    "rdf-js": "^4.0.2"
   },
   "devDependencies": {
-    "@rollup/plugin-commonjs": "^11.0.2",
-    "@rollup/plugin-node-resolve": "^7.1.1",
-    "@rollup/plugin-replace": "^2.3.1",
-    "@types/jest": "^25.1.2",
-    "@types/rollup-plugin-postcss": "^2.0.0",
-    "jest": "^25.1.0",
+    "@rollup/plugin-commonjs": "^21.0.1",
+    "@rollup/plugin-node-resolve": "^13.0.6",
+    "@rollup/plugin-replace": "^3.0.0",
+    "@types/jest": "^27.0.2",
+    "@types/rollup-plugin-postcss": "^3.1.4",
+    "jest": "^27.3.1",
     "node-globals": "^0.1.5",
-    "rollup": "^1.31.0",
+    "rollup": "^2.60.0",
     "rollup-plugin-node-builtins": "^2.1.2",
-    "rollup-plugin-postcss": "^2.0.6",
-    "rollup-plugin-typescript2": "^0.26.0",
-    "stylus": "^0.54.7",
-    "ts-jest": "^25.2.0",
-    "tslib": "^1.10.0",
-    "typescript": "^3.7.5"
+    "rollup-plugin-postcss": "^4.0.1",
+    "@rollup/plugin-typescript": "^8.3.0",
+    "stylus": "^0.55.0",
+    "ts-jest": "^27.0.7",
+    "tslib": "^2.3.1",
+    "typescript": "^4.4.4"
   }
 }
--- a/pnpm-lock.yaml	Tue Feb 11 22:55:24 2020 -0800
+++ b/pnpm-lock.yaml	Wed Nov 17 13:01:08 2021 -0800
@@ -1,39 +1,39 @@
 dependencies:
-  '@polymer/decorators': 3.0.0
-  '@polymer/polymer': 3.3.1
-  '@types/jsonld': 1.5.1
-  '@types/n3': 1.1.5
-  jsonld: 2.0.2
-  lit-html: 1.1.2
-  n3: 1.3.5
-  rdf-js: 1.0.2
+  '@types/jsonld': 1.5.6
+  '@types/n3': 1.10.4
+  jsonld: 5.2.0
+  lit: 2.0.2
+  n3: 1.11.2
+  rdf-js: 4.0.2
 devDependencies:
-  '@rollup/plugin-commonjs': 11.0.2_rollup@1.31.0
-  '@rollup/plugin-node-resolve': 7.1.1_rollup@1.31.0
-  '@rollup/plugin-replace': 2.3.1_rollup@1.31.0
-  '@types/jest': 25.1.2
-  '@types/rollup-plugin-postcss': 2.0.0
-  jest: 25.1.0
+  '@rollup/plugin-commonjs': 21.0.1_rollup@2.60.0
+  '@rollup/plugin-node-resolve': 13.0.6_rollup@2.60.0
+  '@rollup/plugin-replace': 3.0.0_rollup@2.60.0
+  '@rollup/plugin-typescript': 8.3.0_15dfac413fd0241781a9fd89f988e2e5
+  '@types/jest': 27.0.2
+  '@types/rollup-plugin-postcss': 3.1.4
+  jest: 27.3.1
   node-globals: 0.1.5
-  rollup: 1.31.0
+  rollup: 2.60.0
   rollup-plugin-node-builtins: 2.1.2
-  rollup-plugin-postcss: 2.0.6
-  rollup-plugin-typescript2: 0.26.0_rollup@1.31.0+typescript@3.7.5
-  stylus: 0.54.7
-  ts-jest: 25.2.0_jest@25.1.0
-  tslib: 1.10.0
-  typescript: 3.7.5
+  rollup-plugin-postcss: 4.0.1
+  stylus: 0.55.0
+  ts-jest: 27.0.7_2c4ca6574207836d1023f54689cc81ac
+  tslib: 2.3.1
+  typescript: 4.4.4
 lockfileVersion: 5.1
 packages:
-  /@babel/code-frame/7.8.3:
-    dependencies:
-      '@babel/highlight': 7.8.3
-    dev: true
-    resolution:
-      integrity: sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==
+  /@babel/code-frame/7.16.0:
+    dependencies:
+      '@babel/highlight': 7.16.0
+    dev: true
+    engines:
+      node: '>=6.9.0'
+    resolution:
+      integrity: sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==
   /@babel/core/7.8.3:
     dependencies:
-      '@babel/code-frame': 7.8.3
+      '@babel/code-frame': 7.16.0
       '@babel/generator': 7.8.3
       '@babel/helpers': 7.8.3
       '@babel/parser': 7.8.3
@@ -45,7 +45,7 @@
       gensync: 1.0.0-beta.1
       json5: 2.1.1
       lodash: 4.17.15
-      resolve: 1.15.1
+      resolve: 1.20.0
       semver: 5.7.1
       source-map: 0.5.7
     dev: true
@@ -57,7 +57,7 @@
     dependencies:
       '@babel/types': 7.8.3
       jsesc: 2.5.2
-      lodash: 4.17.15
+      lodash: 4.17.21
       source-map: 0.5.7
     dev: true
     resolution:
@@ -76,6 +76,12 @@
     dev: true
     resolution:
       integrity: sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==
+  /@babel/helper-plugin-utils/7.14.5:
+    dev: true
+    engines:
+      node: '>=6.9.0'
+    resolution:
+      integrity: sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
   /@babel/helper-plugin-utils/7.8.3:
     dev: true
     resolution:
@@ -86,6 +92,12 @@
     dev: true
     resolution:
       integrity: sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==
+  /@babel/helper-validator-identifier/7.15.7:
+    dev: true
+    engines:
+      node: '>=6.9.0'
+    resolution:
+      integrity: sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
   /@babel/helpers/7.8.3:
     dependencies:
       '@babel/template': 7.8.3
@@ -94,14 +106,16 @@
     dev: true
     resolution:
       integrity: sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==
-  /@babel/highlight/7.8.3:
-    dependencies:
+  /@babel/highlight/7.16.0:
+    dependencies:
+      '@babel/helper-validator-identifier': 7.15.7
       chalk: 2.4.2
-      esutils: 2.0.3
       js-tokens: 4.0.0
     dev: true
-    resolution:
-      integrity: sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==
+    engines:
+      node: '>=6.9.0'
+    resolution:
+      integrity: sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==
   /@babel/parser/7.8.3:
     dev: true
     engines:
@@ -109,27 +123,130 @@
     hasBin: true
     resolution:
       integrity: sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==
+  /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    resolution:
+      integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
   /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.8.3:
     dependencies:
       '@babel/core': 7.8.3
-      '@babel/helper-plugin-utils': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
     dev: true
     peerDependencies:
       '@babel/core': ^7.0.0-0
     resolution:
       integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
+  /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    resolution:
+      integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+  /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    resolution:
+      integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
+  /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    resolution:
+      integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+  /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    resolution:
+      integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+  /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    resolution:
+      integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+  /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    resolution:
+      integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
   /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.8.3:
     dependencies:
       '@babel/core': 7.8.3
-      '@babel/helper-plugin-utils': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
     dev: true
     peerDependencies:
       '@babel/core': ^7.0.0-0
     resolution:
       integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+  /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    resolution:
+      integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+  /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    resolution:
+      integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+  /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+    engines:
+      node: '>=6.9.0'
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    resolution:
+      integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+  /@babel/plugin-syntax-typescript/7.16.0_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+    engines:
+      node: '>=6.9.0'
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    resolution:
+      integrity: sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==
   /@babel/template/7.8.3:
     dependencies:
-      '@babel/code-frame': 7.8.3
+      '@babel/code-frame': 7.16.0
       '@babel/parser': 7.8.3
       '@babel/types': 7.8.3
     dev: true
@@ -137,7 +254,7 @@
       integrity: sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==
   /@babel/traverse/7.8.3:
     dependencies:
-      '@babel/code-frame': 7.8.3
+      '@babel/code-frame': 7.16.0
       '@babel/generator': 7.8.3
       '@babel/helper-function-name': 7.8.3
       '@babel/helper-split-export-declaration': 7.8.3
@@ -145,14 +262,14 @@
       '@babel/types': 7.8.3
       debug: 4.1.1
       globals: 11.12.0
-      lodash: 4.17.15
+      lodash: 4.17.21
     dev: true
     resolution:
       integrity: sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==
   /@babel/types/7.8.3:
     dependencies:
       esutils: 2.0.3
-      lodash: 4.17.15
+      lodash: 4.17.21
       to-fast-properties: 2.0.0
     dev: true
     resolution:
@@ -161,16 +278,16 @@
     dev: true
     resolution:
       integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-  /@cnakazawa/watch/1.0.3:
-    dependencies:
-      exec-sh: 0.3.4
-      minimist: 1.2.0
-    dev: true
-    engines:
-      node: '>=0.1.95'
-    hasBin: true
-    resolution:
-      integrity: sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==
+  /@digitalbazaar/http-client/1.2.0:
+    dependencies:
+      esm: 3.2.25
+      ky: 0.25.1
+      ky-universal: 0.8.2_ky@0.25.1
+    dev: false
+    engines:
+      node: '>=10.0.0'
+    resolution:
+      integrity: sha512-W9KQQ5pUJcaR0I4c2HPJC0a7kRbZApIorZgPnEDwMBgj16iQzutGLrCXYaZOmxqVLVNqqlQ4aUJh+HBQZy4W6Q==
   /@istanbuljs/load-nyc-config/1.0.0:
     dependencies:
       camelcase: 5.3.1
@@ -188,245 +305,303 @@
       node: '>=8'
     resolution:
       integrity: sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
-  /@jest/console/25.1.0:
-    dependencies:
-      '@jest/source-map': 25.1.0
-      chalk: 3.0.0
-      jest-util: 25.1.0
+  /@jest/console/27.3.1:
+    dependencies:
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
+      chalk: 4.1.2
+      jest-message-util: 27.3.1
+      jest-util: 27.3.1
       slash: 3.0.0
     dev: true
     engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==
-  /@jest/core/25.1.0:
-    dependencies:
-      '@jest/console': 25.1.0
-      '@jest/reporters': 25.1.0
-      '@jest/test-result': 25.1.0
-      '@jest/transform': 25.1.0
-      '@jest/types': 25.1.0
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-RkFNWmv0iui+qsOr/29q9dyfKTTT5DCuP31kUwg7rmOKPT/ozLeGLKJKVIiOfbiKyleUZKIrHwhmiZWVe8IMdw==
+  /@jest/core/27.3.1:
+    dependencies:
+      '@jest/console': 27.3.1
+      '@jest/reporters': 27.3.1
+      '@jest/test-result': 27.3.1
+      '@jest/transform': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
       ansi-escapes: 4.3.0
-      chalk: 3.0.0
+      chalk: 4.1.2
+      emittery: 0.8.1
       exit: 0.1.2
-      graceful-fs: 4.2.3
-      jest-changed-files: 25.1.0
-      jest-config: 25.1.0
-      jest-haste-map: 25.1.0
-      jest-message-util: 25.1.0
-      jest-regex-util: 25.1.0
-      jest-resolve: 25.1.0_jest-resolve@25.1.0
-      jest-resolve-dependencies: 25.1.0
-      jest-runner: 25.1.0
-      jest-runtime: 25.1.0
-      jest-snapshot: 25.1.0
-      jest-util: 25.1.0
-      jest-validate: 25.1.0
-      jest-watcher: 25.1.0
-      micromatch: 4.0.2
-      p-each-series: 2.1.0
-      realpath-native: 1.1.0
+      graceful-fs: 4.2.8
+      jest-changed-files: 27.3.0
+      jest-config: 27.3.1
+      jest-haste-map: 27.3.1
+      jest-message-util: 27.3.1
+      jest-regex-util: 27.0.6
+      jest-resolve: 27.3.1_jest-resolve@27.3.1
+      jest-resolve-dependencies: 27.3.1
+      jest-runner: 27.3.1
+      jest-runtime: 27.3.1
+      jest-snapshot: 27.3.1
+      jest-util: 27.3.1
+      jest-validate: 27.3.1
+      jest-watcher: 27.3.1
+      micromatch: 4.0.4
       rimraf: 3.0.2
       slash: 3.0.0
       strip-ansi: 6.0.0
     dev: true
     engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-iz05+NmwCmZRzMXvMo6KFipW7nzhbpEawrKrkkdJzgytavPse0biEnCNr2wRlyCsp3SmKaEY+SGv7YWYQnIdig==
-  /@jest/environment/25.1.0:
-    dependencies:
-      '@jest/fake-timers': 25.1.0
-      '@jest/types': 25.1.0
-      jest-mock: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-cTpUtsjU4cum53VqBDlcW0E4KbQF03Cn0jckGPW/5rrE9tb+porD3+hhLtHAwhthsqfyF+bizyodTlsRA++sHg==
-  /@jest/fake-timers/25.1.0:
-    dependencies:
-      '@jest/types': 25.1.0
-      jest-message-util: 25.1.0
-      jest-mock: 25.1.0
-      jest-util: 25.1.0
-      lolex: 5.1.2
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-Eu3dysBzSAO1lD7cylZd/CVKdZZ1/43SF35iYBNV1Lvvn2Undp3Grwsv8PrzvbLhqwRzDd4zxrY4gsiHc+wygQ==
-  /@jest/reporters/25.1.0:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    peerDependencies:
+      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+    peerDependenciesMeta:
+      node-notifier:
+        optional: true
+    resolution:
+      integrity: sha512-DMNE90RR5QKx0EA+wqe3/TNEwiRpOkhshKNxtLxd4rt3IZpCt+RSL+FoJsGeblRZmqdK4upHA/mKKGPPRAifhg==
+  /@jest/environment/27.3.1:
+    dependencies:
+      '@jest/fake-timers': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
+      jest-mock: 27.3.0
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-BCKCj4mOVLme6Tanoyc9k0ultp3pnmuyHw73UHRPeeZxirsU/7E3HC4le/VDb/SMzE1JcPnto+XBKFOcoiJzVw==
+  /@jest/fake-timers/27.3.1:
+    dependencies:
+      '@jest/types': 27.2.5
+      '@sinonjs/fake-timers': 8.1.0
+      '@types/node': 13.1.7
+      jest-message-util: 27.3.1
+      jest-mock: 27.3.0
+      jest-util: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-M3ZFgwwlqJtWZ+QkBG5NmC23A9w+A6ZxNsO5nJxJsKYt4yguBd3i8TpjQz5NfCX91nEve1KqD9RA2Q+Q1uWqoA==
+  /@jest/globals/27.3.1:
+    dependencies:
+      '@jest/environment': 27.3.1
+      '@jest/types': 27.2.5
+      expect: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-Q651FWiWQAIFiN+zS51xqhdZ8g9b88nGCobC87argAxA7nMfNQq0Q0i9zTfQYgLa6qFXk2cGANEqfK051CZ8Pg==
+  /@jest/reporters/27.3.1:
     dependencies:
       '@bcoe/v8-coverage': 0.2.3
-      '@jest/console': 25.1.0
-      '@jest/environment': 25.1.0
-      '@jest/test-result': 25.1.0
-      '@jest/transform': 25.1.0
-      '@jest/types': 25.1.0
-      chalk: 3.0.0
+      '@jest/console': 27.3.1
+      '@jest/test-result': 27.3.1
+      '@jest/transform': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
+      chalk: 4.1.2
       collect-v8-coverage: 1.0.0
       exit: 0.1.2
       glob: 7.1.6
+      graceful-fs: 4.2.8
       istanbul-lib-coverage: 3.0.0
-      istanbul-lib-instrument: 4.0.1
+      istanbul-lib-instrument: 4.0.3
       istanbul-lib-report: 3.0.0
       istanbul-lib-source-maps: 4.0.0
-      istanbul-reports: 3.0.0
-      jest-haste-map: 25.1.0
-      jest-resolve: 25.1.0_jest-resolve@25.1.0
-      jest-runtime: 25.1.0
-      jest-util: 25.1.0
-      jest-worker: 25.1.0
+      istanbul-reports: 3.0.5
+      jest-haste-map: 27.3.1
+      jest-resolve: 27.3.1_jest-resolve@27.3.1
+      jest-util: 27.3.1
+      jest-worker: 27.3.1
       slash: 3.0.0
       source-map: 0.6.1
-      string-length: 3.1.0
+      string-length: 4.0.2
       terminal-link: 2.1.1
-      v8-to-istanbul: 4.1.2
-    dev: true
-    engines:
-      node: '>= 8.3'
-    optionalDependencies:
-      node-notifier: 6.0.0
-    resolution:
-      integrity: sha512-ORLT7hq2acJQa8N+NKfs68ZtHFnJPxsGqmofxW7v7urVhzJvpKZG9M7FAcgh9Ee1ZbCteMrirHA3m5JfBtAaDg==
-  /@jest/source-map/25.1.0:
+      v8-to-istanbul: 8.1.0
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    peerDependencies:
+      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+    peerDependenciesMeta:
+      node-notifier:
+        optional: true
+    resolution:
+      integrity: sha512-m2YxPmL9Qn1emFVgZGEiMwDntDxRRQ2D58tiDQlwYTg5GvbFOKseYCcHtn0WsI8CG4vzPglo3nqbOiT8ySBT/w==
+  /@jest/source-map/27.0.6:
     dependencies:
       callsites: 3.1.0
-      graceful-fs: 4.2.3
+      graceful-fs: 4.2.8
       source-map: 0.6.1
     dev: true
     engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==
-  /@jest/test-result/25.1.0:
-    dependencies:
-      '@jest/console': 25.1.0
-      '@jest/transform': 25.1.0
-      '@jest/types': 25.1.0
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==
+  /@jest/test-result/27.3.1:
+    dependencies:
+      '@jest/console': 27.3.1
+      '@jest/types': 27.2.5
       '@types/istanbul-lib-coverage': 2.0.1
       collect-v8-coverage: 1.0.0
     dev: true
     engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==
-  /@jest/test-sequencer/25.1.0:
-    dependencies:
-      '@jest/test-result': 25.1.0
-      jest-haste-map: 25.1.0
-      jest-runner: 25.1.0
-      jest-runtime: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-WgZLRgVr2b4l/7ED1J1RJQBOharxS11EFhmwDqknpknE0Pm87HLZVS2Asuuw+HQdfQvm2aXL2FvvBLxOD1D0iw==
-  /@jest/transform/25.1.0:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-mLn6Thm+w2yl0opM8J/QnPTqrfS4FoXsXF2WIWJb2O/GBSyResL71BRuMYbYRsGt7ELwS5JGcEcGb52BNrumgg==
+  /@jest/test-sequencer/27.3.1:
+    dependencies:
+      '@jest/test-result': 27.3.1
+      graceful-fs: 4.2.8
+      jest-haste-map: 27.3.1
+      jest-runtime: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-siySLo07IMEdSjA4fqEnxfIX8lB/lWYsBPwNFtkOvsFQvmBrL3yj3k3uFNZv/JDyApTakRpxbKLJ3CT8UGVCrA==
+  /@jest/transform/27.3.1:
     dependencies:
       '@babel/core': 7.8.3
-      '@jest/types': 25.1.0
+      '@jest/types': 27.2.5
       babel-plugin-istanbul: 6.0.0
-      chalk: 3.0.0
+      chalk: 4.1.2
       convert-source-map: 1.7.0
       fast-json-stable-stringify: 2.1.0
-      graceful-fs: 4.2.3
-      jest-haste-map: 25.1.0
-      jest-regex-util: 25.1.0
-      jest-util: 25.1.0
-      micromatch: 4.0.2
+      graceful-fs: 4.2.8
+      jest-haste-map: 27.3.1
+      jest-regex-util: 27.0.6
+      jest-util: 27.3.1
+      micromatch: 4.0.4
       pirates: 4.0.1
-      realpath-native: 1.1.0
       slash: 3.0.0
       source-map: 0.6.1
       write-file-atomic: 3.0.1
     dev: true
     engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-4ktrQ2TPREVeM+KxB4zskAT84SnmG1vaz4S+51aTefyqn3zocZUnliLLm5Fsl85I3p/kFPN4CRp1RElIfXGegQ==
-  /@jest/types/25.1.0:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-3fSvQ02kuvjOI1C1ssqMVBKJpZf6nwoCiSu00zAKh5nrp3SptNtZy/8s5deayHnqxhjD9CWDJ+yqQwuQ0ZafXQ==
+  /@jest/types/27.2.5:
     dependencies:
       '@types/istanbul-lib-coverage': 2.0.1
-      '@types/istanbul-reports': 1.1.1
-      '@types/yargs': 15.0.3
-      chalk: 3.0.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA==
-  /@polymer/decorators/3.0.0:
-    dependencies:
-      '@polymer/polymer': 3.3.1
+      '@types/istanbul-reports': 3.0.1
+      '@types/node': 13.1.7
+      '@types/yargs': 16.0.4
+      chalk: 4.1.2
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==
+  /@lit/reactive-element/1.0.2:
     dev: false
     resolution:
-      integrity: sha512-qh+VID9nDV9q3ABvIfWgm7/+udl7v2HKsMLPXFm8tj1fI7qr7yWJMFwS3xWBkMmuNPtmkS8MDP0vqLAQIEOWzg==
-  /@polymer/polymer/3.3.1:
-    dependencies:
-      '@webcomponents/shadycss': 1.9.4
+      integrity: sha512-oz3d3MKjQ2tXynQgyaQaMpGTDNyNDeBdo6dXf1AbjTwhA1IRINHmA7kSaVYv9ttKweNkEoNqp9DqteDdgWzPEg==
+  /@rdfjs/types/1.0.1:
+    dependencies:
+      '@types/node': 13.1.7
     dev: false
     resolution:
-      integrity: sha512-8KaB48tzyMjdsHdxo5KvCAaqmTe7rYDzQAoj/pyEfq9Fp4YfUaS+/xqwYj0GbiDAUNzwkmEQ7dw9cgnRNdKO8A==
-  /@rollup/plugin-commonjs/11.0.2_rollup@1.31.0:
-    dependencies:
-      '@rollup/pluginutils': 3.0.8_rollup@1.31.0
-      estree-walker: 1.0.1
-      is-reference: 1.1.4
-      magic-string: 0.25.6
-      resolve: 1.15.1
-      rollup: 1.31.0
+      integrity: sha512-YxVkH0XrCNG3MWeZxfg596GFe+oorTVusmNxRP6ZHTsGczZ8AGvG3UchRNkg3Fy4MyysI7vBAA5YZbESL+VmHQ==
+  /@rollup/plugin-commonjs/21.0.1_rollup@2.60.0:
+    dependencies:
+      '@rollup/pluginutils': 3.1.0_rollup@2.60.0
+      commondir: 1.0.1
+      estree-walker: 2.0.2
+      glob: 7.1.6
+      is-reference: 1.2.1
+      magic-string: 0.25.7
+      resolve: 1.20.0
+      rollup: 2.60.0
     dev: true
     engines:
       node: '>= 8.0.0'
     peerDependencies:
-      rollup: ^1.20.0
-    resolution:
-      integrity: sha512-MPYGZr0qdbV5zZj8/2AuomVpnRVXRU5XKXb3HVniwRoRCreGlf5kOE081isNWeiLIi6IYkwTX9zE0/c7V8g81g==
-  /@rollup/plugin-node-resolve/7.1.1_rollup@1.31.0:
-    dependencies:
-      '@rollup/pluginutils': 3.0.8_rollup@1.31.0
-      '@types/resolve': 0.0.8
+      rollup: ^2.38.3
+    resolution:
+      integrity: sha512-EA+g22lbNJ8p5kuZJUYyhhDK7WgJckW5g4pNN7n4mAFUM96VuwUnNT3xr2Db2iCZPI1pJPbGyfT5mS9T1dHfMg==
+  /@rollup/plugin-node-resolve/13.0.6_rollup@2.60.0:
+    dependencies:
+      '@rollup/pluginutils': 3.1.0_rollup@2.60.0
+      '@types/resolve': 1.17.1
       builtin-modules: 3.1.0
+      deepmerge: 4.2.2
       is-module: 1.0.0
-      resolve: 1.15.1
-      rollup: 1.31.0
+      resolve: 1.20.0
+      rollup: 2.60.0
+    dev: true
+    engines:
+      node: '>= 10.0.0'
+    peerDependencies:
+      rollup: ^2.42.0
+    resolution:
+      integrity: sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==
+  /@rollup/plugin-replace/3.0.0_rollup@2.60.0:
+    dependencies:
+      '@rollup/pluginutils': 3.1.0_rollup@2.60.0
+      magic-string: 0.25.7
+      rollup: 2.60.0
+    dev: true
+    peerDependencies:
+      rollup: ^1.20.0 || ^2.0.0
+    resolution:
+      integrity: sha512-3c7JCbMuYXM4PbPWT4+m/4Y6U60SgsnDT/cCyAyUKwFHg7pTSfsSQzIpETha3a3ig6OdOKzZz87D9ZXIK3qsDg==
+  /@rollup/plugin-typescript/8.3.0_15dfac413fd0241781a9fd89f988e2e5:
+    dependencies:
+      '@rollup/pluginutils': 3.1.0_rollup@2.60.0
+      resolve: 1.20.0
+      rollup: 2.60.0
+      tslib: 2.3.1
+      typescript: 4.4.4
+    dev: true
+    engines:
+      node: '>=8.0.0'
+    peerDependencies:
+      rollup: ^2.14.0
+      tslib: '*'
+      typescript: '>=3.7.0'
+    resolution:
+      integrity: sha512-I5FpSvLbtAdwJ+naznv+B4sjXZUcIvLLceYpITAn7wAP8W0wqc5noLdGIp9HGVntNhRWXctwPYrSSFQxtl0FPA==
+  /@rollup/pluginutils/3.1.0_rollup@2.60.0:
+    dependencies:
+      '@types/estree': 0.0.39
+      estree-walker: 1.0.1
+      picomatch: 2.3.0
+      rollup: 2.60.0
     dev: true
     engines:
       node: '>= 8.0.0'
     peerDependencies:
-      rollup: ^1.20.0
-    resolution:
-      integrity: sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==
-  /@rollup/plugin-replace/2.3.1_rollup@1.31.0:
-    dependencies:
-      '@rollup/pluginutils': 3.0.8_rollup@1.31.0
-      magic-string: 0.25.6
-      rollup: 1.31.0
-    dev: true
-    peerDependencies:
-      rollup: ^1.20.0
-    resolution:
-      integrity: sha512-qDcXj2VOa5+j0iudjb+LiwZHvBRRgWbHPhRmo1qde2KItTjuxDVQO21rp9/jOlzKR5YO0EsgRQoyox7fnL7y/A==
-  /@rollup/pluginutils/3.0.8_rollup@1.31.0:
-    dependencies:
-      estree-walker: 1.0.1
-      rollup: 1.31.0
-    dev: true
-    engines:
-      node: '>= 8.0.0'
-    peerDependencies:
-      rollup: ^1.20.0
-    resolution:
-      integrity: sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==
+      rollup: ^1.20.0||^2.0.0
+    resolution:
+      integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
   /@sinonjs/commons/1.7.0:
     dependencies:
       type-detect: 4.0.8
     dev: true
     resolution:
       integrity: sha512-qbk9AP+cZUsKdW1GJsBpxPKFmCJ0T8swwzVje3qFd+AkQb74Q/tiuzrdfFg8AD2g5HH/XbE/I8Uc1KYHVYWfhg==
-  /@types/babel__core/7.1.3:
+  /@sinonjs/fake-timers/8.1.0:
+    dependencies:
+      '@sinonjs/commons': 1.7.0
+    dev: true
+    resolution:
+      integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==
+  /@tootallnate/once/1.1.2:
+    dev: true
+    engines:
+      node: '>= 6'
+    resolution:
+      integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
+  /@trysound/sax/0.2.0:
+    dev: true
+    engines:
+      node: '>=10.13.0'
+    resolution:
+      integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
+  /@types/babel__core/7.1.16:
     dependencies:
       '@babel/parser': 7.8.3
       '@babel/types': 7.8.3
@@ -435,7 +610,7 @@
       '@types/babel__traverse': 7.0.8
     dev: true
     resolution:
-      integrity: sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==
+      integrity: sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==
   /@types/babel__generator/7.6.1:
     dependencies:
       '@babel/types': 7.8.3
@@ -459,12 +634,6 @@
     dev: true
     resolution:
       integrity: sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
-  /@types/cssnano/4.0.0:
-    dependencies:
-      postcss: 7.0.26
-    dev: true
-    resolution:
-      integrity: sha512-BC/2ibKZfPIaBLBNzkitdW1IvvX/LKW6/QXGc4Su/tAJ7mQ3f2CKBuGCCKaqGAnoKwzfuC7G/recpkARwdOwuA==
   /@types/estree/0.0.39:
     dev: true
     resolution:
@@ -473,6 +642,12 @@
     dev: true
     resolution:
       integrity: sha512-K1DPVvnBCPxzD+G51/cxVIoc2X8uUVl1zpJeE6iKcgHMj4+tbat5Xu4TjV7v2QSDbIeAfLi2hIk+u2+s0MlpUQ==
+  /@types/graceful-fs/4.1.5:
+    dependencies:
+      '@types/node': 13.1.7
+    dev: true
+    resolution:
+      integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==
   /@types/istanbul-lib-coverage/2.0.1:
     dev: true
     resolution:
@@ -483,76 +658,68 @@
     dev: true
     resolution:
       integrity: sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==
-  /@types/istanbul-reports/1.1.1:
-    dependencies:
-      '@types/istanbul-lib-coverage': 2.0.1
+  /@types/istanbul-reports/3.0.1:
+    dependencies:
       '@types/istanbul-lib-report': 1.1.1
     dev: true
     resolution:
-      integrity: sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==
-  /@types/jest/25.1.2:
-    dependencies:
-      jest-diff: 25.1.0
-      pretty-format: 25.1.0
-    dev: true
-    resolution:
-      integrity: sha512-EsPIgEsonlXmYV7GzUqcvORsSS9Gqxw/OvkGwHfAdpjduNRxMlhsav0O5Kb0zijc/eXSO/uW6SJt9nwull8AUQ==
-  /@types/jsonld/1.5.1:
+      integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==
+  /@types/jest/27.0.2:
+    dependencies:
+      jest-diff: 27.3.1
+      pretty-format: 27.3.1
+    dev: true
+    resolution:
+      integrity: sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA==
+  /@types/jsonld/1.5.6:
     dev: false
     resolution:
-      integrity: sha512-8XI88iiCBVqmNCMBqPOgJhJPPuiIW1Tp2sXqe3NwD137ljhQVkDWY8cuYBBDZQoBYfGzUJvja527bbwqVbRnHQ==
-  /@types/n3/1.1.5:
+      integrity: sha512-OUcfMjRie5IOrJulUQwVNvV57SOdKcTfBj3pjXNxzXqeOIrY2aGDNGW/Tlp83EQPkz4tCE6YWVrGuc/ZeaAQGg==
+  /@types/n3/1.10.4:
     dependencies:
       '@types/node': 13.1.7
-      '@types/rdf-js': 2.0.8
+      rdf-js: 4.0.2
     dev: false
     resolution:
-      integrity: sha512-FaW94FyqTIrPP3ZEiwX745xQhzeoTlNiFsXjxPWsKBd+yvBtIW3ykd9kGnGWI/jz2Rp2iFKto3Tc+IcBL6a6yA==
+      integrity: sha512-FfRTwcbXcScVHuAjIASveRWL6Fi6fPALl1Ge8tMESYLqU7R42LJvtdBpUi+f9YK0oQPqIN+zFFgMDFJfLMx0bg==
   /@types/node/13.1.7:
     resolution:
       integrity: sha512-HU0q9GXazqiKwviVxg9SI/+t/nAsGkvLDkIdxz+ObejG2nX6Si00TeLqHMoS+a/1tjH7a8YpKVQwtgHuMQsldg==
-  /@types/q/1.5.2:
-    dev: true
-    resolution:
-      integrity: sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
-  /@types/rdf-js/2.0.8:
-    dependencies:
-      '@types/node': 13.1.7
-    dev: false
-    resolution:
-      integrity: sha512-gGFjFOzOLVEBZ+OvcNGS9xuv/rY/qhnn79l7O9aj8/yuvVNGsNy476O5IKwFR15poBi/x69VB+hLQmCqEJxnmQ==
-  /@types/resolve/0.0.8:
+  /@types/prettier/2.4.2:
+    dev: true
+    resolution:
+      integrity: sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==
+  /@types/resolve/1.17.1:
     dependencies:
       '@types/node': 13.1.7
     dev: true
     resolution:
-      integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==
-  /@types/rollup-plugin-postcss/2.0.0:
-    dependencies:
-      '@types/cssnano': 4.0.0
-      '@types/node': 13.1.7
-      rollup: 0.63.5
-    dev: true
-    resolution:
-      integrity: sha512-lw4LvCcWpQ/Yomb9bxT69uAN5ZfW6nhL9itEu3z0IzsNNqKalwIDo7pEK8jxoiHQmcPaYzayAfo4M1JT/h8crw==
-  /@types/stack-utils/1.0.1:
-    dev: true
-    resolution:
-      integrity: sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
+      integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==
+  /@types/rollup-plugin-postcss/3.1.4:
+    dependencies:
+      rollup-plugin-postcss: 4.0.1
+    deprecated: 'This is a stub types definition. rollup-plugin-postcss provides its own type definitions, so you do not need this installed.'
+    dev: true
+    resolution:
+      integrity: sha512-r1udsfjOlDiErJAvpsU12LNqwYfaMtom4wTKkm8lAu/cZBYbEN7Mcfyucpicl+R3GoBkgNXE+39bEnMjXxGRdA==
+  /@types/stack-utils/2.0.1:
+    dev: true
+    resolution:
+      integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==
+  /@types/trusted-types/2.0.2:
+    dev: false
+    resolution:
+      integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==
   /@types/yargs-parser/15.0.0:
     dev: true
     resolution:
       integrity: sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==
-  /@types/yargs/15.0.3:
+  /@types/yargs/16.0.4:
     dependencies:
       '@types/yargs-parser': 15.0.0
     dev: true
     resolution:
-      integrity: sha512-XCMQRK6kfpNBixHLyHUsGmXrpEmFFxzMrcnSXFMziHd8CoNJo8l16FkHyQq4x+xbM7E2XL83/O78OD8u+iZTdQ==
-  /@webcomponents/shadycss/1.9.4:
-    dev: false
-    resolution:
-      integrity: sha512-tgNcVEaKssyeZPbUBjVQf4aryO5Fi7fxRvOxV982ZJuRVDcefmIblBh0SXAbcvAAlQ2zpNEP4SuQUnr8uApIpw==
+      integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==
   /JSONStream/1.3.5:
     dependencies:
       jsonparse: 1.3.1
@@ -561,23 +728,31 @@
     hasBin: true
     resolution:
       integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
-  /abab/2.0.3:
-    dev: true
-    resolution:
-      integrity: sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
+  /abab/2.0.5:
+    dev: true
+    resolution:
+      integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==
+  /abort-controller/3.0.0:
+    dependencies:
+      event-target-shim: 5.0.1
+    dev: false
+    engines:
+      node: '>=6.5'
+    resolution:
+      integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
   /abstract-leveldown/0.12.4:
     dependencies:
       xtend: 3.0.0
     dev: true
     resolution:
       integrity: sha1-KeGOYy5g5OIh1YECR4UqY9ey5BA=
-  /acorn-globals/4.3.4:
-    dependencies:
-      acorn: 6.4.0
-      acorn-walk: 6.2.0
-    dev: true
-    resolution:
-      integrity: sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==
+  /acorn-globals/6.0.0:
+    dependencies:
+      acorn: 7.4.1
+      acorn-walk: 7.2.0
+    dev: true
+    resolution:
+      integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==
   /acorn-node/1.8.2:
     dependencies:
       acorn: 7.1.0
@@ -586,18 +761,18 @@
     dev: true
     resolution:
       integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
-  /acorn-walk/6.2.0:
-    dev: true
-    engines:
-      node: '>=0.4.0'
-    resolution:
-      integrity: sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==
   /acorn-walk/7.0.0:
     dev: true
     engines:
       node: '>=0.4.0'
     resolution:
       integrity: sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==
+  /acorn-walk/7.2.0:
+    dev: true
+    engines:
+      node: '>=0.4.0'
+    resolution:
+      integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
   /acorn/5.7.3:
     dev: true
     engines:
@@ -605,13 +780,6 @@
     hasBin: true
     resolution:
       integrity: sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
-  /acorn/6.4.0:
-    dev: true
-    engines:
-      node: '>=0.4.0'
-    hasBin: true
-    resolution:
-      integrity: sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==
   /acorn/7.1.0:
     dev: true
     engines:
@@ -619,14 +787,28 @@
     hasBin: true
     resolution:
       integrity: sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==
-  /ajv/6.10.2:
-    dependencies:
-      fast-deep-equal: 2.0.1
-      fast-json-stable-stringify: 2.1.0
-      json-schema-traverse: 0.4.1
-      uri-js: 4.2.2
-    resolution:
-      integrity: sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
+  /acorn/7.4.1:
+    dev: true
+    engines:
+      node: '>=0.4.0'
+    hasBin: true
+    resolution:
+      integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+  /acorn/8.5.0:
+    dev: true
+    engines:
+      node: '>=0.4.0'
+    hasBin: true
+    resolution:
+      integrity: sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==
+  /agent-base/6.0.2:
+    dependencies:
+      debug: 4.1.1
+    dev: true
+    engines:
+      node: '>= 6.0.0'
+    resolution:
+      integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
   /alphanum-sort/1.0.2:
     dev: true
     resolution:
@@ -645,18 +827,12 @@
       node: '>=0.10.0'
     resolution:
       integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
-  /ansi-regex/4.1.0:
-    dev: true
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-  /ansi-regex/5.0.0:
+  /ansi-regex/5.0.1:
     dev: true
     engines:
       node: '>=8'
     resolution:
-      integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+      integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
   /ansi-styles/2.2.1:
     dev: true
     engines:
@@ -680,6 +856,12 @@
       node: '>=8'
     resolution:
       integrity: sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
+  /ansi-styles/5.2.0:
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
   /anymatch/1.3.2:
     dependencies:
       micromatch: 2.3.11
@@ -688,17 +870,10 @@
     optional: true
     resolution:
       integrity: sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==
-  /anymatch/2.0.0:
-    dependencies:
-      micromatch: 3.1.10
-      normalize-path: 2.1.1
-    dev: true
-    resolution:
-      integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
   /anymatch/3.1.1:
     dependencies:
       normalize-path: 3.0.0
-      picomatch: 2.2.1
+      picomatch: 2.3.0
     dev: true
     engines:
       node: '>= 8'
@@ -723,24 +898,23 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
   /arr-flatten/1.1.0:
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
   /arr-union/3.1.0:
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
-  /array-equal/1.0.0:
-    dev: true
-    resolution:
-      integrity: sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
   /array-unique/0.2.1:
     dev: true
     engines:
@@ -752,6 +926,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
   /asn1.js/4.10.1:
@@ -762,16 +937,6 @@
     dev: true
     resolution:
       integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
-  /asn1/0.2.4:
-    dependencies:
-      safer-buffer: 2.1.2
-    resolution:
-      integrity: sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
-  /assert-plus/1.0.0:
-    engines:
-      node: '>=0.8'
-    resolution:
-      integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
   /assert/1.5.0:
     dependencies:
       object-assign: 4.1.1
@@ -783,20 +948,16 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
-  /astral-regex/1.0.0:
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
   /async-each/1.0.3:
     dev: true
     optional: true
     resolution:
       integrity: sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
   /asynckit/0.4.0:
+    dev: true
     resolution:
       integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=
   /atob/2.1.2:
@@ -806,12 +967,6 @@
     hasBin: true
     resolution:
       integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-  /aws-sign2/0.7.0:
-    resolution:
-      integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
-  /aws4/1.9.1:
-    resolution:
-      integrity: sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==
   /babel-cli/6.26.0:
     dependencies:
       babel-core: 6.26.3
@@ -997,23 +1152,24 @@
     dev: true
     resolution:
       integrity: sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=
-  /babel-jest/25.1.0_@babel+core@7.8.3:
+  /babel-jest/27.3.1_@babel+core@7.8.3:
     dependencies:
       '@babel/core': 7.8.3
-      '@jest/transform': 25.1.0
-      '@jest/types': 25.1.0
-      '@types/babel__core': 7.1.3
+      '@jest/transform': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/babel__core': 7.1.16
       babel-plugin-istanbul: 6.0.0
-      babel-preset-jest: 25.1.0_@babel+core@7.8.3
-      chalk: 3.0.0
+      babel-preset-jest: 27.2.0_@babel+core@7.8.3
+      chalk: 4.1.2
+      graceful-fs: 4.2.8
       slash: 3.0.0
     dev: true
     engines:
-      node: '>= 8.3'
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
     peerDependencies:
-      '@babel/core': ^7.0.0
-    resolution:
-      integrity: sha512-tz0VxUhhOE2y+g8R2oFrO/2VtVjA1lkJeavlhExuRBg3LdNJY9gwQ+Vcvqt9+cqy71MCTJhewvTB7Qtnnr9SWg==
+      '@babel/core': ^7.8.0
+    resolution:
+      integrity: sha512-SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ==
   /babel-messages/6.23.0:
     dependencies:
       babel-runtime: 6.26.0
@@ -1031,21 +1187,24 @@
       '@babel/helper-plugin-utils': 7.8.3
       '@istanbuljs/load-nyc-config': 1.0.0
       '@istanbuljs/schema': 0.1.2
-      istanbul-lib-instrument: 4.0.1
+      istanbul-lib-instrument: 4.0.3
       test-exclude: 6.0.0
     dev: true
     engines:
       node: '>=8'
     resolution:
       integrity: sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==
-  /babel-plugin-jest-hoist/25.1.0:
-    dependencies:
+  /babel-plugin-jest-hoist/27.2.0:
+    dependencies:
+      '@babel/template': 7.8.3
+      '@babel/types': 7.8.3
+      '@types/babel__core': 7.1.16
       '@types/babel__traverse': 7.0.8
     dev: true
     engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-oIsopO41vW4YFZ9yNYoLQATnnN46lp+MZ6H4VvPKFkcc2/fkl3CfE/NZZSmnEIEsJRmJAgkVEK0R7Zbl50CpTw==
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==
   /babel-plugin-module-resolver/2.7.1:
     dependencies:
       find-babel-config: 1.2.0
@@ -1370,6 +1529,26 @@
     dev: true
     resolution:
       integrity: sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=
+  /babel-preset-current-node-syntax/1.0.1_@babel+core@7.8.3:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.8.3
+      '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.8.3
+      '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.8.3
+      '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.8.3
+      '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.8.3
+      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.8.3
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.8.3
+      '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.8.3
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.8.3
+      '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.8.3
+      '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.8.3
+      '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.8.3
+    dev: true
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    resolution:
+      integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
   /babel-preset-es2015/6.24.1:
     dependencies:
       babel-plugin-check-es2015-constants: 6.22.0
@@ -1415,19 +1594,18 @@
     dev: true
     resolution:
       integrity: sha1-WXvq37n38gi8/YoS6bKym4svFNE=
-  /babel-preset-jest/25.1.0_@babel+core@7.8.3:
+  /babel-preset-jest/27.2.0_@babel+core@7.8.3:
     dependencies:
       '@babel/core': 7.8.3
-      '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.8.3
-      '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.8.3
-      babel-plugin-jest-hoist: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
+      babel-plugin-jest-hoist: 27.2.0
+      babel-preset-current-node-syntax: 1.0.1_@babel+core@7.8.3
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
     peerDependencies:
       '@babel/core': ^7.0.0
     resolution:
-      integrity: sha512-eCGn64olaqwUMaugXsTtGAM2I0QTahjEtnRu0ql8Ie+gDWAc1N6wqN0k2NilnyTunM69Pad7gJY7LOtwLimoFQ==
+      integrity: sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==
   /babel-preset-latest/6.24.1:
     dependencies:
       babel-preset-es2015: 6.24.1
@@ -1545,17 +1723,13 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
   /base64-js/1.3.1:
     dev: true
     resolution:
       integrity: sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
-  /bcrypt-pbkdf/1.0.2:
-    dependencies:
-      tweetnacl: 0.14.5
-    resolution:
-      integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
   /big.js/5.2.2:
     dev: true
     resolution:
@@ -1621,6 +1795,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
   /braces/3.0.2:
@@ -1647,10 +1822,10 @@
     hasBin: true
     resolution:
       integrity: sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==
-  /browser-process-hrtime/0.1.3:
-    dev: true
-    resolution:
-      integrity: sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==
+  /browser-process-hrtime/1.0.0:
+    dev: true
+    resolution:
+      integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
   /browser-resolve/1.11.3:
     dependencies:
       resolve: 1.1.7
@@ -1771,15 +1946,19 @@
     hasBin: true
     resolution:
       integrity: sha1-tanJAgJD8McORnW+yCI7xifkFc4=
-  /browserslist/4.8.3:
-    dependencies:
-      caniuse-lite: 1.0.30001021
-      electron-to-chromium: 1.3.334
-      node-releases: 1.1.45
-    dev: true
+  /browserslist/4.18.1:
+    dependencies:
+      caniuse-lite: 1.0.30001282
+      electron-to-chromium: 1.3.900
+      escalade: 3.1.1
+      node-releases: 2.0.1
+      picocolors: 1.0.0
+    dev: true
+    engines:
+      node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7
     hasBin: true
     resolution:
-      integrity: sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==
+      integrity: sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==
   /bs-logger/0.2.6:
     dependencies:
       fast-json-stable-stringify: 2.1.0
@@ -1838,55 +2017,34 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
   /cached-path-relative/1.0.2:
     dev: true
     resolution:
       integrity: sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==
-  /caller-callsite/2.0.0:
-    dependencies:
-      callsites: 2.0.0
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
-  /caller-path/2.0.0:
-    dependencies:
-      caller-callsite: 2.0.0
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
-  /callsites/2.0.0:
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
   /callsites/3.1.0:
     dev: true
     engines:
       node: '>=6'
     resolution:
       integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-  /camelcase/4.1.0:
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
   /camelcase/5.3.1:
     dev: true
     engines:
       node: '>=6'
     resolution:
       integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+  /camelcase/6.2.1:
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==
   /caniuse-api/3.0.0:
     dependencies:
-      browserslist: 4.8.3
+      browserslist: 4.18.1
       caniuse-lite: 1.0.30001021
       lodash.memoize: 4.1.2
       lodash.uniq: 4.5.0
@@ -1897,21 +2055,14 @@
     dev: true
     resolution:
       integrity: sha512-wuMhT7/hwkgd8gldgp2jcrUjOU9RXJ4XxGumQeOsUr91l3WwmM68Cpa/ymCnWEDqakwFXhuDQbaKNHXBPgeE9g==
+  /caniuse-lite/1.0.30001282:
+    dev: true
+    resolution:
+      integrity: sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==
   /canonicalize/1.0.1:
     dev: false
     resolution:
       integrity: sha512-N3cmB3QLhS5TJ5smKFf1w42rJXWe6C1qP01z4dxJiI5v269buii4fLHWETDyf7yEd0azGLNC63VxNMiPd2u0Cg==
-  /capture-exit/2.0.0:
-    dependencies:
-      rsvp: 4.8.5
-    dev: true
-    engines:
-      node: 6.* || 8.* || >= 10.*
-    resolution:
-      integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==
-  /caseless/0.12.0:
-    resolution:
-      integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
   /chalk/1.1.3:
     dependencies:
       ansi-styles: 2.2.1
@@ -1934,15 +2085,21 @@
       node: '>=4'
     resolution:
       integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
-  /chalk/3.0.0:
+  /chalk/4.1.2:
     dependencies:
       ansi-styles: 4.2.1
       supports-color: 7.1.0
     dev: true
     engines:
-      node: '>=8'
-    resolution:
-      integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+      node: '>=10'
+    resolution:
+      integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+  /char-regex/1.0.2:
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
   /chokidar/1.7.0:
     dependencies:
       anymatch: 1.3.2
@@ -1959,10 +2116,10 @@
       fsevents: 1.2.11
     resolution:
       integrity: sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=
-  /ci-info/2.0.0:
-    dev: true
-    resolution:
-      integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+  /ci-info/3.2.0:
+    dev: true
+    resolution:
+      integrity: sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==
   /cipher-base/1.0.4:
     dependencies:
       inherits: 2.0.4
@@ -1970,6 +2127,10 @@
     dev: true
     resolution:
       integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
+  /cjs-module-lexer/1.2.2:
+    dev: true
+    resolution:
+      integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==
   /class-utils/0.3.6:
     dependencies:
       arr-union: 3.1.0
@@ -1979,16 +2140,17 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
-  /cliui/6.0.0:
+  /cliui/7.0.4:
     dependencies:
       string-width: 4.2.0
       strip-ansi: 6.0.0
-      wrap-ansi: 6.2.0
-    dev: true
-    resolution:
-      integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
+      wrap-ansi: 7.0.0
+    dev: true
+    resolution:
+      integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
   /clone/0.1.19:
     dev: true
     resolution:
@@ -2000,16 +2162,6 @@
       node: '>= 0.12.0'
     resolution:
       integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
-  /coa/2.0.2:
-    dependencies:
-      '@types/q': 1.5.2
-      chalk: 2.4.2
-      q: 1.5.1
-    dev: true
-    engines:
-      node: '>= 4.0'
-    resolution:
-      integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
   /collect-v8-coverage/1.0.0:
     dev: true
     resolution:
@@ -2021,6 +2173,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
   /color-convert/1.9.3:
@@ -2045,20 +2198,10 @@
     dev: true
     resolution:
       integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-  /color-string/1.5.3:
-    dependencies:
-      color-name: 1.1.4
-      simple-swizzle: 0.2.2
-    dev: true
-    resolution:
-      integrity: sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
-  /color/3.1.2:
-    dependencies:
-      color-convert: 1.9.3
-      color-string: 1.5.3
-    dev: true
-    resolution:
-      integrity: sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==
+  /colord/2.9.1:
+    dev: true
+    resolution:
+      integrity: sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==
   /combine-source-map/0.8.0:
     dependencies:
       convert-source-map: 1.1.3
@@ -2071,6 +2214,7 @@
   /combined-stream/1.0.8:
     dependencies:
       delayed-stream: 1.0.0
+    dev: true
     engines:
       node: '>= 0.8'
     resolution:
@@ -2079,12 +2223,19 @@
     dev: true
     resolution:
       integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+  /commander/7.2.0:
+    dev: true
+    engines:
+      node: '>= 10'
+    resolution:
+      integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
   /commondir/1.0.1:
     dev: true
     resolution:
       integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
   /component-emitter/1.3.0:
     dev: true
+    optional: true
     resolution:
       integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
   /concat-map/0.0.1:
@@ -2140,6 +2291,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
   /core-js/2.6.11:
@@ -2149,19 +2301,9 @@
     resolution:
       integrity: sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==
   /core-util-is/1.0.2:
+    dev: true
     resolution:
       integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-  /cosmiconfig/5.2.1:
-    dependencies:
-      import-fresh: 2.0.0
-      is-directory: 0.3.1
-      js-yaml: 3.13.1
-      parse-json: 4.0.0
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
   /create-ecdh/4.0.3:
     dependencies:
       bn.js: 4.11.8
@@ -2190,19 +2332,7 @@
     dev: true
     resolution:
       integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
-  /cross-spawn/6.0.5:
-    dependencies:
-      nice-try: 1.0.5
-      path-key: 2.0.1
-      semver: 5.7.1
-      shebang-command: 1.2.0
-      which: 1.3.1
-    dev: true
-    engines:
-      node: '>=4.8'
-    resolution:
-      integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
-  /cross-spawn/7.0.1:
+  /cross-spawn/7.0.3:
     dependencies:
       path-key: 3.1.1
       shebang-command: 2.0.0
@@ -2211,7 +2341,7 @@
     engines:
       node: '>= 8'
     resolution:
-      integrity: sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==
+      integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
   /crypto-browserify/3.12.0:
     dependencies:
       browserify-cipher: 1.0.1
@@ -2228,179 +2358,123 @@
     dev: true
     resolution:
       integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
-  /css-color-names/0.0.4:
-    dev: true
-    resolution:
-      integrity: sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
-  /css-declaration-sorter/4.0.1:
-    dependencies:
-      postcss: 7.0.26
+  /css-declaration-sorter/6.1.3:
+    dependencies:
       timsort: 0.3.0
     dev: true
     engines:
-      node: '>4'
-    resolution:
-      integrity: sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
-  /css-modules-loader-core/1.1.0:
-    dependencies:
-      icss-replace-symbols: 1.1.0
-      postcss: 6.0.1
-      postcss-modules-extract-imports: 1.1.0
-      postcss-modules-local-by-default: 1.2.0
-      postcss-modules-scope: 1.1.0
-      postcss-modules-values: 1.3.0
-    dev: true
-    resolution:
-      integrity: sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=
-  /css-parse/2.0.0:
-    dependencies:
-      css: 2.2.4
-    dev: true
-    resolution:
-      integrity: sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=
-  /css-select-base-adapter/0.1.1:
-    dev: true
-    resolution:
-      integrity: sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
-  /css-select/2.1.0:
+      node: '>= 10'
+    peerDependencies:
+      postcss: ^8.0.9
+    resolution:
+      integrity: sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==
+  /css-select/4.1.3:
     dependencies:
       boolbase: 1.0.0
-      css-what: 3.2.1
-      domutils: 1.7.0
-      nth-check: 1.0.2
-    dev: true
-    resolution:
-      integrity: sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
-  /css-selector-tokenizer/0.7.1:
-    dependencies:
-      cssesc: 0.1.0
-      fastparse: 1.1.2
-      regexpu-core: 1.0.0
-    dev: true
-    resolution:
-      integrity: sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==
-  /css-tree/1.0.0-alpha.37:
-    dependencies:
-      mdn-data: 2.0.4
+      css-what: 5.1.0
+      domhandler: 4.2.2
+      domutils: 2.8.0
+      nth-check: 2.0.1
+    dev: true
+    resolution:
+      integrity: sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==
+  /css-tree/1.1.3:
+    dependencies:
+      mdn-data: 2.0.14
       source-map: 0.6.1
     dev: true
     engines:
       node: '>=8.0.0'
     resolution:
-      integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
-  /css-unit-converter/1.1.1:
-    dev: true
-    resolution:
-      integrity: sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
-  /css-what/3.2.1:
+      integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+  /css-what/5.1.0:
     dev: true
     engines:
       node: '>= 6'
     resolution:
-      integrity: sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==
-  /css/2.2.4:
+      integrity: sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
+  /css/3.0.0:
     dependencies:
       inherits: 2.0.4
       source-map: 0.6.1
-      source-map-resolve: 0.5.3
-      urix: 0.1.0
-    dev: true
-    resolution:
-      integrity: sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==
-  /cssesc/0.1.0:
-    dev: true
-    hasBin: true
-    resolution:
-      integrity: sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=
-  /cssesc/2.0.0:
+      source-map-resolve: 0.6.0
+    dev: true
+    resolution:
+      integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==
+  /cssesc/3.0.0:
     dev: true
     engines:
       node: '>=4'
     hasBin: true
     resolution:
-      integrity: sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==
-  /cssnano-preset-default/4.0.7:
-    dependencies:
-      css-declaration-sorter: 4.0.1
-      cssnano-util-raw-cache: 4.0.1
-      postcss: 7.0.26
-      postcss-calc: 7.0.1
-      postcss-colormin: 4.0.3
-      postcss-convert-values: 4.0.1
-      postcss-discard-comments: 4.0.2
-      postcss-discard-duplicates: 4.0.2
-      postcss-discard-empty: 4.0.1
-      postcss-discard-overridden: 4.0.1
-      postcss-merge-longhand: 4.0.11
-      postcss-merge-rules: 4.0.3
-      postcss-minify-font-values: 4.0.2
-      postcss-minify-gradients: 4.0.2
-      postcss-minify-params: 4.0.2
-      postcss-minify-selectors: 4.0.2
-      postcss-normalize-charset: 4.0.1
-      postcss-normalize-display-values: 4.0.2
-      postcss-normalize-positions: 4.0.2
-      postcss-normalize-repeat-style: 4.0.2
-      postcss-normalize-string: 4.0.2
-      postcss-normalize-timing-functions: 4.0.2
-      postcss-normalize-unicode: 4.0.1
-      postcss-normalize-url: 4.0.1
-      postcss-normalize-whitespace: 4.0.2
-      postcss-ordered-values: 4.1.2
-      postcss-reduce-initial: 4.0.3
-      postcss-reduce-transforms: 4.0.2
-      postcss-svgo: 4.0.2
-      postcss-unique-selectors: 4.0.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==
-  /cssnano-util-get-arguments/4.0.0:
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
-  /cssnano-util-get-match/4.0.0:
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
-  /cssnano-util-raw-cache/4.0.1:
-    dependencies:
-      postcss: 7.0.26
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
-  /cssnano-util-same-parent/4.0.1:
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
-  /cssnano/4.1.10:
-    dependencies:
-      cosmiconfig: 5.2.1
-      cssnano-preset-default: 4.0.7
+      integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+  /cssnano-preset-default/5.1.7:
+    dependencies:
+      css-declaration-sorter: 6.1.3
+      cssnano-utils: 2.0.1
+      postcss-calc: 8.0.0
+      postcss-colormin: 5.2.1
+      postcss-convert-values: 5.0.2
+      postcss-discard-comments: 5.0.1
+      postcss-discard-duplicates: 5.0.1
+      postcss-discard-empty: 5.0.1
+      postcss-discard-overridden: 5.0.1
+      postcss-merge-longhand: 5.0.4
+      postcss-merge-rules: 5.0.3
+      postcss-minify-font-values: 5.0.1
+      postcss-minify-gradients: 5.0.3
+      postcss-minify-params: 5.0.2
+      postcss-minify-selectors: 5.1.0
+      postcss-normalize-charset: 5.0.1
+      postcss-normalize-display-values: 5.0.1
+      postcss-normalize-positions: 5.0.1
+      postcss-normalize-repeat-style: 5.0.1
+      postcss-normalize-string: 5.0.1
+      postcss-normalize-timing-functions: 5.0.1
+      postcss-normalize-unicode: 5.0.1
+      postcss-normalize-url: 5.0.3
+      postcss-normalize-whitespace: 5.0.1
+      postcss-ordered-values: 5.0.2
+      postcss-reduce-initial: 5.0.1
+      postcss-reduce-transforms: 5.0.1
+      postcss-svgo: 5.0.3
+      postcss-unique-selectors: 5.0.2
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-bWDjtTY+BOqrqBtsSQIbN0RLGD2Yr2CnecpP0ydHNafh9ZUEre8c8VYTaH9FEbyOt0eIfEUAYYk5zj92ioO8LA==
+  /cssnano-utils/2.0.1:
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==
+  /cssnano/5.0.11:
+    dependencies:
+      cssnano-preset-default: 5.1.7
       is-resolvable: 1.1.0
-      postcss: 7.0.26
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==
-  /csso/4.0.2:
-    dependencies:
-      css-tree: 1.0.0-alpha.37
+      lilconfig: 2.0.4
+      yaml: 1.10.2
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-5SHM31NAAe29jvy0MJqK40zZ/8dGlnlzcfHKw00bWMVFp8LWqtuyPSFwbaoIoxvt71KWJOfg8HMRGrBR3PExCg==
+  /csso/4.2.0:
+    dependencies:
+      css-tree: 1.1.3
     dev: true
     engines:
       node: '>=8.0.0'
     resolution:
-      integrity: sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg==
+      integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
   /cssom/0.3.8:
     dev: true
     resolution:
@@ -2409,33 +2483,34 @@
     dev: true
     resolution:
       integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
-  /cssstyle/2.2.0:
+  /cssstyle/2.3.0:
     dependencies:
       cssom: 0.3.8
     dev: true
     engines:
       node: '>=8'
     resolution:
-      integrity: sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==
+      integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
   /dash-ast/1.0.0:
     dev: true
     resolution:
       integrity: sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==
-  /dashdash/1.14.1:
-    dependencies:
-      assert-plus: 1.0.0
-    engines:
-      node: '>=0.10'
-    resolution:
-      integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
-  /data-urls/1.1.0:
-    dependencies:
-      abab: 2.0.3
+  /data-uri-to-buffer/3.0.1:
+    dev: false
+    engines:
+      node: '>= 6'
+    resolution:
+      integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==
+  /data-urls/2.0.0:
+    dependencies:
+      abab: 2.0.5
       whatwg-mimetype: 2.3.0
-      whatwg-url: 7.1.0
-    dev: true
-    resolution:
-      integrity: sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==
+      whatwg-url: 8.7.0
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==
   /debug/2.6.9:
     dependencies:
       ms: 2.0.0
@@ -2451,45 +2526,47 @@
   /debug/4.1.1:
     dependencies:
       ms: 2.1.2
+    deprecated: 'Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)'
     dev: true
     resolution:
       integrity: sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
-  /decamelize/1.2.0:
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+  /decimal.js/10.3.1:
+    dev: true
+    resolution:
+      integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==
   /decode-uri-component/0.2.0:
     dev: true
     engines:
       node: '>=0.10'
     resolution:
       integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+  /dedent/0.7.0:
+    dev: true
+    resolution:
+      integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
   /deep-is/0.1.3:
     dev: true
     resolution:
       integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+  /deepmerge/4.2.2:
+    dev: true
+    engines:
+      node: '>=0.10.0'
+    resolution:
+      integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
   /deferred-leveldown/0.2.0:
     dependencies:
       abstract-leveldown: 0.12.4
     dev: true
     resolution:
       integrity: sha1-LO8fER4cV4cNi7uK8mUOWHzS9bQ=
-  /define-properties/1.1.3:
-    dependencies:
-      object-keys: 1.1.1
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
   /define-property/0.2.5:
     dependencies:
       is-descriptor: 0.1.6
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
   /define-property/1.0.0:
@@ -2498,6 +2575,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
   /define-property/2.0.2:
@@ -2507,6 +2585,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
   /defined/1.0.0:
@@ -2514,6 +2593,7 @@
     resolution:
       integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
   /delayed-stream/1.0.0:
+    dev: true
     engines:
       node: '>=0.4.0'
     resolution:
@@ -2556,12 +2636,12 @@
     dev: true
     resolution:
       integrity: sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==
-  /diff-sequences/25.1.0:
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-nFIfVk5B/NStCsJ+zaPO4vYuLjlzQ6uFvPxzYyHlejNZ/UGa7G/n7peOXVrVNvRuyfstt+mZQYGpjxg9Z6N8Kw==
+  /diff-sequences/27.0.6:
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==
   /diffie-hellman/5.0.3:
     dependencies:
       bn.js: 4.11.8
@@ -2570,13 +2650,14 @@
     dev: true
     resolution:
       integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
-  /dom-serializer/0.2.2:
-    dependencies:
-      domelementtype: 2.0.1
+  /dom-serializer/1.3.2:
+    dependencies:
+      domelementtype: 2.2.0
+      domhandler: 4.2.2
       entities: 2.0.0
     dev: true
     resolution:
-      integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
+      integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==
   /domain-browser/1.1.7:
     dev: true
     engines:
@@ -2584,51 +2665,44 @@
       npm: '>=1.2'
     resolution:
       integrity: sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=
-  /domelementtype/1.3.1:
-    dev: true
-    resolution:
-      integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
-  /domelementtype/2.0.1:
-    dev: true
-    resolution:
-      integrity: sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
-  /domexception/1.0.1:
-    dependencies:
-      webidl-conversions: 4.0.2
-    dev: true
-    resolution:
-      integrity: sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==
-  /domutils/1.7.0:
-    dependencies:
-      dom-serializer: 0.2.2
-      domelementtype: 1.3.1
-    dev: true
-    resolution:
-      integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
-  /dot-prop/4.2.0:
-    dependencies:
-      is-obj: 1.0.1
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
+  /domelementtype/2.2.0:
+    dev: true
+    resolution:
+      integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
+  /domexception/2.0.1:
+    dependencies:
+      webidl-conversions: 5.0.0
+    dev: true
+    engines:
+      node: '>=8'
+    resolution:
+      integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==
+  /domhandler/4.2.2:
+    dependencies:
+      domelementtype: 2.2.0
+    dev: true
+    engines:
+      node: '>= 4'
+    resolution:
+      integrity: sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==
+  /domutils/2.8.0:
+    dependencies:
+      dom-serializer: 1.3.2
+      domelementtype: 2.2.0
+      domhandler: 4.2.2
+    dev: true
+    resolution:
+      integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
   /duplexer2/0.1.4:
     dependencies:
       readable-stream: 2.3.7
     dev: true
     resolution:
       integrity: sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=
-  /ecc-jsbn/0.1.2:
-    dependencies:
-      jsbn: 0.1.1
-      safer-buffer: 2.1.2
-    resolution:
-      integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
-  /electron-to-chromium/1.3.334:
-    dev: true
-    resolution:
-      integrity: sha512-RcjJhpsVaX0X6ntu/WSBlW9HE9pnCgXS9B8mTUObl1aDxaiOa0Lu+NMveIS5IDC+VELzhM32rFJDCC+AApVwcA==
+  /electron-to-chromium/1.3.900:
+    dev: true
+    resolution:
+      integrity: sha512-SuXbQD8D4EjsaBaJJxySHbC+zq8JrFfxtb4GIr4E9n1BcROyMcRrJCYQNpJ9N+Wjf5mFp7Wp0OHykd14JNEzzQ==
   /elliptic/6.5.2:
     dependencies:
       bn.js: 4.11.8
@@ -2641,6 +2715,12 @@
     dev: true
     resolution:
       integrity: sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==
+  /emittery/0.8.1:
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==
   /emoji-regex/8.0.0:
     dev: true
     resolution:
@@ -2651,12 +2731,6 @@
       node: '>= 0.10'
     resolution:
       integrity: sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
-  /end-of-stream/1.4.4:
-    dependencies:
-      once: 1.4.0
-    dev: true
-    resolution:
-      integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
   /entities/2.0.0:
     dev: true
     resolution:
@@ -2668,67 +2742,44 @@
     hasBin: true
     resolution:
       integrity: sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==
-  /error-ex/1.3.2:
-    dependencies:
-      is-arrayish: 0.2.1
-    dev: true
-    resolution:
-      integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
-  /es-abstract/1.17.1:
-    dependencies:
-      es-to-primitive: 1.2.1
-      function-bind: 1.1.1
-      has: 1.0.3
-      has-symbols: 1.0.1
-      is-callable: 1.1.5
-      is-regex: 1.0.5
-      object-inspect: 1.7.0
-      object-keys: 1.1.1
-      object.assign: 4.1.0
-      string.prototype.trimleft: 2.1.1
-      string.prototype.trimright: 2.1.1
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-WmWNHWmm/LDwK8jaeZic/g6sU1ZckM+vvOyCV1qFRhJJ6hzve6DRgthNQB7Lra1ocrw68HexLKYgtdxIPcb3Fg==
-  /es-to-primitive/1.2.1:
-    dependencies:
-      is-callable: 1.1.5
-      is-date-object: 1.0.2
-      is-symbol: 1.0.3
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+  /escalade/3.1.1:
+    dev: true
+    engines:
+      node: '>=6'
+    resolution:
+      integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
   /escape-string-regexp/1.0.5:
     dev: true
     engines:
       node: '>=0.8.0'
     resolution:
       integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-  /escodegen/1.12.1:
-    dependencies:
-      esprima: 3.1.3
-      estraverse: 4.3.0
+  /escape-string-regexp/2.0.0:
+    dev: true
+    engines:
+      node: '>=8'
+    resolution:
+      integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+  /escodegen/2.0.0:
+    dependencies:
+      esprima: 4.0.1
+      estraverse: 5.3.0
       esutils: 2.0.3
       optionator: 0.8.3
     dev: true
     engines:
-      node: '>=4.0'
+      node: '>=6.0'
     hasBin: true
     optionalDependencies:
       source-map: 0.6.1
     resolution:
-      integrity: sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==
-  /esprima/3.1.3:
-    dev: true
-    engines:
-      node: '>=4'
-    hasBin: true
-    resolution:
-      integrity: sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
+      integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==
+  /esm/3.2.25:
+    dev: false
+    engines:
+      node: '>=6'
+    resolution:
+      integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==
   /esprima/4.0.1:
     dev: true
     engines:
@@ -2736,12 +2787,12 @@
     hasBin: true
     resolution:
       integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-  /estraverse/4.3.0:
+  /estraverse/5.3.0:
     dev: true
     engines:
       node: '>=4.0'
     resolution:
-      integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+      integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
   /estree-walker/0.6.1:
     dev: true
     resolution:
@@ -2750,12 +2801,26 @@
     dev: true
     resolution:
       integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
+  /estree-walker/2.0.2:
+    dev: true
+    resolution:
+      integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
   /esutils/2.0.3:
     dev: true
     engines:
       node: '>=0.10.0'
     resolution:
       integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+  /event-target-shim/5.0.1:
+    dev: false
+    engines:
+      node: '>=6'
+    resolution:
+      integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
+  /eventemitter3/4.0.7:
+    dev: true
+    resolution:
+      integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
   /events/1.1.1:
     dev: true
     engines:
@@ -2769,41 +2834,22 @@
     dev: true
     resolution:
       integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
-  /exec-sh/0.3.4:
-    dev: true
-    resolution:
-      integrity: sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==
-  /execa/1.0.0:
-    dependencies:
-      cross-spawn: 6.0.5
-      get-stream: 4.1.0
-      is-stream: 1.1.0
-      npm-run-path: 2.0.2
-      p-finally: 1.0.0
-      signal-exit: 3.0.2
-      strip-eof: 1.0.0
-    dev: true
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
-  /execa/3.4.0:
-    dependencies:
-      cross-spawn: 7.0.1
-      get-stream: 5.1.0
-      human-signals: 1.1.1
+  /execa/5.1.1:
+    dependencies:
+      cross-spawn: 7.0.3
+      get-stream: 6.0.1
+      human-signals: 2.1.0
       is-stream: 2.0.0
       merge-stream: 2.0.0
       npm-run-path: 4.0.1
-      onetime: 5.1.0
-      p-finally: 2.0.1
-      signal-exit: 3.0.2
+      onetime: 5.1.2
+      signal-exit: 3.0.5
       strip-final-newline: 2.0.0
     dev: true
     engines:
-      node: ^8.12.0 || >=9.7.0
-    resolution:
-      integrity: sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==
+      node: '>=10'
+    resolution:
+      integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
   /exit/0.1.2:
     dev: true
     engines:
@@ -2831,6 +2877,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
   /expand-range/1.8.2:
@@ -2842,25 +2889,26 @@
     optional: true
     resolution:
       integrity: sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
-  /expect/25.1.0:
-    dependencies:
-      '@jest/types': 25.1.0
-      ansi-styles: 4.2.1
-      jest-get-type: 25.1.0
-      jest-matcher-utils: 25.1.0
-      jest-message-util: 25.1.0
-      jest-regex-util: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-wqHzuoapQkhc3OKPlrpetsfueuEiMf3iWh0R8+duCu9PIjXoP7HgD5aeypwTnXUAjC8aMsiVDaWwlbJ1RlQ38g==
+  /expect/27.3.1:
+    dependencies:
+      '@jest/types': 27.2.5
+      ansi-styles: 5.2.0
+      jest-get-type: 27.3.1
+      jest-matcher-utils: 27.3.1
+      jest-message-util: 27.3.1
+      jest-regex-util: 27.0.6
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg==
   /extend-shallow/2.0.1:
     dependencies:
       is-extendable: 0.1.1
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
   /extend-shallow/3.0.2:
@@ -2870,11 +2918,9 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
-  /extend/3.0.2:
-    resolution:
-      integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
   /extglob/0.3.2:
     dependencies:
       is-extglob: 1.0.0
@@ -2897,17 +2943,11 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
-  /extsprintf/1.3.0:
-    engines:
-      '0': node >=0.6.0
-    resolution:
-      integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
-  /fast-deep-equal/2.0.1:
-    resolution:
-      integrity: sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
   /fast-json-stable-stringify/2.1.0:
+    dev: true
     resolution:
       integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
   /fast-levenshtein/2.0.6:
@@ -2918,16 +2958,23 @@
     dev: true
     resolution:
       integrity: sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
-  /fastparse/1.1.2:
-    dev: true
-    resolution:
-      integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
   /fb-watchman/2.0.1:
     dependencies:
       bser: 2.1.1
     dev: true
     resolution:
       integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==
+  /fetch-blob/2.1.2:
+    dev: false
+    engines:
+      node: ^10.17.0 || >=12.3.0
+    peerDependencies:
+      domexception: '*'
+    peerDependenciesMeta:
+      domexception:
+        optional: true
+    resolution:
+      integrity: sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==
   /file-uri-to-path/1.0.0:
     dev: true
     optional: true
@@ -2962,6 +3009,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
   /fill-range/7.0.1:
@@ -2981,16 +3029,6 @@
       node: '>=4.0.0'
     resolution:
       integrity: sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==
-  /find-cache-dir/3.2.0:
-    dependencies:
-      commondir: 1.0.1
-      make-dir: 3.0.0
-      pkg-dir: 4.2.0
-    dev: true
-    engines:
-      node: '>=8'
-    resolution:
-      integrity: sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==
   /find-up/4.1.0:
     dependencies:
       locate-path: 5.0.0
@@ -3004,6 +3042,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
   /for-own/0.1.5:
@@ -3019,36 +3058,25 @@
     dev: true
     resolution:
       integrity: sha1-C+4AUBiusmDQo6865ljdATbsG5k=
-  /forever-agent/0.6.1:
-    resolution:
-      integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
-  /form-data/2.3.3:
+  /form-data/3.0.1:
     dependencies:
       asynckit: 0.4.0
       combined-stream: 1.0.8
       mime-types: 2.1.26
-    engines:
-      node: '>= 0.12'
-    resolution:
-      integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
+    dev: true
+    engines:
+      node: '>= 6'
+    resolution:
+      integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
   /fragment-cache/0.2.1:
     dependencies:
       map-cache: 0.2.2
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
-  /fs-extra/8.1.0:
-    dependencies:
-      graceful-fs: 4.2.3
-      jsonfile: 4.0.0
-      universalify: 0.1.2
-    dev: true
-    engines:
-      node: '>=6 <7 || >=8'
-    resolution:
-      integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
   /fs-readdir-recursive/1.1.0:
     dev: true
     resolution:
@@ -3067,16 +3095,20 @@
     engines:
       node: '>=4.0'
     optional: true
+    os:
+      - darwin
     requiresBuild: true
     resolution:
       integrity: sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==
-  /fsevents/2.1.2:
+  /fsevents/2.3.2:
     dev: true
     engines:
       node: ^8.16.0 || ^10.6.0 || >=11.0.0
     optional: true
-    resolution:
-      integrity: sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==
+    os:
+      - darwin
+    resolution:
+      integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
   /function-bind/1.1.1:
     dev: true
     resolution:
@@ -3109,33 +3141,19 @@
       node: 6.* || 8.* || >= 10.*
     resolution:
       integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-  /get-stream/4.1.0:
-    dependencies:
-      pump: 3.0.0
-    dev: true
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
-  /get-stream/5.1.0:
-    dependencies:
-      pump: 3.0.0
-    dev: true
-    engines:
-      node: '>=8'
-    resolution:
-      integrity: sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==
+  /get-stream/6.0.1:
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
   /get-value/2.0.6:
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
-  /getpass/0.1.7:
-    dependencies:
-      assert-plus: 1.0.0
-    resolution:
-      integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
   /glob-base/0.3.0:
     dependencies:
       glob-parent: 2.0.0
@@ -3180,24 +3198,10 @@
     dev: true
     resolution:
       integrity: sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
-  /growly/1.3.0:
-    dev: true
-    optional: true
-    resolution:
-      integrity: sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
-  /har-schema/2.0.0:
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-  /har-validator/5.1.3:
-    dependencies:
-      ajv: 6.10.2
-      har-schema: 2.0.0
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
+  /graceful-fs/4.2.8:
+    dev: true
+    resolution:
+      integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
   /has-ansi/2.0.0:
     dependencies:
       ansi-regex: 2.1.1
@@ -3206,12 +3210,6 @@
       node: '>=0.10.0'
     resolution:
       integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
-  /has-flag/1.0.0:
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=
   /has-flag/3.0.0:
     dev: true
     engines:
@@ -3224,12 +3222,6 @@
       node: '>=8'
     resolution:
       integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-  /has-symbols/1.0.1:
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
   /has-value/0.3.1:
     dependencies:
       get-value: 2.0.6
@@ -3238,6 +3230,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
   /has-value/1.0.0:
@@ -3248,12 +3241,14 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
   /has-values/0.1.4:
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-bWHeldkd/Km5oCCJrThL/49it3E=
   /has-values/1.0.0:
@@ -3263,6 +3258,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
   /has/1.0.3:
@@ -3289,10 +3285,6 @@
     dev: true
     resolution:
       integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
-  /hex-color-regex/1.1.0:
-    dev: true
-    resolution:
-      integrity: sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
   /hmac-drbg/1.0.1:
     dependencies:
       hash.js: 1.1.7
@@ -3310,24 +3302,14 @@
       node: '>=0.10.0'
     resolution:
       integrity: sha1-42w/LSyufXRqhX440Y1fMqeILbg=
-  /hsl-regex/1.0.0:
-    dev: true
-    resolution:
-      integrity: sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
-  /hsla-regex/1.0.0:
-    dev: true
-    resolution:
-      integrity: sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
-  /html-comment-regex/1.1.2:
-    dev: true
-    resolution:
-      integrity: sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
-  /html-encoding-sniffer/1.0.2:
+  /html-encoding-sniffer/2.0.1:
     dependencies:
       whatwg-encoding: 1.0.5
     dev: true
-    resolution:
-      integrity: sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==
   /html-escaper/2.0.0:
     dev: true
     resolution:
@@ -3338,26 +3320,35 @@
       node: '>=0.10'
     resolution:
       integrity: sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=
-  /http-signature/1.2.0:
-    dependencies:
-      assert-plus: 1.0.0
-      jsprim: 1.4.1
-      sshpk: 1.16.1
-    engines:
-      node: '>=0.8'
-      npm: '>=1.3.7'
-    resolution:
-      integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
+  /http-proxy-agent/4.0.1:
+    dependencies:
+      '@tootallnate/once': 1.1.2
+      agent-base: 6.0.2
+      debug: 4.1.1
+    dev: true
+    engines:
+      node: '>= 6'
+    resolution:
+      integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
   /https-browserify/0.0.1:
     dev: true
     resolution:
       integrity: sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=
-  /human-signals/1.1.1:
-    dev: true
-    engines:
-      node: '>=8.12.0'
-    resolution:
-      integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+  /https-proxy-agent/5.0.0:
+    dependencies:
+      agent-base: 6.0.2
+      debug: 4.1.1
+    dev: true
+    engines:
+      node: '>= 6'
+    resolution:
+      integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
+  /human-signals/2.1.0:
+    dev: true
+    engines:
+      node: '>=10.17.0'
+    resolution:
+      integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
   /iconv-lite/0.4.24:
     dependencies:
       safer-buffer: 2.1.2
@@ -3370,6 +3361,14 @@
     dev: true
     resolution:
       integrity: sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
+  /icss-utils/5.1.0:
+    dev: true
+    engines:
+      node: ^10 || ^12 || >= 14
+    peerDependencies:
+      postcss: ^8.1.0
+    resolution:
+      integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
   /idb-wrapper/1.7.2:
     dev: true
     resolution:
@@ -3378,31 +3377,22 @@
     dev: true
     resolution:
       integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
-  /import-cwd/2.1.0:
-    dependencies:
-      import-from: 2.1.0
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=
-  /import-fresh/2.0.0:
-    dependencies:
-      caller-path: 2.0.0
-      resolve-from: 3.0.0
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
-  /import-from/2.1.0:
-    dependencies:
-      resolve-from: 3.0.0
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-M1238qev/VOqpHHUuAId7ja387E=
+  /import-cwd/3.0.0:
+    dependencies:
+      import-from: 3.0.0
+    dev: true
+    engines:
+      node: '>=8'
+    resolution:
+      integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==
+  /import-from/3.0.0:
+    dependencies:
+      resolve-from: 5.0.0
+    dev: true
+    engines:
+      node: '>=8'
+    resolution:
+      integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==
   /import-local/3.0.2:
     dependencies:
       pkg-dir: 4.2.0
@@ -3419,10 +3409,6 @@
       node: '>=0.8.19'
     resolution:
       integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=
-  /indexes-of/1.0.1:
-    dev: true
-    resolution:
-      integrity: sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
   /indexof/0.0.1:
     dev: true
     resolution:
@@ -3443,7 +3429,6 @@
     resolution:
       integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
   /inherits/2.0.4:
-    dev: true
     resolution:
       integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
   /inline-source-map/0.6.2:
@@ -3474,24 +3459,19 @@
     dev: true
     resolution:
       integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
-  /ip-regex/2.1.0:
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
-  /is-absolute-url/2.1.0:
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=
+  /is-absolute-url/3.0.3:
+    dev: true
+    engines:
+      node: '>=8'
+    resolution:
+      integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==
   /is-accessor-descriptor/0.1.6:
     dependencies:
       kind-of: 3.2.2
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
   /is-accessor-descriptor/1.0.0:
@@ -3500,16 +3480,9 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
-  /is-arrayish/0.2.1:
-    dev: true
-    resolution:
-      integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-  /is-arrayish/0.3.2:
-    dev: true
-    resolution:
-      integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
   /is-binary-path/1.0.1:
     dependencies:
       binary-extensions: 1.13.1
@@ -3523,36 +3496,19 @@
     dev: true
     resolution:
       integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-  /is-callable/1.1.5:
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==
-  /is-ci/2.0.0:
-    dependencies:
-      ci-info: 2.0.0
-    dev: true
-    hasBin: true
-    resolution:
-      integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
-  /is-color-stop/1.1.0:
-    dependencies:
-      css-color-names: 0.0.4
-      hex-color-regex: 1.1.0
-      hsl-regex: 1.0.0
-      hsla-regex: 1.0.0
-      rgb-regex: 1.0.1
-      rgba-regex: 1.0.0
-    dev: true
-    resolution:
-      integrity: sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
+  /is-core-module/2.8.0:
+    dependencies:
+      has: 1.0.3
+    dev: true
+    resolution:
+      integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==
   /is-data-descriptor/0.1.4:
     dependencies:
       kind-of: 3.2.2
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
   /is-data-descriptor/1.0.0:
@@ -3561,14 +3517,9 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
-  /is-date-object/1.0.2:
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
   /is-descriptor/0.1.6:
     dependencies:
       is-accessor-descriptor: 0.1.6
@@ -3577,6 +3528,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
   /is-descriptor/1.0.2:
@@ -3587,14 +3539,9 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
-  /is-directory/0.3.1:
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
   /is-dotfile/1.0.3:
     dev: true
     engines:
@@ -3615,6 +3562,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
   /is-extendable/1.0.1:
@@ -3623,6 +3571,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
   /is-extglob/1.0.0:
@@ -3680,6 +3629,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
   /is-number/4.0.0:
@@ -3695,12 +3645,6 @@
       node: '>=0.12.0'
     resolution:
       integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-  /is-obj/1.0.1:
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
   /is-object/0.1.2:
     dev: true
     resolution:
@@ -3711,6 +3655,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
   /is-posix-bracket/0.1.1:
@@ -3720,6 +3665,10 @@
     optional: true
     resolution:
       integrity: sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
+  /is-potential-custom-element-name/1.0.1:
+    dev: true
+    resolution:
+      integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
   /is-primitive/2.0.0:
     dev: true
     engines:
@@ -3727,68 +3676,33 @@
     optional: true
     resolution:
       integrity: sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
-  /is-reference/1.1.4:
-    dependencies:
-      '@types/estree': 0.0.39
-    dev: true
-    resolution:
-      integrity: sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==
-  /is-regex/1.0.5:
-    dependencies:
-      has: 1.0.3
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==
+  /is-reference/1.2.1:
+    dependencies:
+      '@types/estree': 0.0.42
+    dev: true
+    resolution:
+      integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==
   /is-resolvable/1.1.0:
     dev: true
     resolution:
       integrity: sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
-  /is-stream/1.1.0:
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
   /is-stream/2.0.0:
     dev: true
     engines:
       node: '>=8'
     resolution:
       integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
-  /is-svg/3.0.0:
-    dependencies:
-      html-comment-regex: 1.1.2
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==
-  /is-symbol/1.0.3:
-    dependencies:
-      has-symbols: 1.0.1
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
   /is-typedarray/1.0.0:
+    dev: true
     resolution:
       integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
   /is-windows/1.0.2:
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
-  /is-wsl/2.1.1:
-    dev: true
-    engines:
-      node: '>=8'
-    optional: true
-    resolution:
-      integrity: sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==
   /is/0.2.7:
     dev: true
     resolution:
@@ -3815,29 +3729,25 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
   /isobject/3.0.1:
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
-  /isstream/0.1.2:
-    resolution:
-      integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
   /istanbul-lib-coverage/3.0.0:
     dev: true
     engines:
       node: '>=8'
     resolution:
       integrity: sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==
-  /istanbul-lib-instrument/4.0.1:
+  /istanbul-lib-instrument/4.0.3:
     dependencies:
       '@babel/core': 7.8.3
-      '@babel/parser': 7.8.3
-      '@babel/template': 7.8.3
-      '@babel/traverse': 7.8.3
       '@istanbuljs/schema': 0.1.2
       istanbul-lib-coverage: 3.0.0
       semver: 6.3.0
@@ -3845,11 +3755,11 @@
     engines:
       node: '>=8'
     resolution:
-      integrity: sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==
+      integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==
   /istanbul-lib-report/3.0.0:
     dependencies:
       istanbul-lib-coverage: 3.0.0
-      make-dir: 3.0.0
+      make-dir: 3.1.0
       supports-color: 7.1.0
     dev: true
     engines:
@@ -3866,7 +3776,7 @@
       node: '>=8'
     resolution:
       integrity: sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==
-  /istanbul-reports/3.0.0:
+  /istanbul-reports/3.0.5:
     dependencies:
       html-escaper: 2.0.0
       istanbul-lib-report: 3.0.0
@@ -3874,392 +3784,472 @@
     engines:
       node: '>=8'
     resolution:
-      integrity: sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A==
-  /jest-changed-files/25.1.0:
-    dependencies:
-      '@jest/types': 25.1.0
-      execa: 3.4.0
-      throat: 5.0.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-bdL1aHjIVy3HaBO3eEQeemGttsq1BDlHgWcOjEOIAcga7OOEGWHD2WSu8HhL7I1F0mFFyci8VKU4tRNk+qtwDA==
-  /jest-cli/25.1.0:
-    dependencies:
-      '@jest/core': 25.1.0
-      '@jest/test-result': 25.1.0
-      '@jest/types': 25.1.0
-      chalk: 3.0.0
+      integrity: sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==
+  /jest-changed-files/27.3.0:
+    dependencies:
+      '@jest/types': 27.2.5
+      execa: 5.1.1
+      throat: 6.0.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-9DJs9garMHv4RhylUMZgbdCJ3+jHSkpL9aaVKp13xtXAD80qLTLrqcDZL1PHA9dYA0bCI86Nv2BhkLpLhrBcPg==
+  /jest-circus/27.3.1:
+    dependencies:
+      '@jest/environment': 27.3.1
+      '@jest/test-result': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
+      chalk: 4.1.2
+      co: 4.6.0
+      dedent: 0.7.0
+      expect: 27.3.1
+      is-generator-fn: 2.1.0
+      jest-each: 27.3.1
+      jest-matcher-utils: 27.3.1
+      jest-message-util: 27.3.1
+      jest-runtime: 27.3.1
+      jest-snapshot: 27.3.1
+      jest-util: 27.3.1
+      pretty-format: 27.3.1
+      slash: 3.0.0
+      stack-utils: 2.0.5
+      throat: 6.0.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-v1dsM9II6gvXokgqq6Yh2jHCpfg7ZqV4jWY66u7npz24JnhP3NHxI0sKT7+ZMQ7IrOWHYAaeEllOySbDbWsiXw==
+  /jest-cli/27.3.1:
+    dependencies:
+      '@jest/core': 27.3.1
+      '@jest/test-result': 27.3.1
+      '@jest/types': 27.2.5
+      chalk: 4.1.2
       exit: 0.1.2
+      graceful-fs: 4.2.8
       import-local: 3.0.2
-      is-ci: 2.0.0
-      jest-config: 25.1.0
-      jest-util: 25.1.0
-      jest-validate: 25.1.0
+      jest-config: 27.3.1
+      jest-util: 27.3.1
+      jest-validate: 27.3.1
       prompts: 2.3.0
-      realpath-native: 1.1.0
-      yargs: 15.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
+      yargs: 16.2.0
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
     hasBin: true
-    resolution:
-      integrity: sha512-p+aOfczzzKdo3AsLJlhs8J5EW6ffVidfSZZxXedJ0mHPBOln1DccqFmGCoO8JWd4xRycfmwy1eoQkMsF8oekPg==
-  /jest-config/25.1.0:
+    peerDependencies:
+      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+    peerDependenciesMeta:
+      node-notifier:
+        optional: true
+    resolution:
+      integrity: sha512-WHnCqpfK+6EvT62me6WVs8NhtbjAS4/6vZJnk7/2+oOr50cwAzG4Wxt6RXX0hu6m1169ZGMlhYYUNeKBXCph/Q==
+  /jest-config/27.3.1:
     dependencies:
       '@babel/core': 7.8.3
-      '@jest/test-sequencer': 25.1.0
-      '@jest/types': 25.1.0
-      babel-jest: 25.1.0_@babel+core@7.8.3
-      chalk: 3.0.0
+      '@jest/test-sequencer': 27.3.1
+      '@jest/types': 27.2.5
+      babel-jest: 27.3.1_@babel+core@7.8.3
+      chalk: 4.1.2
+      ci-info: 3.2.0
+      deepmerge: 4.2.2
       glob: 7.1.6
-      jest-environment-jsdom: 25.1.0
-      jest-environment-node: 25.1.0
-      jest-get-type: 25.1.0
-      jest-jasmine2: 25.1.0
-      jest-regex-util: 25.1.0
-      jest-resolve: 25.1.0_jest-resolve@25.1.0
-      jest-util: 25.1.0
-      jest-validate: 25.1.0
-      micromatch: 4.0.2
-      pretty-format: 25.1.0
-      realpath-native: 1.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-tLmsg4SZ5H7tuhBC5bOja0HEblM0coS3Wy5LTCb2C8ZV6eWLewHyK+3qSq9Bi29zmWQ7ojdCd3pxpx4l4d2uGw==
-  /jest-diff/25.1.0:
-    dependencies:
-      chalk: 3.0.0
-      diff-sequences: 25.1.0
-      jest-get-type: 25.1.0
-      pretty-format: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-nepXgajT+h017APJTreSieh4zCqnSHEJ1iT8HDlewu630lSJ4Kjjr9KNzm+kzGwwcpsDE6Snx1GJGzzsefaEHw==
-  /jest-docblock/25.1.0:
+      graceful-fs: 4.2.8
+      jest-circus: 27.3.1
+      jest-environment-jsdom: 27.3.1
+      jest-environment-node: 27.3.1
+      jest-get-type: 27.3.1
+      jest-jasmine2: 27.3.1
+      jest-regex-util: 27.0.6
+      jest-resolve: 27.3.1_jest-resolve@27.3.1
+      jest-runner: 27.3.1
+      jest-util: 27.3.1
+      jest-validate: 27.3.1
+      micromatch: 4.0.4
+      pretty-format: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    peerDependencies:
+      ts-node: '>=9.0.0'
+    peerDependenciesMeta:
+      ts-node:
+        optional: true
+    resolution:
+      integrity: sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg==
+  /jest-diff/27.3.1:
+    dependencies:
+      chalk: 4.1.2
+      diff-sequences: 27.0.6
+      jest-get-type: 27.3.1
+      pretty-format: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==
+  /jest-docblock/27.0.6:
     dependencies:
       detect-newline: 3.1.0
     dev: true
     engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-370P/mh1wzoef6hUKiaMcsPtIapY25suP6JqM70V9RJvdKLrV4GaGbfUseUVk4FZJw4oTZ1qSCJNdrClKt5JQA==
-  /jest-each/25.1.0:
-    dependencies:
-      '@jest/types': 25.1.0
-      chalk: 3.0.0
-      jest-get-type: 25.1.0
-      jest-util: 25.1.0
-      pretty-format: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-R9EL8xWzoPySJ5wa0DXFTj7NrzKpRD40Jy+zQDp3Qr/2QmevJgkN9GqioCGtAJ2bW9P/MQRznQHQQhoeAyra7A==
-  /jest-environment-jsdom/25.1.0:
-    dependencies:
-      '@jest/environment': 25.1.0
-      '@jest/fake-timers': 25.1.0
-      '@jest/types': 25.1.0
-      jest-mock: 25.1.0
-      jest-util: 25.1.0
-      jsdom: 15.2.1
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-ILb4wdrwPAOHX6W82GGDUiaXSSOE274ciuov0lztOIymTChKFtC02ddyicRRCdZlB5YSrv3vzr1Z5xjpEe1OHQ==
-  /jest-environment-node/25.1.0:
-    dependencies:
-      '@jest/environment': 25.1.0
-      '@jest/fake-timers': 25.1.0
-      '@jest/types': 25.1.0
-      jest-mock: 25.1.0
-      jest-util: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-U9kFWTtAPvhgYY5upnH9rq8qZkj6mYLup5l1caAjjx9uNnkLHN2xgZy5mo4SyLdmrh/EtB9UPpKFShvfQHD0Iw==
-  /jest-get-type/25.1.0:
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw==
-  /jest-haste-map/25.1.0:
-    dependencies:
-      '@jest/types': 25.1.0
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==
+  /jest-each/27.3.1:
+    dependencies:
+      '@jest/types': 27.2.5
+      chalk: 4.1.2
+      jest-get-type: 27.3.1
+      jest-util: 27.3.1
+      pretty-format: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-E4SwfzKJWYcvOYCjOxhZcxwL+AY0uFMvdCOwvzgutJiaiodFjkxQQDxHm8FQBeTqDnSmKsQWn7ldMRzTn2zJaQ==
+  /jest-environment-jsdom/27.3.1:
+    dependencies:
+      '@jest/environment': 27.3.1
+      '@jest/fake-timers': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
+      jest-mock: 27.3.0
+      jest-util: 27.3.1
+      jsdom: 16.7.0
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-3MOy8qMzIkQlfb3W1TfrD7uZHj+xx8Olix5vMENkj5djPmRqndMaXtpnaZkxmxM+Qc3lo+yVzJjzuXbCcZjAlg==
+  /jest-environment-node/27.3.1:
+    dependencies:
+      '@jest/environment': 27.3.1
+      '@jest/fake-timers': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
+      jest-mock: 27.3.0
+      jest-util: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-T89F/FgkE8waqrTSA7/ydMkcc52uYPgZZ6q8OaZgyiZkJb5QNNCF6oPZjH9IfPFfcc9uBWh1574N0kY0pSvTXw==
+  /jest-get-type/27.3.1:
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg==
+  /jest-haste-map/27.3.1:
+    dependencies:
+      '@jest/types': 27.2.5
+      '@types/graceful-fs': 4.1.5
+      '@types/node': 13.1.7
       anymatch: 3.1.1
       fb-watchman: 2.0.1
-      graceful-fs: 4.2.3
-      jest-serializer: 25.1.0
-      jest-util: 25.1.0
-      jest-worker: 25.1.0
-      micromatch: 4.0.2
-      sane: 4.1.0
+      graceful-fs: 4.2.8
+      jest-regex-util: 27.0.6
+      jest-serializer: 27.0.6
+      jest-util: 27.3.1
+      jest-worker: 27.3.1
+      micromatch: 4.0.4
       walker: 1.0.7
     dev: true
     engines:
-      node: '>= 8.3'
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
     optionalDependencies:
-      fsevents: 2.1.2
-    resolution:
-      integrity: sha512-/2oYINIdnQZAqyWSn1GTku571aAfs8NxzSErGek65Iu5o8JYb+113bZysRMcC/pjE5v9w0Yz+ldbj9NxrFyPyw==
-  /jest-jasmine2/25.1.0:
+      fsevents: 2.3.2
+    resolution:
+      integrity: sha512-lYfNZIzwPccDJZIyk9Iz5iQMM/MH56NIIcGj7AFU1YyA4ewWFBl8z+YPJuSCRML/ee2cCt2y3W4K3VXPT6Nhzg==
+  /jest-jasmine2/27.3.1:
     dependencies:
       '@babel/traverse': 7.8.3
-      '@jest/environment': 25.1.0
-      '@jest/source-map': 25.1.0
-      '@jest/test-result': 25.1.0
-      '@jest/types': 25.1.0
-      chalk: 3.0.0
+      '@jest/environment': 27.3.1
+      '@jest/source-map': 27.0.6
+      '@jest/test-result': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
+      chalk: 4.1.2
       co: 4.6.0
-      expect: 25.1.0
+      expect: 27.3.1
       is-generator-fn: 2.1.0
-      jest-each: 25.1.0
-      jest-matcher-utils: 25.1.0
-      jest-message-util: 25.1.0
-      jest-runtime: 25.1.0
-      jest-snapshot: 25.1.0
-      jest-util: 25.1.0
-      pretty-format: 25.1.0
-      throat: 5.0.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-GdncRq7jJ7sNIQ+dnXvpKO2MyP6j3naNK41DTTjEAhLEdpImaDA9zSAZwDhijjSF/D7cf4O5fdyUApGBZleaEg==
-  /jest-leak-detector/25.1.0:
-    dependencies:
-      jest-get-type: 25.1.0
-      pretty-format: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-3xRI264dnhGaMHRvkFyEKpDeaRzcEBhyNrOG5oT8xPxOyUAblIAQnpiR3QXu4wDor47MDTiHbiFcbypdLcLW5w==
-  /jest-matcher-utils/25.1.0:
-    dependencies:
-      chalk: 3.0.0
-      jest-diff: 25.1.0
-      jest-get-type: 25.1.0
-      pretty-format: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-KGOAFcSFbclXIFE7bS4C53iYobKI20ZWleAdAFun4W1Wz1Kkej8Ng6RRbhL8leaEvIOjGXhGf/a1JjO8bkxIWQ==
-  /jest-message-util/25.1.0:
-    dependencies:
-      '@babel/code-frame': 7.8.3
-      '@jest/test-result': 25.1.0
-      '@jest/types': 25.1.0
-      '@types/stack-utils': 1.0.1
-      chalk: 3.0.0
-      micromatch: 4.0.2
+      jest-each: 27.3.1
+      jest-matcher-utils: 27.3.1
+      jest-message-util: 27.3.1
+      jest-runtime: 27.3.1
+      jest-snapshot: 27.3.1
+      jest-util: 27.3.1
+      pretty-format: 27.3.1
+      throat: 6.0.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg==
+  /jest-leak-detector/27.3.1:
+    dependencies:
+      jest-get-type: 27.3.1
+      pretty-format: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-78QstU9tXbaHzwlRlKmTpjP9k4Pvre5l0r8Spo4SbFFVy/4Abg9I6ZjHwjg2QyKEAMg020XcjP+UgLZIY50yEg==
+  /jest-matcher-utils/27.3.1:
+    dependencies:
+      chalk: 4.1.2
+      jest-diff: 27.3.1
+      jest-get-type: 27.3.1
+      pretty-format: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==
+  /jest-message-util/27.3.1:
+    dependencies:
+      '@babel/code-frame': 7.16.0
+      '@jest/types': 27.2.5
+      '@types/stack-utils': 2.0.1
+      chalk: 4.1.2
+      graceful-fs: 4.2.8
+      micromatch: 4.0.4
+      pretty-format: 27.3.1
       slash: 3.0.0
-      stack-utils: 1.0.2
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ==
-  /jest-mock/25.1.0:
-    dependencies:
-      '@jest/types': 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-28/u0sqS+42vIfcd1mlcg4ZVDmSUYuNvImP4X2lX5hRMLW+CN0BeiKVD4p+ujKKbSPKd3rg/zuhCF+QBLJ4vag==
-  /jest-pnp-resolver/1.2.1_jest-resolve@25.1.0:
-    dependencies:
-      jest-resolve: 25.1.0_jest-resolve@25.1.0
+      stack-utils: 2.0.5
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg==
+  /jest-mock/27.3.0:
+    dependencies:
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-ziZiLk0elZOQjD08bLkegBzv5hCABu/c8Ytx45nJKkysQwGaonvmTxwjLqEA4qGdasq9o2I8/HtdGMNnVsMTGw==
+  /jest-pnp-resolver/1.2.2_jest-resolve@27.3.1:
+    dependencies:
+      jest-resolve: 27.3.1_jest-resolve@27.3.1
     dev: true
     engines:
       node: '>=6'
     peerDependencies:
       jest-resolve: '*'
-    resolution:
-      integrity: sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==
-  /jest-regex-util/25.1.0:
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-9lShaDmDpqwg+xAd73zHydKrBbbrIi08Kk9YryBEBybQFg/lBWR/2BDjjiSE7KIppM9C5+c03XiDaZ+m4Pgs1w==
-  /jest-resolve-dependencies/25.1.0:
-    dependencies:
-      '@jest/types': 25.1.0
-      jest-regex-util: 25.1.0
-      jest-snapshot: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-Cu/Je38GSsccNy4I2vL12ZnBlD170x2Oh1devzuM9TLH5rrnLW1x51lN8kpZLYTvzx9j+77Y5pqBaTqfdzVzrw==
-  /jest-resolve/25.1.0_jest-resolve@25.1.0:
-    dependencies:
-      '@jest/types': 25.1.0
-      browser-resolve: 1.11.3
-      chalk: 3.0.0
-      jest-pnp-resolver: 1.2.1_jest-resolve@25.1.0
-      realpath-native: 1.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
+    peerDependenciesMeta:
+      jest-resolve:
+        optional: true
+    resolution:
+      integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==
+  /jest-regex-util/27.0.6:
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==
+  /jest-resolve-dependencies/27.3.1:
+    dependencies:
+      '@jest/types': 27.2.5
+      jest-regex-util: 27.0.6
+      jest-snapshot: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-X7iLzY8pCiYOnvYo2YrK3P9oSE8/3N2f4pUZMJ8IUcZnT81vlSonya1KTO9ZfKGuC+svE6FHK/XOb8SsoRUV1A==
+  /jest-resolve/27.3.1_jest-resolve@27.3.1:
+    dependencies:
+      '@jest/types': 27.2.5
+      chalk: 4.1.2
+      graceful-fs: 4.2.8
+      jest-haste-map: 27.3.1
+      jest-pnp-resolver: 1.2.2_jest-resolve@27.3.1
+      jest-util: 27.3.1
+      jest-validate: 27.3.1
+      resolve: 1.20.0
+      resolve.exports: 1.1.0
+      slash: 3.0.0
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
     peerDependencies:
       jest-resolve: '*'
     resolution:
-      integrity: sha512-XkBQaU1SRCHj2Evz2Lu4Czs+uIgJXWypfO57L7JYccmAXv4slXA6hzNblmcRmf7P3cQ1mE7fL3ABV6jAwk4foQ==
-  /jest-runner/25.1.0:
-    dependencies:
-      '@jest/console': 25.1.0
-      '@jest/environment': 25.1.0
-      '@jest/test-result': 25.1.0
-      '@jest/types': 25.1.0
-      chalk: 3.0.0
+      integrity: sha512-Dfzt25CFSPo3Y3GCbxynRBZzxq9AdyNN+x/v2IqYx6KVT5Z6me2Z/PsSGFSv3cOSUZqJ9pHxilao/I/m9FouLw==
+  /jest-runner/27.3.1:
+    dependencies:
+      '@jest/console': 27.3.1
+      '@jest/environment': 27.3.1
+      '@jest/test-result': 27.3.1
+      '@jest/transform': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
+      chalk: 4.1.2
+      emittery: 0.8.1
       exit: 0.1.2
-      graceful-fs: 4.2.3
-      jest-config: 25.1.0
-      jest-docblock: 25.1.0
-      jest-haste-map: 25.1.0
-      jest-jasmine2: 25.1.0
-      jest-leak-detector: 25.1.0
-      jest-message-util: 25.1.0
-      jest-resolve: 25.1.0_jest-resolve@25.1.0
-      jest-runtime: 25.1.0
-      jest-util: 25.1.0
-      jest-worker: 25.1.0
+      graceful-fs: 4.2.8
+      jest-docblock: 27.0.6
+      jest-environment-jsdom: 27.3.1
+      jest-environment-node: 27.3.1
+      jest-haste-map: 27.3.1
+      jest-leak-detector: 27.3.1
+      jest-message-util: 27.3.1
+      jest-resolve: 27.3.1_jest-resolve@27.3.1
+      jest-runtime: 27.3.1
+      jest-util: 27.3.1
+      jest-worker: 27.3.1
       source-map-support: 0.5.16
-      throat: 5.0.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-su3O5fy0ehwgt+e8Wy7A8CaxxAOCMzL4gUBftSs0Ip32S0epxyZPDov9Znvkl1nhVOJNf4UwAsnqfc3plfQH9w==
-  /jest-runtime/25.1.0:
-    dependencies:
-      '@jest/console': 25.1.0
-      '@jest/environment': 25.1.0
-      '@jest/source-map': 25.1.0
-      '@jest/test-result': 25.1.0
-      '@jest/transform': 25.1.0
-      '@jest/types': 25.1.0
-      '@types/yargs': 15.0.3
-      chalk: 3.0.0
+      throat: 6.0.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-r4W6kBn6sPr3TBwQNmqE94mPlYVn7fLBseeJfo4E2uCTmAyDFm2O5DYAQAFP7Q3YfiA/bMwg8TVsciP7k0xOww==
+  /jest-runtime/27.3.1:
+    dependencies:
+      '@jest/console': 27.3.1
+      '@jest/environment': 27.3.1
+      '@jest/globals': 27.3.1
+      '@jest/source-map': 27.0.6
+      '@jest/test-result': 27.3.1
+      '@jest/transform': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/yargs': 16.0.4
+      chalk: 4.1.2
+      cjs-module-lexer: 1.2.2
       collect-v8-coverage: 1.0.0
+      execa: 5.1.1
       exit: 0.1.2
       glob: 7.1.6
-      graceful-fs: 4.2.3
-      jest-config: 25.1.0
-      jest-haste-map: 25.1.0
-      jest-message-util: 25.1.0
-      jest-mock: 25.1.0
-      jest-regex-util: 25.1.0
-      jest-resolve: 25.1.0_jest-resolve@25.1.0
-      jest-snapshot: 25.1.0
-      jest-util: 25.1.0
-      jest-validate: 25.1.0
-      realpath-native: 1.1.0
+      graceful-fs: 4.2.8
+      jest-haste-map: 27.3.1
+      jest-message-util: 27.3.1
+      jest-mock: 27.3.0
+      jest-regex-util: 27.0.6
+      jest-resolve: 27.3.1_jest-resolve@27.3.1
+      jest-snapshot: 27.3.1
+      jest-util: 27.3.1
+      jest-validate: 27.3.1
       slash: 3.0.0
       strip-bom: 4.0.0
-      yargs: 15.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    hasBin: true
-    resolution:
-      integrity: sha512-mpPYYEdbExKBIBB16ryF6FLZTc1Rbk9Nx0ryIpIMiDDkOeGa0jQOKVI/QeGvVGlunKKm62ywcioeFVzIbK03bA==
-  /jest-serializer/25.1.0:
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-20Wkq5j7o84kssBwvyuJ7Xhn7hdPeTXndnwIblKDR2/sy1SUm6rWWiG9kSCgJPIfkDScJCIsTtOKdlzfIHOfKA==
-  /jest-snapshot/25.1.0:
-    dependencies:
+      yargs: 16.2.0
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-qtO6VxPbS8umqhEDpjA4pqTkKQ1Hy4ZSi9mDVeE9Za7LKBo2LdW2jmT+Iod3XFaJqINikZQsn2wEi0j9wPRbLg==
+  /jest-serializer/27.0.6:
+    dependencies:
+      '@types/node': 13.1.7
+      graceful-fs: 4.2.8
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==
+  /jest-snapshot/27.3.1:
+    dependencies:
+      '@babel/core': 7.8.3
+      '@babel/generator': 7.8.3
+      '@babel/parser': 7.8.3
+      '@babel/plugin-syntax-typescript': 7.16.0_@babel+core@7.8.3
+      '@babel/traverse': 7.8.3
       '@babel/types': 7.8.3
-      '@jest/types': 25.1.0
-      chalk: 3.0.0
-      expect: 25.1.0
-      jest-diff: 25.1.0
-      jest-get-type: 25.1.0
-      jest-matcher-utils: 25.1.0
-      jest-message-util: 25.1.0
-      jest-resolve: 25.1.0_jest-resolve@25.1.0
-      mkdirp: 0.5.1
+      '@jest/transform': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/babel__traverse': 7.0.8
+      '@types/prettier': 2.4.2
+      babel-preset-current-node-syntax: 1.0.1_@babel+core@7.8.3
+      chalk: 4.1.2
+      expect: 27.3.1
+      graceful-fs: 4.2.8
+      jest-diff: 27.3.1
+      jest-get-type: 27.3.1
+      jest-haste-map: 27.3.1
+      jest-matcher-utils: 27.3.1
+      jest-message-util: 27.3.1
+      jest-resolve: 27.3.1_jest-resolve@27.3.1
+      jest-util: 27.3.1
       natural-compare: 1.4.0
-      pretty-format: 25.1.0
-      semver: 7.1.3
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-xZ73dFYN8b/+X2hKLXz4VpBZGIAn7muD/DAg+pXtDzDGw3iIV10jM7WiHqhCcpDZfGiKEj7/2HXAEPtHTj0P2A==
-  /jest-util/25.1.0:
-    dependencies:
-      '@jest/types': 25.1.0
-      chalk: 3.0.0
-      is-ci: 2.0.0
-      mkdirp: 0.5.1
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==
-  /jest-validate/25.1.0:
-    dependencies:
-      '@jest/types': 25.1.0
-      camelcase: 5.3.1
-      chalk: 3.0.0
-      jest-get-type: 25.1.0
+      pretty-format: 27.3.1
+      semver: 7.3.5
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-APZyBvSgQgOT0XumwfFu7X3G5elj6TGhCBLbBdn3R1IzYustPGPE38F51dBWMQ8hRXa9je0vAdeVDtqHLvB6lg==
+  /jest-util/27.3.1:
+    dependencies:
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
+      chalk: 4.1.2
+      ci-info: 3.2.0
+      graceful-fs: 4.2.8
+      picomatch: 2.3.0
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw==
+  /jest-validate/27.3.1:
+    dependencies:
+      '@jest/types': 27.2.5
+      camelcase: 6.2.1
+      chalk: 4.1.2
+      jest-get-type: 27.3.1
       leven: 3.1.0
-      pretty-format: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-kGbZq1f02/zVO2+t1KQGSVoCTERc5XeObLwITqC6BTRH3Adv7NZdYqCpKIZLUgpLXf2yISzQ465qOZpul8abXA==
-  /jest-watcher/25.1.0:
-    dependencies:
-      '@jest/test-result': 25.1.0
-      '@jest/types': 25.1.0
+      pretty-format: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-3H0XCHDFLA9uDII67Bwi1Vy7AqwA5HqEEjyy934lgVhtJ3eisw6ShOF1MDmRPspyikef5MyExvIm0/TuLzZ86Q==
+  /jest-watcher/27.3.1:
+    dependencies:
+      '@jest/test-result': 27.3.1
+      '@jest/types': 27.2.5
+      '@types/node': 13.1.7
       ansi-escapes: 4.3.0
-      chalk: 3.0.0
-      jest-util: 25.1.0
-      string-length: 3.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-Q9eZ7pyaIr6xfU24OeTg4z1fUqBF/4MP6J801lyQfg7CsnZ/TCzAPvCfckKdL5dlBBEKBeHV0AdyjFZ5eWj4ig==
-  /jest-worker/25.1.0:
-    dependencies:
+      chalk: 4.1.2
+      jest-util: 27.3.1
+      string-length: 4.0.2
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-9/xbV6chABsGHWh9yPaAGYVVKurWoP3ZMCv6h+O1v9/+pkOroigs6WzZ0e9gLP/njokUwM7yQhr01LKJVMkaZA==
+  /jest-worker/27.3.1:
+    dependencies:
+      '@types/node': 13.1.7
       merge-stream: 2.0.0
-      supports-color: 7.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==
-  /jest/25.1.0:
-    dependencies:
-      '@jest/core': 25.1.0
+      supports-color: 8.1.1
+    dev: true
+    engines:
+      node: '>= 10.13.0'
+    resolution:
+      integrity: sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==
+  /jest/27.3.1:
+    dependencies:
+      '@jest/core': 27.3.1
       import-local: 3.0.2
-      jest-cli: 25.1.0
-    dev: true
-    engines:
-      node: '>= 8.3'
+      jest-cli: 27.3.1
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
     hasBin: true
-    resolution:
-      integrity: sha512-FV6jEruneBhokkt9MQk0WUFoNTwnF76CLXtwNMfsc0um0TlB/LG2yxUd0KqaFjEJ9laQmVWQWS0sG/t2GsuI0w==
+    peerDependencies:
+      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+    peerDependenciesMeta:
+      node-notifier:
+        optional: true
+    resolution:
+      integrity: sha512-U2AX0AgQGd5EzMsiZpYt8HyZ+nSVIh5ujQ9CPp9EQZJMjXIiSZpJNweZl0swatKRoqHWgGKM3zaSwm4Zaz87ng==
   /js-tokens/3.0.2:
     dev: true
     resolution:
@@ -4276,47 +4266,45 @@
     hasBin: true
     resolution:
       integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
-  /jsbn/0.1.1:
-    resolution:
-      integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
-  /jsdom/15.2.1:
-    dependencies:
-      abab: 2.0.3
-      acorn: 7.1.0
-      acorn-globals: 4.3.4
-      array-equal: 1.0.0
+  /jsdom/16.7.0:
+    dependencies:
+      abab: 2.0.5
+      acorn: 8.5.0
+      acorn-globals: 6.0.0
       cssom: 0.4.4
-      cssstyle: 2.2.0
-      data-urls: 1.1.0
-      domexception: 1.0.1
-      escodegen: 1.12.1
-      html-encoding-sniffer: 1.0.2
+      cssstyle: 2.3.0
+      data-urls: 2.0.0
+      decimal.js: 10.3.1
+      domexception: 2.0.1
+      escodegen: 2.0.0
+      form-data: 3.0.1
+      html-encoding-sniffer: 2.0.1
+      http-proxy-agent: 4.0.1
+      https-proxy-agent: 5.0.0
+      is-potential-custom-element-name: 1.0.1
       nwsapi: 2.2.0
-      parse5: 5.1.0
-      pn: 1.1.0
-      request: 2.88.0
-      request-promise-native: 1.0.8_request@2.88.0
-      saxes: 3.1.11
+      parse5: 6.0.1
+      saxes: 5.0.1
       symbol-tree: 3.2.4
-      tough-cookie: 3.0.1
-      w3c-hr-time: 1.0.1
-      w3c-xmlserializer: 1.1.2
-      webidl-conversions: 4.0.2
+      tough-cookie: 4.0.0
+      w3c-hr-time: 1.0.2
+      w3c-xmlserializer: 2.0.0
+      webidl-conversions: 6.1.0
       whatwg-encoding: 1.0.5
       whatwg-mimetype: 2.3.0
-      whatwg-url: 7.1.0
-      ws: 7.2.1
+      whatwg-url: 8.7.0
+      ws: 7.5.5
       xml-name-validator: 3.0.0
     dev: true
     engines:
-      node: '>=8'
+      node: '>=10'
     peerDependencies:
       canvas: ^2.5.0
     peerDependenciesMeta:
       canvas:
         optional: true
     resolution:
-      integrity: sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==
+      integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==
   /jsesc/0.5.0:
     dev: true
     hasBin: true
@@ -4334,25 +4322,12 @@
     hasBin: true
     resolution:
       integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
-  /json-parse-better-errors/1.0.2:
-    dev: true
-    resolution:
-      integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
-  /json-schema-traverse/0.4.1:
-    resolution:
-      integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-  /json-schema/0.2.3:
-    resolution:
-      integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
   /json-stable-stringify/0.0.1:
     dependencies:
       jsonify: 0.0.0
     dev: true
     resolution:
       integrity: sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=
-  /json-stringify-safe/5.0.1:
-    resolution:
-      integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
   /json5/0.5.1:
     dev: true
     hasBin: true
@@ -4374,51 +4349,34 @@
     hasBin: true
     resolution:
       integrity: sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==
-  /jsonfile/4.0.0:
-    dev: true
-    optionalDependencies:
-      graceful-fs: 4.2.3
-    resolution:
-      integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
   /jsonify/0.0.0:
     dev: true
     resolution:
       integrity: sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
-  /jsonld/2.0.2:
-    dependencies:
+  /jsonld/5.2.0:
+    dependencies:
+      '@digitalbazaar/http-client': 1.2.0
       canonicalize: 1.0.1
-      lru-cache: 5.1.1
-      rdf-canonize: 1.0.3
-      request: 2.88.0
-      semver: 6.3.0
-      xmldom: 0.1.19
+      lru-cache: 6.0.0
+      rdf-canonize: 3.0.0
     dev: false
     engines:
-      node: '>=6'
-    resolution:
-      integrity: sha512-/TQzRe75/3h2khu57IUojha5oat+M82bm8RYw0jLhlmmPrW/kTWAZ9nGzKPfZWnPYnVVJJMQVc/pU8HCmpv9xg==
+      node: '>=12'
+    resolution:
+      integrity: sha512-JymgT6Xzk5CHEmHuEyvoTNviEPxv6ihLWSPu1gFdtjSAyM6cFqNrv02yS/SIur3BBIkCf0HjizRc24d8/FfQKw==
   /jsonparse/1.3.1:
     dev: true
     engines:
       '0': node >= 0.2.0
     resolution:
       integrity: sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=
-  /jsprim/1.4.1:
-    dependencies:
-      assert-plus: 1.0.0
-      extsprintf: 1.3.0
-      json-schema: 0.2.3
-      verror: 1.10.0
-    engines:
-      '0': node >=0.6.0
-    resolution:
-      integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
   /kind-of/3.2.2:
     dependencies:
       is-buffer: 1.1.6
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
   /kind-of/4.0.0:
@@ -4427,18 +4385,21 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
   /kind-of/5.1.0:
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
   /kind-of/6.0.2:
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
   /kleur/3.0.3:
@@ -4447,6 +4408,28 @@
       node: '>=6'
     resolution:
       integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+  /ky-universal/0.8.2_ky@0.25.1:
+    dependencies:
+      abort-controller: 3.0.0
+      ky: 0.25.1
+      node-fetch: 3.0.0-beta.9
+    dev: false
+    engines:
+      node: '>=10.17'
+    peerDependencies:
+      ky: '>=0.17.0'
+      web-streams-polyfill: '>=2.0.0'
+    peerDependenciesMeta:
+      web-streams-polyfill:
+        optional: true
+    resolution:
+      integrity: sha512-xe0JaOH9QeYxdyGLnzUOVGK4Z6FGvDVzcXFTdrYA1f33MZdEa45sUDaMBy98xQMcsd2XIBrTXRrRYnegcSdgVQ==
+  /ky/0.25.1:
+    dev: false
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-PjpCEWlIU7VpiMVrTwssahkYXX1by6NCT0fhTUX34F3DTinARlgMpriuroolugFPcMgpPWrOW4mTb984Qm1RXA==
   /labeled-stream-splicer/2.0.2:
     dependencies:
       inherits: 2.0.4
@@ -4545,10 +4528,33 @@
       node: '>= 0.8.0'
     resolution:
       integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
-  /lit-html/1.1.2:
+  /lilconfig/2.0.4:
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==
+  /lit-element/3.0.2:
+    dependencies:
+      '@lit/reactive-element': 1.0.2
+      lit-html: 2.0.2
     dev: false
     resolution:
-      integrity: sha512-FFlUMKHKi+qG1x1iHNZ1hrtc/zHmfYTyrSvs3/wBTvaNtpZjOZGWzU7efGYVpgp6KvWeKF6ql9/KsCq6Z/mEDA==
+      integrity: sha512-9vTJ47D2DSE4Jwhle7aMzEwO2ZcOPRikqfT3CVG7Qol2c9/I4KZwinZNW5Xv8hNm+G/enSSfIwqQhIXi6ioAUg==
+  /lit-html/2.0.2:
+    dependencies:
+      '@types/trusted-types': 2.0.2
+    dev: false
+    resolution:
+      integrity: sha512-dON7Zg8btb14/fWohQLQBdSgkoiQA4mIUy87evmyJHtxRq7zS6LlC32bT5EPWiof5PUQaDpF45v2OlrxHA5Clg==
+  /lit/2.0.2:
+    dependencies:
+      '@lit/reactive-element': 1.0.2
+      lit-element: 3.0.2
+      lit-html: 2.0.2
+    dev: false
+    resolution:
+      integrity: sha512-hKA/1YaSB+P+DvKWuR2q1Xzy/iayhNrJ3aveD0OQ9CKn6wUjsdnF/7LavDOJsKP/K5jzW/kXsuduPgRvTFrFJw==
   /loader-utils/1.2.3:
     dependencies:
       big.js: 5.2.2
@@ -4579,10 +4585,6 @@
     dev: true
     resolution:
       integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
-  /lodash.sortby/4.7.0:
-    dev: true
-    resolution:
-      integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
   /lodash.uniq/4.5.0:
     dev: true
     resolution:
@@ -4591,12 +4593,10 @@
     dev: true
     resolution:
       integrity: sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
-  /lolex/5.1.2:
-    dependencies:
-      '@sinonjs/commons': 1.7.0
-    dev: true
-    resolution:
-      integrity: sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==
+  /lodash/4.17.21:
+    dev: true
+    resolution:
+      integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
   /loose-envify/1.4.0:
     dependencies:
       js-tokens: 4.0.0
@@ -4604,30 +4604,31 @@
     hasBin: true
     resolution:
       integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
-  /lru-cache/5.1.1:
-    dependencies:
-      yallist: 3.1.1
-    dev: false
-    resolution:
-      integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+  /lru-cache/6.0.0:
+    dependencies:
+      yallist: 4.0.0
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
   /ltgt/2.2.1:
     dev: true
     resolution:
       integrity: sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=
-  /magic-string/0.25.6:
+  /magic-string/0.25.7:
     dependencies:
       sourcemap-codec: 1.4.7
     dev: true
     resolution:
-      integrity: sha512-3a5LOMSGoCTH5rbqobC2HuDNRtE2glHZ8J7pK+QZYppyWA36yuNpsX994rIY2nCuyP7CZYy7lQq/X2jygiZ89g==
-  /make-dir/3.0.0:
+      integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
+  /make-dir/3.1.0:
     dependencies:
       semver: 6.3.0
     dev: true
     engines:
       node: '>=8'
     resolution:
-      integrity: sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==
+      integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
   /make-error/1.3.5:
     dev: true
     resolution:
@@ -4642,6 +4643,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
   /map-visit/1.0.0:
@@ -4650,6 +4652,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
   /math-random/1.0.4:
@@ -4665,10 +4668,10 @@
     dev: true
     resolution:
       integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
-  /mdn-data/2.0.4:
-    dev: true
-    resolution:
-      integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
+  /mdn-data/2.0.14:
+    dev: true
+    resolution:
+      integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
   /merge-stream/2.0.0:
     dev: true
     resolution:
@@ -4712,17 +4715,18 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
-  /micromatch/4.0.2:
+  /micromatch/4.0.4:
     dependencies:
       braces: 3.0.2
-      picomatch: 2.2.1
-    dev: true
-    engines:
-      node: '>=8'
-    resolution:
-      integrity: sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
+      picomatch: 2.3.0
+    dev: true
+    engines:
+      node: '>=8.6'
+    resolution:
+      integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
   /miller-rabin/4.0.1:
     dependencies:
       bn.js: 4.11.8
@@ -4732,6 +4736,7 @@
     resolution:
       integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
   /mime-db/1.43.0:
+    dev: true
     engines:
       node: '>= 0.6'
     resolution:
@@ -4739,6 +4744,7 @@
   /mime-types/2.1.26:
     dependencies:
       mime-db: 1.43.0
+    dev: true
     engines:
       node: '>= 0.6'
     resolution:
@@ -4778,6 +4784,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
   /mkdirp/0.5.1:
@@ -4787,6 +4794,13 @@
     hasBin: true
     resolution:
       integrity: sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
+  /mkdirp/1.0.4:
+    dev: true
+    engines:
+      node: '>=10'
+    hasBin: true
+    resolution:
+      integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
   /module-deps/4.1.1:
     dependencies:
       JSONStream: 1.3.5
@@ -4826,12 +4840,15 @@
     dev: true
     resolution:
       integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-  /n3/1.3.5:
+  /n3/1.11.2:
+    dependencies:
+      queue-microtask: 1.2.3
+      readable-stream: 3.6.0
     dev: false
     engines:
       node: '>=8.0'
     resolution:
-      integrity: sha512-McWb1tCWGGAmHeGEakqZj/UqxQR9cpEYZ/JivBj59YfiOAuaIWZxu0B+jnhbCwCZ2AsxdgQ5Dq8fehIJpYQaMQ==
+      integrity: sha512-yFCoR+BEcXP0f7G+f0cyTbCe1vQMEFys9803g/EQ1nVGKTcZDZQvR/OIvz8JbpaCPLlDx5By6XSDued2HbgkfQ==
   /nan/2.14.0:
     dev: true
     optional: true
@@ -4853,22 +4870,22 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
   /natural-compare/1.4.0:
     dev: true
     resolution:
       integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
-  /nice-try/1.0.5:
-    dev: true
-    resolution:
-      integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
-  /node-forge/0.8.5:
+  /node-fetch/3.0.0-beta.9:
+    dependencies:
+      data-uri-to-buffer: 3.0.1
+      fetch-blob: 2.1.2
     dev: false
     engines:
-      node: '>= 4.5.0'
-    resolution:
-      integrity: sha512-vFMQIWt+J/7FLNyKouZ9TazT74PRV3wgv9UT4cRjC8BffxFbKXkgIWR42URCPSnHm/QDz6BOlb2Q0U4+VQT67Q==
+      node: ^10.17 || >=12.3
+    resolution:
+      integrity: sha512-RdbZCEynH2tH46+tj0ua9caUHVWrd/RHnRfvly2EVdqGmI3ndS1Vn/xjm5KuGejDt2RNDQsVRLPNd2QPwcewVg==
   /node-globals/0.1.5:
     dependencies:
       babel-cli: 6.26.0
@@ -4885,6 +4902,9 @@
     engines:
       node: '>=6'
       npm: ' >=4'
+    os:
+      - darwin
+      - linux
     resolution:
       integrity: sha1-zgW68PKik01AH1X4hwuj9T74CcI=
   /node-int64/0.4.0:
@@ -4897,29 +4917,17 @@
       node: '>=0.10.0'
     resolution:
       integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
-  /node-notifier/6.0.0:
-    dependencies:
-      growly: 1.3.0
-      is-wsl: 2.1.1
-      semver: 6.3.0
-      shellwords: 0.1.1
-      which: 1.3.1
-    dev: true
-    optional: true
-    resolution:
-      integrity: sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==
-  /node-releases/1.1.45:
-    dependencies:
-      semver: 6.3.0
-    dev: true
-    resolution:
-      integrity: sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg==
+  /node-releases/2.0.1:
+    dev: true
+    resolution:
+      integrity: sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
   /normalize-path/2.1.1:
     dependencies:
       remove-trailing-separator: 1.1.0
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
   /normalize-path/3.0.0:
@@ -4928,20 +4936,12 @@
       node: '>=0.10.0'
     resolution:
       integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-  /normalize-url/3.3.0:
-    dev: true
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
-  /npm-run-path/2.0.2:
-    dependencies:
-      path-key: 2.0.1
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
+  /normalize-url/6.1.0:
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
   /npm-run-path/4.0.1:
     dependencies:
       path-key: 3.1.1
@@ -4950,12 +4950,12 @@
       node: '>=8'
     resolution:
       integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
-  /nth-check/1.0.2:
+  /nth-check/2.0.1:
     dependencies:
       boolbase: 1.0.0
     dev: true
     resolution:
-      integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
+      integrity: sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
   /number-is-nan/1.0.1:
     dev: true
     engines:
@@ -4966,9 +4966,6 @@
     dev: true
     resolution:
       integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
-  /oauth-sign/0.9.0:
-    resolution:
-      integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
   /object-assign/4.1.1:
     dev: true
     engines:
@@ -4983,12 +4980,9 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
-  /object-inspect/1.7.0:
-    dev: true
-    resolution:
-      integrity: sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
   /object-keys/0.2.0:
     dependencies:
       foreach: 2.0.5
@@ -5002,40 +4996,15 @@
     dev: true
     resolution:
       integrity: sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=
-  /object-keys/1.1.1:
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
   /object-visit/1.0.1:
     dependencies:
       isobject: 3.0.1
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
-  /object.assign/4.1.0:
-    dependencies:
-      define-properties: 1.1.3
-      function-bind: 1.1.1
-      has-symbols: 1.0.1
-      object-keys: 1.1.1
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
-  /object.getownpropertydescriptors/2.1.0:
-    dependencies:
-      define-properties: 1.1.3
-      es-abstract: 1.17.1
-    dev: true
-    engines:
-      node: '>= 0.8'
-    resolution:
-      integrity: sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
   /object.omit/2.0.1:
     dependencies:
       for-own: 0.1.5
@@ -5052,19 +5021,9 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
-  /object.values/1.1.1:
-    dependencies:
-      define-properties: 1.1.3
-      es-abstract: 1.17.1
-      function-bind: 1.1.1
-      has: 1.0.3
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==
   /octal/1.0.0:
     dev: true
     resolution:
@@ -5075,14 +5034,14 @@
     dev: true
     resolution:
       integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
-  /onetime/5.1.0:
+  /onetime/5.1.2:
     dependencies:
       mimic-fn: 2.1.0
     dev: true
     engines:
       node: '>=6'
     resolution:
-      integrity: sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==
+      integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
   /optionator/0.8.3:
     dependencies:
       deep-is: 0.1.3
@@ -5120,24 +5079,12 @@
     dev: true
     resolution:
       integrity: sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=
-  /p-each-series/2.1.0:
-    dev: true
-    engines:
-      node: '>=8'
-    resolution:
-      integrity: sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==
   /p-finally/1.0.0:
     dev: true
     engines:
       node: '>=4'
     resolution:
       integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
-  /p-finally/2.0.1:
-    dev: true
-    engines:
-      node: '>=8'
-    resolution:
-      integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
   /p-limit/2.2.2:
     dependencies:
       p-try: 2.2.0
@@ -5154,12 +5101,23 @@
       node: '>=8'
     resolution:
       integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
-  /p-queue/2.4.2:
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha512-n8/y+yDJwBjoLQe1GSJbbaYQLTI7QHNZI2+rpmCDbe++WLf9HC3gf6iqj5yfPAV71W4UF3ql5W1+UBPXoXTxng==
+  /p-queue/6.6.2:
+    dependencies:
+      eventemitter3: 4.0.7
+      p-timeout: 3.2.0
+    dev: true
+    engines:
+      node: '>=8'
+    resolution:
+      integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==
+  /p-timeout/3.2.0:
+    dependencies:
+      p-finally: 1.0.0
+    dev: true
+    engines:
+      node: '>=8'
+    resolution:
+      integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==
   /p-try/2.2.0:
     dev: true
     engines:
@@ -5199,23 +5157,15 @@
     optional: true
     resolution:
       integrity: sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
-  /parse-json/4.0.0:
-    dependencies:
-      error-ex: 1.3.2
-      json-parse-better-errors: 1.0.2
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
-  /parse5/5.1.0:
-    dev: true
-    resolution:
-      integrity: sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
+  /parse5/6.0.1:
+    dev: true
+    resolution:
+      integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
   /pascalcase/0.1.1:
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
   /path-browserify/0.0.1:
@@ -5240,12 +5190,6 @@
       node: '>=0.10.0'
     resolution:
       integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
-  /path-key/2.0.1:
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
   /path-key/3.1.1:
     dev: true
     engines:
@@ -5274,21 +5218,22 @@
       node: '>=0.12'
     resolution:
       integrity: sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==
-  /performance-now/2.1.0:
-    resolution:
-      integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-  /picomatch/2.2.1:
+  /picocolors/1.0.0:
+    dev: true
+    resolution:
+      integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+  /picomatch/2.3.0:
     dev: true
     engines:
       node: '>=8.6'
     resolution:
-      integrity: sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==
-  /pify/3.0.0:
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
+      integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
+  /pify/5.0.0:
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==
   /pirates/4.0.1:
     dependencies:
       node-modules-regexp: 1.0.0
@@ -5305,379 +5250,379 @@
       node: '>=8'
     resolution:
       integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
-  /pn/1.1.0:
-    dev: true
-    resolution:
-      integrity: sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
   /posix-character-classes/0.1.1:
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-  /postcss-calc/7.0.1:
-    dependencies:
-      css-unit-converter: 1.1.1
-      postcss: 7.0.26
-      postcss-selector-parser: 5.0.0
-      postcss-value-parser: 3.3.1
-    dev: true
-    resolution:
-      integrity: sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==
-  /postcss-colormin/4.0.3:
-    dependencies:
-      browserslist: 4.8.3
-      color: 3.1.2
-      has: 1.0.3
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
-  /postcss-convert-values/4.0.1:
-    dependencies:
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
-  /postcss-discard-comments/4.0.2:
-    dependencies:
-      postcss: 7.0.26
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
-  /postcss-discard-duplicates/4.0.2:
-    dependencies:
-      postcss: 7.0.26
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
-  /postcss-discard-empty/4.0.1:
-    dependencies:
-      postcss: 7.0.26
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
-  /postcss-discard-overridden/4.0.1:
-    dependencies:
-      postcss: 7.0.26
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
-  /postcss-load-config/2.1.0:
-    dependencies:
-      cosmiconfig: 5.2.1
-      import-cwd: 2.1.0
-    dev: true
-    engines:
-      node: '>= 4'
-    resolution:
-      integrity: sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==
-  /postcss-merge-longhand/4.0.11:
-    dependencies:
-      css-color-names: 0.0.4
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-      stylehacks: 4.0.3
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
-  /postcss-merge-rules/4.0.3:
-    dependencies:
-      browserslist: 4.8.3
+  /postcss-calc/8.0.0:
+    dependencies:
+      postcss-selector-parser: 6.0.6
+      postcss-value-parser: 4.1.0
+    dev: true
+    peerDependencies:
+      postcss: ^8.2.2
+    resolution:
+      integrity: sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==
+  /postcss-colormin/5.2.1:
+    dependencies:
+      browserslist: 4.18.1
       caniuse-api: 3.0.0
-      cssnano-util-same-parent: 4.0.1
-      postcss: 7.0.26
-      postcss-selector-parser: 3.1.1
-      vendors: 1.0.3
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
-  /postcss-minify-font-values/4.0.2:
-    dependencies:
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
-  /postcss-minify-gradients/4.0.2:
-    dependencies:
-      cssnano-util-get-arguments: 4.0.0
-      is-color-stop: 1.1.0
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
-  /postcss-minify-params/4.0.2:
+      colord: 2.9.1
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA==
+  /postcss-convert-values/5.0.2:
+    dependencies:
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg==
+  /postcss-discard-comments/5.0.1:
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==
+  /postcss-discard-duplicates/5.0.1:
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==
+  /postcss-discard-empty/5.0.1:
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==
+  /postcss-discard-overridden/5.0.1:
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==
+  /postcss-load-config/3.1.0:
+    dependencies:
+      import-cwd: 3.0.0
+      lilconfig: 2.0.4
+      yaml: 1.10.2
+    dev: true
+    engines:
+      node: '>= 10'
+    peerDependencies:
+      ts-node: '>=9.0.0'
+    peerDependenciesMeta:
+      ts-node:
+        optional: true
+    resolution:
+      integrity: sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==
+  /postcss-merge-longhand/5.0.4:
+    dependencies:
+      postcss-value-parser: 4.1.0
+      stylehacks: 5.0.1
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==
+  /postcss-merge-rules/5.0.3:
+    dependencies:
+      browserslist: 4.18.1
+      caniuse-api: 3.0.0
+      cssnano-utils: 2.0.1
+      postcss-selector-parser: 6.0.6
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==
+  /postcss-minify-font-values/5.0.1:
+    dependencies:
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==
+  /postcss-minify-gradients/5.0.3:
+    dependencies:
+      colord: 2.9.1
+      cssnano-utils: 2.0.1
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q==
+  /postcss-minify-params/5.0.2:
     dependencies:
       alphanum-sort: 1.0.2
-      browserslist: 4.8.3
-      cssnano-util-get-arguments: 4.0.0
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-      uniqs: 2.0.0
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
-  /postcss-minify-selectors/4.0.2:
+      browserslist: 4.18.1
+      cssnano-utils: 2.0.1
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==
+  /postcss-minify-selectors/5.1.0:
     dependencies:
       alphanum-sort: 1.0.2
-      has: 1.0.3
-      postcss: 7.0.26
-      postcss-selector-parser: 3.1.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
-  /postcss-modules-extract-imports/1.1.0:
-    dependencies:
-      postcss: 6.0.1
-    dev: true
-    resolution:
-      integrity: sha1-thTJcgvmgW6u41+zpfqh26agXds=
-  /postcss-modules-local-by-default/1.2.0:
-    dependencies:
-      css-selector-tokenizer: 0.7.1
-      postcss: 6.0.1
-    dev: true
-    resolution:
-      integrity: sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=
-  /postcss-modules-scope/1.1.0:
-    dependencies:
-      css-selector-tokenizer: 0.7.1
-      postcss: 6.0.1
-    dev: true
-    resolution:
-      integrity: sha1-1upkmUx5+XtipytCb75gVqGUu5A=
-  /postcss-modules-values/1.3.0:
-    dependencies:
+      postcss-selector-parser: 6.0.6
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==
+  /postcss-modules-extract-imports/3.0.0:
+    dev: true
+    engines:
+      node: ^10 || ^12 || >= 14
+    peerDependencies:
+      postcss: ^8.1.0
+    resolution:
+      integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==
+  /postcss-modules-local-by-default/4.0.0:
+    dependencies:
+      icss-utils: 5.1.0
+      postcss-selector-parser: 6.0.6
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >= 14
+    peerDependencies:
+      postcss: ^8.1.0
+    resolution:
+      integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==
+  /postcss-modules-scope/3.0.0:
+    dependencies:
+      postcss-selector-parser: 6.0.6
+    dev: true
+    engines:
+      node: ^10 || ^12 || >= 14
+    peerDependencies:
+      postcss: ^8.1.0
+    resolution:
+      integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==
+  /postcss-modules-values/4.0.0:
+    dependencies:
+      icss-utils: 5.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >= 14
+    peerDependencies:
+      postcss: ^8.1.0
+    resolution:
+      integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==
+  /postcss-modules/4.2.2:
+    dependencies:
+      generic-names: 2.0.1
       icss-replace-symbols: 1.1.0
-      postcss: 6.0.1
-    dev: true
-    resolution:
-      integrity: sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=
-  /postcss-modules/1.5.0:
-    dependencies:
-      css-modules-loader-core: 1.1.0
-      generic-names: 2.0.1
       lodash.camelcase: 4.3.0
-      postcss: 7.0.26
+      postcss-modules-extract-imports: 3.0.0
+      postcss-modules-local-by-default: 4.0.0
+      postcss-modules-scope: 3.0.0
+      postcss-modules-values: 4.0.0
       string-hash: 1.1.3
     dev: true
-    resolution:
-      integrity: sha512-KiAihzcV0TxTTNA5OXreyIXctuHOfR50WIhqBpc8pe0Q5dcs/Uap9EVlifOI9am7zGGdGOJQ6B1MPYKo2UxgOg==
-  /postcss-normalize-charset/4.0.1:
-    dependencies:
-      postcss: 7.0.26
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
-  /postcss-normalize-display-values/4.0.2:
-    dependencies:
-      cssnano-util-get-match: 4.0.0
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
-  /postcss-normalize-positions/4.0.2:
-    dependencies:
-      cssnano-util-get-arguments: 4.0.0
-      has: 1.0.3
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
-  /postcss-normalize-repeat-style/4.0.2:
-    dependencies:
-      cssnano-util-get-arguments: 4.0.0
-      cssnano-util-get-match: 4.0.0
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
-  /postcss-normalize-string/4.0.2:
-    dependencies:
-      has: 1.0.3
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
-  /postcss-normalize-timing-functions/4.0.2:
-    dependencies:
-      cssnano-util-get-match: 4.0.0
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
-  /postcss-normalize-unicode/4.0.1:
-    dependencies:
-      browserslist: 4.8.3
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
-  /postcss-normalize-url/4.0.1:
-    dependencies:
-      is-absolute-url: 2.1.0
-      normalize-url: 3.3.0
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
-  /postcss-normalize-whitespace/4.0.2:
-    dependencies:
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
-  /postcss-ordered-values/4.1.2:
-    dependencies:
-      cssnano-util-get-arguments: 4.0.0
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
-  /postcss-reduce-initial/4.0.3:
-    dependencies:
-      browserslist: 4.8.3
+    peerDependencies:
+      postcss: ^8.0.0
+    resolution:
+      integrity: sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg==
+  /postcss-normalize-charset/5.0.1:
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==
+  /postcss-normalize-display-values/5.0.1:
+    dependencies:
+      cssnano-utils: 2.0.1
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==
+  /postcss-normalize-positions/5.0.1:
+    dependencies:
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==
+  /postcss-normalize-repeat-style/5.0.1:
+    dependencies:
+      cssnano-utils: 2.0.1
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==
+  /postcss-normalize-string/5.0.1:
+    dependencies:
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==
+  /postcss-normalize-timing-functions/5.0.1:
+    dependencies:
+      cssnano-utils: 2.0.1
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==
+  /postcss-normalize-unicode/5.0.1:
+    dependencies:
+      browserslist: 4.18.1
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==
+  /postcss-normalize-url/5.0.3:
+    dependencies:
+      is-absolute-url: 3.0.3
+      normalize-url: 6.1.0
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg==
+  /postcss-normalize-whitespace/5.0.1:
+    dependencies:
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==
+  /postcss-ordered-values/5.0.2:
+    dependencies:
+      cssnano-utils: 2.0.1
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==
+  /postcss-reduce-initial/5.0.1:
+    dependencies:
+      browserslist: 4.18.1
       caniuse-api: 3.0.0
-      has: 1.0.3
-      postcss: 7.0.26
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
-  /postcss-reduce-transforms/4.0.2:
-    dependencies:
-      cssnano-util-get-match: 4.0.0
-      has: 1.0.3
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
-  /postcss-selector-parser/3.1.1:
-    dependencies:
-      dot-prop: 4.2.0
-      indexes-of: 1.0.1
-      uniq: 1.0.1
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==
+  /postcss-reduce-transforms/5.0.1:
+    dependencies:
+      cssnano-utils: 2.0.1
+      postcss-value-parser: 4.1.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==
+  /postcss-selector-parser/6.0.6:
+    dependencies:
+      cssesc: 3.0.0
+      util-deprecate: 1.0.2
     dev: true
     engines:
       node: '>=4'
     resolution:
-      integrity: sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=
-  /postcss-selector-parser/5.0.0:
-    dependencies:
-      cssesc: 2.0.0
-      indexes-of: 1.0.1
-      uniq: 1.0.1
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==
-  /postcss-svgo/4.0.2:
-    dependencies:
-      is-svg: 3.0.0
-      postcss: 7.0.26
-      postcss-value-parser: 3.3.1
-      svgo: 1.3.2
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==
-  /postcss-unique-selectors/4.0.1:
+      integrity: sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==
+  /postcss-svgo/5.0.3:
+    dependencies:
+      postcss-value-parser: 4.1.0
+      svgo: 2.8.0
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA==
+  /postcss-unique-selectors/5.0.2:
     dependencies:
       alphanum-sort: 1.0.2
-      postcss: 7.0.26
-      uniqs: 2.0.0
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
-  /postcss-value-parser/3.3.1:
-    dev: true
-    resolution:
-      integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-  /postcss/6.0.1:
-    dependencies:
-      chalk: 1.1.3
-      source-map: 0.5.7
-      supports-color: 3.2.3
-    dev: true
-    engines:
-      node: '>=4.0.0'
-    resolution:
-      integrity: sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=
-  /postcss/7.0.26:
-    dependencies:
-      chalk: 2.4.2
-      source-map: 0.6.1
-      supports-color: 6.1.0
-    dev: true
-    engines:
-      node: '>=6.0.0'
-    resolution:
-      integrity: sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==
+      postcss-selector-parser: 6.0.6
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==
+  /postcss-value-parser/4.1.0:
+    dev: true
+    resolution:
+      integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
   /prelude-ls/1.1.2:
     dev: true
     engines:
@@ -5691,17 +5636,17 @@
     optional: true
     resolution:
       integrity: sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
-  /pretty-format/25.1.0:
-    dependencies:
-      '@jest/types': 25.1.0
-      ansi-regex: 5.0.0
-      ansi-styles: 4.2.1
-      react-is: 16.12.0
-    dev: true
-    engines:
-      node: '>= 8.3'
-    resolution:
-      integrity: sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==
+  /pretty-format/27.3.1:
+    dependencies:
+      '@jest/types': 27.2.5
+      ansi-regex: 5.0.1
+      ansi-styles: 5.2.0
+      react-is: 17.0.2
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
+    resolution:
+      integrity: sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==
   /private/0.1.8:
     dev: true
     engines:
@@ -5750,6 +5695,7 @@
     resolution:
       integrity: sha1-0/wRS6BplaRexok/SEzrHXj19HY=
   /psl/1.7.0:
+    dev: true
     resolution:
       integrity: sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==
   /public-encrypt/4.0.3:
@@ -5763,37 +5709,20 @@
     dev: true
     resolution:
       integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
-  /pump/3.0.0:
-    dependencies:
-      end-of-stream: 1.4.4
-      once: 1.4.0
-    dev: true
-    resolution:
-      integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
   /punycode/1.3.2:
     dev: true
     resolution:
       integrity: sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
   /punycode/1.4.1:
+    dev: true
     resolution:
       integrity: sha1-wNWmOycYgArY4esPpSachN1BhF4=
   /punycode/2.1.1:
+    dev: true
     engines:
       node: '>=6'
     resolution:
       integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
-  /q/1.5.1:
-    dev: true
-    engines:
-      node: '>=0.6.0'
-      teleport: '>=0.2.0'
-    resolution:
-      integrity: sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
-  /qs/6.5.2:
-    engines:
-      node: '>=0.6'
-    resolution:
-      integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
   /querystring-es3/0.2.1:
     dev: true
     engines:
@@ -5806,6 +5735,10 @@
       node: '>=0.4.x'
     resolution:
       integrity: sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
+  /queue-microtask/1.2.3:
+    dev: false
+    resolution:
+      integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
   /randomatic/3.1.1:
     dependencies:
       is-number: 4.0.0
@@ -5830,23 +5763,24 @@
     dev: true
     resolution:
       integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
-  /rdf-canonize/1.0.3:
-    dependencies:
-      node-forge: 0.8.5
-      semver: 5.7.1
+  /rdf-canonize/3.0.0:
+    dependencies:
+      setimmediate: 1.0.5
     dev: false
     engines:
-      node: '>=6'
-    resolution:
-      integrity: sha512-piLMOB5Q6LJSVx2XzmdpHktYVb8TmVTy8coXJBFtdkcMC96DknZOuzpAYqCWx2ERZX7xEW+mMi8/wDuMJS/95w==
-  /rdf-js/1.0.2:
+      node: '>=12'
+    resolution:
+      integrity: sha512-LXRkhab1QaPJnhUIt1gtXXKswQCZ9zpflsSZFczG7mCLAkMvVjdqCGk9VXCUss0aOUeEyV2jtFxGcdX8DSkj9w==
+  /rdf-js/4.0.2:
+    dependencies:
+      '@rdfjs/types': 1.0.1
     dev: false
     resolution:
-      integrity: sha512-xnR7jV0oVViKJTDE1RIOHs+b4gGPbhwV/D8SciN8Ib8Li5bqtXxRsQSYs6NfDsPN7SULTh6eh5AQ7kLXo7qQoA==
-  /react-is/16.12.0:
-    dev: true
-    resolution:
-      integrity: sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==
+      integrity: sha512-ApvlFa/WsQh8LpPK/6hctQwG06Z9ztQQGWVtrcrf9L6+sejHNXLPOqL+w7q3hF+iL0C4sv3AX1PUtGkLNzyZ0Q==
+  /react-is/17.0.2:
+    dev: true
+    resolution:
+      integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
   /read-only-stream/2.0.0:
     dependencies:
       readable-stream: 2.3.7
@@ -5894,6 +5828,16 @@
     dev: true
     resolution:
       integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+  /readable-stream/3.6.0:
+    dependencies:
+      inherits: 2.0.4
+      string_decoder: 1.1.1
+      util-deprecate: 1.0.2
+    dev: false
+    engines:
+      node: '>= 6'
+    resolution:
+      integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
   /readdirp/2.2.1:
     dependencies:
       graceful-fs: 4.2.3
@@ -5905,14 +5849,6 @@
     optional: true
     resolution:
       integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
-  /realpath-native/1.1.0:
-    dependencies:
-      util.promisify: 1.0.0
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==
   /regenerate/1.4.0:
     dev: true
     resolution:
@@ -5949,16 +5885,9 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
-  /regexpu-core/1.0.0:
-    dependencies:
-      regenerate: 1.4.0
-      regjsgen: 0.2.0
-      regjsparser: 0.1.5
-    dev: true
-    resolution:
-      integrity: sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=
   /regexpu-core/2.0.0:
     dependencies:
       regenerate: 1.4.0
@@ -5980,18 +5909,21 @@
       integrity: sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=
   /remove-trailing-separator/1.1.0:
     dev: true
+    optional: true
     resolution:
       integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
   /repeat-element/1.1.3:
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
   /repeat-string/1.6.1:
     dev: true
     engines:
       node: '>=0.10'
+    optional: true
     resolution:
       integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=
   /repeating/2.0.1:
@@ -6002,71 +5934,12 @@
       node: '>=0.10.0'
     resolution:
       integrity: sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
-  /request-promise-core/1.1.3_request@2.88.0:
-    dependencies:
-      lodash: 4.17.15
-      request: 2.88.0
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    peerDependencies:
-      request: ^2.34
-    resolution:
-      integrity: sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==
-  /request-promise-native/1.0.8_request@2.88.0:
-    dependencies:
-      request: 2.88.0
-      request-promise-core: 1.1.3_request@2.88.0
-      stealthy-require: 1.1.1
-      tough-cookie: 2.5.0
-    dev: true
-    engines:
-      node: '>=0.12.0'
-    peerDependencies:
-      request: ^2.34
-    resolution:
-      integrity: sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==
-  /request/2.88.0:
-    dependencies:
-      aws-sign2: 0.7.0
-      aws4: 1.9.1
-      caseless: 0.12.0
-      combined-stream: 1.0.8
-      extend: 3.0.2
-      forever-agent: 0.6.1
-      form-data: 2.3.3
-      har-validator: 5.1.3
-      http-signature: 1.2.0
-      is-typedarray: 1.0.0
-      isstream: 0.1.2
-      json-stringify-safe: 5.0.1
-      mime-types: 2.1.26
-      oauth-sign: 0.9.0
-      performance-now: 2.1.0
-      qs: 6.5.2
-      safe-buffer: 5.2.0
-      tough-cookie: 2.4.3
-      tunnel-agent: 0.6.0
-      uuid: 3.3.3
-    deprecated: 'request has been deprecated, see https://github.com/request/request/issues/3142'
-    engines:
-      node: '>= 4'
-    resolution:
-      integrity: sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
   /require-directory/2.1.1:
     dev: true
     engines:
       node: '>=0.10.0'
     resolution:
       integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-  /require-main-filename/2.0.0:
-    dev: true
-    resolution:
-      integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
-  /reserved-words/0.1.2:
-    dev: true
-    resolution:
-      integrity: sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=
   /resolve-cwd/3.0.0:
     dependencies:
       resolve-from: 5.0.0
@@ -6075,12 +5948,6 @@
       node: '>=8'
     resolution:
       integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
-  /resolve-from/3.0.0:
-    dev: true
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-six699nWiBvItuZTM17rywoYh0g=
   /resolve-from/5.0.0:
     dev: true
     engines:
@@ -6089,8 +5956,15 @@
       integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
   /resolve-url/0.2.1:
     dev: true
+    optional: true
     resolution:
       integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
+  /resolve.exports/1.1.0:
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==
   /resolve/1.1.7:
     dev: true
     resolution:
@@ -6101,26 +5975,20 @@
     dev: true
     resolution:
       integrity: sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==
-  /resolve/1.15.1:
-    dependencies:
+  /resolve/1.20.0:
+    dependencies:
+      is-core-module: 2.8.0
       path-parse: 1.0.6
     dev: true
     resolution:
-      integrity: sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==
+      integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
   /ret/0.1.15:
     dev: true
     engines:
       node: '>=0.12'
+    optional: true
     resolution:
       integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-  /rgb-regex/1.0.1:
-    dev: true
-    resolution:
-      integrity: sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
-  /rgba-regex/1.0.0:
-    dev: true
-    resolution:
-      integrity: sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
   /rimraf/3.0.2:
     dependencies:
       glob: 7.1.6
@@ -6144,116 +6012,77 @@
     dev: true
     resolution:
       integrity: sha1-JKH+1KQyV7a2Q3HYq8bOGrFFl+k=
-  /rollup-plugin-postcss/2.0.6:
-    dependencies:
-      chalk: 2.4.2
+  /rollup-plugin-postcss/4.0.1:
+    dependencies:
+      chalk: 4.1.2
       concat-with-sourcemaps: 1.1.0
-      cssnano: 4.1.10
-      import-cwd: 2.1.0
-      p-queue: 2.4.2
-      pify: 3.0.0
-      postcss: 7.0.26
-      postcss-load-config: 2.1.0
-      postcss-modules: 1.5.0
+      cssnano: 5.0.11
+      import-cwd: 3.0.0
+      p-queue: 6.6.2
+      pify: 5.0.0
+      postcss-load-config: 3.1.0
+      postcss-modules: 4.2.2
       promise.series: 0.2.0
-      reserved-words: 0.1.2
-      resolve: 1.15.1
+      resolve: 1.20.0
       rollup-pluginutils: 2.8.2
+      safe-identifier: 0.4.2
       style-inject: 0.3.0
     dev: true
     engines:
-      node: '>=6'
-    resolution:
-      integrity: sha512-DTfIoKoC6ljQA4MmrPVbjnumWFx9tZAylDnduIhwJy9JQsq0iiVFmHy0c4cM//h7Auhf1RGB3FLqFuyNUcnExQ==
-  /rollup-plugin-typescript2/0.26.0_rollup@1.31.0+typescript@3.7.5:
-    dependencies:
-      find-cache-dir: 3.2.0
-      fs-extra: 8.1.0
-      resolve: 1.15.1
-      rollup: 1.31.0
-      rollup-pluginutils: 2.8.2
-      tslib: 1.10.0
-      typescript: 3.7.5
-    dev: true
+      node: '>=10'
     peerDependencies:
-      rollup: '>=1.26.3'
-      typescript: '>=2.4.0'
-    resolution:
-      integrity: sha512-lUK7XZVG77tu8dmv1L/0LZFlavED/5Yo6e4iMMl6fdox/yKdj4IFRRPPJEXNdmEaT1nDQQeCi7b5IwKHffMNeg==
+      postcss: 8.x
+    resolution:
+      integrity: sha512-kUJHlpDGl9+kDfdUUbnerW0Mx1R0PL/6dgciUE/w19swYDBjug7RQfxIRvRGtO/cvCkynYyU8e/YFMI544vskA==
   /rollup-pluginutils/2.8.2:
     dependencies:
       estree-walker: 0.6.1
     dev: true
     resolution:
       integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
-  /rollup/0.63.5:
-    dependencies:
-      '@types/estree': 0.0.39
-      '@types/node': 13.1.7
-    dev: true
+  /rollup/2.60.0:
+    dev: true
+    engines:
+      node: '>=10.0.0'
     hasBin: true
-    resolution:
-      integrity: sha512-dFf8LpUNzIj3oE0vCvobX6rqOzHzLBoblyFp+3znPbjiSmSvOoK2kMKx+Fv9jYduG1rvcCfCveSgEaQHjWRF6g==
-  /rollup/1.31.0:
-    dependencies:
-      '@types/estree': 0.0.42
-      '@types/node': 13.1.7
-      acorn: 7.1.0
-    dev: true
-    hasBin: true
-    resolution:
-      integrity: sha512-9C6ovSyNeEwvuRuUUmsTpJcXac1AwSL1a3x+O5lpmQKZqi5mmrjauLeqIjvREC+yNRR8fPdzByojDng+af3nVw==
-  /rsvp/4.8.5:
-    dev: true
-    engines:
-      node: 6.* || >= 7.*
-    resolution:
-      integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
+    optionalDependencies:
+      fsevents: 2.3.2
+    resolution:
+      integrity: sha512-cHdv9GWd58v58rdseC8e8XIaPUo8a9cgZpnCMMDGZFDZKEODOiPPEQFXLriWr/TjXzhPPmG5bkAztPsOARIcGQ==
   /safe-buffer/5.1.2:
-    dev: true
     resolution:
       integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
   /safe-buffer/5.2.0:
+    dev: true
     resolution:
       integrity: sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+  /safe-identifier/0.4.2:
+    dev: true
+    resolution:
+      integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==
   /safe-regex/1.1.0:
     dependencies:
       ret: 0.1.15
     dev: true
+    optional: true
     resolution:
       integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
   /safer-buffer/2.1.2:
+    dev: true
     resolution:
       integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-  /sane/4.1.0:
-    dependencies:
-      '@cnakazawa/watch': 1.0.3
-      anymatch: 2.0.0
-      capture-exit: 2.0.0
-      exec-sh: 0.3.4
-      execa: 1.0.0
-      fb-watchman: 2.0.1
-      micromatch: 3.1.10
-      minimist: 1.2.0
-      walker: 1.0.7
-    dev: true
-    engines:
-      node: 6.* || 8.* || >= 10.*
-    hasBin: true
-    resolution:
-      integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==
   /sax/1.2.4:
     dev: true
     resolution:
       integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-  /saxes/3.1.11:
+  /saxes/5.0.1:
     dependencies:
       xmlchars: 2.2.0
     dev: true
     engines:
-      node: '>=8'
-    resolution:
-      integrity: sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==
+      node: '>=10'
+    resolution:
+      integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==
   /seamless-immutable/6.3.0:
     dev: true
     resolution:
@@ -6264,10 +6093,12 @@
     resolution:
       integrity: sha1-uYSPJdbPNjMwc+ye+IVtQvEjPlI=
   /semver/5.7.1:
+    dev: true
     hasBin: true
     resolution:
       integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
   /semver/6.3.0:
+    dev: true
     hasBin: true
     resolution:
       integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
@@ -6278,10 +6109,15 @@
     hasBin: true
     resolution:
       integrity: sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==
-  /set-blocking/2.0.0:
-    dev: true
-    resolution:
-      integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+  /semver/7.3.5:
+    dependencies:
+      lru-cache: 6.0.0
+    dev: true
+    engines:
+      node: '>=10'
+    hasBin: true
+    resolution:
+      integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
   /set-value/2.0.1:
     dependencies:
       extend-shallow: 2.0.1
@@ -6291,8 +6127,13 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
+  /setimmediate/1.0.5:
+    dev: false
+    resolution:
+      integrity: sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
   /sha.js/2.4.11:
     dependencies:
       inherits: 2.0.4
@@ -6314,14 +6155,6 @@
     dev: true
     resolution:
       integrity: sha1-5wEjENj0F/TetXEhUOVni4euVl8=
-  /shebang-command/1.2.0:
-    dependencies:
-      shebang-regex: 1.0.0
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
   /shebang-command/2.0.0:
     dependencies:
       shebang-regex: 3.0.0
@@ -6330,12 +6163,6 @@
       node: '>=8'
     resolution:
       integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
-  /shebang-regex/1.0.0:
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
   /shebang-regex/3.0.0:
     dev: true
     engines:
@@ -6346,25 +6173,18 @@
     dev: true
     resolution:
       integrity: sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
-  /shellwords/0.1.1:
-    dev: true
-    optional: true
-    resolution:
-      integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
   /signal-exit/3.0.2:
     dev: true
     resolution:
       integrity: sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+  /signal-exit/3.0.5:
+    dev: true
+    resolution:
+      integrity: sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==
   /simple-concat/1.0.0:
     dev: true
     resolution:
       integrity: sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
-  /simple-swizzle/0.2.2:
-    dependencies:
-      is-arrayish: 0.3.2
-    dev: true
-    resolution:
-      integrity: sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
   /sisteransi/1.0.4:
     dev: true
     resolution:
@@ -6389,6 +6209,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
   /snapdragon-util/3.0.1:
@@ -6397,6 +6218,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
   /snapdragon/0.8.2:
@@ -6412,6 +6234,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
   /source-map-resolve/0.5.3:
@@ -6422,8 +6245,16 @@
       source-map-url: 0.4.0
       urix: 0.1.0
     dev: true
+    optional: true
     resolution:
       integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
+  /source-map-resolve/0.6.0:
+    dependencies:
+      atob: 2.1.2
+      decode-uri-component: 0.2.0
+    dev: true
+    resolution:
+      integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==
   /source-map-support/0.4.18:
     dependencies:
       source-map: 0.5.7
@@ -6439,6 +6270,7 @@
       integrity: sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==
   /source-map-url/0.4.0:
     dev: true
+    optional: true
     resolution:
       integrity: sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
   /source-map/0.5.7:
@@ -6469,38 +6301,25 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
   /sprintf-js/1.0.3:
     dev: true
     resolution:
       integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-  /sshpk/1.16.1:
-    dependencies:
-      asn1: 0.2.4
-      assert-plus: 1.0.0
-      bcrypt-pbkdf: 1.0.2
-      dashdash: 1.14.1
-      ecc-jsbn: 0.1.2
-      getpass: 0.1.7
-      jsbn: 0.1.1
-      safer-buffer: 2.1.2
-      tweetnacl: 0.14.5
-    engines:
-      node: '>=0.10.0'
-    hasBin: true
-    resolution:
-      integrity: sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
   /stable/0.1.8:
     dev: true
     resolution:
       integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
-  /stack-utils/1.0.2:
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==
+  /stack-utils/2.0.5:
+    dependencies:
+      escape-string-regexp: 2.0.0
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==
   /static-extend/0.1.2:
     dependencies:
       define-property: 0.2.5
@@ -6508,14 +6327,9 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
-  /stealthy-require/1.1.1:
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
   /stream-browserify/2.0.2:
     dependencies:
       inherits: 2.0.4
@@ -6551,15 +6365,15 @@
     dev: true
     resolution:
       integrity: sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=
-  /string-length/3.1.0:
-    dependencies:
-      astral-regex: 1.0.0
-      strip-ansi: 5.2.0
-    dev: true
-    engines:
-      node: '>=8'
-    resolution:
-      integrity: sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==
+  /string-length/4.0.2:
+    dependencies:
+      char-regex: 1.0.2
+      strip-ansi: 6.0.0
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
   /string-range/1.2.2:
     dev: true
     resolution:
@@ -6574,24 +6388,6 @@
       node: '>=8'
     resolution:
       integrity: sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
-  /string.prototype.trimleft/2.1.1:
-    dependencies:
-      define-properties: 1.1.3
-      function-bind: 1.1.1
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==
-  /string.prototype.trimright/2.1.1:
-    dependencies:
-      define-properties: 1.1.3
-      function-bind: 1.1.1
-    dev: true
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==
   /string_decoder/0.10.31:
     dev: true
     resolution:
@@ -6599,7 +6395,6 @@
   /string_decoder/1.1.1:
     dependencies:
       safe-buffer: 5.1.2
-    dev: true
     resolution:
       integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
   /strip-ansi/3.0.1:
@@ -6610,17 +6405,9 @@
       node: '>=0.10.0'
     resolution:
       integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
-  /strip-ansi/5.2.0:
-    dependencies:
-      ansi-regex: 4.1.0
-    dev: true
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
   /strip-ansi/6.0.0:
     dependencies:
-      ansi-regex: 5.0.0
+      ansi-regex: 5.0.1
     dev: true
     engines:
       node: '>=8'
@@ -6632,12 +6419,6 @@
       node: '>=8'
     resolution:
       integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
-  /strip-eof/1.0.0:
-    dev: true
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
   /strip-final-newline/2.0.0:
     dev: true
     engines:
@@ -6648,22 +6429,23 @@
     dev: true
     resolution:
       integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==
-  /stylehacks/4.0.3:
-    dependencies:
-      browserslist: 4.8.3
-      postcss: 7.0.26
-      postcss-selector-parser: 3.1.1
-    dev: true
-    engines:
-      node: '>=6.9.0'
-    resolution:
-      integrity: sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
-  /stylus/0.54.7:
-    dependencies:
-      css-parse: 2.0.0
+  /stylehacks/5.0.1:
+    dependencies:
+      browserslist: 4.18.1
+      postcss-selector-parser: 6.0.6
+    dev: true
+    engines:
+      node: ^10 || ^12 || >=14.0
+    peerDependencies:
+      postcss: ^8.2.15
+    resolution:
+      integrity: sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==
+  /stylus/0.55.0:
+    dependencies:
+      css: 3.0.0
       debug: 3.1.0
       glob: 7.1.6
-      mkdirp: 0.5.1
+      mkdirp: 1.0.4
       safer-buffer: 2.1.2
       sax: 1.2.4
       semver: 6.3.0
@@ -6671,7 +6453,7 @@
     dev: true
     hasBin: true
     resolution:
-      integrity: sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug==
+      integrity: sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==
   /subarg/1.0.0:
     dependencies:
       minimist: 1.2.0
@@ -6684,14 +6466,6 @@
       node: '>=0.8.0'
     resolution:
       integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
-  /supports-color/3.2.3:
-    dependencies:
-      has-flag: 1.0.0
-    dev: true
-    engines:
-      node: '>=0.8.0'
-    resolution:
-      integrity: sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=
   /supports-color/5.5.0:
     dependencies:
       has-flag: 3.0.0
@@ -6700,14 +6474,6 @@
       node: '>=4'
     resolution:
       integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
-  /supports-color/6.1.0:
-    dependencies:
-      has-flag: 3.0.0
-    dev: true
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
   /supports-color/7.1.0:
     dependencies:
       has-flag: 4.0.0
@@ -6716,6 +6482,14 @@
       node: '>=8'
     resolution:
       integrity: sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
+  /supports-color/8.1.1:
+    dependencies:
+      has-flag: 4.0.0
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
   /supports-hyperlinks/2.1.0:
     dependencies:
       has-flag: 4.0.0
@@ -6725,27 +6499,21 @@
       node: '>=8'
     resolution:
       integrity: sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==
-  /svgo/1.3.2:
-    dependencies:
-      chalk: 2.4.2
-      coa: 2.0.2
-      css-select: 2.1.0
-      css-select-base-adapter: 0.1.1
-      css-tree: 1.0.0-alpha.37
-      csso: 4.0.2
-      js-yaml: 3.13.1
-      mkdirp: 0.5.1
-      object.values: 1.1.1
-      sax: 1.2.4
+  /svgo/2.8.0:
+    dependencies:
+      '@trysound/sax': 0.2.0
+      commander: 7.2.0
+      css-select: 4.1.3
+      css-tree: 1.1.3
+      csso: 4.2.0
+      picocolors: 1.0.0
       stable: 0.1.8
-      unquote: 1.1.1
-      util.promisify: 1.0.0
-    dev: true
-    engines:
-      node: '>=4.0.0'
+    dev: true
+    engines:
+      node: '>=10.13.0'
     hasBin: true
     resolution:
-      integrity: sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
+      integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
   /symbol-tree/3.2.4:
     dev: true
     resolution:
@@ -6775,10 +6543,10 @@
       node: '>=8'
     resolution:
       integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
-  /throat/5.0.0:
-    dev: true
-    resolution:
-      integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==
+  /throat/6.0.1:
+    dev: true
+    resolution:
+      integrity: sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==
   /through/2.3.8:
     dev: true
     resolution:
@@ -6828,6 +6596,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
   /to-regex-range/2.1.1:
@@ -6837,6 +6606,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
   /to-regex-range/5.0.1:
@@ -6856,84 +6626,73 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
-  /tough-cookie/2.4.3:
-    dependencies:
-      psl: 1.7.0
-      punycode: 1.4.1
-    engines:
-      node: '>=0.8'
-    resolution:
-      integrity: sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
-  /tough-cookie/2.5.0:
+  /tough-cookie/4.0.0:
     dependencies:
       psl: 1.7.0
       punycode: 2.1.1
-    dev: true
-    engines:
-      node: '>=0.8'
-    resolution:
-      integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
-  /tough-cookie/3.0.1:
-    dependencies:
-      ip-regex: 2.1.0
-      psl: 1.7.0
-      punycode: 2.1.1
+      universalify: 0.1.2
     dev: true
     engines:
       node: '>=6'
     resolution:
-      integrity: sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==
-  /tr46/1.0.1:
+      integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==
+  /tr46/2.1.0:
     dependencies:
       punycode: 2.1.1
     dev: true
-    resolution:
-      integrity: sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
+    engines:
+      node: '>=8'
+    resolution:
+      integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==
   /trim-right/1.0.1:
     dev: true
     engines:
       node: '>=0.10.0'
     resolution:
       integrity: sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
-  /ts-jest/25.2.0_jest@25.1.0:
-    dependencies:
+  /ts-jest/27.0.7_2c4ca6574207836d1023f54689cc81ac:
+    dependencies:
+      '@types/jest': 27.0.2
       bs-logger: 0.2.6
-      buffer-from: 1.1.1
       fast-json-stable-stringify: 2.1.0
-      jest: 25.1.0
+      jest: 27.3.1
+      jest-util: 27.3.1
       json5: 2.1.1
       lodash.memoize: 4.1.2
       make-error: 1.3.5
-      mkdirp: 0.5.1
-      resolve: 1.15.1
-      semver: 5.7.1
-      yargs-parser: 10.1.0
-    dev: true
-    engines:
-      node: '>= 6'
+      semver: 7.1.3
+      typescript: 4.4.4
+      yargs-parser: 20.2.9
+    dev: true
+    engines:
+      node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0
     hasBin: true
     peerDependencies:
-      jest: '>=25 <26'
-    resolution:
-      integrity: sha512-VaRdb0da46eorLfuHEFf0G3d+jeREcV+Wb/SvW71S4y9Oe8SHWU+m1WY/3RaMknrBsnvmVH0/rRjT8dkgeffNQ==
-  /tslib/1.10.0:
-    dev: true
-    resolution:
-      integrity: sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
+      '@babel/core': '>=7.0.0-beta.0 <8'
+      '@types/jest': ^27.0.0
+      babel-jest: '>=27.0.0 <28'
+      jest: ^27.0.0
+      typescript: '>=3.8 <5.0'
+    peerDependenciesMeta:
+      '@babel/core':
+        optional: true
+      '@types/jest':
+        optional: true
+      babel-jest:
+        optional: true
+    resolution:
+      integrity: sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q==
+  /tslib/2.3.1:
+    dev: true
+    resolution:
+      integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
   /tty-browserify/0.0.1:
     dev: true
     resolution:
       integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==
-  /tunnel-agent/0.6.0:
-    dependencies:
-      safe-buffer: 5.2.0
-    resolution:
-      integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
-  /tweetnacl/0.14.5:
-    resolution:
-      integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
   /type-check/0.3.2:
     dependencies:
       prelude-ls: 1.1.2
@@ -6968,13 +6727,13 @@
     dev: true
     resolution:
       integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-  /typescript/3.7.5:
+  /typescript/4.4.4:
     dev: true
     engines:
       node: '>=4.2.0'
     hasBin: true
     resolution:
-      integrity: sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==
+      integrity: sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==
   /umd/3.0.3:
     dev: true
     hasBin: true
@@ -7000,26 +6759,15 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
-  /uniq/1.0.1:
-    dev: true
-    resolution:
-      integrity: sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
-  /uniqs/2.0.0:
-    dev: true
-    resolution:
-      integrity: sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
   /universalify/0.1.2:
     dev: true
     engines:
       node: '>= 4.0.0'
     resolution:
       integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
-  /unquote/1.1.1:
-    dev: true
-    resolution:
-      integrity: sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
   /unset-value/1.0.0:
     dependencies:
       has-value: 0.3.1
@@ -7027,15 +6775,12 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
-  /uri-js/4.2.2:
-    dependencies:
-      punycode: 2.1.1
-    resolution:
-      integrity: sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
   /urix/0.1.0:
     dev: true
+    optional: true
     resolution:
       integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
   /url/0.11.0:
@@ -7049,6 +6794,7 @@
     dev: true
     engines:
       node: '>=0.10.0'
+    optional: true
     resolution:
       integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
   /user-home/1.1.1:
@@ -7059,16 +6805,8 @@
     resolution:
       integrity: sha1-K1viOjK2Onyd640PKNSFcko98ZA=
   /util-deprecate/1.0.2:
-    dev: true
     resolution:
       integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-  /util.promisify/1.0.0:
-    dependencies:
-      define-properties: 1.1.3
-      object.getownpropertydescriptors: 2.1.0
-    dev: true
-    resolution:
-      integrity: sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
   /util/0.10.3:
     dependencies:
       inherits: 2.0.1
@@ -7081,20 +6819,16 @@
     dev: true
     resolution:
       integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
-  /uuid/3.3.3:
-    hasBin: true
-    resolution:
-      integrity: sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==
-  /v8-to-istanbul/4.1.2:
+  /v8-to-istanbul/8.1.0:
     dependencies:
       '@types/istanbul-lib-coverage': 2.0.1
       convert-source-map: 1.7.0
       source-map: 0.7.3
     dev: true
     engines:
-      node: 8.x.x || >=10.10.0
-    resolution:
-      integrity: sha512-G9R+Hpw0ITAmPSr47lSlc5A1uekSYzXxTMlFxso2xoffwo4jQnzbv1p9yXIinO8UMZKfAFewaCHwWvnH4Jb4Ug==
+      node: '>=10.12.0'
+    resolution:
+      integrity: sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==
   /v8flags/2.1.1:
     dependencies:
       user-home: 1.1.1
@@ -7103,49 +6837,44 @@
       node: '>= 0.10.0'
     resolution:
       integrity: sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=
-  /vendors/1.0.3:
-    dev: true
-    resolution:
-      integrity: sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==
-  /verror/1.10.0:
-    dependencies:
-      assert-plus: 1.0.0
-      core-util-is: 1.0.2
-      extsprintf: 1.3.0
-    engines:
-      '0': node >=0.6.0
-    resolution:
-      integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
   /vm-browserify/0.0.4:
     dependencies:
       indexof: 0.0.1
     dev: true
     resolution:
       integrity: sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=
-  /w3c-hr-time/1.0.1:
-    dependencies:
-      browser-process-hrtime: 0.1.3
-    dev: true
-    resolution:
-      integrity: sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=
-  /w3c-xmlserializer/1.1.2:
-    dependencies:
-      domexception: 1.0.1
-      webidl-conversions: 4.0.2
+  /w3c-hr-time/1.0.2:
+    dependencies:
+      browser-process-hrtime: 1.0.0
+    dev: true
+    resolution:
+      integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
+  /w3c-xmlserializer/2.0.0:
+    dependencies:
       xml-name-validator: 3.0.0
     dev: true
-    resolution:
-      integrity: sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==
   /walker/1.0.7:
     dependencies:
       makeerror: 1.0.11
     dev: true
     resolution:
       integrity: sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=
-  /webidl-conversions/4.0.2:
-    dev: true
-    resolution:
-      integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
+  /webidl-conversions/5.0.0:
+    dev: true
+    engines:
+      node: '>=8'
+    resolution:
+      integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==
+  /webidl-conversions/6.1.0:
+    dev: true
+    engines:
+      node: '>=10.4'
+    resolution:
+      integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
   /whatwg-encoding/1.0.5:
     dependencies:
       iconv-lite: 0.4.24
@@ -7156,25 +6885,16 @@
     dev: true
     resolution:
       integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
-  /whatwg-url/7.1.0:
-    dependencies:
-      lodash.sortby: 4.7.0
-      tr46: 1.0.1
-      webidl-conversions: 4.0.2
-    dev: true
-    resolution:
-      integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
-  /which-module/2.0.0:
-    dev: true
-    resolution:
-      integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-  /which/1.3.1:
-    dependencies:
-      isexe: 2.0.0
-    dev: true
-    hasBin: true
-    resolution:
-      integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+  /whatwg-url/8.7.0:
+    dependencies:
+      lodash: 4.17.21
+      tr46: 2.1.0
+      webidl-conversions: 6.1.0
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==
   /which/2.0.2:
     dependencies:
       isexe: 2.0.0
@@ -7190,16 +6910,16 @@
       node: '>=0.10.0'
     resolution:
       integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
-  /wrap-ansi/6.2.0:
+  /wrap-ansi/7.0.0:
     dependencies:
       ansi-styles: 4.2.1
       string-width: 4.2.0
       strip-ansi: 6.0.0
     dev: true
     engines:
-      node: '>=8'
-    resolution:
-      integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+      node: '>=10'
+    resolution:
+      integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
   /wrappy/1.0.2:
     dev: true
     resolution:
@@ -7213,7 +6933,7 @@
     dev: true
     resolution:
       integrity: sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==
-  /ws/7.2.1:
+  /ws/7.5.5:
     dev: true
     engines:
       node: '>=8.3.0'
@@ -7226,7 +6946,7 @@
       utf-8-validate:
         optional: true
     resolution:
-      integrity: sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==
+      integrity: sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==
   /xml-name-validator/3.0.0:
     dev: true
     resolution:
@@ -7235,12 +6955,6 @@
     dev: true
     resolution:
       integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
-  /xmldom/0.1.19:
-    dev: false
-    engines:
-      node: '>=0.1'
-    resolution:
-      integrity: sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw=
   /xtend/2.0.6:
     dependencies:
       is-object: 0.1.2
@@ -7276,66 +6990,60 @@
       node: '>=0.4'
     resolution:
       integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-  /y18n/4.0.0:
-    dev: true
-    resolution:
-      integrity: sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
-  /yallist/3.1.1:
-    dev: false
-    resolution:
-      integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-  /yargs-parser/10.1.0:
-    dependencies:
-      camelcase: 4.1.0
-    dev: true
-    resolution:
-      integrity: sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==
-  /yargs-parser/16.1.0:
-    dependencies:
-      camelcase: 5.3.1
-      decamelize: 1.2.0
-    dev: true
-    resolution:
-      integrity: sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==
-  /yargs/15.1.0:
-    dependencies:
-      cliui: 6.0.0
-      decamelize: 1.2.0
-      find-up: 4.1.0
+  /y18n/5.0.8:
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+  /yallist/4.0.0:
+    resolution:
+      integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+  /yaml/1.10.2:
+    dev: true
+    engines:
+      node: '>= 6'
+    resolution:
+      integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+  /yargs-parser/20.2.9:
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+  /yargs/16.2.0:
+    dependencies:
+      cliui: 7.0.4
+      escalade: 3.1.1
       get-caller-file: 2.0.5
       require-directory: 2.1.1
-      require-main-filename: 2.0.0
-      set-blocking: 2.0.0
       string-width: 4.2.0
-      which-module: 2.0.0
-      y18n: 4.0.0
-      yargs-parser: 16.1.0
-    dev: true
-    engines:
-      node: '>=8'
-    resolution:
-      integrity: sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==
+      y18n: 5.0.8
+      yargs-parser: 20.2.9
+    dev: true
+    engines:
+      node: '>=10'
+    resolution:
+      integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
 specifiers:
-  '@polymer/decorators': ^3.0.0
-  '@polymer/polymer': ^3.3.1
-  '@rollup/plugin-commonjs': ^11.0.2
-  '@rollup/plugin-node-resolve': ^7.1.1
-  '@rollup/plugin-replace': ^2.3.1
-  '@types/jest': ^25.1.2
-  '@types/jsonld': ^1.5.1
-  '@types/n3': ^1.1.5
-  '@types/rollup-plugin-postcss': ^2.0.0
-  jest: ^25.1.0
-  jsonld: ^2.0.2
-  lit-html: ^1.1.2
-  n3: ^1.3.5
+  '@rollup/plugin-commonjs': ^21.0.1
+  '@rollup/plugin-node-resolve': ^13.0.6
+  '@rollup/plugin-replace': ^3.0.0
+  '@rollup/plugin-typescript': ^8.3.0
+  '@types/jest': ^27.0.2
+  '@types/jsonld': ^1.5.6
+  '@types/n3': ^1.10.4
+  '@types/rollup-plugin-postcss': ^3.1.4
+  jest: ^27.3.1
+  jsonld: ^5.2.0
+  lit: ^2.0.2
+  n3: ^1.11.2
   node-globals: ^0.1.5
-  rdf-js: ^1.0.2
-  rollup: ^1.31.0
+  rdf-js: ^4.0.2
+  rollup: ^2.60.0
   rollup-plugin-node-builtins: ^2.1.2
-  rollup-plugin-postcss: ^2.0.6
-  rollup-plugin-typescript2: ^0.26.0
-  stylus: ^0.54.7
-  ts-jest: ^25.2.0
-  tslib: ^1.10.0
-  typescript: ^3.7.5
+  rollup-plugin-postcss: ^4.0.1
+  stylus: ^0.55.0
+  ts-jest: ^27.0.7
+  tslib: ^2.3.1
+  typescript: ^4.4.4
--- a/rollup.config.js	Tue Feb 11 22:55:24 2020 -0800
+++ b/rollup.config.js	Wed Nov 17 13:01:08 2021 -0800
@@ -1,8 +1,7 @@
 import builtins from "rollup-plugin-node-builtins";
-import commonjs from "@rollup/plugin-commonjs";
-import postcss from "rollup-plugin-postcss";
+// import postcss from "rollup-plugin-postcss";
 import resolve from "@rollup/plugin-node-resolve";
-import typescript from "rollup-plugin-typescript2";
+import typescript from "@rollup/plugin-typescript";
 
 const workaround_jsonld_module_system_picker = "process = {version: '1.0.0'}";
 const workaround_some_browser_detector = "global = window";
@@ -26,41 +25,44 @@
     output: {
       file: "build/lib.bundle.js",
       format: "esm",
-      intro: `const ${workaround_some_browser_detector}, ${workaround_jsonld_module_system_picker};`
+      sourcemap: true,
+      // intro: `const ${workaround_some_browser_detector}, ${workaround_jsonld_module_system_picker};`
     },
-    external: moduleIsntLocal,
+    // external: moduleIsntLocal,
     plugins: [
-      builtins(),
-      resolve({
-        extensions: [".js", ".ts"],
-        browser: true,
+      // builtins(),
+      // resolve({
+      //   extensions: [".js", ".ts"],
+      //   browser: true,
+      // }),
+      typescript({
+        outDir: "build"
       }),
-      typescript(),
-      postcss({
-        inject: false
-      }),
-      commonjs(workaround_jsonld_expand_issue)
+      // postcss({
+      //   inject: false
+      // }),
+      // commonjs(workaround_jsonld_expand_issue)
     ]
   },
-  {
-    input: "src/demo.ts",
-    output: {
-      file: "build/demo.js",
-      format: "esm",
-      intro: `const ${workaround_some_browser_detector}, ${workaround_jsonld_module_system_picker};`
-    },
-    external: [],
-    plugins: [
-      builtins(),
-      resolve({
-        extensions: [".js", ".ts"],
-        browser: true
-      }),
-      typescript(),
-      postcss({
-        inject: false
-      }),
-      commonjs(workaround_jsonld_expand_issue)
-    ]
-  }
+  // {
+  //   input: "src/demo.ts",
+  //   output: {
+  //     file: "build/demo.js",
+  //     format: "esm",
+  //     intro: `const ${workaround_some_browser_detector}, ${workaround_jsonld_module_system_picker};`
+  //   },
+  //   external: [],
+  //   plugins: [
+  //     builtins(),
+  //     resolve({
+  //       extensions: [".js", ".ts"],
+  //       browser: true
+  //     }),
+  //     typescript(),
+  //     // postcss({
+  //     //   inject: false
+  //     // }),
+  //     // commonjs(workaround_jsonld_expand_issue)
+  //   ]
+  // }
 ];
--- a/src/demo.ts	Tue Feb 11 22:55:24 2020 -0800
+++ b/src/demo.ts	Wed Nov 17 13:01:08 2021 -0800
@@ -1,2 +1,1 @@
-export { StreamedGraph } from './index'; // to make the customElement
-export { DomBind } from "@polymer/polymer/lib/elements/dom-bind.js";
+// export { StreamedGraph } from './index'; // to make the customElement
--- a/src/graph_queries.ts	Tue Feb 11 22:55:24 2020 -0800
+++ b/src/graph_queries.ts	Wed Nov 17 13:01:08 2021 -0800
@@ -1,18 +1,101 @@
-import { N3Store, NamedNode } from "n3";
+// import { DataFactory, Literal, N3Store, NamedNode, Util } from "n3";
+// const { literal, namedNode } = DataFactory;
+
+// // i think this one is a worse subset of graphLiteral, below
+// export function getStringValue(
+//   store: N3Store | undefined,
+//   subj: NamedNode,
+//   pred: NamedNode,
+//   defaultValue: string = ""
+// ): string {
+//   if (store === undefined) {
+//     // this is so you can use the function before you have a graph
+//     return "...";
+//   }
+//   const objs = store.getObjects(subj, pred, null);
+//   if (objs.length == 0) {
+//     return defaultValue;
+//   }
+//   return objs[0].value;
+// }
+
+// // workaround for uris that don't have good labels in the graph
+// export function labelFromUri(
+//   uri: NamedNode,
+//   prefix: string,
+//   tailsToLabels: { [key: string]: string },
+//   defaultLabel: string
+// ) {
+//   let label = defaultLabel === undefined ? uri.value : defaultLabel;
+//   Object.entries(tailsToLabels).forEach(([tail, useLabel]) => {
+//     if (uri.equals(namedNode(prefix + tail))) {
+//       label = useLabel as string;
+//     }
+//   });
+//   return label;
+// }
 
-export function getStringValue(
-  store: N3Store | undefined,
-  subj: NamedNode,
-  pred: NamedNode,
-  defaultValue: string = ""
-): string {
-  if (store === undefined) {
-    // this is so you can use the function before you have a graph
-    return "...";
-  }
-  const objs = store.getObjects(subj, pred, null);
-  if (objs.length == 0) {
-    return defaultValue;
-  }
-  return objs[0].value;
-}
+// export function graphLiteral(
+//   store: N3Store,
+//   subj: NamedNode,
+//   pred: string,
+//   notFoundResult?: string
+// ): Literal {
+//   const keep: Array<Literal> = [];
+//   store.forEach(
+//     q => {
+//       if (!Util.isLiteral(q.object)) {
+//         throw new Error("non literal found");
+//       }
+//       let seen = false;
+//       for (let other of keep) {
+//         // why are we getting multiple matches for the same literal? seems like a bug
+//         if (other.equals(q.object)) {
+//           seen = true;
+//         }
+//       }
+//       if (!seen) {
+//         keep.push(q.object as Literal);
+//       }
+//     },
+//     subj,
+//     namedNode(pred),
+//     null,
+//     null
+//   );
+//   if (keep.length == 0) {
+//     return literal(notFoundResult || "(missing)");
+//   }
+//   if (keep.length == 1) {
+//     return keep[0];
+//   }
+//   console.log(`${subj.value} ${pred} had ${keep.length} objects:`, keep);
+//   return keep[0];
+// }
+
+// export function graphUriValue(
+//   store: N3Store,
+//   subj: NamedNode,
+//   pred: string
+// ): NamedNode | undefined {
+//   const keep: Array<NamedNode> = [];
+//   store.forEach(
+//     q => {
+//       if (!Util.isNamedNode(q.object)) {
+//         throw new Error("non uri found");
+//       }
+//       keep.push(q.object as NamedNode);
+//     },
+//     subj,
+//     namedNode(pred),
+//     null,
+//     null
+//   );
+//   if (keep.length == 0) {
+//     return undefined;
+//   }
+//   if (keep.length == 1) {
+//     return keep[0];
+//   }
+//   throw new Error("found multiple matches for pred");
+// }
--- a/src/graph_view.ts	Tue Feb 11 22:55:24 2020 -0800
+++ b/src/graph_view.ts	Wed Nov 17 13:01:08 2021 -0800
@@ -1,327 +1,327 @@
-import { html, TemplateResult } from 'lit-html';
-import { DataFactory, Literal, N3Store, NamedNode, Quad, Quad_Object, Term, Util } from 'n3';
+// import { html, TemplateResult } from 'lit-html';
+// import { DataFactory, Literal, N3Store, NamedNode, Quad, Quad_Object, Term, Util } from 'n3';
 
-import { SuffixLabels } from './suffixLabels';
+// import { SuffixLabels } from './suffixLabels';
 
-const { namedNode } = DataFactory;
+// const { namedNode } = DataFactory;
 
-// import ns from 'n3/src/IRIs';
-// const { rdf } = ns;
-const rdf = {
-  type: namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")
-};
+// // import ns from 'n3/src/IRIs';
+// // const { rdf } = ns;
+// const rdf = {
+//   type: namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")
+// };
 
-type TypeToSubjs = Map<NamedNode, Set<NamedNode>>;
-// When there are multiple types, an arbitrary one is used.
-function groupByRdfType(
-  graph: N3Store
-): { byType: TypeToSubjs; untyped: Set<NamedNode> } {
-  const rdfType = rdf.type;
-  const byType: TypeToSubjs = new Map();
-  const untyped: Set<NamedNode> = new Set(); // subjs
-  const internSubjs = new Map<string, NamedNode>();
-  graph.forEach(
-    q => {
-      if (!Util.isNamedNode(q.subject)) {
-        throw new Error("unsupported " + q.subject.value);
-      }
-      const subj = q.subject as NamedNode;
+// type TypeToSubjs = Map<NamedNode, Set<NamedNode>>;
+// // When there are multiple types, an arbitrary one is used.
+// function groupByRdfType(
+//   graph: N3Store
+// ): { byType: TypeToSubjs; untyped: Set<NamedNode> } {
+//   const rdfType = rdf.type;
+//   const byType: TypeToSubjs = new Map();
+//   const untyped: Set<NamedNode> = new Set(); // subjs
+//   const internSubjs = new Map<string, NamedNode>();
+//   graph.forEach(
+//     q => {
+//       if (!Util.isNamedNode(q.subject)) {
+//         throw new Error("unsupported " + q.subject.value);
+//       }
+//       const subj = q.subject as NamedNode;
 
-      let subjType: NamedNode | null = null;
+//       let subjType: NamedNode | null = null;
 
-      graph.forObjects(
-        (o: Quad_Object) => {
-          subjType = o as NamedNode;
-        },
-        subj,
-        rdfType,
-        null
-      );
+//       graph.forObjects(
+//         (o: Quad_Object) => {
+//           subjType = o as NamedNode;
+//         },
+//         subj,
+//         rdfType,
+//         null
+//       );
 
-      if (subjType !== null) {
-        // (subj, rdf:type, subjType) in graph
-        if (!byType.has(subjType)) {
-          byType.set(subjType, new Set());
-        }
-        (byType.get(subjType) as Set<NamedNode>).add(subj);
-      } else {
-        // no rdf:type stmt in graph
-        if (!internSubjs.has(subj.value)) {
-          internSubjs.set(subj.value, subj);
-        }
-        const intSubj: NamedNode = internSubjs.get(
-          subj.value as string
-        ) as NamedNode;
-        untyped.add(intSubj);
-      }
-    },
-    null,
-    null,
-    null,
-    null
-  );
-  return { byType: byType, untyped: untyped };
-}
+//       if (subjType !== null) {
+//         // (subj, rdf:type, subjType) in graph
+//         if (!byType.has(subjType)) {
+//           byType.set(subjType, new Set());
+//         }
+//         (byType.get(subjType) as Set<NamedNode>).add(subj);
+//       } else {
+//         // no rdf:type stmt in graph
+//         if (!internSubjs.has(subj.value)) {
+//           internSubjs.set(subj.value, subj);
+//         }
+//         const intSubj: NamedNode = internSubjs.get(
+//           subj.value as string
+//         ) as NamedNode;
+//         untyped.add(intSubj);
+//       }
+//     },
+//     null,
+//     null,
+//     null,
+//     null
+//   );
+//   return { byType: byType, untyped: untyped };
+// }
 
-class NodeDisplay {
-  labels: SuffixLabels;
-  constructor(labels: SuffixLabels) {
-    this.labels = labels;
-  }
-  getHtml(n: Term | NamedNode): TemplateResult {
-    if (Util.isLiteral(n)) {
-      n = n as Literal;
-      let dtPart: any = "";
-      if (n.datatype) {
-        dtPart = html`
-          ^^<span class="literalType">
-            ${this.getHtml(n.datatype)}
-          </span>
-        `;
-      }
-      return html`
-        <span class="literal">${n.value}${dtPart}</span>
-      `;
-    }
+// class NodeDisplay {
+//   labels: SuffixLabels;
+//   constructor(labels: SuffixLabels) {
+//     this.labels = labels;
+//   }
+//   getHtml(n: Term | NamedNode): TemplateResult {
+//     if (Util.isLiteral(n)) {
+//       n = n as Literal;
+//       let dtPart: any = "";
+//       if (n.datatype) {
+//         dtPart = html`
+//           ^^<span class="literalType">
+//             ${this.getHtml(n.datatype)}
+//           </span>
+//         `;
+//       }
+//       return html`
+//         <span class="literal">${n.value}${dtPart}</span>
+//       `;
+//     }
 
-    if (Util.isNamedNode(n)) {
-      n = n as NamedNode;
-      let shortened = false;
-      let uriValue: string = n.value;
-      for (let [long, short] of [
-        ["http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf:"],
-        ["http://www.w3.org/2000/01/rdf-schema#", "rdfs:"],
-        ["http://purl.org/dc/elements/1.1/", "dc:"],
-        ["http://www.w3.org/2001/XMLSchema#", "xsd:"]
-      ]) {
-        if (uriValue.startsWith(long)) {
-          uriValue = short + uriValue.substr(long.length);
-          shortened = true;
-          break;
-        }
-      }
-      if (!shortened) {
-        let dn: string | undefined = this.labels.getLabelForNode(uriValue);
-        if (dn === undefined) {
-          throw new Error(`dn=${dn}`);
-        }
-        uriValue = dn;
-      }
+//     if (Util.isNamedNode(n)) {
+//       n = n as NamedNode;
+//       let shortened = false;
+//       let uriValue: string = n.value;
+//       for (let [long, short] of [
+//         ["http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf:"],
+//         ["http://www.w3.org/2000/01/rdf-schema#", "rdfs:"],
+//         ["http://purl.org/dc/elements/1.1/", "dc:"],
+//         ["http://www.w3.org/2001/XMLSchema#", "xsd:"]
+//       ]) {
+//         if (uriValue.startsWith(long)) {
+//           uriValue = short + uriValue.substr(long.length);
+//           shortened = true;
+//           break;
+//         }
+//       }
+//       if (!shortened) {
+//         let dn: string | undefined = this.labels.getLabelForNode(uriValue);
+//         if (dn === undefined) {
+//           throw new Error(`dn=${dn}`);
+//         }
+//         uriValue = dn;
+//       }
 
-      return html`
-        <a class="graphUri" href="${n.value}">${uriValue}</a>
-      `;
-    }
+//       return html`
+//         <a class="graphUri" href="${n.value}">${uriValue}</a>
+//       `;
+//     }
 
-    return html`
-      [${n.termType} ${n.value}]
-    `;
-  }
-}
+//     return html`
+//       [${n.termType} ${n.value}]
+//     `;
+//   }
+// }
 
-export class GraphView {
-  url: string;
-  graph: N3Store;
-  nodeDisplay: NodeDisplay;
-  constructor(url: string, graph: N3Store) {
-    this.url = url;
-    this.graph = graph;
+// export class GraphView {
+//   url: string;
+//   graph: N3Store;
+//   nodeDisplay: NodeDisplay;
+//   constructor(url: string, graph: N3Store) {
+//     this.url = url;
+//     this.graph = graph;
 
-    const labels = new SuffixLabels();
-    this._addLabelsForAllTerms(labels);
-    this.nodeDisplay = new NodeDisplay(labels);
-  }
+//     const labels = new SuffixLabels();
+//     this._addLabelsForAllTerms(labels);
+//     this.nodeDisplay = new NodeDisplay(labels);
+//   }
 
-  _addLabelsForAllTerms(labels: SuffixLabels) {
-    return this.graph.forEach(
-      (q: Quad) => {
-        if (q.subject.termType === "NamedNode") {
-          labels.planDisplayForNode(q.subject);
-        }
-        if (q.predicate.termType === "NamedNode") {
-          labels.planDisplayForNode(q.predicate);
-        }
-        if (q.object.termType === "NamedNode") {
-          labels.planDisplayForNode(q.object);
-        }
-        if (q.object.termType === "Literal" && q.object.datatype) {
-          labels.planDisplayForNode(q.object.datatype);
-        }
-      },
-      null,
-      null,
-      null,
-      null
-    );
-  }
+//   _addLabelsForAllTerms(labels: SuffixLabels) {
+//     return this.graph.forEach(
+//       (q: Quad) => {
+//         if (q.subject.termType === "NamedNode") {
+//           labels.planDisplayForNode(q.subject);
+//         }
+//         if (q.predicate.termType === "NamedNode") {
+//           labels.planDisplayForNode(q.predicate);
+//         }
+//         if (q.object.termType === "NamedNode") {
+//           labels.planDisplayForNode(q.object);
+//         }
+//         if (q.object.termType === "Literal" && q.object.datatype) {
+//           labels.planDisplayForNode(q.object.datatype);
+//         }
+//       },
+//       null,
+//       null,
+//       null,
+//       null
+//     );
+//   }
 
-  _subjBlock(subj: NamedNode) {
-    const predsSet: Set<NamedNode> = new Set();
-    this.graph.forEach(
-      (q: Quad) => {
-        predsSet.add(q.predicate as NamedNode);
-      },
-      subj,
-      null,
-      null,
-      null
-    );
-    const preds = Array.from(predsSet.values());
-    preds.sort();
-    return html`
-      <div class="subject">
-        ${this.nodeDisplay.getHtml(subj)}
-        <!-- todo: special section for uri/type-and-icon/label/comment -->
-        <div>
-          ${preds.map(p => {
-            return this._predBlock(subj, p);
-          })}
-        </div>
-      </div>
-    `;
-  }
+//   _subjBlock(subj: NamedNode) {
+//     const predsSet: Set<NamedNode> = new Set();
+//     this.graph.forEach(
+//       (q: Quad) => {
+//         predsSet.add(q.predicate as NamedNode);
+//       },
+//       subj,
+//       null,
+//       null,
+//       null
+//     );
+//     const preds = Array.from(predsSet.values());
+//     preds.sort();
+//     return html`
+//       <div class="subject">
+//         ${this.nodeDisplay.getHtml(subj)}
+//         <!-- todo: special section for uri/type-and-icon/label/comment -->
+//         <div>
+//           ${preds.map(p => {
+//             return this._predBlock(subj, p);
+//           })}
+//         </div>
+//       </div>
+//     `;
+//   }
 
-  _objBlock(obj: Term) {
-    return html`
-      <div class="object">
-        ${this.nodeDisplay.getHtml(obj)}
-        <!-- indicate what source or graph said this stmt -->
-      </div>
-    `;
-  }
+//   _objBlock(obj: Term) {
+//     return html`
+//       <div class="object">
+//         ${this.nodeDisplay.getHtml(obj)}
+//         <!-- indicate what source or graph said this stmt -->
+//       </div>
+//     `;
+//   }
 
-  _predBlock(subj: NamedNode, pred: NamedNode) {
-    const objsSet = new Set<Term>();
-    this.graph.forEach(
-      (q: Quad) => {
-        objsSet.add(q.object);
-      },
-      subj,
-      pred,
-      null,
-      null
-    );
-    const objs = Array.from(objsSet.values());
-    objs.sort();
-    return html`
-      <div class="predicate">
-        ${this.nodeDisplay.getHtml(pred)}
-        <div>
-          ${objs.map(this._objBlock.bind(this))}
-        </div>
-      </div>
-    `;
-  }
+//   _predBlock(subj: NamedNode, pred: NamedNode) {
+//     const objsSet = new Set<Term>();
+//     this.graph.forEach(
+//       (q: Quad) => {
+//         objsSet.add(q.object);
+//       },
+//       subj,
+//       pred,
+//       null,
+//       null
+//     );
+//     const objs = Array.from(objsSet.values());
+//     objs.sort();
+//     return html`
+//       <div class="predicate">
+//         ${this.nodeDisplay.getHtml(pred)}
+//         <div>
+//           ${objs.map(this._objBlock.bind(this))}
+//         </div>
+//       </div>
+//     `;
+//   }
 
-  byTypeBlock(byType: TypeToSubjs, typeUri: NamedNode) {
-    const subjSet = byType.get(typeUri);
-    const subjs: Array<NamedNode> = subjSet ? Array.from(subjSet) : [];
-    subjs.sort();
+//   byTypeBlock(byType: TypeToSubjs, typeUri: NamedNode) {
+//     const subjSet = byType.get(typeUri);
+//     const subjs: Array<NamedNode> = subjSet ? Array.from(subjSet) : [];
+//     subjs.sort();
 
-    const graphCells = new Map<string, Set<Term>>(); // [subj, pred] : objs
-    const makeCellKey = (subj: NamedNode, pred: NamedNode) =>
-      subj.value + "|||" + pred.value;
-    const preds = new Set<NamedNode>();
+//     const graphCells = new Map<string, Set<Term>>(); // [subj, pred] : objs
+//     const makeCellKey = (subj: NamedNode, pred: NamedNode) =>
+//       subj.value + "|||" + pred.value;
+//     const preds = new Set<NamedNode>();
 
-    subjs.forEach((subj: NamedNode) => {
-      this.graph.forEach(
-        (q: Quad) => {
-          if (!Util.isNamedNode(q.predicate)) {
-            throw new Error();
-          }
-          preds.add(q.predicate as NamedNode);
-          const cellKey = makeCellKey(subj, q.predicate as NamedNode);
-          if (!graphCells.has(cellKey)) {
-            graphCells.set(cellKey, new Set<Term>());
-          }
-          graphCells.get(cellKey)!.add(q.object);
-        },
-        subj,
-        null,
-        null,
-        null
-      );
-    });
-    const predsList = Array.from(preds);
-    predsList.splice(predsList.indexOf(rdf.type), 1);
-    // also pull out label, which should be used on 1st column
-    predsList.sort();
+//     subjs.forEach((subj: NamedNode) => {
+//       this.graph.forEach(
+//         (q: Quad) => {
+//           if (!Util.isNamedNode(q.predicate)) {
+//             throw new Error();
+//           }
+//           preds.add(q.predicate as NamedNode);
+//           const cellKey = makeCellKey(subj, q.predicate as NamedNode);
+//           if (!graphCells.has(cellKey)) {
+//             graphCells.set(cellKey, new Set<Term>());
+//           }
+//           graphCells.get(cellKey)!.add(q.object);
+//         },
+//         subj,
+//         null,
+//         null,
+//         null
+//       );
+//     });
+//     const predsList = Array.from(preds);
+//     predsList.splice(predsList.indexOf(rdf.type), 1);
+//     // also pull out label, which should be used on 1st column
+//     predsList.sort();
 
-    const thead = () => {
-      const predColumnHead = (pred: NamedNode) => {
-        return html`
-          <th>${this.nodeDisplay.getHtml(pred)}</th>
-        `;
-      };
-      return html`
-        <thead>
-          <tr>
-            <th></th>
-            ${predsList.map(predColumnHead)}
-          </tr>
-        </thead>
-      `;
-    };
+//     const thead = () => {
+//       const predColumnHead = (pred: NamedNode) => {
+//         return html`
+//           <th>${this.nodeDisplay.getHtml(pred)}</th>
+//         `;
+//       };
+//       return html`
+//         <thead>
+//           <tr>
+//             <th></th>
+//             ${predsList.map(predColumnHead)}
+//           </tr>
+//         </thead>
+//       `;
+//     };
 
-    const instanceRow = (subj: NamedNode) => {
-      const cell = (pred: NamedNode) => {
-        const objs = graphCells.get(subj + "|||" + pred);
-        if (!objs) {
-          return html`
-            <td></td>
-          `;
-        }
-        const objsList = Array.from(objs);
-        objsList.sort();
-        const draw = (obj: Term) => {
-          return html`
-            <div>${this.nodeDisplay.getHtml(obj)}</div>
-          `;
-        };
-        return html`
-          <td>${objsList.map(draw)}</td>
-        `;
-      };
+//     const instanceRow = (subj: NamedNode) => {
+//       const cell = (pred: NamedNode) => {
+//         const objs = graphCells.get(subj + "|||" + pred);
+//         if (!objs) {
+//           return html`
+//             <td></td>
+//           `;
+//         }
+//         const objsList = Array.from(objs);
+//         objsList.sort();
+//         const draw = (obj: Term) => {
+//           return html`
+//             <div>${this.nodeDisplay.getHtml(obj)}</div>
+//           `;
+//         };
+//         return html`
+//           <td>${objsList.map(draw)}</td>
+//         `;
+//       };
 
-      return html`
-        <tr>
-          <td>${this.nodeDisplay.getHtml(subj)}</td>
-          ${predsList.map(cell)}
-        </tr>
-      `;
-    };
+//       return html`
+//         <tr>
+//           <td>${this.nodeDisplay.getHtml(subj)}</td>
+//           ${predsList.map(cell)}
+//         </tr>
+//       `;
+//     };
 
-    return html`
-      <div>[icon] ${this.nodeDisplay.getHtml(typeUri)} resources</div>
-      <div class="typeBlockScroll">
-        <table class="typeBlock">
-          ${thead()} ${subjs.map(instanceRow)}
-        </table>
-      </div>
-    `;
-  }
+//     return html`
+//       <div>[icon] ${this.nodeDisplay.getHtml(typeUri)} resources</div>
+//       <div class="typeBlockScroll">
+//         <table class="typeBlock">
+//           ${thead()} ${subjs.map(instanceRow)}
+//         </table>
+//       </div>
+//     `;
+//   }
 
-  makeTemplate(): TemplateResult {
-    const { byType, untyped } = groupByRdfType(this.graph);
-    const typedSubjs = Array.from(byType.keys());
-    typedSubjs.sort();
+//   makeTemplate(): TemplateResult {
+//     const { byType, untyped } = groupByRdfType(this.graph);
+//     const typedSubjs = Array.from(byType.keys());
+//     typedSubjs.sort();
 
-    const untypedSubjs = Array.from(untyped.values());
-    untypedSubjs.sort();
+//     const untypedSubjs = Array.from(untyped.values());
+//     untypedSubjs.sort();
 
-    return html`
-      <section>
-        <h2>Current graph (<a href="${this.url}">${this.url}</a>)</h2>
-        <div>
-          <!-- todo: graphs and provenance.
-            These statements are all in the
-            <span data-bind="html: $root.createCurie(graphUri())">...</span> graph.-->
-        </div>
-        ${typedSubjs.map((t: NamedNode) => this.byTypeBlock(byType, t))}
-        <div class="spoGrid">
-          ${untypedSubjs.map(this._subjBlock.bind(this))}
-        </div>
-      </section>
-    `;
-  }
-}
+//     return html`
+//       <section>
+//         <h2>Current graph (<a href="${this.url}">${this.url}</a>)</h2>
+//         <div>
+//           <!-- todo: graphs and provenance.
+//             These statements are all in the
+//             <span data-bind="html: $root.createCurie(graphUri())">...</span> graph.-->
+//         </div>
+//         ${typedSubjs.map((t: NamedNode) => this.byTypeBlock(byType, t))}
+//         <div class="spoGrid">
+//           ${untypedSubjs.map(this._subjBlock.bind(this))}
+//         </div>
+//       </section>
+//     `;
+//   }
+// }
--- a/src/index.ts	Tue Feb 11 22:55:24 2020 -0800
+++ b/src/index.ts	Wed Nov 17 13:01:08 2021 -0800
@@ -1,145 +1,142 @@
-import { render } from 'lit-html';
-import { N3Store, Store } from 'n3';
-
-import { computed, customElement, property } from '@polymer/decorators';
-import { html, PolymerElement } from '@polymer/polymer';
+import {LitElement, html} from 'lit';
+import {customElement, property} from 'lit/decorators.js';
 
-import { GraphView } from './graph_view';
-import { StreamedGraphClient } from './streamed_graph_client';
-import style from './style.styl';
+// import { Store } from 'n3';
 
-export * from "./graph_queries";
 
-export interface VersionedGraph {
-  version: number;
-  store: N3Store;
-}
+// import { GraphView } from './graph_view';
+// import { StreamedGraphClient } from './streamed_graph_client';
+// import style from './style.styl';
 
-function templateWithStyle(style: string, tmpl: HTMLTemplateElement) {
-  const styleEl = document.createElement("style");
-  styleEl.textContent = style;
-  tmpl.content.insertBefore(styleEl, tmpl.content.firstChild);
-  return tmpl;
-}
+// export * from "./graph_queries";
+
+// export interface VersionedGraph {
+//   version: number;
+//   store: Store;
+// }
 
 @customElement("streamed-graph")
-export class StreamedGraph extends PolymerElement {
-  @property({ type: String })
-  url: string = "";
+export class StreamedGraph extends LitElement {
+//   @property({ type: String })
+//   url: string = "";
 
-  @property({ type: Object, notify: true })
-  graph!: VersionedGraph;
+//   @property({ type: Object })
+//   graph!: VersionedGraph;
 
-  @property({ type: Boolean })
-  expanded: boolean = false;
+//   @property({ type: Boolean })
+//   expanded: boolean = false;
 
-  @computed("expanded")
-  get expandAction() {
-    return this.expanded ? "-" : "+";
-  }
+//   // @computed("expanded")
+//   // get expandAction() {
+//   //   return this.expanded ? "-" : "+";
+//   // }
 
-  @property({ type: String })
-  status: string = "";
+//   @property({ type: String })
+//   status: string = "";
 
-  sg!: StreamedGraphClient;
-  graphViewEl!: Element;
-  graphViewDirty = true;
+//   sg!: StreamedGraphClient;
+//   graphViewEl!: Element;
+//   graphViewDirty = true;
 
-  static get template() {
-    return templateWithStyle(
-      style,
-      html`
-        <div id="ui">
-          <span class="expander"
-            ><button on-click="toggleExpand">{{expandAction}}</button></span
-          >
-          StreamedGraph <a href="{{url}}">[source]</a>: {{status}}
-        </div>
-        <div id="graphView"></div>
-      `
-    );
-  }
+//   static get template() {
+//     return html`
+//         <div id="ui">
+//           <span class="expander"
+//             ><button on-click="toggleExpand">{{expandAction}}</button></span
+//           >
+//           StreamedGraph <a href="{{url}}">[source]</a>: {{status}}
+//         </div>
+//         <div id="graphView"></div>
+//       `
+//     ;
+//   }
 
-  ready() {
-    super.ready();
-    const emptyStore = new Store();
-    this.graph = { version: -1, store: emptyStore };
-    this.graphViewEl = (this.shadowRoot as ShadowRoot).getElementById(
-      "graphView"
-    ) as Element;
+//   connectedCallback() {
+//     super.connectedCallback();
+//     const emptyStore = new Store();
+//     this.graph = { version: -1, store: emptyStore };
+//     this.graphViewEl = (this.shadowRoot as ShadowRoot).getElementById(
+//       "graphView"
+//     ) as Element;
 
-    this._onUrl(this.url); // todo: watch for changes and rebuild
-    if (this.expanded) {
-      this.redrawGraph();
-    }
-  }
+//     this._onUrl(this.url); // todo: watch for changes and rebuild
+//     if (this.expanded) {
+//       this.redrawGraph();
+//     }
+//   }
+
+//   toggleExpand() {
+//     this.expanded = !this.expanded;
+//     if (this.expanded) {
+//       this.redrawGraph();
+//     } else {
+//       this.graphViewDirty = false;
+//       this._graphAreaClose();
+//     }
+//   }
 
-  toggleExpand() {
-    this.expanded = !this.expanded;
-    if (this.expanded) {
-      this.redrawGraph();
-    } else {
-      this.graphViewDirty = false;
-      this._graphAreaClose();
-    }
-  }
+//   redrawGraph() {
+//     this.graphViewDirty = true;
+//     requestAnimationFrame(this._redrawLater.bind(this));
+//   }
 
-  redrawGraph() {
-    this.graphViewDirty = true;
-    requestAnimationFrame(this._redrawLater.bind(this));
-  }
+//   _onUrl(url: string) {
+//     if (this.sg) {
+//       this.sg.close();
+//     }
+//     this.sg = new StreamedGraphClient(
+//       url,
+//       this.onGraphChanged.bind(this),
+//       function(st){},//this.set.bind(this, "status"),
+//       [], //window.NS,
+//       []
+//     );
+//   }
 
-  _onUrl(url: string) {
-    if (this.sg) {
-      this.sg.close();
-    }
-    this.sg = new StreamedGraphClient(
-      url,
-      this.onGraphChanged.bind(this),
-      this.set.bind(this, "status"),
-      [], //window.NS,
-      []
-    );
-  }
+//   onGraphChanged() {
+//     this.graph = {
+//       version: this.graph.version + 1,
+//       store: this.sg.store
+//     };
+//     if (this.expanded) {
+//       this.redrawGraph();
+//     }
+//     this.dispatchEvent(
+//       new CustomEvent("graph-changed", { detail: { graph: this.graph } })
+//     );
+//   }
 
-  onGraphChanged() {
-    this.graph = {
-      version: this.graph.version + 1,
-      store: this.sg.store
-    };
-    if (this.expanded) {
-      this.redrawGraph();
-    }
-    this.dispatchEvent(
-      new CustomEvent("graph-changed", { detail: { graph: this.graph } })
-    );
-  }
+//   _redrawLater() {
+//     if (!this.graphViewDirty) return;
 
-  _redrawLater() {
-    if (!this.graphViewDirty) return;
+//     if ((this.graph as VersionedGraph).store && this.graph.store) {
+//       this._graphAreaShowGraph(new GraphView(this.url, this.graph.store));
+//       this.graphViewDirty = false;
+//     } else {
+//       this._graphAreaShowPending();
+//     }
+//   }
+
+//   _graphAreaClose() {
+//     render(null, this.graphViewEl);
+//   }
 
-    if ((this.graph as VersionedGraph).store && this.graph.store) {
-      this._graphAreaShowGraph(new GraphView(this.url, this.graph.store));
-      this.graphViewDirty = false;
-    } else {
-      this._graphAreaShowPending();
-    }
-  }
-
-  _graphAreaClose() {
-    render(null, this.graphViewEl);
-  }
+//   _graphAreaShowPending() {
+//     render(
+//       html`
+//         <span>waiting for data...</span>
+//       `,
+//       this.graphViewEl
+//     );
+//   }
 
-  _graphAreaShowPending() {
-    render(
-      html`
-        <span>waiting for data...</span>
-      `,
-      this.graphViewEl
-    );
-  }
+//   _graphAreaShowGraph(graphView: GraphView) {
+//     render(graphView.makeTemplate(), this.graphViewEl);
+//   }
+}
 
-  _graphAreaShowGraph(graphView: GraphView) {
-    render(graphView.makeTemplate(), this.graphViewEl);
-  }
-}
+// // allow child nodes to combine a few graphs and statics
+// //<streamed-graph id="timebankGraph"  graph="{{graph}}" expanded="true">
+// //  <member-graph url="graph/timebank/events"></member-graph>
+// //  <member-graph url="/some/static.n3"></member-graph>
+// //</streamed-graph>
--- a/src/streamed_graph_client.ts	Tue Feb 11 22:55:24 2020 -0800
+++ b/src/streamed_graph_client.ts	Wed Nov 17 13:01:08 2021 -0800
@@ -1,143 +1,143 @@
-// from /my/site/homepage/www/rdf/streamed-graph.js
+// // from /my/site/homepage/www/rdf/streamed-graph.js
 
-import { eachJsonLdQuad } from "./json_ld_quads";
-import { N3Store } from "n3";
-import { Store } from "n3";
+// import { eachJsonLdQuad } from "./json_ld_quads";
+// import { N3Store } from "n3";
+// import { Store } from "n3";
 
-export class StreamedGraphClient {
-  // holds a n3 Store, which is synced to a server-side
-  // store that sends patches over SSE
+// export class StreamedGraphClient {
+//   // holds a n3 Store, which is synced to a server-side
+//   // store that sends patches over SSE
 
-  onStatus: (msg: string) => void;
-  onGraphChanged: () => void;
-  store: N3Store;
-  _deletedCount: number = 0;
-  events!: EventSource;
-  constructor(
-    eventsUrl: string,
-    onGraphChanged: () => void,
-    onStatus: (status: string) => void,
-    prefixes: Array<Record<string, string>>,
-    staticGraphUrls: Array<string>
-  ) {
-    console.log("new StreamedGraph", eventsUrl);
-    this.onStatus = onStatus;
-    this.onGraphChanged = onGraphChanged;
-    this.onStatus("startup...");
+//   onStatus: (msg: string) => void;
+//   onGraphChanged: () => void;
+//   store: N3Store;
+//   _deletedCount: number = 0;
+//   events!: EventSource;
+//   constructor(
+//     eventsUrl: string,
+//     onGraphChanged: () => void,
+//     onStatus: (status: string) => void,
+//     prefixes: Array<Record<string, string>>,
+//     staticGraphUrls: Array<string>
+//   ) {
+//     console.log("new StreamedGraph", eventsUrl);
+//     this.onStatus = onStatus;
+//     this.onGraphChanged = onGraphChanged;
+//     this.onStatus("startup...");
 
-    this.store = new Store();
+//     this.store = new Store();
 
-    //     //             Object.keys(prefixes).forEach((prefix) => {
-    //     //                 this.store.setPrefix(prefix, prefixes[prefix]);
-    //     //             });
+//     //     //             Object.keys(prefixes).forEach((prefix) => {
+//     //     //                 this.store.setPrefix(prefix, prefixes[prefix]);
+//     //     //             });
 
-    this.connect(eventsUrl);
-    this.reconnectOnWake();
+//     this.connect(eventsUrl);
+//     this.reconnectOnWake();
 
-    //     staticGraphUrls.forEach((url) => {
-    //         fetch(url).then((response) => response.text())
-    //             .then((body) => {
-    //                 // parse with n3, add to output
-    //             });
-    //     });
-  }
+//     //     staticGraphUrls.forEach((url) => {
+//     //         fetch(url).then((response) => response.text())
+//     //             .then((body) => {
+//     //                 // parse with n3, add to output
+//     //             });
+//     //     });
+//   }
 
-  _vacuum() {
-    // workaround for the growing _ids map
-    this.store = new Store(this.store.getQuads(null, null, null, null));
-  }
+//   _vacuum() {
+//     // workaround for the growing _ids map
+//     this.store = new Store(this.store.getQuads(null, null, null, null));
+//   }
 
-  reconnectOnWake() {
-    // it's not this, which fires on every mouse-in on a browser window, and doesn't seem to work for screen-turned-back-on
-    //window.addEventListener('focus', function() { this.connect(eventsUrl); }.bind(this));
-  }
+//   reconnectOnWake() {
+//     // it's not this, which fires on every mouse-in on a browser window, and doesn't seem to work for screen-turned-back-on
+//     //window.addEventListener('focus', function() { this.connect(eventsUrl); }.bind(this));
+//   }
 
-  connect(eventsUrl: string) {
-    // need to exit here if this obj has been replaced
+//   connect(eventsUrl: string) {
+//     // need to exit here if this obj has been replaced
 
-    this.onStatus("start connect...");
-    this.close();
-    if (this.events && this.events.readyState != EventSource.CLOSED) {
-      this.onStatus("zombie");
-      throw new Error("zombie eventsource");
-    }
+//     this.onStatus("start connect...");
+//     this.close();
+//     if (this.events && this.events.readyState != EventSource.CLOSED) {
+//       this.onStatus("zombie");
+//       throw new Error("zombie eventsource");
+//     }
 
-    this.events = new EventSource(eventsUrl);
+//     this.events = new EventSource(eventsUrl);
 
-    this.events.addEventListener("error", ev => {
-      // todo: this is piling up tons of retries and eventually multiple connections
-      // this.testEventUrl(eventsUrl);
-      this.onStatus("connection lost- retrying");
-      setTimeout(() => {
-        requestAnimationFrame(() => {
-          this.connect(eventsUrl);
-        });
-      }, 3000);
-    });
+//     this.events.addEventListener("error", ev => {
+//       // todo: this is piling up tons of retries and eventually multiple connections
+//       // this.testEventUrl(eventsUrl);
+//       this.onStatus("connection lost- retrying");
+//       setTimeout(() => {
+//         requestAnimationFrame(() => {
+//           this.connect(eventsUrl);
+//         });
+//       }, 3000);
+//     });
 
-    this.events.addEventListener("fullGraph", async ev => {
-      this.onStatus("sync- full graph update");
-      await this.replaceFullGraph((ev as MessageEvent).data);
-      this.onStatus(`synced ${this.store.size}`);
-      this.onGraphChanged();
-    });
+//     this.events.addEventListener("fullGraph", async ev => {
+//       this.onStatus("sync- full graph update");
+//       await this.replaceFullGraph((ev as MessageEvent).data);
+//       this.onStatus(`synced ${this.store.size}`);
+//       this.onGraphChanged();
+//     });
 
-    this.events.addEventListener("patch", async ev => {
-      this.onStatus("sync- updating");
-      await this.patchGraph((ev as MessageEvent).data);
-      this.onStatus(`synced ${this.store.size}`);
-      this.onGraphChanged();
-    });
-    this.onStatus("connecting...");
-  }
+//     this.events.addEventListener("patch", async ev => {
+//       this.onStatus("sync- updating");
+//       await this.patchGraph((ev as MessageEvent).data);
+//       this.onStatus(`synced ${this.store.size}`);
+//       this.onGraphChanged();
+//     });
+//     this.onStatus("connecting...");
+//   }
 
-  // these need some locks
-  async replaceFullGraph(jsonLdText: string) {
-    this.store = new Store();
-    await eachJsonLdQuad(
-      JSON.parse(jsonLdText),
-      this.store.addQuad.bind(this.store)
-    );
-  }
+//   // these need some locks
+//   async replaceFullGraph(jsonLdText: string) {
+//     this.store = new Store();
+//     await eachJsonLdQuad(
+//       JSON.parse(jsonLdText),
+//       this.store.addQuad.bind(this.store)
+//     );
+//   }
 
-  async patchGraph(patchJson: string) {
-    var patch = JSON.parse(patchJson).patch;
+//   async patchGraph(patchJson: string) {
+//     var patch = JSON.parse(patchJson).patch;
 
-    await eachJsonLdQuad(patch.deletes, quad => {
-      this.store.removeQuad(quad);
-      this._deletedCount++;
-    });
-    await eachJsonLdQuad(patch.adds, this.store.addQuad.bind(this.store));
+//     await eachJsonLdQuad(patch.deletes, quad => {
+//       this.store.removeQuad(quad);
+//       this._deletedCount++;
+//     });
+//     await eachJsonLdQuad(patch.adds, this.store.addQuad.bind(this.store));
 
-    if (this._deletedCount > 100) {
-      this._vacuum();
-      this._deletedCount = 0;
-    }
-  }
+//     if (this._deletedCount > 100) {
+//       this._vacuum();
+//       this._deletedCount = 0;
+//     }
+//   }
 
-  close() {
-    if (this.events) {
-      this.events.close();
-    }
-  }
+//   close() {
+//     if (this.events) {
+//       this.events.close();
+//     }
+//   }
 
-  async testEventUrl(eventsUrl: string): Promise<void> {
-    return new Promise<void>((resolve, reject) => {
-      this.onStatus("testing connection");
-      fetch(eventsUrl, {
-        method: "HEAD",
-        credentials: "include"
-      })
-        .then(value => {
-          if (value.status == 403) {
-            reject();
-            return;
-          }
-          resolve();
-        })
-        .catch(err => {
-          reject();
-        });
-    });
-  }
-}
+//   async testEventUrl(eventsUrl: string): Promise<void> {
+//     return new Promise<void>((resolve, reject) => {
+//       this.onStatus("testing connection");
+//       fetch(eventsUrl, {
+//         method: "HEAD",
+//         credentials: "include"
+//       })
+//         .then(value => {
+//           if (value.status == 403) {
+//             reject();
+//             return;
+//           }
+//           resolve();
+//         })
+//         .catch(err => {
+//           reject();
+//         });
+//     });
+//   }
+// }