This is an automated email from the ASF dual-hosted git repository.

lidongdai pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/seatunnel-website.git


The following commit(s) were added to refs/heads/main by this push:
     new 6e9e26d1ec5 [Improve] support chinese (#293)
6e9e26d1ec5 is described below

commit 6e9e26d1ec5b6e352b4dc9cc70ea9c9f1fec129c
Author: zhiwei liu <[email protected]>
AuthorDate: Wed Feb 21 15:28:38 2024 +0800

    [Improve] support chinese (#293)
    
    * [DOCS] support chinese
    
    * delete zh 2.3.3
    
    * back repo
    
    * replace zh image
    
    * [Bug]fix deploy
    
    * [Bug] fix node version to 16
    
    * [Doc] strict-ssl false
---
 .github/workflows/deploy.yml |   10 +-
 .gitignore                   |    2 +
 package-lock.json            | 1944 ++++++++++++++++++++++++++++++++++++++++--
 package.json                 |    4 +
 tools/build-docs.ts          |  109 +++
 tsconfig.json                |    7 +-
 6 files changed, 2015 insertions(+), 61 deletions(-)

diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 4cbb83881c7..a62ae904c32 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -22,14 +22,14 @@ jobs:
       - uses: actions/checkout@v2
       - uses: actions/setup-node@v2
         with:
-          node-version: 14
-      - name: Documents Sync
-        run: |
-          bash ./tools/build-docs.sh
-        shell: bash
+          node-version: 16.19.0
       - name: install
         run: |
+          npm set strict-ssl false
           npm install
+      - name: Documents Sync
+        run: |
+          npm run sync
       - name: Build
         run: |
           npm run build
diff --git a/.gitignore b/.gitignore
index 6af45175344..7055cac44db 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,7 +24,9 @@ build/
 # those directories will be create when you run script `./tool/build_docs.sh`
 swap/
 docs/
+current/
 static/image_en/
+static/image_zh/
 sidebars.js
 
 dist
diff --git a/package-lock.json b/package-lock.json
index 21fadac9dd2..2bcd023f02a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24,9 +24,12 @@
       "devDependencies": {
         "@docusaurus/module-type-aliases": "2.0.0-beta.16",
         "@tsconfig/docusaurus": "^1.0.4",
+        "@types/fs-extra": "^11.0.4",
         "docusaurus-plugin-less": "^2.0.2",
+        "fs-extra": "^11.2.0",
         "less": "^4.1.2",
         "less-loader": "^10.2.0",
+        "tsx": "^4.7.1",
         "typescript": "^4.5.5"
       }
     },
@@ -228,6 +231,10 @@
       },
       "engines": {
         "node": ">=6.9.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/babel";
       }
     },
     "node_modules/@babel/core/node_modules/semver": {
@@ -2013,6 +2020,19 @@
         "react-dom": "^16.8.4 || ^17.0.0"
       }
     },
+    "node_modules/@docusaurus/core/node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+      "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@docusaurus/core/node_modules/react-loadable": {
       "name": "@docusaurus/react-loadable",
       "version": "5.5.2",
@@ -2054,6 +2074,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1";
       }
     },
     "node_modules/@docusaurus/logger/node_modules/chalk": {
@@ -2066,6 +2089,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1";
       }
     },
     "node_modules/@docusaurus/logger/node_modules/color-convert": {
@@ -2133,6 +2159,19 @@
         "react-dom": "^16.8.4 || ^17.0.0"
       }
     },
+    "node_modules/@docusaurus/mdx-loader/node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+      "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@docusaurus/module-type-aliases": {
       "version": "2.0.0-beta.16",
       "resolved": 
"https://registry.npmmirror.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.16.tgz";,
@@ -2178,6 +2217,19 @@
         "react-dom": "^16.8.4 || ^17.0.0"
       }
     },
+    "node_modules/@docusaurus/plugin-content-blog/node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+      "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@docusaurus/plugin-content-docs": {
       "version": "2.0.0-beta.16",
       "resolved": 
"https://registry.npmmirror.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.16.tgz";,
@@ -2206,6 +2258,19 @@
         "react-dom": "^16.8.4 || ^17.0.0"
       }
     },
+    "node_modules/@docusaurus/plugin-content-docs/node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+      "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@docusaurus/plugin-content-pages": {
       "version": "2.0.0-beta.16",
       "resolved": 
"https://registry.npmmirror.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.16.tgz";,
@@ -2228,6 +2293,19 @@
         "react-dom": "^16.8.4 || ^17.0.0"
       }
     },
+    "node_modules/@docusaurus/plugin-content-pages/node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+      "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@docusaurus/plugin-debug": {
       "version": "2.0.0-beta.16",
       "resolved": 
"https://registry.npmmirror.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.16.tgz";,
@@ -2247,6 +2325,19 @@
         "react-dom": "^16.8.4 || ^17.0.0"
       }
     },
+    "node_modules/@docusaurus/plugin-debug/node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+      "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@docusaurus/plugin-google-analytics": {
       "version": "2.0.0-beta.16",
       "resolved": 
"https://registry.npmmirror.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.16.tgz";,
@@ -2302,6 +2393,19 @@
         "react-dom": "^16.8.4 || ^17.0.0"
       }
     },
+    "node_modules/@docusaurus/plugin-sitemap/node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+      "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@docusaurus/preset-classic": {
       "version": "2.0.0-beta.16",
       "resolved": 
"https://registry.npmmirror.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.16.tgz";,
@@ -2424,6 +2528,19 @@
         "react-dom": "^16.8.4 || ^17.0.0"
       }
     },
+    "node_modules/@docusaurus/theme-search-algolia/node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+      "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@docusaurus/theme-translations": {
       "version": "2.0.0-beta.16",
       "resolved": 
"https://registry.npmmirror.com/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.16.tgz";,
@@ -2436,6 +2553,19 @@
         "node": ">=14"
       }
     },
+    "node_modules/@docusaurus/theme-translations/node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+      "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@docusaurus/types": {
       "version": "2.0.0-beta.16",
       "resolved": 
"https://registry.npmmirror.com/@docusaurus/types/-/types-2.0.0-beta.16.tgz";,
@@ -2499,6 +2629,387 @@
         "node": ">=14"
       }
     },
+    "node_modules/@docusaurus/utils/node_modules/fs-extra": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+      "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/aix-ppc64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz";,
+      "integrity": 
"sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "aix"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/android-arm": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz";,
+      "integrity": 
"sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/android-arm64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz";,
+      "integrity": 
"sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/android-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/darwin-arm64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz";,
+      "integrity": 
"sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/darwin-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/freebsd-arm64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz";,
+      "integrity": 
"sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/freebsd-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-arm": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz";,
+      "integrity": 
"sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-arm64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz";,
+      "integrity": 
"sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-ia32": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz";,
+      "integrity": 
"sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-loong64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz";,
+      "integrity": 
"sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==",
+      "cpu": [
+        "loong64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-mips64el": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz";,
+      "integrity": 
"sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==",
+      "cpu": [
+        "mips64el"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-ppc64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz";,
+      "integrity": 
"sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-riscv64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz";,
+      "integrity": 
"sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-s390x": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz";,
+      "integrity": 
"sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==",
+      "cpu": [
+        "s390x"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/netbsd-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "netbsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/openbsd-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "openbsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/sunos-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "sunos"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-arm64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz";,
+      "integrity": 
"sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-ia32": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz";,
+      "integrity": 
"sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@hapi/hoek": {
       "version": "9.2.1",
       "resolved": 
"https://registry.npmmirror.com/@hapi/hoek/download/@hapi/hoek-9.2.1.tgz";,
@@ -2558,6 +3069,10 @@
         "unified": "9.2.0",
         "unist-builder": "2.0.3",
         "unist-util-visit": "2.0.3"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/@mdx-js/mdx/node_modules/@babel/core": {
@@ -2584,6 +3099,10 @@
       },
       "engines": {
         "node": ">=6.9.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/babel";
       }
     },
     "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": {
@@ -2609,6 +3128,10 @@
       "version": "1.6.22",
       "resolved": 
"https://registry.npmmirror.com/@mdx-js/react/-/react-1.6.22.tgz";,
       "integrity": 
"sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
+      },
       "peerDependencies": {
         "react": "^16.13.1 || ^17.0.0"
       }
@@ -2616,7 +3139,11 @@
     "node_modules/@mdx-js/util": {
       "version": "1.6.22",
       "resolved": 
"https://registry.npm.taobao.org/@mdx-js/util/download/@mdx-js/util-1.6.22.tgz";,
-      "integrity": "sha1-IZ39ia5bl6iAHwFTI/+kti9FcYs="
+      "integrity": "sha1-IZ39ia5bl6iAHwFTI/+kti9FcYs=",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
+      }
     },
     "node_modules/@nodelib/fs.scandir": {
       "version": "2.1.5",
@@ -2802,6 +3329,10 @@
       "engines": {
         "node": ">=10"
       },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
+      },
       "peerDependencies": {
         "@babel/core": "^7.0.0-0"
       }
@@ -2813,6 +3344,10 @@
       "engines": {
         "node": ">=10"
       },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
+      },
       "peerDependencies": {
         "@babel/core": "^7.0.0-0"
       }
@@ -2824,6 +3359,10 @@
       "engines": {
         "node": ">=10"
       },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
+      },
       "peerDependencies": {
         "@babel/core": "^7.0.0-0"
       }
@@ -2835,6 +3374,10 @@
       "engines": {
         "node": ">=10"
       },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
+      },
       "peerDependencies": {
         "@babel/core": "^7.0.0-0"
       }
@@ -2846,6 +3389,10 @@
       "engines": {
         "node": ">=10"
       },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
+      },
       "peerDependencies": {
         "@babel/core": "^7.0.0-0"
       }
@@ -2857,6 +3404,10 @@
       "engines": {
         "node": ">=10"
       },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
+      },
       "peerDependencies": {
         "@babel/core": "^7.0.0-0"
       }
@@ -2868,6 +3419,10 @@
       "engines": {
         "node": ">=10"
       },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
+      },
       "peerDependencies": {
         "@babel/core": "^7.0.0-0"
       }
@@ -2879,6 +3434,10 @@
       "engines": {
         "node": ">=12"
       },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
+      },
       "peerDependencies": {
         "@babel/core": "^7.0.0-0"
       }
@@ -2900,6 +3459,10 @@
       "engines": {
         "node": ">=10"
       },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
+      },
       "peerDependencies": {
         "@babel/core": "^7.0.0-0"
       }
