Repository: ory/kratos
Pull request #1465 (2021-06-25 11:01:46)

chore: update docusaurus template
Updated docusaurus template to current https://github.com/ory/docusaurus-template.


Patch:
diff --git a/docs/docs/guides/hosting-own-have-i-been-pwned-api.mdx b/docs/docs/guides/hosting-own-have-i-been-pwned-api.mdx
index 917bb4834..96c34ad67 100644
--- a/docs/docs/guides/hosting-own-have-i-been-pwned-api.mdx
+++ b/docs/docs/guides/hosting-own-have-i-been-pwned-api.mdx
@@ -27,6 +27,37 @@ selfservice:
 An example of a minimal self-hosted, k-anonymity enabled HiBP API
 [can be found in this repository](https://github.com/radekg/hibp).
 
+Alternatively, this feature can be disabled altogether. Note however that by
+doing so you will significantly decrease the security of the service and not
+follow [NIST guidelines](https://pages.nist.gov/800-63-3/sp800-63b.html):
+
+> When processing requests to establish and change memorized secrets, verifiers
+> SHALL compare the prospective secrets against a list that contains values
+> known to be commonly-used, expected, or compromised. For example, the list MAY
+> include, but is not limited to:
+>
+> 1. Passwords obtained from previous breach corpuses.
+> 2. Dictionary words.
+> 3. Repetitive or sequential characters (e.g. ‘aaaaaa’, ‘1234abcd’).
+> 4. Context-specific words, such as the name of the service, the username, and
+>    derivatives thereof.
+>
+> If the chosen secret is found in the list, the CSP or verifier SHALL advise
+> the subscriber that they need to select a different secret, SHALL provide the
+> reason for rejection, and SHALL require the subscriber to choose a different
+> value.
+
+Disabling the feature will effectively remove checks for the points 1.-3. The
+feature can be disabled by setting the following configuration values:
+
+```yaml title="path/to/kratos/config.yml
+selfservice:
+  methods:
+    password:
+      config:
+        haveibeenpwned_enabled: false
+```
+
 :::note
 
 Ory Kratos `haveibeenpwned_host` setting does not allow configuring the
diff --git a/docs/docs/reference/configuration.md b/docs/docs/reference/configuration.md
index 68901118b..5de071b14 100644
--- a/docs/docs/reference/configuration.md
+++ b/docs/docs/reference/configuration.md
@@ -901,6 +901,20 @@ selfservice:
         #
         ignore_network_errors: false
 
+        ## Enable or Disable the HaveIBeenPwned API ##
+        #
+        # If set to false the password validation does not utilize the Have I Been Pwnd API.
+        #
+        # Default value: true
+        #
+        # Set this value using environment variables on
+        # - Linux/macOS:
+        #    $ export SELFSERVICE_METHODS_PASSWORD_CONFIG_HAVEIBEENPWNED_ENABLED=<value>
+        # - Windows Command Line (CMD):
+        #    > set SELFSERVICE_METHODS_PASSWORD_CONFIG_HAVEIBEENPWNED_ENABLED=<value>
+        #
+        haveibeenpwned_enabled: true
+
         ## Custom haveibeenpwned host ##
         #
         # Allows changing the default HIBP host to a self hosted version.
diff --git a/docs/package-lock.json b/docs/package-lock.json
index d5a0c396c..25cf9ccc9 100644
--- a/docs/package-lock.json
+++ b/docs/package-lock.json
@@ -7,12 +7,12 @@
     "": {
       "version": "0.0.0",
       "dependencies": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-docs": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-pages": "2.0.0-beta.0",
-        "@docusaurus/plugin-sitemap": "2.0.0-beta.0",
-        "@docusaurus/theme-classic": "2.0.0-beta.0",
-        "@docusaurus/theme-search-algolia": "2.0.0-beta.0",
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-docs": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-pages": "2.0.0-beta.2",
+        "@docusaurus/plugin-sitemap": "2.0.0-beta.2",
+        "@docusaurus/theme-classic": "2.0.0-beta.2",
+        "@docusaurus/theme-search-algolia": "2.0.0-beta.2",
         "classnames": "2.3.1",
         "file-loader": "6.2.0",
         "mermaid": "8.10.2",
@@ -27,9 +27,9 @@
       },
       "devDependencies": {
         "json-schema-faker": "0.5.0-rcv.34",
-        "json-schema-ref-parser": "8.0.0",
+        "json-schema-ref-parser": "9.0.9",
         "ory-prettier-styles": "1.1.2",
-        "prettier": "2.2.1",
+        "prettier": "2.3.1",
         "ramda": "0.27.1",
         "raw-loader": "4.0.2",
         "remark-admonitions": "1.2.1",
@@ -179,14 +179,33 @@
       }
     },
     "node_modules/@apidevtools/json-schema-ref-parser": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-8.0.0.tgz",
-      "integrity": "sha512-n4YBtwQhdpLto1BaUCyAeflizmIbaloGShsPyRtFf5qdFJxfssj+GgLavczgKJFa3Bq+3St2CKcpRJdjtB4EBw==",
+      "version": "9.0.9",
+      "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz",
+      "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==",
       "dev": true,
       "dependencies": {
-        "@jsdevtools/ono": "^7.1.0",
+        "@jsdevtools/ono": "^7.1.3",
+        "@types/json-schema": "^7.0.6",
         "call-me-maybe": "^1.0.1",
-        "js-yaml": "^3.13.1"
+        "js-yaml": "^4.1.0"
+      }
+    },
+    "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+      "dev": true
+    },
+    "node_modules/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+      "dev": true,
+      "dependencies": {
+        "argparse": "^2.0.1"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
       }
     },
     "node_modules/@babel/code-frame": {
@@ -1618,9 +1637,9 @@
       }
     },
     "node_modules/@docusaurus/core": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.0.tgz",
-      "integrity": "sha512-xWwpuEwFRKJmZvNGOpr/dyRDnx/psckLPsozQTg2hu3u81Wqu9gigWgYK/C2fPlEjxMcVw0/2WH+zwpbyWmF2Q==",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.2.tgz",
+      "integrity": "sha512-i0jwYyTFkWUhnN5/eky7fkt7reIvNFH5iOyltXyCxn/DrKCGRqC63g3IbFhvLULl007JKp3vBXvwcNK3IpH8Yw==",
       "dependencies": {
         "@babel/core": "^7.12.16",
         "@babel/generator": "^7.12.15",
@@ -1632,47 +1651,49 @@
         "@babel/runtime": "^7.12.5",
         "@babel/runtime-corejs3": "^7.12.13",
         "@babel/traverse": "^7.12.13",
-        "@docusaurus/cssnano-preset": "2.0.0-beta.0",
+        "@docusaurus/cssnano-preset": "2.0.0-beta.2",
         "@docusaurus/react-loadable": "5.5.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
-        "@endiliey/static-site-generator-webpack-plugin": "^4.0.0",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-common": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
+        "@slorber/static-site-generator-webpack-plugin": "^4.0.0",
         "@svgr/webpack": "^5.5.0",
         "autoprefixer": "^10.2.5",
         "babel-loader": "^8.2.2",
         "babel-plugin-dynamic-import-node": "2.3.0",
-        "boxen": "^5.0.0",
-        "chalk": "^4.1.0",
+        "boxen": "^5.0.1",
+        "chalk": "^4.1.1",
         "chokidar": "^3.5.1",
-        "clean-css": "^5.1.1",
+        "clean-css": "^5.1.2",
         "commander": "^5.1.0",
-        "copy-webpack-plugin": "^8.1.0",
+        "copy-webpack-plugin": "^9.0.0",
         "core-js": "^3.9.1",
         "css-loader": "^5.1.1",
-        "css-minimizer-webpack-plugin": "^2.0.0",
-        "cssnano": "^5.0.1",
+        "css-minimizer-webpack-plugin": "^3.0.1",
+        "cssnano": "^5.0.4",
         "del": "^6.0.0",
         "detect-port": "^1.3.0",
+        "escape-html": "^1.0.3",
         "eta": "^1.12.1",
         "express": "^4.17.1",
         "file-loader": "^6.2.0",
-        "fs-extra": "^9.1.0",
+        "fs-extra": "^10.0.0",
         "github-slugger": "^1.3.0",
         "globby": "^11.0.2",
         "html-minifier-terser": "^5.1.1",
         "html-tags": "^3.1.0",
-        "html-webpack-plugin": "^5.2.0",
+        "html-webpack-plugin": "^5.3.2",
         "import-fresh": "^3.3.0",
         "is-root": "^2.1.0",
         "leven": "^3.1.0",
         "lodash": "^4.17.20",
-        "mini-css-extract-plugin": "^1.4.0",
+        "mini-css-extract-plugin": "^1.6.0",
         "module-alias": "^2.2.2",
         "nprogress": "^0.2.0",
-        "postcss": "^8.2.10",
-        "postcss-loader": "^5.2.0",
-        "prompts": "^2.4.0",
+        "postcss": "^8.2.15",
+        "postcss-loader": "^5.3.0",
+        "prompts": "^2.4.1",
         "react-dev-utils": "^11.0.1",
         "react-error-overlay": "^6.0.9",
         "react-helmet": "^6.1.0",
@@ -1682,21 +1703,21 @@
         "react-router-config": "^5.1.1",
         "react-router-dom": "^5.2.0",
         "resolve-pathname": "^3.0.0",
-        "rtl-detect": "^1.0.2",
+        "rtl-detect": "^1.0.3",
         "semver": "^7.3.4",
         "serve-handler": "^6.1.3",
         "shelljs": "^0.8.4",
         "std-env": "^2.2.1",
         "strip-ansi": "^6.0.0",
-        "terser-webpack-plugin": "^5.1.1",
-        "tslib": "^2.1.0",
+        "terser-webpack-plugin": "^5.1.3",
+        "tslib": "^2.2.0",
         "update-notifier": "^5.1.0",
         "url-loader": "^4.1.1",
-        "wait-on": "^5.2.1",
-        "webpack": "^5.28.0",
-        "webpack-bundle-analyzer": "^4.4.0",
+        "wait-on": "^5.3.0",
+        "webpack": "^5.40.0",
+        "webpack-bundle-analyzer": "^4.4.2",
         "webpack-dev-server": "^3.11.2",
-        "webpack-merge": "^5.7.3",
+        "webpack-merge": "^5.8.0",
         "webpackbar": "^5.0.0-3"
       },
       "bin": {
@@ -1711,37 +1732,37 @@
       }
     },
     "node_modules/@docusaurus/cssnano-preset": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.0.tgz",
-      "integrity": "sha512-gqQHeQCDHZDd5NaiKZwDiyg75sBCqDyAsvmFukkDAty8xE7u9IhzbOQKvCAtwseuvzu2BNN41gnJ8bz7vZzQiw==",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.2.tgz",
+      "integrity": "sha512-GNGYkePEYWJkxgFNUBYjEUySKm5FfBbYoQqGWn6KxDN34Qi7o+Wb37zPOiz2pNKBq+qCvXOfCIqblq7n0S/POA==",
       "dependencies": {
-        "cssnano-preset-advanced": "^5.0.0",
-        "postcss": "^8.2.10",
-        "postcss-sort-media-queries": "^3.8.9"
+        "cssnano-preset-advanced": "^5.1.1",
+        "postcss": "^8.2.15",
+        "postcss-sort-media-queries": "^3.10.11"
       }
     },
     "node_modules/@docusaurus/mdx-loader": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.0.tgz",
-      "integrity": "sha512-oQLS2ZeUnqw79CV37glglZpaYgFfA5Az5lT83m5tJfMUZjoK4ehG1XWBeUzWy8QQNI452yAID8jz8jihEQeCcw==",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.2.tgz",
+      "integrity": "sha512-ZUqwQQY3P9/N2KBt28ADJgQWj98VqKG0+OEQJOiK6bd8uIngLrHvWE0WasBT3zgPK+ljhdRMaQ7TWt1Doot+ZA==",
       "dependencies": {
         "@babel/parser": "^7.12.16",
         "@babel/traverse": "^7.12.13",
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
         "@mdx-js/mdx": "^1.6.21",
         "@mdx-js/react": "^1.6.21",
         "escape-html": "^1.0.3",
         "file-loader": "^6.2.0",
-        "fs-extra": "^9.1.0",
+        "fs-extra": "^10.0.0",
         "github-slugger": "^1.3.0",
-        "gray-matter": "^4.0.2",
+        "gray-matter": "^4.0.3",
         "mdast-util-to-string": "^2.0.0",
         "remark-emoji": "^2.1.0",
         "stringify-object": "^3.3.0",
         "unist-util-visit": "^2.0.2",
         "url-loader": "^4.1.1",
-        "webpack": "^5.28.0"
+        "webpack": "^5.40.0"
       },
       "engines": {
         "node": ">=12.13.0"
@@ -1752,25 +1773,26 @@
       }
     },
     "node_modules/@docusaurus/plugin-content-blog": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.0.tgz",
-      "integrity": "sha512-lz63i5k/23RJ3Rk/2fIsYAoD8Wua3b5b0AbH2JoOhQu1iAIQiV8m91Z3XALBSzA3nBtAOIweNI7yzWL+JFSTvw==",
-      "dependencies": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/mdx-loader": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
-        "chalk": "^4.1.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.2.tgz",
+      "integrity": "sha512-I4q8zwL2GpfBxebDWoKWBrEtV2oiOkrc8cP5JORw5HKKB9zOz99UcggnbanllkCtmj+o4RiuhCQ0vHPFB5ts3Q==",
+      "dependencies": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/mdx-loader": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
+        "chalk": "^4.1.1",
+        "escape-string-regexp": "^4.0.0",
         "feed": "^4.2.2",
-        "fs-extra": "^9.1.0",
+        "fs-extra": "^10.0.0",
         "globby": "^11.0.2",
         "loader-utils": "^2.0.0",
         "lodash": "^4.17.20",
         "reading-time": "^1.3.0",
         "remark-admonitions": "^1.2.1",
-        "tslib": "^2.1.0",
-        "webpack": "^5.28.0"
+        "tslib": "^2.2.0",
+        "webpack": "^5.40.0"
       },
       "engines": {
         "node": ">=12.13.0"
@@ -1794,19 +1816,20 @@
       }
     },
     "node_modules/@docusaurus/plugin-content-docs": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.0.tgz",
-      "integrity": "sha512-WdDQUh2rRCbfJswVc0vY9EaAspxgziqpVEZja8+BmQR/TZh7HuLplT6GJbiFbE4RvwM3+PwG/jHMPglYDK60kw==",
-      "dependencies": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/mdx-loader": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
-        "chalk": "^4.1.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.2.tgz",
+      "integrity": "sha512-lx7jC+DqMMio0Hhq3DNNGZKNUAD5n5Sc0T1m5x67iXoRJPwOEmKa+8fEhGV4tmXpTy7EmULpAnS+OxlJDOPhxg==",
+      "dependencies": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/mdx-loader": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
+        "chalk": "^4.1.1",
         "combine-promises": "^1.1.0",
+        "escape-string-regexp": "^4.0.0",
         "execa": "^5.0.0",
-        "fs-extra": "^9.1.0",
+        "fs-extra": "^10.0.0",
         "globby": "^11.0.2",
         "import-fresh": "^3.2.2",
         "js-yaml": "^4.0.0",
@@ -1814,9 +1837,9 @@
         "lodash": "^4.17.20",
         "remark-admonitions": "^1.2.1",
         "shelljs": "^0.8.4",
-        "tslib": "^2.1.0",
+        "tslib": "^2.2.0",
         "utility-types": "^3.10.0",
-        "webpack": "^5.28.0"
+        "webpack": "^5.40.0"
       },
       "engines": {
         "node": ">=12.13.0"
@@ -1843,22 +1866,22 @@
       }
     },
     "node_modules/@docusaurus/plugin-content-pages": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.0.tgz",
-      "integrity": "sha512-mk5LVVSvn+HJPKBaAs/Pceq/hTGxF2LVBvJEquuQz0NMAW3QdBWaYRRpOrL9CO8v+ygn5RuLslXsyZBsDNuhww==",
-      "dependencies": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/mdx-loader": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.2.tgz",
+      "integrity": "sha512-Hl8GG6PpAH4AV3i5QxmxggUet/ONl9E7FdfbJ/aKsjqziay2nW6LS66Ug9EchWlEoWKpmgTvRKRKhqAIJkBzXA==",
+      "dependencies": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/mdx-loader": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
         "globby": "^11.0.2",
         "lodash": "^4.17.20",
         "minimatch": "^3.0.4",
         "remark-admonitions": "^1.2.1",
         "slash": "^3.0.0",
         "tslib": "^2.1.0",
-        "webpack": "^5.28.0"
+        "webpack": "^5.40.0"
       },
       "engines": {
         "node": ">=12.13.0"
@@ -1869,17 +1892,18 @@
       }
     },
     "node_modules/@docusaurus/plugin-sitemap": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.0.tgz",
-      "integrity": "sha512-dvmk8Sr+6pBkiKDb7Rjdp0GeFDWPUlayoJWK3fN3g0Fno6uxFfYhNZyXJ+ObyCA7HoW5rzeBMiO+uAja19JXTg==",
-      "dependencies": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
-        "fs-extra": "^9.1.0",
-        "sitemap": "^6.3.6",
-        "tslib": "^2.1.0"
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.2.tgz",
+      "integrity": "sha512-tyoqZs52nVoAN7ZxJjGnpF6TUEVmXIpcGWfo0ehuTsNDs1f0XTOpex6Ue5ddXd2cEXht0HfWcL/Ta93R8BDBFw==",
+      "dependencies": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-common": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
+        "fs-extra": "^10.0.0",
+        "sitemap": "^7.0.0",
+        "tslib": "^2.2.0"
       },
       "engines": {
         "node": ">=12.13.0"
@@ -1901,30 +1925,31 @@
       }
     },
     "node_modules/@docusaurus/theme-classic": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.0.tgz",
-      "integrity": "sha512-cBNtwAyg3be7Gk41FazMtgyibAcfuYaGHhGHIDRsXfc/qp3RhbiGiei7tyh200QT0NgKZxiVQy/r4d0mtjC++Q==",
-      "dependencies": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-blog": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-docs": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-pages": "2.0.0-beta.0",
-        "@docusaurus/theme-common": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.2.tgz",
+      "integrity": "sha512-z6hJ3KyH+xmlAv5s+IgUek+eiWfkAwq2GTqCi9X6HdRmMSLxgmW7ikzK2fXVtk0VlhLxn/lBHds6Nvfo0YKCKg==",
+      "dependencies": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-blog": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-docs": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-pages": "2.0.0-beta.2",
+        "@docusaurus/theme-common": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-common": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
         "@mdx-js/mdx": "^1.6.21",
         "@mdx-js/react": "^1.6.21",
-        "chalk": "^4.1.0",
+        "chalk": "^4.1.1",
         "clsx": "^1.1.1",
-        "copy-text-to-clipboard": "^3.0.0",
-        "fs-extra": "^9.1.0",
+        "copy-text-to-clipboard": "^3.0.1",
+        "fs-extra": "^10.0.0",
         "globby": "^11.0.2",
-        "infima": "0.2.0-alpha.23",
+        "infima": "0.2.0-alpha.26",
         "lodash": "^4.17.20",
         "parse-numeric-range": "^1.2.0",
-        "postcss": "^8.2.10",
-        "prism-react-renderer": "^1.1.1",
+        "postcss": "^8.2.15",
+        "prism-react-renderer": "^1.2.1",
         "prismjs": "^1.23.0",
         "prop-types": "^15.7.2",
         "react-router-dom": "^5.2.0",
@@ -1939,36 +1964,36 @@
       }
     },
     "node_modules/@docusaurus/theme-common": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-beta.0.tgz",
-      "integrity": "sha512-2rcVmQpvbdAgnzTWuM7Bfpu+2TQm928bhlvxn226jQy7IYz8ySRlIode63HhCtpx03hpdMCkrK6HxhfEcvHjQg==",
-      "dependencies": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-blog": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-docs": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-pages": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-beta.2.tgz",
+      "integrity": "sha512-4svDbPYpwFCb646rcayK029LANdnIHMhMFX1Out1EWcLmFFfAXY3YtWoX5iW4KEM9ScbxPisz0dKb2BVupJ6MQ==",
+      "dependencies": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-blog": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-docs": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-pages": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
         "tslib": "^2.1.0"
       },
       "engines": {
         "node": ">=12.13.0"
       },
       "peerDependencies": {
-        "prism-react-renderer": "^1.1.1",
+        "prism-react-renderer": "^1.2.1",
         "react": "^16.8.4 || ^17.0.0",
         "react-dom": "^16.8.4 || ^17.0.0"
       }
     },
     "node_modules/@docusaurus/theme-search-algolia": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.0.tgz",
-      "integrity": "sha512-/GhgAm4yuwqTXWTsWnqpFYxpjTv+t45Wk8q/LmTVINa+A7b6jkMkch2lygagIt69/ufDm2Uw6eYhgrmF4DJqfQ==",
-      "dependencies": {
-        "@docsearch/react": "^3.0.0-alpha.33",
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/theme-common": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.2.tgz",
+      "integrity": "sha512-bVzZ2GF94BysasqW+PeggP9BBijUFTcnCeIp2BjOkaRnHW1YNfsfhdGArWS/2WKMWi4Y1vu79UDAKR7svCKNjg==",
+      "dependencies": {
+        "@docsearch/react": "^3.0.0-alpha.36",
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/theme-common": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
         "algoliasearch": "^4.8.4",
         "algoliasearch-helper": "^3.3.4",
         "clsx": "^1.1.1",
@@ -1984,60 +2009,60 @@
       }
     },
     "node_modules/@docusaurus/types": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-beta.0.tgz",
-      "integrity": "sha512-z9PI+GbtYwqTXnkX4/a/A6psDX2p8N2uWlN2f4ifrm8WY4WhR9yiTOh0uo0pIqqaUQQvkEq3o5hOXuXLECEs+w==",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-beta.2.tgz",
+      "integrity": "sha512-4lANZLq//nYukGH0TK/EVszq3SVvz2VADXXT5o39Hx1sghkVXhJBb0jX1GaSsn1aUUW6kJr9IbiaZdfifi2bNg==",
       "dependencies": {
         "commander": "^5.1.0",
         "joi": "^17.4.0",
         "querystring": "0.2.0",
-        "webpack": "^5.28.0",
-        "webpack-merge": "^5.7.3"
+        "webpack": "^5.40.0",
+        "webpack-merge": "^5.8.0"
       }
     },
     "node_modules/@docusaurus/utils": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-beta.0.tgz",
-      "integrity": "sha512-bvrT1EQu0maavr0Hb/lke9jmpzgVL/9tn5VQtbyahf472eJFY0bQDExllDrHK+l784SUvucqX0iaQeg0q6ySUw==",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-beta.2.tgz",
+      "integrity": "sha512-4nmfNZhl6zGMI+KJFEjLXWWyniMaESct5Oigqa55RbBXUtRI4isaOOMEjlfY+Q/jrJxQozRSuWKWM81VM3z6Yg==",
       "dependencies": {
-        "@docusaurus/types": "2.0.0-beta.0",
+        "@docusaurus/types": "2.0.0-beta.2",
         "@types/github-slugger": "^1.3.0",
-        "chalk": "^4.1.0",
+        "chalk": "^4.1.1",
         "escape-string-regexp": "^4.0.0",
-        "fs-extra": "^9.1.0",
-        "gray-matter": "^4.0.2",
+        "fs-extra": "^10.0.0",
+        "gray-matter": "^4.0.3",
         "lodash": "^4.17.20",
         "resolve-pathname": "^3.0.0",
-        "tslib": "^2.1.0"
+        "tslib": "^2.2.0"
       },
       "engines": {
         "node": ">=12.13.0"
       }
     },
-    "node_modules/@docusaurus/utils-validation": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.0.tgz",
-      "integrity": "sha512-ELl/FVJ6xBz35TisZ1NmJhjbiVXDeU++K531PEFPCPmwnQPh7S6hZXdPnR71/Kc3BmuN9X2ZkwGOqNKVfys2Bg==",
+    "node_modules/@docusaurus/utils-common": {
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.0.0-beta.2.tgz",
+      "integrity": "sha512-R2D3wr49kc0TVWQBiKWhM32wsdZQj2ioYT6+eyyKW8f4yRP731TpO1k0pL/c9/UVA5i3Qtei+/3+guFcfxJ7VQ==",
       "dependencies": {
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "chalk": "^4.1.0",
-        "joi": "^17.4.0",
-        "tslib": "^2.1.0"
+        "@docusaurus/types": "2.0.0-beta.2",
+        "tslib": "^2.2.0"
       },
       "engines": {
         "node": ">=12.13.0"
       }
     },