@@ -2915,6 +3478,10 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
       }
     },
     "node_modules/@svgr/hast-util-to-babel-ast": {
@@ -2927,6 +3494,10 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
       }
     },
     "node_modules/@svgr/plugin-jsx": {
@@ -2942,6 +3513,10 @@
       "engines": {
         "node": ">=10"
       },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
+      },
       "peerDependencies": {
         "@svgr/core": "^6.0.0"
       }
@@ -2958,6 +3533,10 @@
       "engines": {
         "node": ">=10"
       },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
+      },
       "peerDependencies": {
         "@svgr/core": "^6.0.0"
       }
@@ -2978,6 +3557,10 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/gregberge";
       }
     },
     "node_modules/@szmarczak/http-timer": {
@@ -3083,6 +3666,16 @@
         "@types/range-parser": "*"
       }
     },
+    "node_modules/@types/fs-extra": {
+      "version": "11.0.4",
+      "resolved": 
"https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz";,
+      "integrity": 
"sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==",
+      "dev": true,
+      "dependencies": {
+        "@types/jsonfile": "*",
+        "@types/node": "*"
+      }
+    },
     "node_modules/@types/hast": {
       "version": "2.3.4",
       "resolved": 
"https://registry.npmmirror.com/@types/hast/download/@types/hast-2.3.4.tgz";,
@@ -3114,6 +3707,15 @@
       "resolved": 
"https://registry.npmmirror.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz?cache=0&sync_timestamp=1637265456183&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.9.tgz";,
       "integrity": "sha1-l+3JA36gw4WFMgsolk3eOznkZg0="
     },
+    "node_modules/@types/jsonfile": {
+      "version": "6.1.4",
+      "resolved": 
"https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz";,
+      "integrity": 
"sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==",
+      "dev": true,
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
     "node_modules/@types/mdast": {
       "version": "3.0.10",
       "resolved": 
"https://registry.npmmirror.com/@types/mdast/download/@types/mdast-3.0.10.tgz";,
@@ -3480,6 +4082,10 @@
         "fast-json-stable-stringify": "^2.0.0",
         "json-schema-traverse": "^0.4.1",
         "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin";
       }
     },
     "node_modules/ajv-formats": {
@@ -3507,6 +4113,10 @@
         "json-schema-traverse": "^1.0.0",
         "require-from-string": "^2.0.2",
         "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin";
       }
     },
     "node_modules/ajv-formats/node_modules/json-schema-traverse": {
@@ -3685,6 +4295,10 @@
       "engines": {
         "node": "^10 || ^12 || >=14"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/postcss/";
+      },
       "peerDependencies": {
         "postcss": "^8.1.0"
       }
@@ -3723,6 +4337,10 @@
         "@babel/helper-plugin-utils": "7.10.4",
         "@mdx-js/util": "1.6.22"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
+      },
       "peerDependencies": {
         "@babel/core": "^7.11.6"
       }