-    "node_modules/@endiliey/static-site-generator-webpack-plugin": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/@endiliey/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.0.tgz",
-      "integrity": "sha512-3MBqYCs30qk1OBRC697NqhGouYbs71D1B8hrk/AFJC6GwF2QaJOQZtA1JYAaGSe650sZ8r5ppRTtCRXepDWlng==",
+    "node_modules/@docusaurus/utils-validation": {
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.2.tgz",
+      "integrity": "sha512-JMS74ldYsRxoaWXmHrOnvwSZqAMtddbuCd3wrGSWHbJNX9PI6nNqdXJDHjHTyN6kiykU7U4Hhh7D47ICdUSGEQ==",
       "dependencies": {
-        "bluebird": "^3.7.1",
-        "cheerio": "^0.22.0",
-        "eval": "^0.1.4",
-        "url": "^0.11.0",
-        "webpack-sources": "^1.4.3"
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "chalk": "^4.1.1",
+        "joi": "^17.4.0",
+        "tslib": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=12.13.0"
       }
     },
     "node_modules/@exodus/schemasafe": {
@@ -2198,9 +2223,9 @@
       }
     },
     "node_modules/@polka/url": {
-      "version": "1.0.0-next.12",
-      "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.12.tgz",
-      "integrity": "sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ=="
+      "version": "1.0.0-next.15",
+      "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz",
+      "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA=="
     },
     "node_modules/@sideway/address": {
       "version": "4.1.1",
@@ -2228,6 +2253,18 @@
         "node": ">=6"
       }
     },
+    "node_modules/@slorber/static-site-generator-webpack-plugin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.1.tgz",
+      "integrity": "sha512-PSv4RIVO1Y3kvHxjvqeVisk3E9XFoO04uwYBDWe217MFqKspplYswTuKLiJu0aLORQWzuQjfVsSlLPojwfYsLw==",
+      "dependencies": {
+        "bluebird": "^3.7.1",
+        "cheerio": "^0.22.0",
+        "eval": "^0.1.4",
+        "url": "^0.11.0",
+        "webpack-sources": "^1.4.3"
+      }
+    },
     "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
       "version": "5.4.0",
       "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz",
@@ -2552,9 +2589,9 @@
       "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA=="
     },
     "node_modules/@types/node": {
-      "version": "14.14.41",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz",
-      "integrity": "sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g=="
+      "version": "15.12.4",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz",
+      "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA=="
     },
     "node_modules/@types/parse-json": {
       "version": "4.0.0",
@@ -2777,9 +2814,9 @@
       }
     },
     "node_modules/acorn-walk": {
-      "version": "8.0.2",
-      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.0.2.tgz",
-      "integrity": "sha512-+bpA9MJsHdZ4bgfDcpk0ozQyhhVct7rzOmO0s1IIr0AGGgKBljss8n2zp11rRP2wid5VGeh04CgeKzgat5/25A==",
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.0.tgz",
+      "integrity": "sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg==",
       "engines": {
         "node": ">=0.4.0"
       }
@@ -3105,14 +3142,6 @@
       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
       "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
     },
-    "node_modules/at-least-node": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
-      "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
-      "engines": {
-        "node": ">= 4.0.0"
-      }
-    },
     "node_modules/atob": {
       "version": "2.1.2",
       "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
@@ -3140,14 +3169,14 @@
       "dev": true
     },
     "node_modules/autoprefixer": {
-      "version": "10.2.5",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.5.tgz",
-      "integrity": "sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA==",
+      "version": "10.2.6",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
+      "integrity": "sha512-8lChSmdU6dCNMCQopIf4Pe5kipkAGj/fvTMslCsih0uHpOrXOPUEVOmYMMqmw3cekQkSD7EhIeuYl5y0BLdKqg==",
       "dependencies": {
-        "browserslist": "^4.16.3",
-        "caniuse-lite": "^1.0.30001196",
+        "browserslist": "^4.16.6",
+        "caniuse-lite": "^1.0.30001230",
         "colorette": "^1.2.2",
-        "fraction.js": "^4.0.13",
+        "fraction.js": "^4.1.1",
         "normalize-range": "^0.1.2",
         "postcss-value-parser": "^4.1.0"
       },
@@ -4481,12 +4510,12 @@
       }
     },
     "node_modules/copy-webpack-plugin": {
-      "version": "8.1.1",
-      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz",
-      "integrity": "sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==",
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.0.tgz",
+      "integrity": "sha512-k8UB2jLIb1Jip2nZbCz83T/XfhfjX6mB1yLJNYKrpYi7FQimfOoFv/0//iT6HV1K8FwUB5yUbCcnpLebJXJTug==",
       "dependencies": {
         "fast-glob": "^3.2.5",
-        "glob-parent": "^5.1.1",
+        "glob-parent": "^6.0.0",
         "globby": "^11.0.3",
         "normalize-path": "^3.0.0",
         "p-limit": "^3.1.0",
@@ -4494,7 +4523,7 @@
         "serialize-javascript": "^5.0.1"
       },
       "engines": {
-        "node": ">= 10.13.0"
+        "node": ">= 12.13.0"
       },
       "funding": {
         "type": "opencollective",
@@ -4504,6 +4533,17 @@
         "webpack": "^5.1.0"
       }
     },
+    "node_modules/copy-webpack-plugin/node_modules/glob-parent": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.0.tgz",
+      "integrity": "sha512-Hdd4287VEJcZXUwv1l8a+vXC1GjOQqXe+VS30w/ypihpcnu9M1n3xeYeJu5CBpeEQj2nAab2xxz28GuA3vp4Ww==",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
     "node_modules/copy-webpack-plugin/node_modules/schema-utils": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
@@ -4695,12 +4735,12 @@
       }
     },
     "node_modules/css-minimizer-webpack-plugin": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-2.0.0.tgz",
-      "integrity": "sha512-cG/uc94727tx5pBNtb1Sd7gvUPzwmcQi1lkpfqTpdkuNq75hJCw7bIVsCNijLm4dhDcr1atvuysl2rZqOG8Txw==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.1.tgz",
+      "integrity": "sha512-RGFIv6iZWUPO2T1vE5+5pNCSs2H2xtHYRdfZPiiNH8Of6QOn9BeFnZSoHiQMkmsxOO/JkPe4BpKfs7slFIWcTA==",
       "dependencies": {
         "cssnano": "^5.0.0",
-        "jest-worker": "^26.3.0",
+        "jest-worker": "^27.0.2",
         "p-limit": "^3.0.2",
         "postcss": "^8.2.9",
         "schema-utils": "^3.0.0",
@@ -4708,7 +4748,7 @@
         "source-map": "^0.6.1"
       },
       "engines": {
-        "node": ">= 10.13.0"
+        "node": ">= 12.13.0"
       },
       "funding": {
         "type": "opencollective",
@@ -5847,9 +5887,9 @@
       }
     },
     "node_modules/es-module-lexer": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz",
-      "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA=="
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.6.0.tgz",
+      "integrity": "sha512-f8kcHX1ArhllUtb/wVSyvygoKCznIjnxhLxy7TCvIiMdT7fL4ZDTIKaadMe6eLvOXg6Wk02UeoFgUoZ2EKZZUA=="
     },
     "node_modules/es-to-primitive": {
       "version": "1.2.1",
@@ -6760,11 +6800,15 @@
       }
     },
     "node_modules/fraction.js": {
-      "version": "4.0.13",
-      "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz",
-      "integrity": "sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA==",
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz",
+      "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==",
       "engines": {
         "node": "*"
+      },
+      "funding": {
+        "type": "patreon",
+        "url": "https://www.patreon.com/infusion"
       }
     },
     "node_modules/fragment-cache": {
@@ -6793,17 +6837,16 @@
       "dev": true
     },
     "node_modules/fs-extra": {
-      "version": "9.1.0",
-      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
-      "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+      "version": "10.0.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
+      "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
       "dependencies": {
-        "at-least-node": "^1.0.0",
         "graceful-fs": "^4.2.0",
         "jsonfile": "^6.0.1",
         "universalify": "^2.0.0"
       },
       "engines": {
-        "node": ">=10"
+        "node": ">=12"
       }
     },
     "node_modules/fs-readfile-promise": {
@@ -7624,14 +7667,14 @@
       }
     },
     "node_modules/html-webpack-plugin": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz",
-      "integrity": "sha512-rZsVvPXUYFyME0cuGkyOHfx9hmkFa4pWfxY/mdY38PsBEaVNsRoA+Id+8z6DBDgyv3zaw6XQszdF8HLwfQvcdQ==",
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz",
+      "integrity": "sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ==",
       "dependencies": {
         "@types/html-minifier-terser": "^5.0.0",
         "html-minifier-terser": "^5.0.1",
-        "lodash": "^4.17.20",
-        "pretty-error": "^2.1.1",
+        "lodash": "^4.17.21",
+        "pretty-error": "^3.0.4",
         "tapable": "^2.0.0"
       },
       "engines": {
@@ -8167,9 +8210,9 @@
       }
     },
     "node_modules/infima": {
-      "version": "0.2.0-alpha.23",
-      "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.23.tgz",
-      "integrity": "sha512-V0RTjB1otjpH3E2asbydx3gz7ovdSJsuV7r9JTdBggqRilnelTJUcXxLawBQQKsjQi5qPcRTjxnlaV8xyyKhhw==",
+      "version": "0.2.0-alpha.26",
+      "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.26.tgz",
+      "integrity": "sha512-0/Dt+89mf8xW+9/hKGmynK+WOAsiy0QydVJL0qie6WK57yGIQv+SjJrhMybKndnmkZBQ+Vlt0tWPnTakx8X2Qw==",
       "engines": {
         "node": ">=12"
       }
@@ -8774,18 +8817,32 @@
       }
     },
     "node_modules/jest-worker": {
-      "version": "26.6.2",
-      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
-      "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
+      "version": "27.0.2",
+      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz",
+      "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==",
       "dependencies": {
         "@types/node": "*",
         "merge-stream": "^2.0.0",
-        "supports-color": "^7.0.0"
+        "supports-color": "^8.0.0"
       },
       "engines": {
         "node": ">= 10.13.0"
       }
     },
+    "node_modules/jest-worker/node_modules/supports-color": {
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+      "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/supports-color?sponsor=1"
+      }
+    },
     "node_modules/jgexml": {
       "version": "0.4.4",
       "resolved": "https://registry.npmjs.org/jgexml/-/jgexml-0.4.4.tgz",
@@ -8887,12 +8944,12 @@
       }
     },
     "node_modules/json-schema-ref-parser": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-8.0.0.tgz",
-      "integrity": "sha512-2P4icmNkZLrBr6oa5gSZaDSol/oaBHYkoP/8dsw63E54NnHGRhhiFuy9yFoxPuSm+uHKmeGxAAWMDF16SCHhcQ==",
+      "version": "9.0.9",
+      "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz",
+      "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==",
       "dev": true,
       "dependencies": {
-        "@apidevtools/json-schema-ref-parser": "8.0.0"
+        "@apidevtools/json-schema-ref-parser": "9.0.9"
       },
       "engines": {
         "node": ">=10"
@@ -9915,9 +9972,9 @@
       }
     },
     "node_modules/normalize-url": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.0.1.tgz",
-      "integrity": "sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ==",
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+      "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
       "engines": {
         "node": ">=10"
       },
@@ -11726,9 +11783,9 @@
       }
     },
     "node_modules/prettier": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz",
-      "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==",
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz",
+      "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==",
       "dev": true,
       "bin": {
         "prettier": "bin-prettier.js"
@@ -11738,12 +11795,12 @@
       }
     },
     "node_modules/pretty-error": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz",
-      "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==",
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-3.0.4.tgz",
+      "integrity": "sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ==",
       "dependencies": {
         "lodash": "^4.17.20",
-        "renderkid": "^2.0.4"
+        "renderkid": "^2.0.6"
       }
     },
     "node_modules/pretty-time": {
@@ -13106,9 +13163,9 @@
       }
     },
     "node_modules/rtl-detect": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.2.tgz",
-      "integrity": "sha512-5X1422hvphzg2a/bo4tIDbjFjbJUOaPZwqE6dnyyxqwFqfR+tBcvfqapJr0o0VygATVCGKiODEewhZtKF+90AA=="
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.3.tgz",
+      "integrity": "sha512-2sMcZO60tL9YDEFe24gqddg3hJ+xSmJFN8IExcQUxeHxQzydQrN6GHPL+yAWgzItXSI7es53hcZC9pJneuZDKA=="
     },
     "node_modules/rtlcss": {
       "version": "3.2.0",
@@ -13543,9 +13600,9 @@
       "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
     },
     "node_modules/set-getter": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz",
-      "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=",
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.1.tgz",
+      "integrity": "sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==",
       "dependencies": {
         "to-object-path": "^0.3.0"
       },
@@ -13683,11 +13740,11 @@
       "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
     },
     "node_modules/sirv": {
-      "version": "1.0.11",
-      "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.11.tgz",
-      "integrity": "sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg==",
+      "version": "1.0.12",
+      "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.12.tgz",
+      "integrity": "sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg==",
       "dependencies": {
-        "@polka/url": "^1.0.0-next.9",
+        "@polka/url": "^1.0.0-next.15",
         "mime": "^2.3.1",
         "totalist": "^1.0.0"
       },
@@ -13712,11 +13769,11 @@
       "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
     },
     "node_modules/sitemap": {
-      "version": "6.4.0",
-      "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-6.4.0.tgz",
-      "integrity": "sha512-DoPKNc2/apQZTUnfiOONWctwq7s6dZVspxAZe2VPMNtoqNq7HgXRvlRnbIpKjf+8+piQdWncwcy+YhhTGY5USQ==",
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.0.0.tgz",
+      "integrity": "sha512-Ud0jrRQO2k7fEtPAM+cQkBKoMvxQyPKNXKDLn8tRVHxRCsdDQ2JZvw+aZ5IRYYQVAV9iGxEar6boTwZzev+x3g==",
       "dependencies": {
-        "@types/node": "^14.14.28",
+        "@types/node": "^15.0.1",
         "@types/sax": "^1.2.1",
         "arg": "^5.0.0",
         "sax": "^1.2.4"
@@ -13725,7 +13782,7 @@
         "sitemap": "dist/cli.js"
       },
       "engines": {
-        "node": ">=10.3.0",
+        "node": ">=12.0.0",
         "npm": ">=5.6.0"
       }
     },
@@ -14658,19 +14715,6 @@
       "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
       "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
     },
-    "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
-      "version": "27.0.2",
-      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz",
-      "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==",
-      "dependencies": {
-        "@types/node": "*",
-        "merge-stream": "^2.0.0",
-        "supports-color": "^8.0.0"
-      },
-      "engines": {
-        "node": ">= 10.13.0"
-      }
-    },
     "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
@@ -14696,20 +14740,6 @@
         "node": ">=0.10.0"
       }
     },
-    "node_modules/terser-webpack-plugin/node_modules/supports-color": {
-      "version": "8.1.1",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
-      "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/supports-color?sponsor=1"
-      }
-    },
     "node_modules/terser-webpack-plugin/node_modules/terser": {
       "version": "5.7.0",
       "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz",
@@ -15668,9 +15698,9 @@
       }
     },
     "node_modules/webpack": {
-      "version": "5.39.0",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.0.tgz",
-      "integrity": "sha512-25CHmuDj+oOTyteI13sUqNlCnjCnySuhiKWE/cRYPQYeoQ3ijHgyWX27CiyUKLNGq27v8S0mrksyTreT/xo7pg==",
+      "version": "5.40.0",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.40.0.tgz",
+      "integrity": "sha512-c7f5e/WWrxXWUzQqTBg54vBs5RgcAgpvKE4F4VegVgfo4x660ZxYUF2/hpMkZUnLjgytVTitjeXaN4IPlXCGIw==",
       "dependencies": {
         "@types/eslint-scope": "^3.7.0",
         "@types/estree": "^0.0.47",
@@ -15681,7 +15711,7 @@
         "browserslist": "^4.14.5",
         "chrome-trace-event": "^1.0.2",
         "enhanced-resolve": "^5.8.0",
-        "es-module-lexer": "^0.4.0",
+        "es-module-lexer": "^0.6.0",
         "eslint-scope": "5.1.1",
         "events": "^3.2.0",
         "glob-to-regexp": "^0.4.1",
@@ -15692,7 +15722,7 @@
         "neo-async": "^2.6.2",
         "schema-utils": "^3.0.0",
         "tapable": "^2.1.1",
-        "terser-webpack-plugin": "^5.1.1",
+        "terser-webpack-plugin": "^5.1.3",
         "watchpack": "^2.2.0",
         "webpack-sources": "^2.3.0"
       },
@@ -15713,9 +15743,9 @@
       }
     },
     "node_modules/webpack-bundle-analyzer": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz",
-      "integrity": "sha512-j5m7WgytCkiVBoOGavzNokBOqxe6Mma13X1asfVYtKWM3wxBiRRu1u1iG0Iol5+qp9WgyhkMmBAcvjEfJ2bdDw==",
+      "version": "4.4.2",
+      "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz",
+      "integrity": "sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ==",
       "dependencies": {
         "acorn": "^8.0.4",
         "acorn-walk": "^8.0.0",
@@ -16705,9 +16735,9 @@
       }
     },
     "node_modules/ws": {
-      "version": "7.4.6",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
-      "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+      "version": "7.5.0",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz",
+      "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==",
       "engines": {
         "node": ">=8.3.0"
       },
@@ -17063,14 +17093,32 @@
       }
     },
     "@apidevtools/json-schema-ref-parser": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-8.0.0.tgz",
-      "integrity": "sha512-n4YBtwQhdpLto1BaUCyAeflizmIbaloGShsPyRtFf5qdFJxfssj+GgLavczgKJFa3Bq+3St2CKcpRJdjtB4EBw==",
+      "version": "9.0.9",
+      "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz",
+      "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==",
       "dev": true,
       "requires": {
-        "@jsdevtools/ono": "^7.1.0",
+        "@jsdevtools/ono": "^7.1.3",
+        "@types/json-schema": "^7.0.6",
         "call-me-maybe": "^1.0.1",
-        "js-yaml": "^3.13.1"
+        "js-yaml": "^4.1.0"
+      },
+      "dependencies": {
+        "argparse": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+          "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+          "dev": true
+        },
+        "js-yaml": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+          "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+          "dev": true,
+          "requires": {
+            "argparse": "^2.0.1"
+          }
+        }
       }
     },
     "@babel/code-frame": {
@@ -18244,9 +18292,9 @@
       }
     },
     "@docusaurus/core": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.0.tgz",
-      "integrity": "sha512-xWwpuEwFRKJmZvNGOpr/dyRDnx/psckLPsozQTg2hu3u81Wqu9gigWgYK/C2fPlEjxMcVw0/2WH+zwpbyWmF2Q==",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.2.tgz",
+      "integrity": "sha512-i0jwYyTFkWUhnN5/eky7fkt7reIvNFH5iOyltXyCxn/DrKCGRqC63g3IbFhvLULl007JKp3vBXvwcNK3IpH8Yw==",
       "requires": {
         "@babel/core": "^7.12.16",
         "@babel/generator": "^7.12.15",
@@ -18258,47 +18306,49 @@
         "@babel/runtime": "^7.12.5",
         "@babel/runtime-corejs3": "^7.12.13",
         "@babel/traverse": "^7.12.13",
-        "@docusaurus/cssnano-preset": "2.0.0-beta.0",
+        "@docusaurus/cssnano-preset": "2.0.0-beta.2",
         "@docusaurus/react-loadable": "5.5.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
-        "@endiliey/static-site-generator-webpack-plugin": "^4.0.0",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-common": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
+        "@slorber/static-site-generator-webpack-plugin": "^4.0.0",
         "@svgr/webpack": "^5.5.0",
         "autoprefixer": "^10.2.5",
         "babel-loader": "^8.2.2",
         "babel-plugin-dynamic-import-node": "2.3.0",
-        "boxen": "^5.0.0",
-        "chalk": "^4.1.0",
+        "boxen": "^5.0.1",
+        "chalk": "^4.1.1",
         "chokidar": "^3.5.1",
-        "clean-css": "^5.1.1",
+        "clean-css": "^5.1.2",
         "commander": "^5.1.0",
-        "copy-webpack-plugin": "^8.1.0",
+        "copy-webpack-plugin": "^9.0.0",
         "core-js": "^3.9.1",
         "css-loader": "^5.1.1",
-        "css-minimizer-webpack-plugin": "^2.0.0",
-        "cssnano": "^5.0.1",
+        "css-minimizer-webpack-plugin": "^3.0.1",
+        "cssnano": "^5.0.4",
         "del": "^6.0.0",
         "detect-port": "^1.3.0",
+        "escape-html": "^1.0.3",
         "eta": "^1.12.1",
         "express": "^4.17.1",
         "file-loader": "^6.2.0",
-        "fs-extra": "^9.1.0",
+        "fs-extra": "^10.0.0",
         "github-slugger": "^1.3.0",
         "globby": "^11.0.2",
         "html-minifier-terser": "^5.1.1",
         "html-tags": "^3.1.0",
-        "html-webpack-plugin": "^5.2.0",
+        "html-webpack-plugin": "^5.3.2",
         "import-fresh": "^3.3.0",
         "is-root": "^2.1.0",
         "leven": "^3.1.0",
         "lodash": "^4.17.20",
-        "mini-css-extract-plugin": "^1.4.0",
+        "mini-css-extract-plugin": "^1.6.0",
         "module-alias": "^2.2.2",
         "nprogress": "^0.2.0",
-        "postcss": "^8.2.10",
-        "postcss-loader": "^5.2.0",
-        "prompts": "^2.4.0",
+        "postcss": "^8.2.15",
+        "postcss-loader": "^5.3.0",
+        "prompts": "^2.4.1",
         "react-dev-utils": "^11.0.1",
         "react-error-overlay": "^6.0.9",
         "react-helmet": "^6.1.0",
@@ -18308,78 +18358,79 @@
         "react-router-config": "^5.1.1",
         "react-router-dom": "^5.2.0",
         "resolve-pathname": "^3.0.0",
-        "rtl-detect": "^1.0.2",
+        "rtl-detect": "^1.0.3",
         "semver": "^7.3.4",
         "serve-handler": "^6.1.3",
         "shelljs": "^0.8.4",
         "std-env": "^2.2.1",
         "strip-ansi": "^6.0.0",
-        "terser-webpack-plugin": "^5.1.1",
-        "tslib": "^2.1.0",
+        "terser-webpack-plugin": "^5.1.3",
+        "tslib": "^2.2.0",
         "update-notifier": "^5.1.0",
         "url-loader": "^4.1.1",
-        "wait-on": "^5.2.1",
-        "webpack": "^5.28.0",
-        "webpack-bundle-analyzer": "^4.4.0",
+        "wait-on": "^5.3.0",
+        "webpack": "^5.40.0",
+        "webpack-bundle-analyzer": "^4.4.2",
         "webpack-dev-server": "^3.11.2",
-        "webpack-merge": "^5.7.3",
+        "webpack-merge": "^5.8.0",
         "webpackbar": "^5.0.0-3"
       }
     },
     "@docusaurus/cssnano-preset": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.0.tgz",
-      "integrity": "sha512-gqQHeQCDHZDd5NaiKZwDiyg75sBCqDyAsvmFukkDAty8xE7u9IhzbOQKvCAtwseuvzu2BNN41gnJ8bz7vZzQiw==",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.2.tgz",
+      "integrity": "sha512-GNGYkePEYWJkxgFNUBYjEUySKm5FfBbYoQqGWn6KxDN34Qi7o+Wb37zPOiz2pNKBq+qCvXOfCIqblq7n0S/POA==",
       "requires": {
-        "cssnano-preset-advanced": "^5.0.0",
-        "postcss": "^8.2.10",
-        "postcss-sort-media-queries": "^3.8.9"
+        "cssnano-preset-advanced": "^5.1.1",
+        "postcss": "^8.2.15",
+        "postcss-sort-media-queries": "^3.10.11"
       }
     },
     "@docusaurus/mdx-loader": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.0.tgz",