@@ -3746,6 +4364,10 @@
       "integrity": "sha1-3l+aKOsS8+sleL90RyIE5m0aE9w=",
       "dependencies": {
         "@babel/helper-plugin-utils": "7.10.4"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     
"node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils":
 {
@@ -3800,7 +4422,11 @@
     "node_modules/bail": {
       "version": "1.0.5",
       "resolved": 
"https://registry.npmmirror.com/bail/download/bail-1.0.5.tgz?cache=0&sync_timestamp=1636274898174&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbail%2Fdownload%2Fbail-1.0.5.tgz";,
-      "integrity": "sha1-tvoTNASjksvB+MS/Y/WVM1Hnp3Y="
+      "integrity": "sha1-tvoTNASjksvB+MS/Y/WVM1Hnp3Y=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/balanced-match": {
       "version": "1.0.2",
@@ -3913,6 +4539,9 @@
       },
       "engines": {
         "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/boxen/node_modules/ansi-styles": {
@@ -3924,6 +4553,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1";
       }
     },
     "node_modules/boxen/node_modules/chalk": {
@@ -3936,6 +4568,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1";
       }
     },
     "node_modules/boxen/node_modules/color-convert": {
@@ -4009,6 +4644,10 @@
       },
       "engines": {
         "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/browserslist";
       }
     },
     "node_modules/buffer-from": {
@@ -4055,6 +4694,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/cacheable-request/node_modules/lowercase-keys": {
@@ -4080,6 +4722,9 @@
       "dependencies": {
         "function-bind": "^1.1.1",
         "get-intrinsic": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/callsites": {
@@ -4105,6 +4750,9 @@
       "integrity": 
"sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==",
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/camelcase-css": {
@@ -4129,12 +4777,20 @@
     "node_modules/caniuse-lite": {
       "version": "1.0.30001312",
       "resolved": 
"https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz";,
-      "integrity": 
"sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ=="
+      "integrity": 
"sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/browserslist";
+      }
     },
     "node_modules/ccount": {
       "version": "1.1.0",
       "resolved": 
"https://registry.npmmirror.com/ccount/download/ccount-1.1.0.tgz";,
-      "integrity": "sha1-JGaH3rtgFHNRMb6KurLZOJj40EM="
+      "integrity": "sha1-JGaH3rtgFHNRMb6KurLZOJj40EM=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/chalk": {
       "version": "2.4.2",
@@ -4152,17 +4808,29 @@
     "node_modules/character-entities": {
       "version": "1.2.4",
       "resolved": 
"https://registry.npmmirror.com/character-entities/download/character-entities-1.2.4.tgz?cache=0&sync_timestamp=1635868930605&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcharacter-entities%2Fdownload%2Fcharacter-entities-1.2.4.tgz";,
-      "integrity": "sha1-4Sw5Obfq9OWxXnrUxeKOHUjFsWs="
+      "integrity": "sha1-4Sw5Obfq9OWxXnrUxeKOHUjFsWs=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/character-entities-legacy": {
       "version": "1.1.4",
       "resolved": 
"https://registry.npmmirror.com/character-entities-legacy/download/character-entities-legacy-1.1.4.tgz?cache=0&sync_timestamp=1635911807340&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcharacter-entities-legacy%2Fdownload%2Fcharacter-entities-legacy-1.1.4.tgz";,
-      "integrity": "sha1-lLwYRdznClu50uzHSHJWYSk9j8E="
+      "integrity": "sha1-lLwYRdznClu50uzHSHJWYSk9j8E=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/character-reference-invalid": {
       "version": "1.1.4",
       "resolved": 
"https://registry.npmmirror.com/character-reference-invalid/download/character-reference-invalid-1.1.4.tgz?cache=0&sync_timestamp=1636446288388&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcharacter-reference-invalid%2Fdownload%2Fcharacter-reference-invalid-1.1.4.tgz";,
-      "integrity": "sha1-CDMpzaDq4nKrPbvzfpo4LBOvFWA="
+      "integrity": "sha1-CDMpzaDq4nKrPbvzfpo4LBOvFWA=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/cheerio": {
       "version": "1.0.0-rc.10",
@@ -4179,6 +4847,9 @@
       },
       "engines": {
         "node": ">= 6"
+      },
+      "funding": {
+        "url": "https://github.com/cheeriojs/cheerio?sponsor=1";
       }
     },
     "node_modules/cheerio-select": {
@@ -4191,12 +4862,21 @@
         "domelementtype": "^2.2.0",
         "domhandler": "^4.2.0",
         "domutils": "^2.7.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/fb55";
       }
     },
     "node_modules/chokidar": {
       "version": "3.5.3",
       "resolved": 
"https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz";,
       "integrity": 
"sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+      "funding": [
+        {
+          "type": "individual",
+          "url": "https://paulmillr.com/funding/";
+        }
+      ],
       "dependencies": {
         "anymatch": "~3.1.2",
         "braces": "~3.0.2",
@@ -4259,6 +4939,9 @@
       "integrity": 
"sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/cli-table3": {
@@ -4325,7 +5008,11 @@
     "node_modules/collapse-white-space": {
       "version": "1.0.6",
       "resolved": 
"https://registry.npmmirror.com/collapse-white-space/download/collapse-white-space-1.0.6.tgz";,
-      "integrity": "sha1-5jYpwAFmZXkgYNu+t5xCI50sUoc="
+      "integrity": "sha1-5jYpwAFmZXkgYNu+t5xCI50sUoc=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/color-convert": {
       "version": "1.9.3",
@@ -4370,7 +5057,11 @@
     "node_modules/comma-separated-tokens": {
       "version": "1.0.8",
       "resolved": 
"https://registry.nlark.com/comma-separated-tokens/download/comma-separated-tokens-1.0.8.tgz";,
-      "integrity": "sha1-YyuAthF4Z6FY8QgK1Jiy++fj9eo="
+      "integrity": "sha1-YyuAthF4Z6FY8QgK1Jiy++fj9eo=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/commander": {
       "version": "5.1.0",
@@ -4520,6 +5211,9 @@
       "integrity": "sha1-jL+PkOCkfxLkokdDc2Jl0Ve85pw=",
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/copy-webpack-plugin": {
@@ -4537,6 +5231,10 @@
       "engines": {
         "node": ">= 12.20.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
+      },
       "peerDependencies": {
         "webpack": "^5.1.0"
       }
@@ -4550,6 +5248,10 @@
         "json-schema-traverse": "^1.0.0",
         "require-from-string": "^2.0.2",
         "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin";
       }
     },
     "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": {
@@ -4569,6 +5271,9 @@
       "integrity": 
"sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==",
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/copy-webpack-plugin/node_modules/glob-parent": {
@@ -4596,6 +5301,9 @@
       },
       "engines": {
         "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": {
@@ -4615,6 +5323,10 @@
       },
       "engines": {
         "node": ">= 12.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
       }
     },
     "node_modules/copy-webpack-plugin/node_modules/slash": {
@@ -4623,6 +5335,9 @@
       "integrity": 
"sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/core-js": {
@@ -4630,7 +5345,11 @@
       "resolved": 
"https://registry.npmmirror.com/core-js/-/core-js-3.21.1.tgz";,
       "integrity": 
"sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==",
       "deprecated": "core-js@<3.23.3 is no longer maintained and not 
recommended for usage due to the number of issues. Because of the V8 engine 
whims, feature detection in old core-js versions could cause a slowdown up to 
100x even if nothing is polyfilled. Some versions have web compatibility 
issues. Please, upgrade your dependencies to the actual version of core-js.",
-      "hasInstallScript": true
+      "hasInstallScript": true,
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/core-js";
+      }
     },
     "node_modules/core-js-compat": {
       "version": "3.21.1",
@@ -4639,6 +5358,10 @@
       "dependencies": {
         "browserslist": "^4.19.1",
         "semver": "7.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/core-js";
       }
     },
     "node_modules/core-js-compat/node_modules/semver": {
@@ -4654,7 +5377,11 @@
       "resolved": 
"https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.21.1.tgz";,
       "integrity": 
"sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==",
       "deprecated": "core-js-pure@<3.23.3 is no longer maintained and not 
recommended for usage due to the number of issues. Because of the V8 engine 
whims, feature detection in old core-js versions could cause a slowdown up to 
100x even if nothing is polyfilled. Some versions have web compatibility 
issues. Please, upgrade your dependencies to the actual version of 
core-js-pure.",
-      "hasInstallScript": true
+      "hasInstallScript": true,
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/core-js";
+      }
     },
     "node_modules/core-util-is": {
       "version": "1.0.3",
@@ -4736,6 +5463,10 @@
       "engines": {
         "node": ">= 12.13.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
+      },
       "peerDependencies": {
         "webpack": "^5.0.0"
       }
@@ -4755,6 +5486,10 @@
       "engines": {
         "node": ">= 12.13.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
+      },
       "peerDependencies": {
         "webpack": "^5.0.0"
       },
@@ -4782,6 +5517,10 @@
         "json-schema-traverse": "^1.0.0",
         "require-from-string": "^2.0.2",
         "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin";
       }
     },
     "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": {
@@ -4812,6 +5551,10 @@
       },
       "engines": {
         "node": ">= 12.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
       }
     },
     "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": {
@@ -4832,6 +5575,9 @@
         "domhandler": "^4.3.0",
         "domutils": "^2.8.0",
         "nth-check": "^2.0.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/fb55";
       }
     },
     "node_modules/css-tree": {
@@ -4860,6 +5606,9 @@
       "integrity": 
"sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==",
       "engines": {
         "node": ">= 6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/fb55";
       }
     },
     "node_modules/cssesc": {
@@ -4885,6 +5634,10 @@
       "engines": {
         "node": "^10 || ^12 || >=14.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/cssnano";
+      },
       "peerDependencies": {
         "postcss": "^8.2.15"
       }
@@ -5015,6 +5768,9 @@
         "object-is": "^1.0.1",
         "object-keys": "^1.1.1",
         "regexp.prototype.flags": "^1.2.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/deep-extend": {
@@ -5084,6 +5840,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/depd": {
@@ -5105,6 +5864,10 @@
       "integrity": "sha1-uSeJIGmv9AX7uaGG/pekSpKpS0M=",
       "dependencies": {
         "repeat-string": "^1.5.4"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
       }
     },
     "node_modules/detect-node": {
@@ -5230,17 +5993,29 @@
         "domelementtype": "^2.0.1",
         "domhandler": "^4.2.0",
         "entities": "^2.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1";
       }
     },
     "node_modules/dom-serializer/node_modules/entities": {
       "version": "2.2.0",
       "resolved": 
"https://registry.nlark.com/entities/download/entities-2.2.0.tgz?cache=0&sync_timestamp=1628508126700&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fentities%2Fdownload%2Fentities-2.2.0.tgz";,
-      "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU="
+      "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=",
+      "funding": {
+        "url": "https://github.com/fb55/entities?sponsor=1";
+      }
     },
     "node_modules/domelementtype": {
       "version": "2.2.0",
       "resolved": 
"https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz?cache=0&sync_timestamp=1617298554829&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.2.0.tgz";,
-      "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc="
+      "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/fb55";
+        }
+      ]
     },
     "node_modules/domhandler": {
       "version": "4.3.0",
@@ -5251,6 +6026,9 @@
       },
       "engines": {
         "node": ">= 4"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/domhandler?sponsor=1";
       }
     },
     "node_modules/domutils": {
@@ -5261,6 +6039,9 @@
         "dom-serializer": "^1.0.1",
         "domelementtype": "^2.2.0",
         "domhandler": "^4.2.0"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/domutils?sponsor=1";
       }
     },
     "node_modules/dot-case": {
@@ -5332,7 +6113,11 @@
     "node_modules/emoticon": {
       "version": "3.2.0",
       "resolved": 
"https://registry.npmmirror.com/emoticon/download/emoticon-3.2.0.tgz";,
-      "integrity": "sha1-wAjKfXYg+sdC/hv0r4/4/tFUrn8="
+      "integrity": "sha1-wAjKfXYg+sdC/hv0r4/4/tFUrn8=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/encodeurl": {
       "version": "1.0.2",
@@ -5368,6 +6153,9 @@
       "integrity": "sha1-K4h8piWF6W2zkDSC0zbBAGwwAdQ=",
       "engines": {
         "node": ">=0.12"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/entities?sponsor=1";
       }
     },
     "node_modules/errno": {
@@ -5396,6 +6184,44 @@
       "resolved": 
"https://registry.npmmirror.com/es-module-lexer/download/es-module-lexer-0.9.3.tgz?cache=0&sync_timestamp=1633645560577&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fes-module-lexer%2Fdownload%2Fes-module-lexer-0.9.3.tgz";,
       "integrity": "sha1-bxPbAMw4QXE32vdDZvU1yOtDjxk="
     },
+    "node_modules/esbuild": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz";,
+      "integrity": 
"sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
+      "dev": true,
+      "hasInstallScript": true,
+      "bin": {
+        "esbuild": "bin/esbuild"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "optionalDependencies": {
+        "@esbuild/aix-ppc64": "0.19.12",
+        "@esbuild/android-arm": "0.19.12",
+        "@esbuild/android-arm64": "0.19.12",
+        "@esbuild/android-x64": "0.19.12",
+        "@esbuild/darwin-arm64": "0.19.12",
+        "@esbuild/darwin-x64": "0.19.12",
+        "@esbuild/freebsd-arm64": "0.19.12",
+        "@esbuild/freebsd-x64": "0.19.12",
+        "@esbuild/linux-arm": "0.19.12",
+        "@esbuild/linux-arm64": "0.19.12",
+        "@esbuild/linux-ia32": "0.19.12",
+        "@esbuild/linux-loong64": "0.19.12",
+        "@esbuild/linux-mips64el": "0.19.12",
+        "@esbuild/linux-ppc64": "0.19.12",
+        "@esbuild/linux-riscv64": "0.19.12",
+        "@esbuild/linux-s390x": "0.19.12",
+        "@esbuild/linux-x64": "0.19.12",
+        "@esbuild/netbsd-x64": "0.19.12",
+        "@esbuild/openbsd-x64": "0.19.12",
+        "@esbuild/sunos-x64": "0.19.12",
+        "@esbuild/win32-arm64": "0.19.12",
+        "@esbuild/win32-ia32": "0.19.12",
+        "@esbuild/win32-x64": "0.19.12"
+      }
+    },
     "node_modules/escalade": {
       "version": "3.1.1",
       "resolved": 
"https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567224085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz";,
@@ -5490,6 +6316,9 @@
       "integrity": "sha1-KYLQit++85+fpQ4vvULXM35zOLE=",
       "engines": {
         "node": ">=6.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/eta-dev/eta?sponsor=1";
       }
     },
     "node_modules/etag": {
@@ -5541,6 +6370,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sindresorhus/execa?sponsor=1";
       }
     },
     "node_modules/execa/node_modules/get-stream": {
@@ -5549,6 +6381,9 @@
       "integrity": "sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=",
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/express": {
@@ -5636,7 +6471,21 @@
     "node_modules/express/node_modules/safe-buffer": {
       "version": "5.2.1",
       "resolved": 
"https://registry.nlark.com/safe-buffer/download/safe-buffer-5.2.1.tgz";,
-      "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY="
+      "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross";
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross";
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support";
+        }
+      ]
     },
     "node_modules/extend": {
       "version": "3.0.2",
@@ -5755,6 +6604,10 @@
       "engines": {
         "node": ">= 10.13.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
+      },
       "peerDependencies": {
         "webpack": "^4.0.0 || ^5.0.0"
       }
@@ -5783,6 +6636,10 @@
       },
       "engines": {
         "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
       }
     },
     "node_modules/filesize": {
@@ -5845,6 +6702,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/avajs/find-cache-dir?sponsor=1";
       }
     },
     "node_modules/find-up": {
@@ -5875,6 +6735,12 @@
       "version": "1.14.9",
       "resolved": 
"https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.14.9.tgz";,
       "integrity": 
"sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
+      "funding": [
+        {
+          "type": "individual",
+          "url": "https://github.com/sponsors/RubenVerborgh";
+        }
+      ],
       "engines": {
         "node": ">=4.0"
       },
@@ -5931,6 +6797,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1";
       }
     },
     "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": {
@@ -5943,6 +6812,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1";
       }
     },
     "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": {
@@ -6009,6 +6881,10 @@
       },
       "engines": {
         "node": ">= 8.9.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
       }
     },
     "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": 
{
@@ -6044,6 +6920,10 @@
       "integrity": 
"sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==",
       "engines": {
         "node": "*"
+      },
+      "funding": {
+        "type": "patreon",
+        "url": "https://www.patreon.com/infusion";
       }
     },
     "node_modules/fresh": {
@@ -6055,16 +6935,17 @@
       }
     },
     "node_modules/fs-extra": {
-      "version": "10.0.1",
-      "resolved": 
"https://registry.npmmirror.com/fs-extra/-/fs-extra-10.0.1.tgz";,
-      "integrity": 
"sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==",
+      "version": "11.2.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz";,
+      "integrity": 
"sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+      "dev": true,
       "dependencies": {
         "graceful-fs": "^4.2.0",
         "jsonfile": "^6.0.1",
         "universalify": "^2.0.0"
       },
       "engines": {
-        "node": ">=12"
+        "node": ">=14.14"
       }
     },
     "node_modules/fs-monkey": {
@@ -6078,9 +6959,9 @@
       "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
     },
     "node_modules/fsevents": {
-      "version": "2.3.2",
-      "resolved": 
"https://registry.npmmirror.com/fsevents/download/fsevents-2.3.2.tgz";,
-      "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=",
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz";,
+      "integrity": 
"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
       "hasInstallScript": true,
       "optional": true,
       "os": [
@@ -6111,6 +6992,9 @@
         "function-bind": "^1.1.1",
         "has": "^1.0.3",
         "has-symbols": "^1.0.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/get-own-enumerable-property-symbols": {
@@ -6129,6 +7013,18 @@
         "node": ">=6"
       }
     },
+    "node_modules/get-tsconfig": {
+      "version": "4.7.2",
+      "resolved": 
"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz";,
+      "integrity": 
"sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==",
+      "dev": true,
+      "dependencies": {
+        "resolve-pkg-maps": "^1.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1";
+      }
+    },
     "node_modules/github-slugger": {
       "version": "1.4.0",
       "resolved": 
"https://registry.nlark.com/github-slugger/download/github-slugger-1.4.0.tgz";,
@@ -6148,6 +7044,9 @@
       },
       "engines": {
         "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs";
       }
     },
     "node_modules/glob-parent": {
@@ -6175,6 +7074,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/global-dirs/node_modules/ini": {
@@ -6242,6 +7144,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/got": {
@@ -6313,6 +7218,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/handle-thing": {
@@ -6345,6 +7253,9 @@
       "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=",
       "engines": {
         "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/has-tostringtag": {
@@ -6356,6 +7267,9 @@
       },
       "engines": {
         "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/has-yarn": {
@@ -6378,6 +7292,10 @@
         "style-to-object": "^0.3.0",
         "unist-util-is": "^4.0.0",
         "web-namespaces": "^1.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/hast-util-from-parse5": {
@@ -6391,12 +7309,20 @@
         "vfile": "^4.0.0",
         "vfile-location": "^3.2.0",
         "web-namespaces": "^1.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/hast-util-parse-selector": {
       "version": "2.2.5",
       "resolved": 
"https://registry.nlark.com/hast-util-parse-selector/download/hast-util-parse-selector-2.2.5.tgz";,
-      "integrity": "sha1-1Xwj9NoWrjxjs7bKRhZoMxNJnDo="
+      "integrity": "sha1-1Xwj9NoWrjxjs7bKRhZoMxNJnDo=",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
+      }
     },
     "node_modules/hast-util-raw": {
       "version": "6.0.1",
@@ -6413,6 +7339,10 @@
         "web-namespaces": "^1.0.0",
         "xtend": "^4.0.0",
         "zwitch": "^1.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/hast-util-to-parse5": {
@@ -6425,6 +7355,10 @@
         "web-namespaces": "^1.0.0",
         "xtend": "^4.0.0",
         "zwitch": "^1.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/hastscript": {
@@ -6437,6 +7371,10 @@
         "hast-util-parse-selector": "^2.0.0",
         "property-information": "^5.0.0",
         "space-separated-tokens": "^1.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/he": {
@@ -6550,7 +7488,11 @@
     "node_modules/html-void-elements": {
       "version": "1.0.5",
       "resolved": 
"https://registry.npmmirror.com/html-void-elements/download/html-void-elements-1.0.5.tgz";,
-      "integrity": "sha1-zpFZSU6G2V5FeVsWbCAhws/KRIM="
+      "integrity": "sha1-zpFZSU6G2V5FeVsWbCAhws/KRIM=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/html-webpack-plugin": {
       "version": "5.5.0",
@@ -6566,6 +7508,10 @@
       "engines": {
         "node": ">=10.13.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/html-webpack-plugin";
+      },
       "peerDependencies": {
         "webpack": "^5.20.0"
       }
@@ -6574,6 +7520,13 @@
       "version": "6.1.0",
       "resolved": 
"https://registry.npmmirror.com/htmlparser2/download/htmlparser2-6.1.0.tgz?cache=0&sync_timestamp=1636640933377&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-6.1.0.tgz";,
       "integrity": "sha1-xNditsM3GgXb5l6UrkOp+EX7j7c=",
+      "funding": [
+        "https://github.com/fb55/htmlparser2?sponsor=1";,
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/fb55";
+        }
+      ],
       "dependencies": {
         "domelementtype": "^2.0.1",
         "domhandler": "^4.0.0",
@@ -6584,7 +7537,10 @@
     "node_modules/htmlparser2/node_modules/entities": {
       "version": "2.2.0",
       "resolved": 
"https://registry.nlark.com/entities/download/entities-2.2.0.tgz?cache=0&sync_timestamp=1628508126700&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fentities%2Fdownload%2Fentities-2.2.0.tgz";,
-      "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU="
+      "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=",
+      "funding": {
+        "url": "https://github.com/fb55/entities?sponsor=1";
+      }
     },
     "node_modules/http-cache-semantics": {
       "version": "4.1.0",
@@ -6650,6 +7606,9 @@
       "integrity": "sha1-r28uoUrFpkYYOlu9tbqrvBVq2dc=",
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/human-signals": {
@@ -6707,7 +7666,11 @@
     "node_modules/immer": {
       "version": "9.0.12",
       "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.12.tgz";,
-      "integrity": 
"sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA=="
+      "integrity": 
"sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/immer";
+      }
     },
     "node_modules/import-fresh": {
       "version": "3.3.0",
@@ -6719,6 +7682,9 @@
       },
       "engines": {
         "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/import-lazy": {
@@ -6809,7 +7775,11 @@
     "node_modules/is-alphabetical": {
       "version": "1.0.4",
       "resolved": 
"https://registry.npmmirror.com/is-alphabetical/download/is-alphabetical-1.0.4.tgz";,
-      "integrity": "sha1-nn1rlJFr4iFTdF0YTCmMv5hqaG0="
+      "integrity": "sha1-nn1rlJFr4iFTdF0YTCmMv5hqaG0=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/is-alphanumerical": {
       "version": "1.0.4",
@@ -6818,6 +7788,10 @@
       "dependencies": {
         "is-alphabetical": "^1.0.0",
         "is-decimal": "^1.0.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
       }
     },
     "node_modules/is-arguments": {
@@ -6830,6 +7804,9 @@
       },
       "engines": {
         "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/is-arrayish": {
@@ -6852,6 +7829,20 @@
       "version": "2.0.5",
       "resolved": 
"https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.5.tgz?cache=0&sync_timestamp=1604429452232&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-2.0.5.tgz";,
       "integrity": "sha1-68JS5ADSL/jXf6CYiIIaJKZYwZE=",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross";
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross";
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support";
+        }
+      ],
       "engines": {
         "node": ">=4"
       }
@@ -6873,6 +7864,9 @@
       "integrity": "sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=",
       "dependencies": {
         "has": "^1.0.3"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/is-date-object": {
@@ -6884,12 +7878,19 @@
       },
       "engines": {
         "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/is-decimal": {
       "version": "1.0.4",
       "resolved": 
"https://registry.npmmirror.com/is-decimal/download/is-decimal-1.0.4.tgz?cache=0&sync_timestamp=1636008960795&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-decimal%2Fdownload%2Fis-decimal-1.0.4.tgz";,
-      "integrity": "sha1-ZaOllYocW2OnBuGzM9fNn2MNP6U="
+      "integrity": "sha1-ZaOllYocW2OnBuGzM9fNn2MNP6U=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/is-docker": {
       "version": "2.2.1",
@@ -6900,6 +7901,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/is-extendable": {
@@ -6940,7 +7944,11 @@
     "node_modules/is-hexadecimal": {
       "version": "1.0.4",
       "resolved": 
"https://registry.npmmirror.com/is-hexadecimal/download/is-hexadecimal-1.0.4.tgz";,
-      "integrity": "sha1-zDXJdYjaS9Saju3WvECC1E3LI6c="
+      "integrity": "sha1-zDXJdYjaS9Saju3WvECC1E3LI6c=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/is-installed-globally": {
       "version": "0.4.0",
@@ -6952,6 +7960,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/is-npm": {
@@ -6960,6 +7971,9 @@
       "integrity": "sha1-Q+jWXMVuG2f41HJiz2ZwmRk/Rag=",
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/is-number": {
@@ -7023,6 +8037,9 @@
       },
       "engines": {
         "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/is-regexp": {
@@ -7047,6 +8064,9 @@
       "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=",
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/is-typedarray": {
@@ -7063,12 +8083,20 @@
     "node_modules/is-whitespace-character": {
       "version": "1.0.4",
       "resolved": 
"https://registry.npmmirror.com/is-whitespace-character/download/is-whitespace-character-1.0.4.tgz";,
-      "integrity": "sha1-CFjt2UqVWUx8ndC1wXTsbkXuSqc="
+      "integrity": "sha1-CFjt2UqVWUx8ndC1wXTsbkXuSqc=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/is-word-character": {
       "version": "1.0.4",
       "resolved": 
"https://registry.npmmirror.com/is-word-character/download/is-word-character-1.0.4.tgz";,
-      "integrity": "sha1-zg5zIW+YWZBgWS9i/zE1TdvrAjA="
+      "integrity": "sha1-zg5zIW+YWZBgWS9i/zE1TdvrAjA=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/is-wsl": {
       "version": "2.2.0",
@@ -7134,6 +8162,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/supports-color?sponsor=1";
       }
     },
     "node_modules/joi": {
@@ -7300,6 +8331,10 @@
       "engines": {
         "node": ">= 12.13.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
+      },
       "peerDependencies": {
         "less": "^3.5.0 || ^4.0.0",
         "webpack": "^5.0.0"
@@ -7553,6 +8588,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/make-dir/node_modules/semver": {
@@ -7566,7 +8604,11 @@
     "node_modules/markdown-escapes": {
       "version": "1.0.4",
       "resolved": 
"https://registry.npmmirror.com/markdown-escapes/download/markdown-escapes-1.0.4.tgz";,
-      "integrity": "sha1-yVQV70UUmddgK5EJXzyOiXX3hTU="
+      "integrity": "sha1-yVQV70UUmddgK5EJXzyOiXX3hTU=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/mdast-squeeze-paragraphs": {
       "version": "4.0.0",
@@ -7574,6 +8616,10 @@
       "integrity": "sha1-fEwRRnnDvuJ+8QtY4uAVvnnx75c=",
       "dependencies": {
         "unist-util-remove": "^2.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/mdast-util-definitions": {
@@ -7582,6 +8628,10 @@
       "integrity": "sha1-xcGoTbeZFztNz3ZDzamZ5EDCTbI=",
       "dependencies": {
         "unist-util-visit": "^2.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/mdast-util-to-hast": {
@@ -7597,12 +8647,20 @@
         "unist-util-generated": "^1.0.0",
         "unist-util-position": "^3.0.0",
         "unist-util-visit": "^2.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/mdast-util-to-string": {
       "version": "2.0.0",
       "resolved": 
"https://registry.nlark.com/mdast-util-to-string/download/mdast-util-to-string-2.0.0.tgz?cache=0&sync_timestamp=1619426294961&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmdast-util-to-string%2Fdownload%2Fmdast-util-to-string-2.0.0.tgz";,
-      "integrity": "sha1-uM/mpxPhCRy1tyj8SIhaR2f4uXs="
+      "integrity": "sha1-uM/mpxPhCRy1tyj8SIhaR2f4uXs=",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
+      }
     },
     "node_modules/mdn-data": {
       "version": "2.0.14",
@@ -7741,6 +8799,10 @@
       "engines": {
         "node": ">= 12.13.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
+      },
       "peerDependencies": {
         "webpack": "^5.0.0"
       }
@@ -7754,6 +8816,10 @@
         "json-schema-traverse": "^1.0.0",
         "require-from-string": "^2.0.2",
         "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin";
       }
     },
     "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": {
@@ -7784,6 +8850,10 @@
       },
       "engines": {
         "node": ">= 12.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
       }
     },
     "node_modules/minimalistic-assert": {
@@ -7805,7 +8875,10 @@
     "node_modules/minimist": {
       "version": "1.2.8",
       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz";,
-      "integrity": 
"sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
+      "integrity": 
"sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
     },
     "node_modules/mkdirp": {
       "version": "0.5.5",
@@ -7960,6 +9033,9 @@
       "integrity": "sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=",
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/npm-run-path": {
@@ -7984,6 +9060,9 @@
       "integrity": "sha1-Lv4WL1w9oGoolZ+9PbddvuqfD8I=",
       "dependencies": {
         "boolbase": "^1.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/nth-check?sponsor=1";
       }
     },
     "node_modules/object-assign": {
@@ -8004,6 +9083,9 @@
       },
       "engines": {
         "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/object-keys": {
@@ -8026,6 +9108,9 @@
       },
       "engines": {
         "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/obuf": {
@@ -8069,6 +9154,9 @@
       },
       "engines": {
         "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/open": {
@@ -8082,6 +9170,9 @@
       },
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/opener": {
@@ -8109,6 +9200,9 @@
       },
       "engines": {
         "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/p-locate": {
@@ -8131,6 +9225,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/p-retry": {
@@ -8206,6 +9303,10 @@
         "is-alphanumerical": "^1.0.0",
         "is-decimal": "^1.0.0",
         "is-hexadecimal": "^1.0.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
       }
     },
     "node_modules/parse-json": {
@@ -8220,6 +9321,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/parse-node-version": {
@@ -8327,6 +9431,9 @@
       "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=",
       "engines": {
         "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert";
       }
     },
     "node_modules/pify": {
@@ -8435,6 +9542,10 @@
       },
       "engines": {
         "node": "^10 || ^12 || >=14"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/postcss/";
       }
     },
     "node_modules/postcss-calc": {
@@ -8550,6 +9661,10 @@
       "engines": {
         "node": ">= 12.13.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
+      },
       "peerDependencies": {
         "postcss": "^7.0.0 || ^8.0.1",
         "webpack": "^5.0.0"
@@ -9053,6 +10168,10 @@
       "integrity": "sha1-YWdVRfsjAC8kXGVA7EYHfU2j7Wk=",
       "dependencies": {
         "xtend": "^4.0.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
       }
     },
     "node_modules/proxy-addr": {
@@ -9118,6 +10237,9 @@
       "integrity": 
"sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
       "engines": {
         "node": ">=0.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/querystring": {
@@ -9140,7 +10262,21 @@
     "node_modules/queue-microtask": {
       "version": "1.2.3",
       "resolved": 
"https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz?cache=0&sync_timestamp=1616391641179&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqueue-microtask%2Fdownload%2Fqueue-microtask-1.2.3.tgz";,
-      "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM="
+      "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross";
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross";
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support";
+        }
+      ]
     },
     "node_modules/randombytes": {
       "version": "2.1.0",
@@ -9268,6 +10404,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1";
       }
     },
     "node_modules/react-dev-utils/node_modules/chalk": {
@@ -9280,6 +10419,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1";
       }
     },
     "node_modules/react-dev-utils/node_modules/color-convert": {
@@ -9304,6 +10446,9 @@
       "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=",
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/react-dev-utils/node_modules/find-up": {
@@ -9316,6 +10461,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/react-dev-utils/node_modules/has-flag": {
@@ -9343,6 +10491,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/react-dev-utils/node_modules/p-limit": {
@@ -9354,6 +10505,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/react-dev-utils/node_modules/p-locate": {
@@ -9365,6 +10519,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/react-dev-utils/node_modules/supports-color": {
@@ -9612,6 +10769,9 @@
       },
       "engines": {
         "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/regexpu-core": {
@@ -9684,6 +10844,10 @@
         "hast-util-from-parse5": "^5.0.0",
         "parse5": "^5.0.0",
         "xtend": "^4.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/rehype-parse/node_modules/hast-util-from-parse5": {
@@ -9696,6 +10860,10 @@
         "property-information": "^5.0.0",
         "web-namespaces": "^1.1.2",
         "xtend": "^4.0.1"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/rehype-parse/node_modules/hastscript": {
@@ -9707,6 +10875,10 @@
         "hast-util-parse-selector": "^2.0.0",
         "property-information": "^5.0.0",
         "space-separated-tokens": "^1.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/rehype-parse/node_modules/parse5": {
@@ -9742,6 +10914,10 @@
         "is-plain-obj": "^2.0.0",
         "trough": "^1.0.0",
         "vfile": "^4.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/remark-emoji": {
@@ -9757,7 +10933,11 @@
     "node_modules/remark-footnotes": {
       "version": "2.0.0",
       "resolved": 
"https://registry.nlark.com/remark-footnotes/download/remark-footnotes-2.0.0.tgz";,
-      "integrity": "sha1-kAHEwv/rulVpXS3YD/uLgvfmMD8="
+      "integrity": "sha1-kAHEwv/rulVpXS3YD/uLgvfmMD8=",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
+      }
     },
     "node_modules/remark-mdx": {
       "version": "1.6.22",
@@ -9772,6 +10952,10 @@
         "is-alphabetical": "1.0.4",
         "remark-parse": "8.0.3",
         "unified": "9.2.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/remark-mdx/node_modules/@babel/core": {
@@ -9798,6 +10982,10 @@
       },
       "engines": {
         "node": ">=6.9.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/babel";
       }
     },
     "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": {
@@ -9859,6 +11047,10 @@
         "unist-util-remove-position": "^2.0.0",
         "vfile-location": "^3.0.0",
         "xtend": "^4.0.1"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/remark-squeeze-paragraphs": {
@@ -9867,6 +11059,10 @@
       "integrity": "sha1-dusOCFKVExyEdIyOQ4EBWcVlPq0=",
       "dependencies": {
         "mdast-squeeze-paragraphs": "^4.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/renderkid": {
@@ -9917,6 +11113,9 @@
       "dependencies": {
         "is-core-module": "^2.2.0",
         "path-parse": "^1.0.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
       }
     },
     "node_modules/resolve-from": {
@@ -9932,6 +11131,15 @@
       "resolved": 
"https://registry.nlark.com/resolve-pathname/download/resolve-pathname-3.0.0.tgz";,
       "integrity": "sha1-mdAiJNPPJjaJvsuzk7xWAxMCXc0="
     },
+    "node_modules/resolve-pkg-maps": {
+      "version": "1.0.0",
+      "resolved": 
"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz";,
+      "integrity": 
"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1";
+      }
+    },
     "node_modules/responselike": {
       "version": "1.0.2",
       "resolved": 
"https://registry.npm.taobao.org/responselike/download/responselike-1.0.2.tgz";,
@@ -9966,6 +11174,9 @@
       },
       "bin": {
         "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs";
       }
     },
     "node_modules/rtl-detect": {
@@ -9997,6 +11208,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/rtlcss/node_modules/locate-path": {
@@ -10008,6 +11222,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/rtlcss/node_modules/p-limit": {
@@ -10019,6 +11236,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/rtlcss/node_modules/p-locate": {
@@ -10030,12 +11250,29 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/run-parallel": {
       "version": "1.2.0",
       "resolved": 
"https://registry.npm.taobao.org/run-parallel/download/run-parallel-1.2.0.tgz?cache=0&sync_timestamp=1612925943325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.2.0.tgz";,
       "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross";
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross";
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support";
+        }
+      ],
       "dependencies": {
         "queue-microtask": "^1.2.2"
       }
@@ -10083,6 +11320,10 @@
       },
       "engines": {
         "node": ">= 8.9.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
       }
     },
     "node_modules/section-matter": {
@@ -10465,7 +11706,11 @@
     "node_modules/space-separated-tokens": {
       "version": "1.1.5",
       "resolved": 
"https://registry.nlark.com/space-separated-tokens/download/space-separated-tokens-1.1.5.tgz";,
-      "integrity": "sha1-hfMsPRDZaCAH6RdBTdxcJtGqaJk="
+      "integrity": "sha1-hfMsPRDZaCAH6RdBTdxcJtGqaJk=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/spdy": {
       "version": "4.0.2",
@@ -10509,7 +11754,11 @@
     "node_modules/state-toggle": {
       "version": "1.0.3",
       "resolved": 
"https://registry.npm.taobao.org/state-toggle/download/state-toggle-1.0.3.tgz?cache=0&sync_timestamp=1615190484861&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstate-toggle%2Fdownload%2Fstate-toggle-1.0.3.tgz";,
-      "integrity": "sha1-4SOxaojhQxObCcaFIiG8mBWRff4="
+      "integrity": "sha1-4SOxaojhQxObCcaFIiG8mBWRff4=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/statuses": {
       "version": "1.5.0",
@@ -10535,7 +11784,21 @@
     "node_modules/string_decoder/node_modules/safe-buffer": {
       "version": "5.2.1",
       "resolved": 
"https://registry.nlark.com/safe-buffer/download/safe-buffer-5.2.1.tgz";,
-      "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY="
+      "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross";
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross";
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support";
+        }
+      ]
     },
     "node_modules/string-width": {
       "version": "5.1.1",
@@ -10548,6 +11811,9 @@
       },
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/string-width/node_modules/ansi-regex": {
@@ -10556,6 +11822,9 @@
       "integrity": "sha1-MYPjj66aZdfLXlOUXNWJfQJgoGo=",
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1";
       }
     },
     "node_modules/string-width/node_modules/strip-ansi": {
@@ -10567,6 +11836,9 @@
       },
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1";
       }
     },
     "node_modules/stringify-object": {
@@ -10615,6 +11887,9 @@
       "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=",
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/style-to-object": {
@@ -10730,6 +12005,10 @@
       "engines": {
         "node": ">= 10.13.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
+      },
       "peerDependencies": {
         "webpack": "^5.1.0"
       },
@@ -10756,6 +12035,10 @@
       },
       "engines": {
         "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
       }
     },
     "node_modules/terser-webpack-plugin/node_modules/source-map": {
@@ -10856,12 +12139,20 @@
     "node_modules/trim-trailing-lines": {
       "version": "1.1.4",
       "resolved": 
"https://registry.npm.taobao.org/trim-trailing-lines/download/trim-trailing-lines-1.1.4.tgz?cache=0&sync_timestamp=1615371907294&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftrim-trailing-lines%2Fdownload%2Ftrim-trailing-lines-1.1.4.tgz";,
-      "integrity": "sha1-vUq77HzIgEYvELLItc4djR7HwsA="
+      "integrity": "sha1-vUq77HzIgEYvELLItc4djR7HwsA=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/trough": {
       "version": "1.0.5",
       "resolved": 
"https://registry.nlark.com/trough/download/trough-1.0.5.tgz?cache=0&sync_timestamp=1625400622069&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrough%2Fdownload%2Ftrough-1.0.5.tgz";,
-      "integrity": "sha1-uLY5zvrX0LsqvTfUM/+Ck++l9AY="
+      "integrity": "sha1-uLY5zvrX0LsqvTfUM/+Ck++l9AY=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/ts-essentials": {
       "version": "9.1.0",
@@ -10876,12 +12167,34 @@
       "resolved": "https://registry.nlark.com/tslib/download/tslib-2.3.1.tgz";,
       "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE="
     },
+    "node_modules/tsx": {
+      "version": "4.7.1",
+      "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.1.tgz";,
+      "integrity": 
"sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==",
+      "dev": true,
+      "dependencies": {
+        "esbuild": "~0.19.10",
+        "get-tsconfig": "^4.7.2"
+      },
+      "bin": {
+        "tsx": "dist/cli.mjs"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.3"
+      }
+    },
     "node_modules/type-fest": {
       "version": "2.12.0",
       "resolved": 
"https://registry.npmmirror.com/type-fest/-/type-fest-2.12.0.tgz";,
       "integrity": 
"sha512-Qe5GRT+n/4GoqCNGGVp5Snapg1Omq3V7irBJB3EaKsp7HWDo5Gv2d/67gfNyV+d5EXD+x/RF5l1h4yJ7qNkcGA==",
       "engines": {
         "node": ">=12.20"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/type-is": {
@@ -10939,6 +12252,16 @@
       "version": "0.7.31",
       "resolved": 
"https://registry.npmmirror.com/ua-parser-js/download/ua-parser-js-0.7.31.tgz?cache=0&sync_timestamp=1635347062487&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fua-parser-js%2Fdownload%2Fua-parser-js-0.7.31.tgz";,
       "integrity": "sha1-ZJplaxkd/6tPIdXgU+J8oXy/9cY=",
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/ua-parser-js";
+        },
+        {
+          "type": "paypal",
+          "url": "https://paypal.me/faisalman";
+        }
+      ],
       "engines": {
         "node": "*"
       }
@@ -10950,6 +12273,10 @@
       "dependencies": {
         "inherits": "^2.0.0",
         "xtend": "^4.0.0"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
       }
     },
     "node_modules/unicode-canonical-property-names-ecmascript": {
@@ -10999,6 +12326,10 @@
         "is-plain-obj": "^2.0.0",
         "trough": "^1.0.0",
         "vfile": "^4.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/unique-string": {
@@ -11015,22 +12346,38 @@
     "node_modules/unist-builder": {
       "version": "2.0.3",
       "resolved": 
"https://registry.nlark.com/unist-builder/download/unist-builder-2.0.3.tgz";,
-      "integrity": "sha1-d2SHEbXYavCULzNDl6M8XpFRZDY="
+      "integrity": "sha1-d2SHEbXYavCULzNDl6M8XpFRZDY=",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
+      }
     },
     "node_modules/unist-util-generated": {
       "version": "1.1.6",
       "resolved": 
"https://registry.npm.taobao.org/unist-util-generated/download/unist-util-generated-1.1.6.tgz";,
-      "integrity": "sha1-WrUfaJ4pkqRyvrGzXyzn/y8yTUs="
+      "integrity": "sha1-WrUfaJ4pkqRyvrGzXyzn/y8yTUs=",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
+      }
     },
     "node_modules/unist-util-is": {
       "version": "4.1.0",
       "resolved": 
"https://registry.nlark.com/unist-util-is/download/unist-util-is-4.1.0.tgz?cache=0&sync_timestamp=1626874922677&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funist-util-is%2Fdownload%2Funist-util-is-4.1.0.tgz";,
-      "integrity": "sha1-l25fRip6Xec9lLcGusG5BnG1d5c="
+      "integrity": "sha1-l25fRip6Xec9lLcGusG5BnG1d5c=",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
+      }
     },
     "node_modules/unist-util-position": {
       "version": "3.1.0",
       "resolved": 
"https://registry.nlark.com/unist-util-position/download/unist-util-position-3.1.0.tgz?cache=0&sync_timestamp=1620915237724&other_urls=https%3A%2F%2Fregistry.nlark.com%2Funist-util-position%2Fdownload%2Funist-util-position-3.1.0.tgz";,
-      "integrity": "sha1-HELuYwH41S9H0U9iu9t5ZXH6LUc="
+      "integrity": "sha1-HELuYwH41S9H0U9iu9t5ZXH6LUc=",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
+      }
     },
     "node_modules/unist-util-remove": {
       "version": "2.0.0",
@@ -11038,6 +12385,10 @@
       "integrity": "sha1-MsKtVXiALyymKrgIFz1QWyyJhIg=",
       "dependencies": {
         "unist-util-is": "^4.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/unist-util-remove-position": {
@@ -11046,6 +12397,10 @@
       "integrity": "sha1-XRnKef26cSMBmZsrc1U8qPOzUsw=",
       "dependencies": {
         "unist-util-visit": "^2.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/unist-util-stringify-position": {
@@ -11054,6 +12409,10 @@
       "integrity": "sha1-zOO/oc34W6c3XR1bF73Eytqb2do=",
       "dependencies": {
         "@types/unist": "^2.0.2"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/unist-util-visit": {
@@ -11064,6 +12423,10 @@
         "@types/unist": "^2.0.0",
         "unist-util-is": "^4.0.0",
         "unist-util-visit-parents": "^3.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/unist-util-visit-parents": {
@@ -11073,6 +12436,10 @@
       "dependencies": {
         "@types/unist": "^2.0.0",
         "unist-util-is": "^4.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/universalify": {
@@ -11113,6 +12480,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/yeoman/update-notifier?sponsor=1";
       }
     },
     "node_modules/update-notifier/node_modules/ansi-styles": {
@@ -11124,6 +12494,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1";
       }
     },
     "node_modules/update-notifier/node_modules/boxen": {
@@ -11142,6 +12515,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/update-notifier/node_modules/chalk": {
@@ -11154,6 +12530,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1";
       }
     },
     "node_modules/update-notifier/node_modules/cli-boxes": {
@@ -11162,6 +12541,9 @@
       "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=",
       "engines": {
         "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/update-notifier/node_modules/color-convert": {
@@ -11223,6 +12605,9 @@
       "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=",
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/update-notifier/node_modules/widest-line": {
@@ -11247,6 +12632,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1";
       }
     },
     "node_modules/uri-js": {
@@ -11286,6 +12674,10 @@
       "engines": {
         "node": ">= 10.13.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
+      },
       "peerDependencies": {
         "file-loader": "*",
         "webpack": "^4.0.0 || ^5.0.0"
@@ -11339,6 +12731,10 @@
       },
       "engines": {
         "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
       }
     },
     "node_modules/url-parse-lax": {
@@ -11462,12 +12858,20 @@
         "is-buffer": "^2.0.0",
         "unist-util-stringify-position": "^2.0.0",
         "vfile-message": "^2.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/vfile-location": {
       "version": "3.2.0",
       "resolved": 
"https://registry.nlark.com/vfile-location/download/vfile-location-3.2.0.tgz";,
-      "integrity": "sha1-2OQfvL1AYGNmnr9sM9Vq6HIdDzw="
+      "integrity": "sha1-2OQfvL1AYGNmnr9sM9Vq6HIdDzw=",
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
+      }
     },
     "node_modules/vfile-message": {
       "version": "2.0.4",
@@ -11476,6 +12880,10 @@
       "dependencies": {
         "@types/unist": "^2.0.0",
         "unist-util-stringify-position": "^2.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified";
       }
     },
     "node_modules/wait-on": {
@@ -11519,7 +12927,11 @@
     "node_modules/web-namespaces": {
       "version": "1.1.4",
       "resolved": 
"https://registry.npmmirror.com/web-namespaces/download/web-namespaces-1.1.4.tgz";,
-      "integrity": "sha1-vJij3mDa3X+u/EA9EHbVKfXgMOw="
+      "integrity": "sha1-vJij3mDa3X+u/EA9EHbVKfXgMOw=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     },
     "node_modules/webpack": {
       "version": "5.69.1",
@@ -11557,6 +12969,10 @@
       "engines": {
         "node": ">=10.13.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
+      },
       "peerDependenciesMeta": {
         "webpack-cli": {
           "optional": true
@@ -11594,6 +13010,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1";
       }
     },
     "node_modules/webpack-bundle-analyzer/node_modules/chalk": {
@@ -11606,6 +13025,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1";
       }
     },
     "node_modules/webpack-bundle-analyzer/node_modules/color-convert": {
@@ -11665,6 +13087,10 @@
       "engines": {
         "node": ">= 12.13.0"
       },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
+      },
       "peerDependencies": {
         "webpack": "^4.0.0 || ^5.0.0"
       }
@@ -11678,6 +13104,10 @@
         "json-schema-traverse": "^1.0.0",
         "require-from-string": "^2.0.2",
         "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin";
       }
     },
     "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": {
@@ -11735,6 +13165,10 @@
       },
       "engines": {
         "node": ">= 12.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
       }
     },
     "node_modules/webpack-dev-server": {
@@ -11797,6 +13231,10 @@
         "json-schema-traverse": "^1.0.0",
         "require-from-string": "^2.0.2",
         "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin";
       }
     },
     "node_modules/webpack-dev-server/node_modules/ajv-keywords": {
@@ -11816,6 +13254,9 @@
       "integrity": "sha1-MYPjj66aZdfLXlOUXNWJfQJgoGo=",
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1";
       }
     },
     "node_modules/webpack-dev-server/node_modules/json-schema-traverse": {
@@ -11835,6 +13276,10 @@
       },
       "engines": {
         "node": ">= 12.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
       }
     },
     "node_modules/webpack-dev-server/node_modules/strip-ansi": {
@@ -11846,6 +13291,9 @@
       },
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1";
       }
     },
     "node_modules/webpack-dev-server/node_modules/ws": {
@@ -11927,6 +13375,10 @@
       },
       "engines": {
         "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack";
       }
     },
     "node_modules/webpack/node_modules/webpack-sources": {
@@ -11963,6 +13415,9 @@
       },
       "engines": {
         "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1";
       }
     },
     "node_modules/webpackbar/node_modules/chalk": {
@@ -11975,6 +13430,9 @@
       },
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1";
       }
     },
     "node_modules/webpackbar/node_modules/color-convert": {
@@ -12056,6 +13514,9 @@
       },
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/wildcard": {
@@ -12074,6 +13535,9 @@
       },
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1";
       }
     },
     "node_modules/wrap-ansi/node_modules/ansi-regex": {
@@ -12082,6 +13546,9 @@
       "integrity": "sha1-MYPjj66aZdfLXlOUXNWJfQJgoGo=",
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1";
       }
     },
     "node_modules/wrap-ansi/node_modules/ansi-styles": {
@@ -12090,6 +13557,9 @@
       "integrity": 
"sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==",
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1";
       }
     },
     "node_modules/wrap-ansi/node_modules/strip-ansi": {
@@ -12101,6 +13571,9 @@
       },
       "engines": {
         "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1";
       }
     },
     "node_modules/wrappy": {
@@ -12185,12 +13658,19 @@
       "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=",
       "engines": {
         "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
       }
     },
     "node_modules/zwitch": {
       "version": "1.0.5",
       "resolved": 
"https://registry.npm.taobao.org/zwitch/download/zwitch-1.0.5.tgz?cache=0&sync_timestamp=1617357623494&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fzwitch%2Fdownload%2Fzwitch-1.0.5.tgz";,
-      "integrity": "sha1-0R1zgf/tFrdC9q97PyI9XNn+mSA="
+      "integrity": "sha1-0R1zgf/tFrdC9q97PyI9XNn+mSA=",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/wooorm";
+      }
     }
   },
   "dependencies": {
@@ -13601,6 +15081,16 @@
         "webpackbar": "^5.0.2"
       },
       "dependencies": {
+        "fs-extra": {
+          "version": "10.1.0",
+          "resolved": 
"https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+          "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+          "requires": {
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^2.0.0"
+          }
+        },
         "react-loadable": {
           "version": "npm:@docusaurus/[email protected]",
           "resolved": 
"https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz";,
@@ -13697,6 +15187,18 @@
         "unist-util-visit": "^2.0.2",
         "url-loader": "^4.1.1",
         "webpack": "^5.69.1"
+      },
+      "dependencies": {
+        "fs-extra": {
+          "version": "10.1.0",
+          "resolved": 
"https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+          "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+          "requires": {
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^2.0.0"
+          }
+        }
       }
     },
     "@docusaurus/module-type-aliases": {
@@ -13731,6 +15233,18 @@
         "tslib": "^2.3.1",
         "utility-types": "^3.10.0",
         "webpack": "^5.69.1"
+      },
+      "dependencies": {
+        "fs-extra": {
+          "version": "10.1.0",
+          "resolved": 
"https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+          "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+          "requires": {
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^2.0.0"
+          }
+        }
       }
     },
     "@docusaurus/plugin-content-docs": {
@@ -13752,6 +15266,18 @@
         "tslib": "^2.3.1",
         "utility-types": "^3.10.0",
         "webpack": "^5.69.1"
+      },
+      "dependencies": {
+        "fs-extra": {
+          "version": "10.1.0",
+          "resolved": 
"https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+          "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+          "requires": {
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^2.0.0"
+          }
+        }
       }
     },
     "@docusaurus/plugin-content-pages": {
@@ -13767,6 +15293,18 @@
         "remark-admonitions": "^1.2.1",
         "tslib": "^2.3.1",
         "webpack": "^5.69.1"
+      },
+      "dependencies": {
+        "fs-extra": {
+          "version": "10.1.0",
+          "resolved": 
"https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+          "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+          "requires": {
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^2.0.0"
+          }
+        }
       }
     },
     "@docusaurus/plugin-debug": {
@@ -13779,6 +15317,18 @@
         "fs-extra": "^10.0.1",
         "react-json-view": "^1.21.3",
         "tslib": "^2.3.1"
+      },
+      "dependencies": {
+        "fs-extra": {
+          "version": "10.1.0",
+          "resolved": 
"https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+          "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+          "requires": {
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^2.0.0"
+          }
+        }
       }
     },
     "@docusaurus/plugin-google-analytics": {
@@ -13813,6 +15363,18 @@
         "fs-extra": "^10.0.1",
         "sitemap": "^7.1.1",
         "tslib": "^2.3.1"
+      },
+      "dependencies": {
+        "fs-extra": {
+          "version": "10.1.0",
+          "resolved": 
"https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+          "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+          "requires": {
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^2.0.0"
+          }
+        }
       }
     },
     "@docusaurus/preset-classic": {
@@ -13904,6 +15466,18 @@
         "lodash": "^4.17.21",
         "tslib": "^2.3.1",
         "utility-types": "^3.10.0"
+      },
+      "dependencies": {
+        "fs-extra": {
+          "version": "10.1.0",
+          "resolved": 
"https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+          "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+          "requires": {
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^2.0.0"
+          }
+        }
       }
     },
     "@docusaurus/theme-translations": {
@@ -13913,6 +15487,18 @@
       "requires": {
         "fs-extra": "^10.0.1",
         "tslib": "^2.3.1"
+      },
+      "dependencies": {
+        "fs-extra": {
+          "version": "10.1.0",
+          "resolved": 
"https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+          "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+          "requires": {
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^2.0.0"
+          }
+        }
       }
     },
     "@docusaurus/types": {
@@ -13948,6 +15534,18 @@
         "tslib": "^2.3.1",
         "url-loader": "^4.1.1",
         "webpack": "^5.69.1"
+      },
+      "dependencies": {
+        "fs-extra": {
+          "version": "10.1.0",
+          "resolved": 
"https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";,
+          "integrity": 
"sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+          "requires": {
+            "graceful-fs": "^4.2.0",
+            "jsonfile": "^6.0.1",
+            "universalify": "^2.0.0"
+          }
+        }
       }
     },
     "@docusaurus/utils-common": {
@@ -13969,6 +15567,167 @@
         "tslib": "^2.3.1"
       }
     },
+    "@esbuild/aix-ppc64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz";,
+      "integrity": 
"sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/android-arm": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz";,
+      "integrity": 
"sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/android-arm64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz";,
+      "integrity": 
"sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/android-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/darwin-arm64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz";,
+      "integrity": 
"sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/darwin-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/freebsd-arm64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz";,
+      "integrity": 
"sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/freebsd-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/linux-arm": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz";,
+      "integrity": 
"sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/linux-arm64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz";,
+      "integrity": 
"sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/linux-ia32": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz";,
+      "integrity": 
"sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/linux-loong64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz";,
+      "integrity": 
"sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/linux-mips64el": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz";,
+      "integrity": 
"sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/linux-ppc64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz";,
+      "integrity": 
"sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/linux-riscv64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz";,
+      "integrity": 
"sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/linux-s390x": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz";,
+      "integrity": 
"sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/linux-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/netbsd-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/openbsd-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/sunos-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/win32-arm64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz";,
+      "integrity": 
"sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/win32-ia32": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz";,
+      "integrity": 
"sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==",
+      "dev": true,
+      "optional": true
+    },
+    "@esbuild/win32-x64": {
+      "version": "0.19.12",
+      "resolved": 
"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz";,
+      "integrity": 
"sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
+      "dev": true,
+      "optional": true
+    },
     "@hapi/hoek": {
       "version": "9.2.1",
       "resolved": 
"https://registry.npmmirror.com/@hapi/hoek/download/@hapi/hoek-9.2.1.tgz";,
@@ -14452,6 +16211,16 @@
         "@types/range-parser": "*"
       }
     },
+    "@types/fs-extra": {
+      "version": "11.0.4",
+      "resolved": 
"https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz";,
+      "integrity": 
"sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==",
+      "dev": true,
+      "requires": {
+        "@types/jsonfile": "*",
+        "@types/node": "*"
+      }
+    },
     "@types/hast": {
       "version": "2.3.4",
       "resolved": 
"https://registry.npmmirror.com/@types/hast/download/@types/hast-2.3.4.tgz";,
@@ -14483,6 +16252,15 @@
       "resolved": 
"https://registry.npmmirror.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz?cache=0&sync_timestamp=1637265456183&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.9.tgz";,
       "integrity": "sha1-l+3JA36gw4WFMgsolk3eOznkZg0="
     },
+    "@types/jsonfile": {
+      "version": "6.1.4",
+      "resolved": 
"https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz";,
+      "integrity": 
"sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==",
+      "dev": true,
+      "requires": {
+        "@types/node": "*"
+      }
+    },
     "@types/mdast": {
       "version": "3.0.10",
       "resolved": 
"https://registry.npmmirror.com/@types/mdast/download/@types/mdast-3.0.10.tgz";,
@@ -16374,6 +18152,37 @@
       "resolved": 
"https://registry.npmmirror.com/es-module-lexer/download/es-module-lexer-0.9.3.tgz?cache=0&sync_timestamp=1633645560577&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fes-module-lexer%2Fdownload%2Fes-module-lexer-0.9.3.tgz";,
       "integrity": "sha1-bxPbAMw4QXE32vdDZvU1yOtDjxk="
     },
+    "esbuild": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz";,
+      "integrity": 
"sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
+      "dev": true,
+      "requires": {
+        "@esbuild/aix-ppc64": "0.19.12",
+        "@esbuild/android-arm": "0.19.12",
+        "@esbuild/android-arm64": "0.19.12",
+        "@esbuild/android-x64": "0.19.12",
+        "@esbuild/darwin-arm64": "0.19.12",
+        "@esbuild/darwin-x64": "0.19.12",
+        "@esbuild/freebsd-arm64": "0.19.12",
+        "@esbuild/freebsd-x64": "0.19.12",
+        "@esbuild/linux-arm": "0.19.12",
+        "@esbuild/linux-arm64": "0.19.12",
+        "@esbuild/linux-ia32": "0.19.12",
+        "@esbuild/linux-loong64": "0.19.12",
+        "@esbuild/linux-mips64el": "0.19.12",
+        "@esbuild/linux-ppc64": "0.19.12",
+        "@esbuild/linux-riscv64": "0.19.12",
+        "@esbuild/linux-s390x": "0.19.12",
+        "@esbuild/linux-x64": "0.19.12",
+        "@esbuild/netbsd-x64": "0.19.12",
+        "@esbuild/openbsd-x64": "0.19.12",
+        "@esbuild/sunos-x64": "0.19.12",
+        "@esbuild/win32-arm64": "0.19.12",
+        "@esbuild/win32-ia32": "0.19.12",
+        "@esbuild/win32-x64": "0.19.12"
+      }
+    },
     "escalade": {
       "version": "3.1.1",
       "resolved": 
"https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567224085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz";,
@@ -16883,9 +18692,10 @@
       "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
     },
     "fs-extra": {
-      "version": "10.0.1",
-      "resolved": 
"https://registry.npmmirror.com/fs-extra/-/fs-extra-10.0.1.tgz";,
-      "integrity": 
"sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==",
+      "version": "11.2.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz";,
+      "integrity": 
"sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+      "dev": true,
       "requires": {
         "graceful-fs": "^4.2.0",
         "jsonfile": "^6.0.1",
@@ -16903,9 +18713,9 @@
       "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
     },
     "fsevents": {
-      "version": "2.3.2",
-      "resolved": 
"https://registry.npmmirror.com/fsevents/download/fsevents-2.3.2.tgz";,
-      "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=",
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz";,
+      "integrity": 
"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
       "optional": true
     },
     "function-bind": {
@@ -16941,6 +18751,15 @@
         "pump": "^3.0.0"
       }
     },
+    "get-tsconfig": {
+      "version": "4.7.2",
+      "resolved": 
"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz";,
+      "integrity": 
"sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==",
+      "dev": true,
+      "requires": {
+        "resolve-pkg-maps": "^1.0.0"
+      }
+    },
     "github-slugger": {
       "version": "1.4.0",
       "resolved": 
"https://registry.nlark.com/github-slugger/download/github-slugger-1.4.0.tgz";,
@@ -19893,6 +21712,12 @@
       "resolved": 
"https://registry.nlark.com/resolve-pathname/download/resolve-pathname-3.0.0.tgz";,
       "integrity": "sha1-mdAiJNPPJjaJvsuzk7xWAxMCXc0="
     },
+    "resolve-pkg-maps": {
+      "version": "1.0.0",
+      "resolved": 
"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz";,
+      "integrity": 
"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+      "dev": true
+    },
     "responselike": {
       "version": "1.0.2",
       "resolved": 
"https://registry.npm.taobao.org/responselike/download/responselike-1.0.2.tgz";,
@@ -20650,6 +22475,17 @@
       "resolved": "https://registry.nlark.com/tslib/download/tslib-2.3.1.tgz";,
       "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE="
     },
+    "tsx": {
+      "version": "4.7.1",
+      "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.1.tgz";,
+      "integrity": 
"sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==",
+      "dev": true,
+      "requires": {
+        "esbuild": "~0.19.10",
+        "fsevents": "~2.3.3",
+        "get-tsconfig": "^4.7.2"
+      }
+    },
     "type-fest": {
       "version": "2.12.0",
       "resolved": 
"https://registry.npmmirror.com/type-fest/-/type-fest-2.12.0.tgz";,
diff --git a/package.json b/package.json
index f8f79fd6512..c7fa2d63a37 100644
--- a/package.json
+++ b/package.json
@@ -4,6 +4,7 @@
   "private": true,
   "scripts": {
     "docusaurus": "docusaurus",
+    "sync": "tsx tools/build-docs.ts",
     "start": "docusaurus start",
     "start-zh": "docusaurus start --locale zh-CN",
     "build": "docusaurus build",
@@ -32,9 +33,12 @@
   "devDependencies": {
     "@docusaurus/module-type-aliases": "2.0.0-beta.16",
     "@tsconfig/docusaurus": "^1.0.4",
+    "@types/fs-extra": "^11.0.4",
     "docusaurus-plugin-less": "^2.0.2",
+    "fs-extra": "^11.2.0",
     "less": "^4.1.2",
     "less-loader": "^10.2.0",
+    "tsx": "^4.7.1",
     "typescript": "^4.5.5"
   },
   "browserslist": {
diff --git a/tools/build-docs.ts b/tools/build-docs.ts
new file mode 100644
index 00000000000..805c6690108
--- /dev/null
+++ b/tools/build-docs.ts
@@ -0,0 +1,109 @@
+import * as child_process from 'child_process';
+import * as fs from 'fs';
+import * as path from 'path';
+import { copySync } from 'fs-extra';
+
+// Set up constants
+const SOURCE_PATH = path.join(__dirname, '..');
+const PROJECT_NAME = 'seatunnel';
+const PROJECT_BRANCH_NAME = 'dev';
+const SWAP_DIR = path.join(SOURCE_PATH, 'swap');
+const PROJECT_SITE_IMG_DIR = path.join(SOURCE_PATH, 'static', 'image_en');
+const PROJECT_SITE_ZH_IMG_DIR = path.join(SOURCE_PATH, 'static', 'image_zh');
+const PROJECT_SITE_DOC_DIR = path.join(SOURCE_PATH, 'docs');
+const PROJECT_SITE_ZH_DOC_DIR = path.join(SOURCE_PATH, 'i18n', 'zh-CN', 
'docusaurus-plugin-content-docs', 'current');
+const PROJECT_DIR = path.join(SWAP_DIR, PROJECT_NAME);
+const PROJECT_IMG_DIR = path.join(PROJECT_DIR, 'docs', 'en', 'images');
+const PROJECT_DOC_DIR = path.join(PROJECT_DIR, 'docs', 'en');
+const PROJECT_ZH_DOC_DIR = path.join(PROJECT_DIR, 'docs', 'zh');
+const PROJECT_SIDEBAR_PATH = path.join(PROJECT_DIR, 'docs', 'sidebars.js');
+const DOCUSAURUS_DOC_SIDEBARS_FILE = path.join(SOURCE_PATH, 'sidebars.js');
+
+// Determine protocol mode
+const PROTOCOL_MODE = process.env.PROTOCOL_MODE || 'HTTP';
+const PROJECT_REPO =
+  PROTOCOL_MODE === 'ssh'
+    ? `[email protected]:apache/${PROJECT_NAME}.git`
+    : `https://github.com/apache/${PROJECT_NAME}.git`;
+
+// Utility function to rebuild directories
+function rebuildDirs(...dirs: string[]) {
+  for (const dir of dirs) {
+    console.log(`  ---> Rebuild directory ${dir}`);
+    if (fs.existsSync(dir)) {
+      fs.rmSync(dir, { recursive: true });
+    }
+    fs.mkdirSync(dir, { recursive: true });
+  }
+}
+
+// Utility function to remove existing files
+function rmExistsFiles(...files: string[]) {
+  for (const file of files) {
+    console.log(`  ---> Remove exists ${file}`);
+    if (fs.existsSync(file)) {
+      fs.rmSync(file);
+    }
+  }
+}
+
+// Utility function to clone repository
+function cloneRepo(repo: string, branch: string, targetPath: string) {
+  console.log(`  ---> Start clone repository ${repo} branch ${branch} to 
directory ${targetPath}`);
+  child_process.execSync(`git clone --depth 1 --branch ${branch} ${repo} 
${targetPath}`);
+}
+
+// Utility function to replace image paths
+function replaceImagesPath(replaceDir: string, to: string = '/image_en') {
+  for (const fileName of fs.readdirSync(replaceDir)) {
+    const filePath = path.join(replaceDir, fileName);
+    if (fs.statSync(filePath).isDirectory()) {
+      replaceImagesPath(filePath);
+    } else if (filePath.endsWith('.md') || filePath.endsWith('.mdx')) {
+      console.log(`  ---> Replace images path to /doc/image_en in 
${filePath}`);
+      let content = fs.readFileSync(filePath, 'utf-8');
+      content = content.replace(/(\.\.\/)*images/g, to);
+      fs.writeFileSync(filePath, content);
+    }
+  }
+}
+
+// Main function to prepare docs
+function prepareDocs() {
+  console.log('===>>>: Start documents sync.');
+
+  console.log('===>>>: Rebuild directory swap, docs, static/image_en.');
+  rebuildDirs(SWAP_DIR, PROJECT_SITE_DOC_DIR, PROJECT_SITE_IMG_DIR);
+
+  console.log('===>>>: Remove exists file sidebars.js.');
+  rmExistsFiles(DOCUSAURUS_DOC_SIDEBARS_FILE);
+
+  console.log('===>>>: Clone project main codebase repositories.');
+  cloneRepo(PROJECT_REPO, PROJECT_BRANCH_NAME, PROJECT_DIR);
+
+  console.log(`===>>>: Rsync sidebars.js to ${DOCUSAURUS_DOC_SIDEBARS_FILE}`);
+  fs.copyFileSync(PROJECT_SIDEBAR_PATH, DOCUSAURUS_DOC_SIDEBARS_FILE);
+
+  console.log(`===>>>: Rsync images to ${PROJECT_SITE_IMG_DIR}`);
+  copySync(PROJECT_IMG_DIR, PROJECT_SITE_IMG_DIR, {});
+
+  console.log(`===>>>: Rsync images to ${PROJECT_SITE_ZH_IMG_DIR}`);
+  copySync(PROJECT_IMG_DIR, PROJECT_SITE_ZH_IMG_DIR, {});
+
+  console.log(`===>>>: Rsync documents exclude images to 
${PROJECT_SITE_DOC_DIR}`);
+  copySync(PROJECT_DOC_DIR, PROJECT_SITE_DOC_DIR, { filter: (src) => 
!src.endsWith('images') });
+
+  console.log(`===>>>: Rsync zh documents to ${PROJECT_ZH_DOC_DIR}`);
+  copySync(PROJECT_ZH_DOC_DIR, PROJECT_SITE_ZH_DOC_DIR, { filter: (src) => 
!src.endsWith('images') });
+
+  console.log(`===>>>: Replace images path in ${PROJECT_SITE_DOC_DIR}`);
+  replaceImagesPath(PROJECT_SITE_DOC_DIR);
+
+  console.log(`===>>>: Replace images path in ${PROJECT_SITE_ZH_DOC_DIR}`);
+  replaceImagesPath(PROJECT_SITE_ZH_DOC_DIR, '/image_zh');
+
+  console.log('===>>>: End documents sync');
+}
+
+// Execute the main function
+prepareDocs();
diff --git a/tsconfig.json b/tsconfig.json
index 6f4756980d4..1dec247560e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -3,5 +3,8 @@
   "extends": "@tsconfig/docusaurus/tsconfig.json",
   "compilerOptions": {
     "baseUrl": "."
-  }
-}
+  },
+  "include": [
+    "tools"
+  ]
+}
\ No newline at end of file

Reply via email to