-      "integrity": "sha512-oQLS2ZeUnqw79CV37glglZpaYgFfA5Az5lT83m5tJfMUZjoK4ehG1XWBeUzWy8QQNI452yAID8jz8jihEQeCcw==",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.2.tgz",
+      "integrity": "sha512-ZUqwQQY3P9/N2KBt28ADJgQWj98VqKG0+OEQJOiK6bd8uIngLrHvWE0WasBT3zgPK+ljhdRMaQ7TWt1Doot+ZA==",
       "requires": {
         "@babel/parser": "^7.12.16",
         "@babel/traverse": "^7.12.13",
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
         "@mdx-js/mdx": "^1.6.21",
         "@mdx-js/react": "^1.6.21",
         "escape-html": "^1.0.3",
         "file-loader": "^6.2.0",
-        "fs-extra": "^9.1.0",
+        "fs-extra": "^10.0.0",
         "github-slugger": "^1.3.0",
-        "gray-matter": "^4.0.2",
+        "gray-matter": "^4.0.3",
         "mdast-util-to-string": "^2.0.0",
         "remark-emoji": "^2.1.0",
         "stringify-object": "^3.3.0",
         "unist-util-visit": "^2.0.2",
         "url-loader": "^4.1.1",
-        "webpack": "^5.28.0"
+        "webpack": "^5.40.0"
       }
     },
     "@docusaurus/plugin-content-blog": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.0.tgz",
-      "integrity": "sha512-lz63i5k/23RJ3Rk/2fIsYAoD8Wua3b5b0AbH2JoOhQu1iAIQiV8m91Z3XALBSzA3nBtAOIweNI7yzWL+JFSTvw==",
-      "requires": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/mdx-loader": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
-        "chalk": "^4.1.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.2.tgz",
+      "integrity": "sha512-I4q8zwL2GpfBxebDWoKWBrEtV2oiOkrc8cP5JORw5HKKB9zOz99UcggnbanllkCtmj+o4RiuhCQ0vHPFB5ts3Q==",
+      "requires": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/mdx-loader": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
+        "chalk": "^4.1.1",
+        "escape-string-regexp": "^4.0.0",
         "feed": "^4.2.2",
-        "fs-extra": "^9.1.0",
+        "fs-extra": "^10.0.0",
         "globby": "^11.0.2",
         "loader-utils": "^2.0.0",
         "lodash": "^4.17.20",
         "reading-time": "^1.3.0",
         "remark-admonitions": "^1.2.1",
-        "tslib": "^2.1.0",
-        "webpack": "^5.28.0"
+        "tslib": "^2.2.0",
+        "webpack": "^5.40.0"
       },
       "dependencies": {
         "loader-utils": {
@@ -18395,19 +18446,20 @@
       }
     },
     "@docusaurus/plugin-content-docs": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.0.tgz",
-      "integrity": "sha512-WdDQUh2rRCbfJswVc0vY9EaAspxgziqpVEZja8+BmQR/TZh7HuLplT6GJbiFbE4RvwM3+PwG/jHMPglYDK60kw==",
-      "requires": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/mdx-loader": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
-        "chalk": "^4.1.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.2.tgz",
+      "integrity": "sha512-lx7jC+DqMMio0Hhq3DNNGZKNUAD5n5Sc0T1m5x67iXoRJPwOEmKa+8fEhGV4tmXpTy7EmULpAnS+OxlJDOPhxg==",
+      "requires": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/mdx-loader": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
+        "chalk": "^4.1.1",
         "combine-promises": "^1.1.0",
+        "escape-string-regexp": "^4.0.0",
         "execa": "^5.0.0",
-        "fs-extra": "^9.1.0",
+        "fs-extra": "^10.0.0",
         "globby": "^11.0.2",
         "import-fresh": "^3.2.2",
         "js-yaml": "^4.0.0",
@@ -18415,9 +18467,9 @@
         "lodash": "^4.17.20",
         "remark-admonitions": "^1.2.1",
         "shelljs": "^0.8.4",
-        "tslib": "^2.1.0",
+        "tslib": "^2.2.0",
         "utility-types": "^3.10.0",
-        "webpack": "^5.28.0"
+        "webpack": "^5.40.0"
       },
       "dependencies": {
         "argparse": {
@@ -18436,36 +18488,37 @@
       }
     },
     "@docusaurus/plugin-content-pages": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.0.tgz",
-      "integrity": "sha512-mk5LVVSvn+HJPKBaAs/Pceq/hTGxF2LVBvJEquuQz0NMAW3QdBWaYRRpOrL9CO8v+ygn5RuLslXsyZBsDNuhww==",
-      "requires": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/mdx-loader": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.2.tgz",
+      "integrity": "sha512-Hl8GG6PpAH4AV3i5QxmxggUet/ONl9E7FdfbJ/aKsjqziay2nW6LS66Ug9EchWlEoWKpmgTvRKRKhqAIJkBzXA==",
+      "requires": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/mdx-loader": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
         "globby": "^11.0.2",
         "lodash": "^4.17.20",
         "minimatch": "^3.0.4",
         "remark-admonitions": "^1.2.1",
         "slash": "^3.0.0",
         "tslib": "^2.1.0",
-        "webpack": "^5.28.0"
+        "webpack": "^5.40.0"
       }
     },
     "@docusaurus/plugin-sitemap": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.0.tgz",
-      "integrity": "sha512-dvmk8Sr+6pBkiKDb7Rjdp0GeFDWPUlayoJWK3fN3g0Fno6uxFfYhNZyXJ+ObyCA7HoW5rzeBMiO+uAja19JXTg==",
-      "requires": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
-        "fs-extra": "^9.1.0",
-        "sitemap": "^6.3.6",
-        "tslib": "^2.1.0"
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.2.tgz",
+      "integrity": "sha512-tyoqZs52nVoAN7ZxJjGnpF6TUEVmXIpcGWfo0ehuTsNDs1f0XTOpex6Ue5ddXd2cEXht0HfWcL/Ta93R8BDBFw==",
+      "requires": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-common": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
+        "fs-extra": "^10.0.0",
+        "sitemap": "^7.0.0",
+        "tslib": "^2.2.0"
       }
     },
     "@docusaurus/react-loadable": {
@@ -18477,30 +18530,31 @@
       }
     },
     "@docusaurus/theme-classic": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.0.tgz",
-      "integrity": "sha512-cBNtwAyg3be7Gk41FazMtgyibAcfuYaGHhGHIDRsXfc/qp3RhbiGiei7tyh200QT0NgKZxiVQy/r4d0mtjC++Q==",
-      "requires": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-blog": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-docs": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-pages": "2.0.0-beta.0",
-        "@docusaurus/theme-common": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.2.tgz",
+      "integrity": "sha512-z6hJ3KyH+xmlAv5s+IgUek+eiWfkAwq2GTqCi9X6HdRmMSLxgmW7ikzK2fXVtk0VlhLxn/lBHds6Nvfo0YKCKg==",
+      "requires": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-blog": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-docs": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-pages": "2.0.0-beta.2",
+        "@docusaurus/theme-common": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-common": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
         "@mdx-js/mdx": "^1.6.21",
         "@mdx-js/react": "^1.6.21",
-        "chalk": "^4.1.0",
+        "chalk": "^4.1.1",
         "clsx": "^1.1.1",
-        "copy-text-to-clipboard": "^3.0.0",
-        "fs-extra": "^9.1.0",
+        "copy-text-to-clipboard": "^3.0.1",
+        "fs-extra": "^10.0.0",
         "globby": "^11.0.2",
-        "infima": "0.2.0-alpha.23",
+        "infima": "0.2.0-alpha.26",
         "lodash": "^4.17.20",
         "parse-numeric-range": "^1.2.0",
-        "postcss": "^8.2.10",
-        "prism-react-renderer": "^1.1.1",
+        "postcss": "^8.2.15",
+        "prism-react-renderer": "^1.2.1",
         "prismjs": "^1.23.0",
         "prop-types": "^15.7.2",
         "react-router-dom": "^5.2.0",
@@ -18508,28 +18562,28 @@
       }
     },
     "@docusaurus/theme-common": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-beta.0.tgz",
-      "integrity": "sha512-2rcVmQpvbdAgnzTWuM7Bfpu+2TQm928bhlvxn226jQy7IYz8ySRlIode63HhCtpx03hpdMCkrK6HxhfEcvHjQg==",
-      "requires": {
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-blog": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-docs": "2.0.0-beta.0",
-        "@docusaurus/plugin-content-pages": "2.0.0-beta.0",
-        "@docusaurus/types": "2.0.0-beta.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-beta.2.tgz",
+      "integrity": "sha512-4svDbPYpwFCb646rcayK029LANdnIHMhMFX1Out1EWcLmFFfAXY3YtWoX5iW4KEM9ScbxPisz0dKb2BVupJ6MQ==",
+      "requires": {
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-blog": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-docs": "2.0.0-beta.2",
+        "@docusaurus/plugin-content-pages": "2.0.0-beta.2",
+        "@docusaurus/types": "2.0.0-beta.2",
         "tslib": "^2.1.0"
       }
     },
     "@docusaurus/theme-search-algolia": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.0.tgz",
-      "integrity": "sha512-/GhgAm4yuwqTXWTsWnqpFYxpjTv+t45Wk8q/LmTVINa+A7b6jkMkch2lygagIt69/ufDm2Uw6eYhgrmF4DJqfQ==",
-      "requires": {
-        "@docsearch/react": "^3.0.0-alpha.33",
-        "@docusaurus/core": "2.0.0-beta.0",
-        "@docusaurus/theme-common": "2.0.0-beta.0",
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "@docusaurus/utils-validation": "2.0.0-beta.0",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.2.tgz",
+      "integrity": "sha512-bVzZ2GF94BysasqW+PeggP9BBijUFTcnCeIp2BjOkaRnHW1YNfsfhdGArWS/2WKMWi4Y1vu79UDAKR7svCKNjg==",
+      "requires": {
+        "@docsearch/react": "^3.0.0-alpha.36",
+        "@docusaurus/core": "2.0.0-beta.2",
+        "@docusaurus/theme-common": "2.0.0-beta.2",
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "@docusaurus/utils-validation": "2.0.0-beta.2",
         "algoliasearch": "^4.8.4",
         "algoliasearch-helper": "^3.3.4",
         "clsx": "^1.1.1",
@@ -18538,54 +18592,51 @@
       }
     },
     "@docusaurus/types": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-beta.0.tgz",
-      "integrity": "sha512-z9PI+GbtYwqTXnkX4/a/A6psDX2p8N2uWlN2f4ifrm8WY4WhR9yiTOh0uo0pIqqaUQQvkEq3o5hOXuXLECEs+w==",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-beta.2.tgz",
+      "integrity": "sha512-4lANZLq//nYukGH0TK/EVszq3SVvz2VADXXT5o39Hx1sghkVXhJBb0jX1GaSsn1aUUW6kJr9IbiaZdfifi2bNg==",
       "requires": {
         "commander": "^5.1.0",
         "joi": "^17.4.0",
         "querystring": "0.2.0",
-        "webpack": "^5.28.0",
-        "webpack-merge": "^5.7.3"
+        "webpack": "^5.40.0",
+        "webpack-merge": "^5.8.0"
       }
     },
     "@docusaurus/utils": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-beta.0.tgz",
-      "integrity": "sha512-bvrT1EQu0maavr0Hb/lke9jmpzgVL/9tn5VQtbyahf472eJFY0bQDExllDrHK+l784SUvucqX0iaQeg0q6ySUw==",
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-beta.2.tgz",
+      "integrity": "sha512-4nmfNZhl6zGMI+KJFEjLXWWyniMaESct5Oigqa55RbBXUtRI4isaOOMEjlfY+Q/jrJxQozRSuWKWM81VM3z6Yg==",
       "requires": {
-        "@docusaurus/types": "2.0.0-beta.0",
+        "@docusaurus/types": "2.0.0-beta.2",
         "@types/github-slugger": "^1.3.0",
-        "chalk": "^4.1.0",
+        "chalk": "^4.1.1",
         "escape-string-regexp": "^4.0.0",
-        "fs-extra": "^9.1.0",
-        "gray-matter": "^4.0.2",
+        "fs-extra": "^10.0.0",
+        "gray-matter": "^4.0.3",
         "lodash": "^4.17.20",
         "resolve-pathname": "^3.0.0",
-        "tslib": "^2.1.0"
+        "tslib": "^2.2.0"
       }
     },
-    "@docusaurus/utils-validation": {
-      "version": "2.0.0-beta.0",
-      "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.0.tgz",
-      "integrity": "sha512-ELl/FVJ6xBz35TisZ1NmJhjbiVXDeU++K531PEFPCPmwnQPh7S6hZXdPnR71/Kc3BmuN9X2ZkwGOqNKVfys2Bg==",
+    "@docusaurus/utils-common": {
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.0.0-beta.2.tgz",
+      "integrity": "sha512-R2D3wr49kc0TVWQBiKWhM32wsdZQj2ioYT6+eyyKW8f4yRP731TpO1k0pL/c9/UVA5i3Qtei+/3+guFcfxJ7VQ==",
       "requires": {
-        "@docusaurus/utils": "2.0.0-beta.0",
-        "chalk": "^4.1.0",
-        "joi": "^17.4.0",
-        "tslib": "^2.1.0"
+        "@docusaurus/types": "2.0.0-beta.2",
+        "tslib": "^2.2.0"
       }
     },
-    "@endiliey/static-site-generator-webpack-plugin": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/@endiliey/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.0.tgz",
-      "integrity": "sha512-3MBqYCs30qk1OBRC697NqhGouYbs71D1B8hrk/AFJC6GwF2QaJOQZtA1JYAaGSe650sZ8r5ppRTtCRXepDWlng==",
+    "@docusaurus/utils-validation": {
+      "version": "2.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.2.tgz",
+      "integrity": "sha512-JMS74ldYsRxoaWXmHrOnvwSZqAMtddbuCd3wrGSWHbJNX9PI6nNqdXJDHjHTyN6kiykU7U4Hhh7D47ICdUSGEQ==",
       "requires": {
-        "bluebird": "^3.7.1",
-        "cheerio": "^0.22.0",
-        "eval": "^0.1.4",
-        "url": "^0.11.0",
-        "webpack-sources": "^1.4.3"
+        "@docusaurus/utils": "2.0.0-beta.2",
+        "chalk": "^4.1.1",
+        "joi": "^17.4.0",
+        "tslib": "^2.1.0"
       }
     },
     "@exodus/schemasafe": {
@@ -18712,9 +18763,9 @@
       }
     },
     "@polka/url": {
-      "version": "1.0.0-next.12",
-      "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.12.tgz",
-      "integrity": "sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ=="
+      "version": "1.0.0-next.15",
+      "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz",
+      "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA=="
     },
     "@sideway/address": {
       "version": "4.1.1",
@@ -18739,6 +18790,18 @@
       "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
       "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
     },
+    "@slorber/static-site-generator-webpack-plugin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.1.tgz",
+      "integrity": "sha512-PSv4RIVO1Y3kvHxjvqeVisk3E9XFoO04uwYBDWe217MFqKspplYswTuKLiJu0aLORQWzuQjfVsSlLPojwfYsLw==",
+      "requires": {
+        "bluebird": "^3.7.1",
+        "cheerio": "^0.22.0",
+        "eval": "^0.1.4",
+        "url": "^0.11.0",
+        "webpack-sources": "^1.4.3"
+      }
+    },
     "@svgr/babel-plugin-add-jsx-attribute": {
       "version": "5.4.0",
       "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz",
@@ -18958,9 +19021,9 @@
       "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA=="
     },
     "@types/node": {
-      "version": "14.14.41",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz",
-      "integrity": "sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g=="
+      "version": "15.12.4",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz",
+      "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA=="
     },
     "@types/parse-json": {
       "version": "4.0.0",
@@ -19174,9 +19237,9 @@
       "integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w=="
     },
     "acorn-walk": {
-      "version": "8.0.2",
-      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.0.2.tgz",
-      "integrity": "sha512-+bpA9MJsHdZ4bgfDcpk0ozQyhhVct7rzOmO0s1IIr0AGGgKBljss8n2zp11rRP2wid5VGeh04CgeKzgat5/25A=="
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.0.tgz",
+      "integrity": "sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg=="
     },
     "address": {
       "version": "1.1.2",
@@ -19420,11 +19483,6 @@
       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
       "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
     },
-    "at-least-node": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
-      "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
-    },
     "atob": {
       "version": "2.1.2",
       "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
@@ -19448,14 +19506,14 @@
       }
     },
     "autoprefixer": {
-      "version": "10.2.5",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.5.tgz",
-      "integrity": "sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA==",
+      "version": "10.2.6",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
+      "integrity": "sha512-8lChSmdU6dCNMCQopIf4Pe5kipkAGj/fvTMslCsih0uHpOrXOPUEVOmYMMqmw3cekQkSD7EhIeuYl5y0BLdKqg==",
       "requires": {
-        "browserslist": "^4.16.3",
-        "caniuse-lite": "^1.0.30001196",
+        "browserslist": "^4.16.6",
+        "caniuse-lite": "^1.0.30001230",
         "colorette": "^1.2.2",
-        "fraction.js": "^4.0.13",
+        "fraction.js": "^4.1.1",
         "normalize-range": "^0.1.2",
         "postcss-value-parser": "^4.1.0"
       }
@@ -20499,12 +20557,12 @@
       "integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q=="
     },
     "copy-webpack-plugin": {
-      "version": "8.1.1",
-      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz",
-      "integrity": "sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==",
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.0.tgz",
+      "integrity": "sha512-k8UB2jLIb1Jip2nZbCz83T/XfhfjX6mB1yLJNYKrpYi7FQimfOoFv/0//iT6HV1K8FwUB5yUbCcnpLebJXJTug==",
       "requires": {
         "fast-glob": "^3.2.5",
-        "glob-parent": "^5.1.1",
+        "glob-parent": "^6.0.0",
         "globby": "^11.0.3",
         "normalize-path": "^3.0.0",
         "p-limit": "^3.1.0",
@@ -20512,6 +20570,14 @@
         "serialize-javascript": "^5.0.1"
       },
       "dependencies": {
+        "glob-parent": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.0.tgz",
+          "integrity": "sha512-Hdd4287VEJcZXUwv1l8a+vXC1GjOQqXe+VS30w/ypihpcnu9M1n3xeYeJu5CBpeEQj2nAab2xxz28GuA3vp4Ww==",
+          "requires": {
+            "is-glob": "^4.0.1"
+          }
+        },
         "schema-utils": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
@@ -20641,12 +20707,12 @@
       }
     },
     "css-minimizer-webpack-plugin": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-2.0.0.tgz",
-      "integrity": "sha512-cG/uc94727tx5pBNtb1Sd7gvUPzwmcQi1lkpfqTpdkuNq75hJCw7bIVsCNijLm4dhDcr1atvuysl2rZqOG8Txw==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.1.tgz",
+      "integrity": "sha512-RGFIv6iZWUPO2T1vE5+5pNCSs2H2xtHYRdfZPiiNH8Of6QOn9BeFnZSoHiQMkmsxOO/JkPe4BpKfs7slFIWcTA==",
       "requires": {
         "cssnano": "^5.0.0",
-        "jest-worker": "^26.3.0",
+        "jest-worker": "^27.0.2",
         "p-limit": "^3.0.2",
         "postcss": "^8.2.9",
         "schema-utils": "^3.0.0",
@@ -21583,9 +21649,9 @@
       }
     },
     "es-module-lexer": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz",
-      "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA=="
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.6.0.tgz",
+      "integrity": "sha512-f8kcHX1ArhllUtb/wVSyvygoKCznIjnxhLxy7TCvIiMdT7fL4ZDTIKaadMe6eLvOXg6Wk02UeoFgUoZ2EKZZUA=="
     },
     "es-to-primitive": {
       "version": "1.2.1",
@@ -22292,9 +22358,9 @@
       "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
     },
     "fraction.js": {
-      "version": "4.0.13",
-      "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz",
-      "integrity": "sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA=="
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz",
+      "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg=="
     },
     "fragment-cache": {
       "version": "0.2.1",
@@ -22316,11 +22382,10 @@
       "dev": true
     },
     "fs-extra": {
-      "version": "9.1.0",
-      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
-      "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+      "version": "10.0.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
+      "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
       "requires": {
-        "at-least-node": "^1.0.0",
         "graceful-fs": "^4.2.0",
         "jsonfile": "^6.0.1",
         "universalify": "^2.0.0"
@@ -22971,14 +23036,14 @@
       "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w=="
     },
     "html-webpack-plugin": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz",
-      "integrity": "sha512-rZsVvPXUYFyME0cuGkyOHfx9hmkFa4pWfxY/mdY38PsBEaVNsRoA+Id+8z6DBDgyv3zaw6XQszdF8HLwfQvcdQ==",
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz",
+      "integrity": "sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ==",
       "requires": {
         "@types/html-minifier-terser": "^5.0.0",
         "html-minifier-terser": "^5.0.1",
-        "lodash": "^4.17.20",
-        "pretty-error": "^2.1.1",
+        "lodash": "^4.17.21",
+        "pretty-error": "^3.0.4",
         "tapable": "^2.0.0"
       },
       "dependencies": {
@@ -23394,9 +23459,9 @@
       "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
     },
     "infima": {
-      "version": "0.2.0-alpha.23",
-      "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.23.tgz",
-      "integrity": "sha512-V0RTjB1otjpH3E2asbydx3gz7ovdSJsuV7r9JTdBggqRilnelTJUcXxLawBQQKsjQi5qPcRTjxnlaV8xyyKhhw=="
+      "version": "0.2.0-alpha.26",
+      "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.26.tgz",
+      "integrity": "sha512-0/Dt+89mf8xW+9/hKGmynK+WOAsiy0QydVJL0qie6WK57yGIQv+SjJrhMybKndnmkZBQ+Vlt0tWPnTakx8X2Qw=="
     },
     "inflight": {
       "version": "1.0.6",
@@ -23806,13 +23871,23 @@
       "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
     },
     "jest-worker": {
-      "version": "26.6.2",
-      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
-      "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
+      "version": "27.0.2",
+      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz",
+      "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==",
       "requires": {
         "@types/node": "*",
         "merge-stream": "^2.0.0",
-        "supports-color": "^7.0.0"
+        "supports-color": "^8.0.0"
+      },
+      "dependencies": {
+        "supports-color": {
+          "version": "8.1.1",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+          "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
       }
     },
     "jgexml": {
@@ -23901,12 +23976,12 @@
       }
     },
     "json-schema-ref-parser": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-8.0.0.tgz",
-      "integrity": "sha512-2P4icmNkZLrBr6oa5gSZaDSol/oaBHYkoP/8dsw63E54NnHGRhhiFuy9yFoxPuSm+uHKmeGxAAWMDF16SCHhcQ==",
+      "version": "9.0.9",
+      "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz",
+      "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==",
       "dev": true,
       "requires": {
-        "@apidevtools/json-schema-ref-parser": "8.0.0"
+        "@apidevtools/json-schema-ref-parser": "9.0.9"
       }
     },
     "json-schema-traverse": {
@@ -24712,9 +24787,9 @@
       "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
     },
     "normalize-url": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.0.1.tgz",
-      "integrity": "sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ=="
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+      "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="
     },
     "npm-run-path": {
       "version": "4.0.1",
@@ -25986,18 +26061,18 @@
       "requires": {}
     },
     "prettier": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz",
-      "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==",
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz",
+      "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==",
       "dev": true
     },
     "pretty-error": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz",
-      "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==",
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-3.0.4.tgz",
+      "integrity": "sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ==",
       "requires": {
         "lodash": "^4.17.20",
-        "renderkid": "^2.0.4"
+        "renderkid": "^2.0.6"
       }
     },
     "pretty-time": {
@@ -27039,9 +27114,9 @@
       }
     },
     "rtl-detect": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.2.tgz",
-      "integrity": "sha512-5X1422hvphzg2a/bo4tIDbjFjbJUOaPZwqE6dnyyxqwFqfR+tBcvfqapJr0o0VygATVCGKiODEewhZtKF+90AA=="
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.3.tgz",
+      "integrity": "sha512-2sMcZO60tL9YDEFe24gqddg3hJ+xSmJFN8IExcQUxeHxQzydQrN6GHPL+yAWgzItXSI7es53hcZC9pJneuZDKA=="
     },
     "rtlcss": {
       "version": "3.2.0",
@@ -27387,9 +27462,9 @@
       "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
     },
     "set-getter": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz",
-      "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=",
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.1.tgz",
+      "integrity": "sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==",
       "requires": {
         "to-object-path": "^0.3.0"
       }
@@ -27506,11 +27581,11 @@
       "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
     },
     "sirv": {
-      "version": "1.0.11",
-      "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.11.tgz",
-      "integrity": "sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg==",
+      "version": "1.0.12",
+      "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.12.tgz",
+      "integrity": "sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg==",
       "requires": {
-        "@polka/url": "^1.0.0-next.9",
+        "@polka/url": "^1.0.0-next.15",
         "mime": "^2.3.1",
         "totalist": "^1.0.0"
       },
@@ -27528,11 +27603,11 @@
       "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
     },
     "sitemap": {
-      "version": "6.4.0",
-      "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-6.4.0.tgz",
-      "integrity": "sha512-DoPKNc2/apQZTUnfiOONWctwq7s6dZVspxAZe2VPMNtoqNq7HgXRvlRnbIpKjf+8+piQdWncwcy+YhhTGY5USQ==",
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.0.0.tgz",
+      "integrity": "sha512-Ud0jrRQO2k7fEtPAM+cQkBKoMvxQyPKNXKDLn8tRVHxRCsdDQ2JZvw+aZ5IRYYQVAV9iGxEar6boTwZzev+x3g==",
       "requires": {
-        "@types/node": "^14.14.28",
+        "@types/node": "^15.0.1",
         "@types/sax": "^1.2.1",
         "arg": "^5.0.0",
         "sax": "^1.2.4"
@@ -28289,16 +28364,6 @@
           "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
           "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
         },
-        "jest-worker": {
-          "version": "27.0.2",
-          "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz",
-          "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==",
-          "requires": {
-            "@types/node": "*",
-            "merge-stream": "^2.0.0",
-            "supports-color": "^8.0.0"
-          }
-        },
         "schema-utils": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz",
@@ -28314,14 +28379,6 @@
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
           "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
         },
-        "supports-color": {
-          "version": "8.1.1",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
-          "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        },
         "terser": {
           "version": "5.7.0",
           "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz",
@@ -29012,9 +29069,9 @@
       "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw=="
     },
     "webpack": {
-      "version": "5.39.0",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.0.tgz",
-      "integrity": "sha512-25CHmuDj+oOTyteI13sUqNlCnjCnySuhiKWE/cRYPQYeoQ3ijHgyWX27CiyUKLNGq27v8S0mrksyTreT/xo7pg==",
+      "version": "5.40.0",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.40.0.tgz",
+      "integrity": "sha512-c7f5e/WWrxXWUzQqTBg54vBs5RgcAgpvKE4F4VegVgfo4x660ZxYUF2/hpMkZUnLjgytVTitjeXaN4IPlXCGIw==",
       "requires": {
         "@types/eslint-scope": "^3.7.0",
         "@types/estree": "^0.0.47",
@@ -29025,7 +29082,7 @@
         "browserslist": "^4.14.5",
         "chrome-trace-event": "^1.0.2",
         "enhanced-resolve": "^5.8.0",
-        "es-module-lexer": "^0.4.0",
+        "es-module-lexer": "^0.6.0",
         "eslint-scope": "5.1.1",
         "events": "^3.2.0",
         "glob-to-regexp": "^0.4.1",
@@ -29036,7 +29093,7 @@
         "neo-async": "^2.6.2",
         "schema-utils": "^3.0.0",
         "tapable": "^2.1.1",
-        "terser-webpack-plugin": "^5.1.1",
+        "terser-webpack-plugin": "^5.1.3",
         "watchpack": "^2.2.0",
         "webpack-sources": "^2.3.0"
       },
@@ -29078,9 +29135,9 @@
       }
     },
     "webpack-bundle-analyzer": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz",
-      "integrity": "sha512-j5m7WgytCkiVBoOGavzNokBOqxe6Mma13X1asfVYtKWM3wxBiRRu1u1iG0Iol5+qp9WgyhkMmBAcvjEfJ2bdDw==",
+      "version": "4.4.2",
+      "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz",
+      "integrity": "sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ==",
       "requires": {
         "acorn": "^8.0.4",
         "acorn-walk": "^8.0.0",
@@ -29821,9 +29878,9 @@
       }
     },
     "ws": {
-      "version": "7.4.6",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
-      "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+      "version": "7.5.0",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz",
+      "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==",
       "requires": {}
     },
     "xdg-basedir": {
diff --git a/docs/package.json b/docs/package.json
index f623027dc..050e83946 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -4,7 +4,7 @@
   "private": true,
   "prettier": "ory-prettier-styles",
   "config": {
-    "prettierTarget": "{docs/**,docs,scripts,static,contrib,src,src/**}/*.{md,mdx,json,js,css,html}|*.{js,md}"
+    "prettierTarget": "{docs/**,docs/,scripts/,static/,contrib/,src/,src/**/,}*.{md,mdx,json,js,css,html}"
   },
   "scripts": {
     "gen": "npm run widdershins && cd .. && node ./docs/scripts/fix-api.js ./docs/docs/reference/api.mdx && node ./docs/scripts/config.js docs/config.js && node ./docs/scripts/gen-faq.js",
@@ -19,12 +19,12 @@
     "format:check": "prettier --check ${npm_package_config_prettierTarget}"
   },
   "dependencies": {
-    "@docusaurus/core": "2.0.0-beta.0",
-    "@docusaurus/plugin-content-docs": "2.0.0-beta.0",
-    "@docusaurus/plugin-content-pages": "2.0.0-beta.0",
-    "@docusaurus/plugin-sitemap": "2.0.0-beta.0",
-    "@docusaurus/theme-classic": "2.0.0-beta.0",
-    "@docusaurus/theme-search-algolia": "2.0.0-beta.0",
+    "@docusaurus/core": "2.0.0-beta.2",
+    "@docusaurus/plugin-content-docs": "2.0.0-beta.2",
+    "@docusaurus/plugin-content-pages": "2.0.0-beta.2",
+    "@docusaurus/plugin-sitemap": "2.0.0-beta.2",
+    "@docusaurus/theme-classic": "2.0.0-beta.2",
+    "@docusaurus/theme-search-algolia": "2.0.0-beta.2",
     "classnames": "2.3.1",
     "file-loader": "6.2.0",
     "mermaid": "8.10.2",
@@ -51,9 +51,9 @@
   },
   "devDependencies": {
     "json-schema-faker": "0.5.0-rcv.34",
-    "json-schema-ref-parser": "8.0.0",
+    "json-schema-ref-parser": "9.0.9",
     "ory-prettier-styles": "1.1.2",
-    "prettier": "2.2.1",
+    "prettier": "2.3.1",
     "ramda": "0.27.1",
     "raw-loader": "4.0.2",
     "remark-admonitions": "1.2.1",
diff --git a/docs/scripts/config.js b/docs/scripts/config.js
index 2a4bb6c39..8c7a71267 100644
--- a/docs/scripts/config.js
+++ b/docs/scripts/config.js
@@ -26,98 +26,100 @@ if (process.argv.length !== 3 || process.argv[1] === 'help') {
 
 const config = require(path.resolve(process.argv[2]))
 
-const enhance = (schema, parents = []) => (item) => {
-  const key = item.key.value
-
-  const path = [
-    ...parents.map((parent) => ['properties', parent]),
-    ['properties', key]
-  ].flat()
-
-  if (['title', 'description'].find((f) => path[path.length - 1] === f)) {
-    return
-  }
+const enhance =
+  (schema, parents = []) =>
+  (item) => {
+    const key = item.key.value
+
+    const path = [
+      ...parents.map((parent) => ['properties', parent]),
+      ['properties', key]
+    ].flat()
+
+    if (['title', 'description'].find((f) => path[path.length - 1] === f)) {
+      return
+    }
 
-  const comments = [`# ${pathOr(key, [...path, 'title'], schema)} ##`, '']
+    const comments = [`# ${pathOr(key, [...path, 'title'], schema)} ##`, '']
 
-  const description = pathOr('', [...path, 'description'], schema)
-  if (description) {
-    comments.push(' ' + description.split('\n').join('\n '), '')
-  }
+    const description = pathOr('', [...path, 'description'], schema)
+    if (description) {
+      comments.push(' ' + description.split('\n').join('\n '), '')
+    }
 
-  const defaultValue = pathOr('', [...path, 'default'], schema)
-  if (defaultValue || defaultValue === false) {
-    comments.push(' Default value: ' + defaultValue, '')
-  }
+    const defaultValue = pathOr('', [...path, 'default'], schema)
+    if (defaultValue || defaultValue === false) {
+      comments.push(' Default value: ' + defaultValue, '')
+    }
 
-  const enums = pathOr('', [...path, 'enum'], schema)
-  if (enums && Array.isArray(enums)) {
-    comments.push(
-      ' One of:',
-      ...YAML.stringify(enums)
-        .split('\n')
-        .map((i) => ` ${i}`)
-    ) // split always returns one empty object so no need for newline
-  }
+    const enums = pathOr('', [...path, 'enum'], schema)
+    if (enums && Array.isArray(enums)) {
+      comments.push(
+        ' One of:',
+        ...YAML.stringify(enums)
+          .split('\n')
+          .map((i) => ` ${i}`)
+      ) // split always returns one empty object so no need for newline
+    }
 
-  const min = pathOr('', [...path, 'minimum'], schema)
-  if (min || min === 0) {
-    comments.push(` Minimum value: ${min}`, '')
-  }
+    const min = pathOr('', [...path, 'minimum'], schema)
+    if (min || min === 0) {
+      comments.push(` Minimum value: ${min}`, '')
+    }
 
-  const max = pathOr('', [...path, 'maximum'], schema)
-  if (max || max === 0) {
-    comments.push(` Maximum value: ${max}`, '')
-  }
+    const max = pathOr('', [...path, 'maximum'], schema)
+    if (max || max === 0) {
+      comments.push(` Maximum value: ${max}`, '')
+    }
 
-  const examples = pathOr('', [...path, 'examples'], schema)
-  if (examples) {
-    comments.push(
-      ' Examples:',
-      ...YAML.stringify(examples)
-        .split('\n')
-        .map((i) => ` ${i}`)
-    ) // split always returns one empty object so no need for newline
-  }
+    const examples = pathOr('', [...path, 'examples'], schema)
+    if (examples) {
+      comments.push(
+        ' Examples:',
+        ...YAML.stringify(examples)
+          .split('\n')
+          .map((i) => ` ${i}`)
+      ) // split always returns one empty object so no need for newline
+    }
 
-  let hasChildren
-  if (item.value.items) {
-    item.value.items.forEach((item) => {
-      if (item.key) {
-        enhance(schema, [...parents, key])(item)
-        hasChildren = true
-      }
-    })
-  }
+    let hasChildren
+    if (item.value.items) {
+      item.value.items.forEach((item) => {
+        if (item.key) {
+          enhance(schema, [...parents, key])(item)
+          hasChildren = true
+        }
+      })
+    }
 
-  const showEnvVarBlockForObject = pathOr(
-    '',
-    [...path, 'showEnvVarBlockForObject'],
-    schema
-  )
-  if (!hasChildren || showEnvVarBlockForObject) {
-    const env = [...parents, key].map((i) => i.toUpperCase()).join('_')
-    comments.push(
-      ' Set this value using environment variables on',
-      ' - Linux/macOS:',
-      `    $ export ${env}=<value>`,
-      ' - Windows Command Line (CMD):',
-      `    > set ${env}=<value>`,
-      ''
+    const showEnvVarBlockForObject = pathOr(
+      '',
+      [...path, 'showEnvVarBlockForObject'],
+      schema
     )
-
-    // Show this if the config property is an object, to call out how to specify the env var
-    if (hasChildren) {
+    if (!hasChildren || showEnvVarBlockForObject) {
+      const env = [...parents, key].map((i) => i.toUpperCase()).join('_')
       comments.push(
-        ' This can be set as an environment variable by supplying it as a JSON object.',
+        ' Set this value using environment variables on',
+        ' - Linux/macOS:',
+        `    $ export ${env}=<value>`,
+        ' - Windows Command Line (CMD):',
+        `    > set ${env}=<value>`,
         ''
       )
+
+      // Show this if the config property is an object, to call out how to specify the env var
+      if (hasChildren) {
+        comments.push(
+          ' This can be set as an environment variable by supplying it as a JSON object.',
+          ''
+        )
+      }
     }
-  }
 
-  item.commentBefore = comments.join('\n')
-  item.spaceBefore = true
-}
+    item.commentBefore = comments.join('\n')
+    item.spaceBefore = true
+  }
 
 new Promise((resolve, reject) => {
   parser.dereference(
diff --git a/docs/src/theme/CodeFromRemote.js b/docs/src/theme/CodeFromRemote.js
index a3609647f..189028c20 100644
--- a/docs/src/theme/CodeFromRemote.js
+++ b/docs/src/theme/CodeFromRemote.js
@@ -53,21 +53,23 @@ const findLine = (needle, haystack) => {
   return index
 }
 
-const transform = ({ startAt, endAt }) => (content) => {
-  let lines = content.split('\n')
+const transform =
+  ({ startAt, endAt }) =>
+  (content) => {
+    let lines = content.split('\n')
 
-  const startIndex = findLine(startAt, lines)
-  if (startIndex > 0) {
-    lines = ['// ...', ...lines.slice(startIndex, -1)]
-  }
+    const startIndex = findLine(startAt, lines)
+    if (startIndex > 0) {
+      lines = ['// ...', ...lines.slice(startIndex, -1)]
+    }
 
-  const endIndex = findLine(endAt, lines)
-  if (endIndex > 0) {
-    lines = [...lines.slice(0, endIndex + 1), '// ...']
-  }
+    const endIndex = findLine(endAt, lines)
+    if (endIndex > 0) {
+      lines = [...lines.slice(0, endIndex + 1), '// ...']
+    }
 
-  return lines.join('\n')
-}
+    return lines.join('\n')
+  }
 
 const CodeFromRemote = (props) => {
   const { src, title } = props
diff --git a/docs/src/theme/ketoRelationTuplesPrism.js b/docs/src/theme/ketoRelationTuplesPrism.js
index 513d653df..9a00e5bbf 100644
--- a/docs/src/theme/ketoRelationTuplesPrism.js
+++ b/docs/src/theme/ketoRelationTuplesPrism.js
@@ -44,7 +44,8 @@ export default (prism) =>
   (prism.languages['keto-relation-tuples'] = {
     comment: /\/\/.*(\n|$)/,
     'relation-tuple': {
-      pattern: /([^:#@()\n]+:)?([^:#@()\n]+)#([^:#@()\n]+)@?((\(([^:#@()\n]+:)?([^:#@()\n]+)#([^:#@()\n]*)\))|([^:#@()\n]+))/,
+      pattern:
+        /([^:#@()\n]+:)?([^:#@()\n]+)#([^:#@()\n]+)@?((\(([^:#@()\n]+:)?([^:#@()\n]+)#([^:#@()\n]*)\))|([^:#@()\n]+))/,
       inside: {
         namespace,
         object,
diff --git a/driver/config/.schema/config.schema.json b/driver/config/.schema/config.schema.json
index fae64a25f..c439c2de8 100644
--- a/driver/config/.schema/config.schema.json
+++ b/driver/config/.schema/config.schema.json
@@ -847,6 +847,12 @@
                       "type": "string",
                       "default": "api.pwnedpasswords.com"
                     },
+                    "haveibeenpwned_enabled": {
+                      "title": "Enable the HaveIBeenPwned API",
+                      "description": "If set to false the password validation does not utilize the Have I Been Pwnd API.",
+                      "type": "boolean",
+                      "default": true
+                    },
                     "max_breaches": {
                       "title": "Allow Password Breaches",
                       "description": "Defines how often a password may have been breached before it is rejected.",
diff --git a/driver/config/config.go b/driver/config/config.go
index 615a67a24..1cdfcecad 100644
--- a/driver/config/config.go
+++ b/driver/config/config.go
@@ -106,6 +106,7 @@ const (
 	ViperKeyHasherArgon2ConfigDedicatedMemory                       = "hashers.argon2.dedicated_memory"
 	ViperKeyHasherBcryptCost                                        = "hashers.bcrypt.cost"
 	ViperKeyPasswordHaveIBeenPwnedHost                              = "selfservice.methods.password.config.haveibeenpwned_host"
+	ViperKeyPasswordHaveIBeenPwnedEnabled                           = "selfservice.methods.password.config.haveibeenpwned_enabled"
 	ViperKeyPasswordMaxBreaches                                     = "selfservice.methods.password.config.max_breaches"
 	ViperKeyIgnoreNetworkErrors                                     = "selfservice.methods.password.config.ignore_network_errors"
 	ViperKeyVersion                                                 = "version"
@@ -149,9 +150,10 @@ type (
 		URL string `json:"url"`
 	}
 	PasswordPolicy struct {
-		HaveIBeenPwnedHost  string `json:"haveibeenpwned_host"`
-		MaxBreaches         uint   `json:"max_breaches"`
-		IgnoreNetworkErrors bool   `json:"ignore_network_errors"`
+		HaveIBeenPwnedHost    string `json:"haveibeenpwned_host"`
+		HaveIBeenPwnedEnabled bool   `json:"haveibeenpwned_enabled"`
+		MaxBreaches           uint   `json:"max_breaches"`
+		IgnoreNetworkErrors   bool   `json:"ignore_network_errors"`
 	}
 	Schemas []Schema
 	Config  struct {
@@ -827,9 +829,10 @@ func (p *Config) ConfigVersion() string {
 
 func (p *Config) PasswordPolicyConfig() *PasswordPolicy {
 	return &PasswordPolicy{
-		HaveIBeenPwnedHost:  p.p.StringF(ViperKeyPasswordHaveIBeenPwnedHost, "api.pwnedpasswords.com"),
-		MaxBreaches:         uint(p.p.Int(ViperKeyPasswordMaxBreaches)),
-		IgnoreNetworkErrors: p.p.BoolF(ViperKeyIgnoreNetworkErrors, true),
+		HaveIBeenPwnedHost:    p.p.StringF(ViperKeyPasswordHaveIBeenPwnedHost, "api.pwnedpasswords.com"),
+		HaveIBeenPwnedEnabled: p.p.BoolF(ViperKeyPasswordHaveIBeenPwnedEnabled, true),
+		MaxBreaches:           uint(p.p.Int(ViperKeyPasswordMaxBreaches)),
+		IgnoreNetworkErrors:   p.p.BoolF(ViperKeyIgnoreNetworkErrors, true),
 	}
 }
 
diff --git a/selfservice/strategy/password/validator.go b/selfservice/strategy/password/validator.go
index dd7184862..570cec7e4 100644
--- a/selfservice/strategy/password/validator.go
+++ b/selfservice/strategy/password/validator.go
@@ -156,6 +156,12 @@ func (s *DefaultPasswordValidator) Validate(ctx context.Context, identifier, pas
 		return errors.Errorf("the password is too similar to the user identifier")
 	}
 
+	passwordPolicyConfig := s.reg.Config(ctx).PasswordPolicyConfig()
+
+	if !passwordPolicyConfig.HaveIBeenPwnedEnabled {
+		return nil
+	}
+
 	/* #nosec G401 sha1 is used for k-anonymity */
 	h := sha1.New()
 	if _, err := h.Write([]byte(password)); err != nil {
@@ -167,8 +173,6 @@ func (s *DefaultPasswordValidator) Validate(ctx context.Context, identifier, pas
 	c, ok := s.hashes[b20(hpw)]
 	s.RUnlock()
 
-	passwordPolicyConfig := s.reg.Config(ctx).PasswordPolicyConfig()
-
 	if !ok {
 		err := s.fetch(hpw, passwordPolicyConfig.HaveIBeenPwnedHost)
 		if (errors.Is(err, ErrNetworkFailure) || errors.Is(err, ErrUnexpectedStatusCode)) && passwordPolicyConfig.IgnoreNetworkErrors {


Test patch:
diff --git a/driver/config/config_test.go b/driver/config/config_test.go
index 18080983b..b04d15c08 100644
--- a/driver/config/config_test.go
+++ b/driver/config/config_test.go
@@ -144,7 +144,7 @@ func TestViperProvider(t *testing.T) {
 				config  string
 				enabled bool
 			}{
-				{id: "password", enabled: true, config: `{"haveibeenpwned_host":"api.pwnedpasswords.com","ignore_network_errors":true,"max_breaches":0}`},
+				{id: "password", enabled: true, config: `{"haveibeenpwned_host":"api.pwnedpasswords.com","haveibeenpwned_enabled":true,"ignore_network_errors":true,"max_breaches":0}`},
 				{id: "oidc", enabled: true, config: `{"providers":[{"client_id":"a","client_secret":"b","id":"github","provider":"github","mapper_url":"http://test.kratos.ory.sh/default-identity.schema.json"}]}`},
 			} {
 				strategy := p.SelfServiceStrategy(tc.id)
@@ -619,3 +619,36 @@ func TestViperProvider_ParseURIOrFail(t *testing.T) {
 		})
 	}
 }
+
+func TestViperProvider_HaveIBeenPwned(t *testing.T) {
+	p := config.MustNew(t, logrusx.New("", ""), configx.SkipValidation())
+	t.Run("case=hipb: host", func(t *testing.T) {
+		p.MustSet(config.ViperKeyPasswordHaveIBeenPwnedHost, "foo.bar")
+		assert.Equal(t, "foo.bar", p.PasswordPolicyConfig().HaveIBeenPwnedHost)
+	})
+
+	t.Run("case=hibp: enabled", func(t *testing.T) {
+		p.MustSet(config.ViperKeyPasswordHaveIBeenPwnedEnabled, true)
+		assert.Equal(t, true, p.PasswordPolicyConfig().HaveIBeenPwnedEnabled)
+	})
+
+	t.Run("case=hibp: enabled", func(t *testing.T) {
+		p.MustSet(config.ViperKeyPasswordHaveIBeenPwnedEnabled, false)
+		assert.Equal(t, false, p.PasswordPolicyConfig().HaveIBeenPwnedEnabled)
+	})
+
+	t.Run("case=hibp: max_breaches", func(t *testing.T) {
+		p.MustSet(config.ViperKeyPasswordMaxBreaches, 10)
+		assert.Equal(t, uint(10), p.PasswordPolicyConfig().MaxBreaches)
+	})
+
+	t.Run("case=hibp: ignore_network_errors", func(t *testing.T) {
+		p.MustSet(config.ViperKeyIgnoreNetworkErrors, true)
+		assert.Equal(t, true, p.PasswordPolicyConfig().IgnoreNetworkErrors)
+	})
+
+	t.Run("case=hibp: ignore_network_errors", func(t *testing.T) {
+		p.MustSet(config.ViperKeyIgnoreNetworkErrors, false)
+		assert.Equal(t, false, p.PasswordPolicyConfig().IgnoreNetworkErrors)
+	})
+}
diff --git a/selfservice/strategy/password/validator_test.go b/selfservice/strategy/password/validator_test.go
index 259cb1aaa..0bd984681 100644
--- a/selfservice/strategy/password/validator_test.go
+++ b/selfservice/strategy/password/validator_test.go
@@ -200,6 +200,20 @@ func TestChangeHaveIBeenPwnedValidationHost(t *testing.T) {
 	})
 }
 
+func TestDisableHaveIBeenPwnedValidationHost(t *testing.T) {
+	conf, reg := internal.NewFastRegistryWithMocks(t)
+	s := password.NewDefaultPasswordValidatorStrategy(reg)
+	conf.MustSet(config.ViperKeyPasswordHaveIBeenPwnedEnabled, false)
+
+	fakeClient := NewFakeHTTPClient()
+	s.Client = httpx.NewResilientClient(httpx.ResilientClientWithClient(&fakeClient.Client), httpx.ResilientClientWithMaxRetry(1), httpx.ResilientClientWithConnectionTimeout(time.Millisecond))
+
+	t.Run("case=should not send request to test server", func(t *testing.T) {
+		require.NoError(t, s.Validate(context.Background(), "mohutdesub", "damrumukuh"))
+		require.Empty(t, fakeClient.RequestedURLs())
+	})
+}
+
 type fakeValidatorAPI struct{}
 
 func (api *fakeValidatorAPI) ServeHTTP(w http.ResponseWriter, r *http.Request) {