From b5aa07ba651f836c569944ad86d83cd5cf5cc68f Mon Sep 17 00:00:00 2001 From: Kelvin Clement Mwinuka Date: Tue, 10 Sep 2024 23:47:30 +0800 Subject: [PATCH 1/8] Added docs folder at the project root. Added build_docs and publish_docs jobs to the release workflow. Added test-deploy workflow that is triggered by a PR to the main branch --- .github/workflows/release.yml | 42 + .github/workflows/test-deploy.yml | 30 + docs/.gitignore | 21 + docs/CNAME | 1 + docs/babel.config.js | 3 + docs/blog/authors.yml | 5 + docs/docs/acl.md | 199 + docs/docs/architecture/index.md | 11 + docs/docs/commands/acl/acl_cat.mdx | 59 + docs/docs/commands/acl/acl_deluser.mdx | 47 + docs/docs/commands/acl/acl_getuser.mdx | 77 + docs/docs/commands/acl/acl_list.mdx | 47 + docs/docs/commands/acl/acl_load.mdx | 58 + docs/docs/commands/acl/acl_save.mdx | 49 + docs/docs/commands/acl/acl_setuser.mdx | 123 + docs/docs/commands/acl/acl_users.mdx | 47 + docs/docs/commands/acl/acl_whoami.mdx | 38 + docs/docs/commands/acl/index.md | 1 + docs/docs/commands/admin/command_count.mdx | 46 + docs/docs/commands/admin/command_list.mdx | 94 + docs/docs/commands/admin/commands.mdx | 40 + docs/docs/commands/admin/index.md | 1 + docs/docs/commands/admin/lastsave.mdx | 47 + docs/docs/commands/admin/module_list.mdx | 47 + docs/docs/commands/admin/module_load.mdx | 63 + docs/docs/commands/admin/module_unload.mdx | 47 + docs/docs/commands/admin/rewriteaof.mdx | 47 + docs/docs/commands/admin/save.mdx | 47 + docs/docs/commands/connection/auth.mdx | 46 + docs/docs/commands/connection/hello.mdx | 86 + docs/docs/commands/connection/index.md | 1 + docs/docs/commands/connection/ping.mdx | 46 + docs/docs/commands/connection/select.mdx | 50 + docs/docs/commands/connection/swapdb.mdx | 52 + docs/docs/commands/generic/decr.mdx | 50 + docs/docs/commands/generic/decrby.mdx | 48 + docs/docs/commands/generic/del.mdx | 61 + docs/docs/commands/generic/expire.mdx | 96 + docs/docs/commands/generic/expiretime.mdx | 47 + docs/docs/commands/generic/flushall.mdx | 48 + docs/docs/commands/generic/flushdb.mdx | 48 + docs/docs/commands/generic/get.mdx | 47 + docs/docs/commands/generic/incr.mdx | 48 + docs/docs/commands/generic/incrby.mdx | 49 + docs/docs/commands/generic/index.md | 1 + docs/docs/commands/generic/mget.mdx | 47 + docs/docs/commands/generic/mset.mdx | 46 + docs/docs/commands/generic/persist.mdx | 47 + docs/docs/commands/generic/pexpire.mdx | 95 + docs/docs/commands/generic/pexpiretime.mdx | 50 + docs/docs/commands/generic/pttl.mdx | 49 + docs/docs/commands/generic/rename.mdx | 46 + docs/docs/commands/generic/set.mdx | 98 + docs/docs/commands/generic/ttl.mdx | 49 + docs/docs/commands/hash/hdel.mdx | 48 + docs/docs/commands/hash/hexists.mdx | 48 + docs/docs/commands/hash/hget.mdx | 47 + docs/docs/commands/hash/hgetall.mdx | 47 + docs/docs/commands/hash/hincrby.mdx | 47 + docs/docs/commands/hash/hincrbyfloat.mdx | 47 + docs/docs/commands/hash/hkeys.mdx | 47 + docs/docs/commands/hash/hlen.mdx | 47 + docs/docs/commands/hash/hrandfield.mdx | 51 + docs/docs/commands/hash/hset.mdx | 48 + docs/docs/commands/hash/hsetnx.mdx | 47 + docs/docs/commands/hash/hstrlen.mdx | 48 + docs/docs/commands/hash/hvals.mdx | 47 + docs/docs/commands/hash/index.md | 1 + docs/docs/commands/index.md | 5 + docs/docs/commands/list/index.md | 1 + docs/docs/commands/list/lindex.mdx | 47 + docs/docs/commands/list/llen.mdx | 47 + docs/docs/commands/list/lmove.mdx | 48 + docs/docs/commands/list/lpop.mdx | 47 + docs/docs/commands/list/lpush.mdx | 47 + docs/docs/commands/list/lpushx.mdx | 47 + docs/docs/commands/list/lrange.mdx | 47 + docs/docs/commands/list/lrem.mdx | 47 + docs/docs/commands/list/lset.mdx | 47 + docs/docs/commands/list/ltrim.mdx | 47 + docs/docs/commands/list/rpop.mdx | 47 + docs/docs/commands/list/rpush.mdx | 47 + docs/docs/commands/list/rpushx.mdx | 47 + docs/docs/commands/pubsub/index.md | 1 + docs/docs/commands/pubsub/psubscribe.mdx | 57 + docs/docs/commands/pubsub/publish.mdx | 46 + docs/docs/commands/pubsub/pubsub_channels.mdx | 50 + docs/docs/commands/pubsub/pubsub_numpat.mdx | 46 + docs/docs/commands/pubsub/pubsub_numsub.mdx | 49 + docs/docs/commands/pubsub/punsubscribe.mdx | 61 + docs/docs/commands/pubsub/subscribe.mdx | 57 + docs/docs/commands/pubsub/unsubscribe.mdx | 61 + docs/docs/commands/set/index.md | 1 + docs/docs/commands/set/sadd.mdx | 47 + docs/docs/commands/set/scard.mdx | 47 + docs/docs/commands/set/sdiff.mdx | 47 + docs/docs/commands/set/sdiffstore.mdx | 47 + docs/docs/commands/set/sinter.mdx | 47 + docs/docs/commands/set/sintercard.mdx | 65 + docs/docs/commands/set/sinterstore.mdx | 47 + docs/docs/commands/set/sismember.mdx | 47 + docs/docs/commands/set/smembers.mdx | 47 + docs/docs/commands/set/smismember.mdx | 47 + docs/docs/commands/set/smove.mdx | 47 + docs/docs/commands/set/spop.mdx | 61 + docs/docs/commands/set/srandmember.mdx | 71 + docs/docs/commands/set/srem.mdx | 47 + docs/docs/commands/set/sunion.mdx | 47 + docs/docs/commands/set/sunionstore.mdx | 48 + docs/docs/commands/sorted_set/index.md | 1 + docs/docs/commands/sorted_set/zadd.mdx | 95 + docs/docs/commands/sorted_set/zcard.mdx | 49 + docs/docs/commands/sorted_set/zcount.mdx | 49 + docs/docs/commands/sorted_set/zdiff.mdx | 64 + docs/docs/commands/sorted_set/zdiffstore.mdx | 48 + docs/docs/commands/sorted_set/zincrby.mdx | 51 + docs/docs/commands/sorted_set/zinter.mdx | 73 + docs/docs/commands/sorted_set/zinterstore.mdx | 75 + docs/docs/commands/sorted_set/zlexcount.mdx | 49 + docs/docs/commands/sorted_set/zmpop.mdx | 48 + docs/docs/commands/sorted_set/zmscore.mdx | 48 + docs/docs/commands/sorted_set/zpopmax.mdx | 48 + docs/docs/commands/sorted_set/zpopmin.mdx | 48 + docs/docs/commands/sorted_set/zrandmember.mdx | 77 + docs/docs/commands/sorted_set/zrange.mdx | 62 + docs/docs/commands/sorted_set/zrangestore.mdx | 64 + docs/docs/commands/sorted_set/zrank.mdx | 51 + docs/docs/commands/sorted_set/zrem.mdx | 47 + .../commands/sorted_set/zremrangebylex.mdx | 47 + .../commands/sorted_set/zremrangebyrank.mdx | 48 + .../commands/sorted_set/zremrangebyscore.mdx | 47 + docs/docs/commands/sorted_set/zrevrank.mdx | 51 + docs/docs/commands/sorted_set/zscore.mdx | 47 + docs/docs/commands/sorted_set/zunion.mdx | 74 + docs/docs/commands/sorted_set/zunionstore.mdx | 75 + docs/docs/commands/string/getrange.mdx | 47 + docs/docs/commands/string/index.md | 1 + docs/docs/commands/string/setrange.mdx | 47 + docs/docs/commands/string/strlen.mdx | 47 + docs/docs/commands/string/substr.mdx | 47 + docs/docs/configuration.md | 127 + docs/docs/contribution.md | 25 + docs/docs/eviction.md | 42 + docs/docs/extension/embedded.md | 323 + docs/docs/extension/index.md | 11 + docs/docs/extension/shared_object.md | 238 + docs/docs/intro.md | 98 + docs/docs/persistence/append-only.md | 27 + docs/docs/persistence/index.md | 14 + docs/docs/persistence/snapshot.md | 16 + docs/docusaurus.config.ts | 121 + docs/package.json | 47 + docs/pnpm-lock.yaml | 10401 ++++++++++++++++ docs/sidebars.ts | 31 + docs/src/css/custom.css | 121 + docs/src/pages/index.mdx | 24 + docs/src/theme/MDXComponents.ts | 9 + docs/static/.nojekyll | 0 docs/static/img/EchoVault Cover.png | Bin 0 -> 300785 bytes docs/static/img/docusaurus-social-card.jpg | Bin 0 -> 55746 bytes docs/static/img/docusaurus.png | Bin 0 -> 5142 bytes docs/static/img/echovault-logo.png | Bin 0 -> 47024 bytes docs/static/img/favicon.ico | Bin 0 -> 3626 bytes docs/static/img/logo.svg | 1 + docs/static/img/ram.png | Bin 0 -> 60751 bytes .../static/img/undraw_docusaurus_mountain.svg | 171 + docs/static/img/undraw_docusaurus_react.svg | 170 + docs/static/img/undraw_docusaurus_tree.svg | 40 + docs/tsconfig.json | 8 + docs/yarn.lock | 8466 +++++++++++++ 170 files changed, 27320 insertions(+) create mode 100644 .github/workflows/test-deploy.yml create mode 100644 docs/.gitignore create mode 100644 docs/CNAME create mode 100644 docs/babel.config.js create mode 100644 docs/blog/authors.yml create mode 100644 docs/docs/acl.md create mode 100644 docs/docs/architecture/index.md create mode 100644 docs/docs/commands/acl/acl_cat.mdx create mode 100644 docs/docs/commands/acl/acl_deluser.mdx create mode 100644 docs/docs/commands/acl/acl_getuser.mdx create mode 100644 docs/docs/commands/acl/acl_list.mdx create mode 100644 docs/docs/commands/acl/acl_load.mdx create mode 100644 docs/docs/commands/acl/acl_save.mdx create mode 100644 docs/docs/commands/acl/acl_setuser.mdx create mode 100644 docs/docs/commands/acl/acl_users.mdx create mode 100644 docs/docs/commands/acl/acl_whoami.mdx create mode 100644 docs/docs/commands/acl/index.md create mode 100644 docs/docs/commands/admin/command_count.mdx create mode 100644 docs/docs/commands/admin/command_list.mdx create mode 100644 docs/docs/commands/admin/commands.mdx create mode 100644 docs/docs/commands/admin/index.md create mode 100644 docs/docs/commands/admin/lastsave.mdx create mode 100644 docs/docs/commands/admin/module_list.mdx create mode 100644 docs/docs/commands/admin/module_load.mdx create mode 100644 docs/docs/commands/admin/module_unload.mdx create mode 100644 docs/docs/commands/admin/rewriteaof.mdx create mode 100644 docs/docs/commands/admin/save.mdx create mode 100644 docs/docs/commands/connection/auth.mdx create mode 100644 docs/docs/commands/connection/hello.mdx create mode 100644 docs/docs/commands/connection/index.md create mode 100644 docs/docs/commands/connection/ping.mdx create mode 100644 docs/docs/commands/connection/select.mdx create mode 100644 docs/docs/commands/connection/swapdb.mdx create mode 100644 docs/docs/commands/generic/decr.mdx create mode 100644 docs/docs/commands/generic/decrby.mdx create mode 100644 docs/docs/commands/generic/del.mdx create mode 100644 docs/docs/commands/generic/expire.mdx create mode 100644 docs/docs/commands/generic/expiretime.mdx create mode 100644 docs/docs/commands/generic/flushall.mdx create mode 100644 docs/docs/commands/generic/flushdb.mdx create mode 100644 docs/docs/commands/generic/get.mdx create mode 100644 docs/docs/commands/generic/incr.mdx create mode 100644 docs/docs/commands/generic/incrby.mdx create mode 100644 docs/docs/commands/generic/index.md create mode 100644 docs/docs/commands/generic/mget.mdx create mode 100644 docs/docs/commands/generic/mset.mdx create mode 100644 docs/docs/commands/generic/persist.mdx create mode 100644 docs/docs/commands/generic/pexpire.mdx create mode 100644 docs/docs/commands/generic/pexpiretime.mdx create mode 100644 docs/docs/commands/generic/pttl.mdx create mode 100644 docs/docs/commands/generic/rename.mdx create mode 100644 docs/docs/commands/generic/set.mdx create mode 100644 docs/docs/commands/generic/ttl.mdx create mode 100644 docs/docs/commands/hash/hdel.mdx create mode 100644 docs/docs/commands/hash/hexists.mdx create mode 100644 docs/docs/commands/hash/hget.mdx create mode 100644 docs/docs/commands/hash/hgetall.mdx create mode 100644 docs/docs/commands/hash/hincrby.mdx create mode 100644 docs/docs/commands/hash/hincrbyfloat.mdx create mode 100644 docs/docs/commands/hash/hkeys.mdx create mode 100644 docs/docs/commands/hash/hlen.mdx create mode 100644 docs/docs/commands/hash/hrandfield.mdx create mode 100644 docs/docs/commands/hash/hset.mdx create mode 100644 docs/docs/commands/hash/hsetnx.mdx create mode 100644 docs/docs/commands/hash/hstrlen.mdx create mode 100644 docs/docs/commands/hash/hvals.mdx create mode 100644 docs/docs/commands/hash/index.md create mode 100644 docs/docs/commands/index.md create mode 100644 docs/docs/commands/list/index.md create mode 100644 docs/docs/commands/list/lindex.mdx create mode 100644 docs/docs/commands/list/llen.mdx create mode 100644 docs/docs/commands/list/lmove.mdx create mode 100644 docs/docs/commands/list/lpop.mdx create mode 100644 docs/docs/commands/list/lpush.mdx create mode 100644 docs/docs/commands/list/lpushx.mdx create mode 100644 docs/docs/commands/list/lrange.mdx create mode 100644 docs/docs/commands/list/lrem.mdx create mode 100644 docs/docs/commands/list/lset.mdx create mode 100644 docs/docs/commands/list/ltrim.mdx create mode 100644 docs/docs/commands/list/rpop.mdx create mode 100644 docs/docs/commands/list/rpush.mdx create mode 100644 docs/docs/commands/list/rpushx.mdx create mode 100644 docs/docs/commands/pubsub/index.md create mode 100644 docs/docs/commands/pubsub/psubscribe.mdx create mode 100644 docs/docs/commands/pubsub/publish.mdx create mode 100644 docs/docs/commands/pubsub/pubsub_channels.mdx create mode 100644 docs/docs/commands/pubsub/pubsub_numpat.mdx create mode 100644 docs/docs/commands/pubsub/pubsub_numsub.mdx create mode 100644 docs/docs/commands/pubsub/punsubscribe.mdx create mode 100644 docs/docs/commands/pubsub/subscribe.mdx create mode 100644 docs/docs/commands/pubsub/unsubscribe.mdx create mode 100644 docs/docs/commands/set/index.md create mode 100644 docs/docs/commands/set/sadd.mdx create mode 100644 docs/docs/commands/set/scard.mdx create mode 100644 docs/docs/commands/set/sdiff.mdx create mode 100644 docs/docs/commands/set/sdiffstore.mdx create mode 100644 docs/docs/commands/set/sinter.mdx create mode 100644 docs/docs/commands/set/sintercard.mdx create mode 100644 docs/docs/commands/set/sinterstore.mdx create mode 100644 docs/docs/commands/set/sismember.mdx create mode 100644 docs/docs/commands/set/smembers.mdx create mode 100644 docs/docs/commands/set/smismember.mdx create mode 100644 docs/docs/commands/set/smove.mdx create mode 100644 docs/docs/commands/set/spop.mdx create mode 100644 docs/docs/commands/set/srandmember.mdx create mode 100644 docs/docs/commands/set/srem.mdx create mode 100644 docs/docs/commands/set/sunion.mdx create mode 100644 docs/docs/commands/set/sunionstore.mdx create mode 100644 docs/docs/commands/sorted_set/index.md create mode 100644 docs/docs/commands/sorted_set/zadd.mdx create mode 100644 docs/docs/commands/sorted_set/zcard.mdx create mode 100644 docs/docs/commands/sorted_set/zcount.mdx create mode 100644 docs/docs/commands/sorted_set/zdiff.mdx create mode 100644 docs/docs/commands/sorted_set/zdiffstore.mdx create mode 100644 docs/docs/commands/sorted_set/zincrby.mdx create mode 100644 docs/docs/commands/sorted_set/zinter.mdx create mode 100644 docs/docs/commands/sorted_set/zinterstore.mdx create mode 100644 docs/docs/commands/sorted_set/zlexcount.mdx create mode 100644 docs/docs/commands/sorted_set/zmpop.mdx create mode 100644 docs/docs/commands/sorted_set/zmscore.mdx create mode 100644 docs/docs/commands/sorted_set/zpopmax.mdx create mode 100644 docs/docs/commands/sorted_set/zpopmin.mdx create mode 100644 docs/docs/commands/sorted_set/zrandmember.mdx create mode 100644 docs/docs/commands/sorted_set/zrange.mdx create mode 100644 docs/docs/commands/sorted_set/zrangestore.mdx create mode 100644 docs/docs/commands/sorted_set/zrank.mdx create mode 100644 docs/docs/commands/sorted_set/zrem.mdx create mode 100644 docs/docs/commands/sorted_set/zremrangebylex.mdx create mode 100644 docs/docs/commands/sorted_set/zremrangebyrank.mdx create mode 100644 docs/docs/commands/sorted_set/zremrangebyscore.mdx create mode 100644 docs/docs/commands/sorted_set/zrevrank.mdx create mode 100644 docs/docs/commands/sorted_set/zscore.mdx create mode 100644 docs/docs/commands/sorted_set/zunion.mdx create mode 100644 docs/docs/commands/sorted_set/zunionstore.mdx create mode 100644 docs/docs/commands/string/getrange.mdx create mode 100644 docs/docs/commands/string/index.md create mode 100644 docs/docs/commands/string/setrange.mdx create mode 100644 docs/docs/commands/string/strlen.mdx create mode 100644 docs/docs/commands/string/substr.mdx create mode 100644 docs/docs/configuration.md create mode 100644 docs/docs/contribution.md create mode 100644 docs/docs/eviction.md create mode 100644 docs/docs/extension/embedded.md create mode 100644 docs/docs/extension/index.md create mode 100644 docs/docs/extension/shared_object.md create mode 100644 docs/docs/intro.md create mode 100644 docs/docs/persistence/append-only.md create mode 100644 docs/docs/persistence/index.md create mode 100644 docs/docs/persistence/snapshot.md create mode 100644 docs/docusaurus.config.ts create mode 100644 docs/package.json create mode 100644 docs/pnpm-lock.yaml create mode 100644 docs/sidebars.ts create mode 100644 docs/src/css/custom.css create mode 100644 docs/src/pages/index.mdx create mode 100644 docs/src/theme/MDXComponents.ts create mode 100644 docs/static/.nojekyll create mode 100644 docs/static/img/EchoVault Cover.png create mode 100644 docs/static/img/docusaurus-social-card.jpg create mode 100644 docs/static/img/docusaurus.png create mode 100644 docs/static/img/echovault-logo.png create mode 100644 docs/static/img/favicon.ico create mode 100644 docs/static/img/logo.svg create mode 100644 docs/static/img/ram.png create mode 100644 docs/static/img/undraw_docusaurus_mountain.svg create mode 100644 docs/static/img/undraw_docusaurus_react.svg create mode 100644 docs/static/img/undraw_docusaurus_tree.svg create mode 100644 docs/tsconfig.json create mode 100644 docs/yarn.lock diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4ff31cf8..0ae601a0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,4 +74,46 @@ jobs: subject-digest: ${{ steps.push.outputs.digest }} push-to-registry: true + build_docs: + name: Build docusaurus documentation + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: pnpm/action-setup@v4 + name: Install pnpm + with: + version: 9 + - uses: actions/setup-node@v4 + with: + node-version: 18 + cache: pnpm + cache-dependency-path: ./docs/pnpm-lock.yaml + - name: Install dependencies + run: pnpm install + - name: Build website + run: pnpm run build + - name: Upload Build Artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./docs/build + + publish_docs: + name: Publish docusaurus docs to GitHub pages + needs: build_docs + permissions: + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + environment: + # Deploy to the github-pages environment + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 + diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml new file mode 100644 index 00000000..7321e37b --- /dev/null +++ b/.github/workflows/test-deploy.yml @@ -0,0 +1,30 @@ +name: Test deployment + +on: + pull_request: + branches: + - main + # Review gh actions docs if you want to further define triggers, paths, etc + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on + +jobs: + test-deploy: + name: Test deployment + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: pnpm/action-setup@v4 + name: Install pnpm + with: + version: 9 + - uses: actions/setup-node@v4 + with: + node-version: 18 + cache: pnpm + cache-directory-path: ./docs/pnpm-lock.yaml + - name: Install dependencies + run: pnpm install + - name: Test build website + run: pnpm run build \ No newline at end of file diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..31c3b1bb --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,21 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader +.next + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 00000000..7c647cc3 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +echovault.io \ No newline at end of file diff --git a/docs/babel.config.js b/docs/babel.config.js new file mode 100644 index 00000000..e00595da --- /dev/null +++ b/docs/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve('@docusaurus/core/lib/babel/preset')], +}; diff --git a/docs/blog/authors.yml b/docs/blog/authors.yml new file mode 100644 index 00000000..a524b5f6 --- /dev/null +++ b/docs/blog/authors.yml @@ -0,0 +1,5 @@ +kelvinmwinuka: + name: Kelvin Clement Mwinuka + title: EchoVault Maintainer + url: https://kelvinmwinuka.com + image_url: https://github.com/kelvinmwinuka.png diff --git a/docs/docs/acl.md b/docs/docs/acl.md new file mode 100644 index 00000000..2c56eff3 --- /dev/null +++ b/docs/docs/acl.md @@ -0,0 +1,199 @@ +--- +sidebar_position: 7 +--- + +# Access Control List + +Access Control Lists enable you to add a layer of security to the EchoVault server or cluster. You can create users with associated rules and require clients to authorize before executing commands on the server. + +EchoVault creates a default user upon startup. You can see this user by executing the following command: + +``` +> ACL LIST +1) "default on +@all +all %RW~* +&*" +``` + +The default user is enabled, and has access to all categories, commands, keys and pub/sub channels. Connections are associated with user by default. + +You can configure the default user to require a passwords by using the following configuration options: + +- `--require-pass` forces the EchoVault server to require a user to authenticate itself using a password and/or username. + +- `--password` attaches the provided password to the default user. + +## Authorization + +The TCP client can authenticate itself using the `AUTH` command: + +`AUTH ` tries to authenticate the TCP connection with the provided username and password. + +`AUTH ` tries to authenticate the TCP connection with the default user and the provided passsword. + +Authorization is not supported in embedded mode. When an EchoVault instance is embedded, it autimatically has access to all the commands exposed by the API. + +## Configuration files + +You can configure ACL Rules by passing the path to the config file to the `--acl-config=` flag. The configuration file can be either a YAML or JSON file. + +### YAML Config example + +```yaml +- Username: "user1" + Enabled: true + NoPassword: false + NoKeys: false + Passwords: + - PasswordType: "plaintext" + PasswordValue: "password1" + - PasswordType: "SHA256" + PasswordValue: "6cf615d5bcaac778352a8f1f3360d23f02f34ec182e259897fd6ce485d7870d4" + IncludedCategories: ["*"] + ExcludedCategories: [] + IncludedReadKeys: ["*"] + IncludedWriteKeys: ["*"] + IncludedPubSubChannels: ["*"] + ExcludedPubSubChannels: [] + +- Username: "user2" + Enabled: true + NoPassword: false + NoKeys: false + Passwords: + - PasswordType: "plaintext" + PasswordValue: "password4" + - PasswordType: "SHA256" + PasswordValue: "8b2c86ea9cf2ea4eb517fd1e06b74f399e7fec0fef92e3b482a6cf2e2b092023" + IncludedCategories: ["hash", "set", "sortedset", "list", "generic"] + ExcludedCategories: [] + IncludedReadKeys: ["*"] + IncludedWriteKeys: ["*"] + IncludedPubSubChannels: ["user:channel:*"] + ExcludedPubSubChannels: ["admin:channel:*"] +``` + +### JSON Config example + +```json +[ + { + "Username": "user1", + "Enabled": true, + "NoPassword": false, + "NoKeys": false, + "Passwords": [ + { + "PasswordType": "plaintext", + "PasswordValue": "password1" + }, + { + "PasswordType": "SHA256", + "PasswordValue": "6cf615d5bcaac778352a8f1f3360d23f02f34ec182e259897fd6ce485d7870d4" + } + ], + "IncludedCategories": ["*"], + "ExcludedCategories": [], + "IncludedReadKeys": ["*"], + "IncludedWriteKeys": ["*"], + "IncludedPubSubChannels": ["*"], + "ExcludedPubSubChannels": [] + }, + { + "Username": "user2", + "Enabled": true, + "NoPassword": false, + "NoKeys": false, + "Passwords": [ + { + "PasswordType": "plaintext", + "PasswordValue": "password4" + }, + { + "PasswordType": "SHA256", + "PasswordValue": "8b2c86ea9cf2ea4eb517fd1e06b74f399e7fec0fef92e3b482a6cf2e2b092023" + } + ], + "IncludedCategories": ["hash", "set", "sortedset", "list", "generic"], + "ExcludedCategories": [], + "IncludedReadKeys": ["*"], + "IncludedWriteKeys": ["*"], + "IncludedPubSubChannels": ["user:channel:*"], + "ExcludedPubSubChannels": ["admin:channel:*"] + } +] +``` + +## ACL rules + +ACL rules allow you to add new user profiles and set fine-grained rules that determine what clients can do on the server. + +The default user's rules are very permissive so if you want to restrict access, you will have to explicitly configure ACL rules. The default user can be configured too. + +### Enable and disable users + +- `on` - Enable this user. A TCP connection can authenticate as this user. +- `off` - Disable this user. It's impossible to authenticate as thsi user. + +### Allow and disallow categories + +- `+@all` - Allow this user to access all categories (aliased by `allCategories` and `+@*`). This overrides all other category access rules. +- `-@all` - Block this user from accessing any categories (aliased by `-@*`, and `nocommands`). This overrides all other category access rules. +- `+@` - Allow this user to access the specified category. If updating an existing user, then this category will be added to the list of categories they are allowed to access. +- `-@` - Block the user from accessing this specific category. If updating an existing user, then this category is removed from the list of categories the user is allowed to access. + +If both `+@all` and `-@all` are specified, whichever one is specified last will take effect. + +The `nocommands` flag will apply the `-@all` rule. + +### Allow and disallow commands + +- `+all` - Allow this user to execute all commands (aliased by `allCommands`). This overrides all other command access rules. +- `-all` - Block this user from executing any commands. This overrides all other command access rules. +- `+` - Allow the user to access the specified command. In order to allow the user to access only a specific subcommand, you can use `+|`. +- `-` - Block this user from executing any commands. In order to allow the user to access only a specific subscommand, you can user `-|`. + +If both `+all` and `-all` are specified, whichever one is specified last will take effect. + +The `nocommands` flag will apply the `-all` rule. + +### Allow and disallow access to keys + +By default, EchoVault allows each user to read and write to all keys. If you'd like to control what keys users have access to and what they can do with those keys, you can make use of the following options: + +- `%RW~*` - Allow this user to read and write all keys on the EchoVault isntance (aliased by `allKeys`). +- `%RW~` - Allow this user to read and write to the specified key. This option accepts a glob pattern for the key which allows you to restrict certain key patterns. +- `%W~*` - Allow the user to write to all keys. +- `%W~` - Block the user from writing to any keys except the one specified. A glob pattern can be used in place of the key. +- `%R~*` - Allow the user to read from all the keys. +- `%R~` - Block the user from reading any keys except the one specified. A glob pattern can be used in place of the key. + +### Allow and disallow Pub/Sub channels + +- `+&*` - Allow this user to access all pub/sub channels (aliased by `allChannels`). +- `-&*` - Block this user from accessing any of the pub/sub channels. +- `+&` - Allow this user to access the specied channel. This rule accepts a glob pattern (e.g. "channel\*"). +- `-&` - Block this user from accessing the specied channel. This rule accepts a glob pattern (e.g. "channel\*"). + +If both `+&*` and `-&*` are specified, the one specified last will take effect. + +### Add and remove passwords + +By default users have no password and require no password to authenticate against them except when the `--require-pass` configuration is `true`. You can add and remove passwords associated with a user using the following options: + +- `>` - Adds the plaintext password to the list of passwords associated with the user. +- `<` - Removes the plaintext password from the list of passwords associated with the user. +- `#` - Adds the hash to the list of passwords associated with the user. The hash must be a SHA256 hash. When the user is being authenticated, they provide a plaintext passwords and the passwords will be compared with the user's plaintext passwords. If no match is found, the password's SHA256 hash is compared with the list of password hashes associated with the user. +- `!` - Removes the SHA256 hash from the list of passwords hashes associated with the user. + +### Reset the user + +You can pass certain flags to make sweeping updates to a user's ACL rules. These flags often reset the granular rules specified above. + +- `nopass` - Deletes all the user's associated passwords. Future TCP connections will not need to provide a password to authenticate against this user. +- `resetpass` - Deletes all the user's associated passwords, but does not set the `nopass` flag to true. +- `nocommands` - Blocks the user from executing any commands. +- `resetkeys` - Blocks the user from accesssing any keys for both reads and writes (aliased by `nokeys`). +- `resetchannels` - Allows the user to access all pub/sub channels. + +## Examples + +For examples on how to create and update ACL users and their rules, checkout out the `ACL SETUSER` command documentation. diff --git a/docs/docs/architecture/index.md b/docs/docs/architecture/index.md new file mode 100644 index 00000000..65299d0a --- /dev/null +++ b/docs/docs/architecture/index.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 6 +--- + +# Architecture + +EchoVault can be run in the following modes: + +- Standalone mode - Where only one instance runs in isolation. +- Replication cluster - Strongly consistent RAFT cluster. +- Sharding - To be implemented. diff --git a/docs/docs/commands/acl/acl_cat.mdx b/docs/docs/commands/acl/acl_cat.mdx new file mode 100644 index 00000000..fe574670 --- /dev/null +++ b/docs/docs/commands/acl/acl_cat.mdx @@ -0,0 +1,59 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ACL CAT + +### Syntax +``` +ACL CAT [category] +``` + +### Module +acl + +### Categories +slow + +### Description +Lists all the categories. If the optional category is provided, lists all the commands in the category. + +### Examples + + + + List all categories: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + categories, err := vault.ACLCat() + ``` + + List all commands/subcommands in pubsub module: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + commands, err := vault.ACLCat("pubsub") + ``` + + + List all categories: + ``` + > ACL CAT + ``` + + List all commands/subcommands in pubsub module: + ``` + > ACL CAT pubsub + ``` + + diff --git a/docs/docs/commands/acl/acl_deluser.mdx b/docs/docs/commands/acl/acl_deluser.mdx new file mode 100644 index 00000000..f7b7a5fa --- /dev/null +++ b/docs/docs/commands/acl/acl_deluser.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ACL DELUSER + +### Syntax +``` +ACL DELUSER username [username ...] +``` + +### Module +acl + +### Categories +admin +dangerous +slow + +### Description +Deletes users and terminates their connections. This command cannot delete the default user. + +### Examples + + + + Delete users: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.ACLDelUser("username1", "username2") + ``` + + + Delete users: + ``` + > ACL DELUSER username1 username2 + ``` + + diff --git a/docs/docs/commands/acl/acl_getuser.mdx b/docs/docs/commands/acl/acl_getuser.mdx new file mode 100644 index 00000000..9dba22f4 --- /dev/null +++ b/docs/docs/commands/acl/acl_getuser.mdx @@ -0,0 +1,77 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ACL GETUSER + +### Syntax +``` +ACL GETUSER username +``` + +### Module +acl + +### Categories +admin +dangerous +slow + +### Description +List the ACL rules of a user. + +### Examples + + + + Retrieve user: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + rules, err := vault.ACLGetUser("username") + ``` + + Returns a map[string][]string map where each key is the rule category and each value is a string slice of relevant values. + The map returned has the following structure: + + - "username" - string slice containing the user's username. + - "flags" - string slices containing the following values: "on" if the user is enabled, otherwise "off", + - "nokeys" if the user is not allowed to access any keys (and NoKeys is true), + - "nopass" if the user has no passwords (and NoPass is true). + - "categories" - string slice af ACL command categories associated with the user. + If the user is allowed to access all categories, it will contain "+@*". + For each category the user is allowed to access, the slice will contain "+@\". + If the user is not allowed to access any categories, it will contain "-@*". + For each category the user is not allowed to access, the slice will contain "-@\". + - "commands" - string slice af commands associated with the user. + If the user is allowed to execute all commands, it will contain "+all". + For each command the user is allowed to execute, the slice will contain "+\". + If the user is not allowed to execute any commands, it will contain "-all". + For each command the user is not allowed to execute, the slice will contain "-\". + - "keys" - string slice af keys associated with the user. + If the user is allowed read/write access all keys, the slice will contain "%RW~*". + For each key glob pattern the user has read/write access to, the slice will contain "%RW~\". + If the user is allowed read access to all keys, the slice will contain "%R~*". + For each key glob pattern the user has read access to, the slice will contain "%R~\". + If the user is allowed write access to all keys, the slice will contain "%W~*". + For each key glob pattern the user has write access to, the slice will contain "%W~\". + - "channels" - string slice af pubsub channels associated with the user. + If the user is allowed to access all channels, the slice will contain "+&*". + For each channel the user is allowed to access, the slice will contain "+&\". + If the user is not allowed to access any channels, the slice will contain "-&*". + For each channel the user is not allowed to access, the slice will contain "-&\". + + + Retrieve user: + ``` + > ACL GETUSER username + ``` + + diff --git a/docs/docs/commands/acl/acl_list.mdx b/docs/docs/commands/acl/acl_list.mdx new file mode 100644 index 00000000..9fff1116 --- /dev/null +++ b/docs/docs/commands/acl/acl_list.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ACL LIST + +### Syntax +``` +ACL LIST +``` + +### Module +acl + +### Categories +admin +dangerous +slow + +### Description +Dumps effective acl rules in ACL DSL format. + +### Examples + + + + List ACL rules: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + rules, err := vault.ACLList() + ``` + + + List ACL rules: + ``` + > ACL LIST + ``` + + diff --git a/docs/docs/commands/acl/acl_load.mdx b/docs/docs/commands/acl/acl_load.mdx new file mode 100644 index 00000000..b54fc67a --- /dev/null +++ b/docs/docs/commands/acl/acl_load.mdx @@ -0,0 +1,58 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ACL LOAD + +### Syntax +``` +ACL LOAD +``` + +### Module +acl + +### Categories +admin +dangerous +slow + +### Description +Reloads the rules from the configured ACL config file. +When 'MERGE' is passed, users from config file who share a username with users in memory will be merged. +When 'REPLACE' is passed, users from config file who share a username with users in memory will replace the user in memory. + +### Examples + + + + Load ACL config: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + // Load config and merge with currently loaded ACL config + ok, err := vault.ACLLoad(echovault.ACLLoadOptions{Merge: true}) + + // Load config and replace currently loaded ACL config + ok, err := vault.ACLLoad(echovault.ACLLoadOptions{Replace: true})` + ``` + + + Load ACL config file and merge it with currently loaded config: + ``` + > ACL LOAD MERGE + ``` + + Load ACL config file and replace the currently loaded config: + ``` + > ACL LOAD REPLACE + ``` + + diff --git a/docs/docs/commands/acl/acl_save.mdx b/docs/docs/commands/acl/acl_save.mdx new file mode 100644 index 00000000..5bac002f --- /dev/null +++ b/docs/docs/commands/acl/acl_save.mdx @@ -0,0 +1,49 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ACL SAVE + +### Syntax +``` +ACL SAVE +``` + +### Module +acl + +### Categories +admin +dangerous +slow + +### Description +Saves the effective ACL rules the configured ACL config file. +The save command overwrites the current ACL config file entirely and using the current +in-memory ACL configuration. + +### Examples + + + + Save ACL rules: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := server.ACLSave() + ``` + + + Save ACL rules: + ``` + > ACL SAVE + ``` + + diff --git a/docs/docs/commands/acl/acl_setuser.mdx b/docs/docs/commands/acl/acl_setuser.mdx new file mode 100644 index 00000000..72e4abee --- /dev/null +++ b/docs/docs/commands/acl/acl_setuser.mdx @@ -0,0 +1,123 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ACL SETUSER + +### Syntax +``` +ACL SAVE +``` + +### Module +acl + +### Categories +admin +dangerous +slow + +### Description +Configure a new or existing user. + +### Examples + + + + Save user: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + user := echovault.User{} + ok, err := server.ACLSetUser(user) + ``` + + The User struct takes the following shape: + ```go + type User struct { + // Username - string - the user's username. + Username string + + // Enabled - bool - whether the user should be enabled (i.e connections can authenticate with this user). + Enabled bool + + // NoPassword - bool - if true, this user can be authenticated against without a password. + NoPassword bool + + // NoKeys - bool - if true, this user will not be allowed to access any keys. + NoKeys bool + + // NoCommands - bool - if true, this user will not be allowed to execute any commands. + NoCommands bool + + // ResetPass - bool - if true, all the user's configured passwords are removed and NoPassword is set to false. + ResetPass bool + + // ResetKeys - bool - if true, the user's NoKeys flag is set to true and all their currently accessible keys are cleared. + ResetKeys bool + + // ResetChannels - bool - if true, the user will be allowed to access all PubSub channels. + ResetChannels bool + + // AddPlainPasswords - []string - the list of plaintext passwords to add to the user's passwords. + AddPlainPasswords []string + + // RemovePlainPasswords - []string - the list of plaintext passwords to remove from the user's passwords. + RemovePlainPasswords []string + + // AddHashPasswords - []string - the list of SHA256 password hashes to add to the user's passwords. + AddHashPasswords []string + + // RemoveHashPasswords - []string - the list of SHA256 password hashes to add to the user's passwords. + RemoveHashPasswords []string + + // IncludeCategories - []string - the list of ACL command categories to allow this user to access, default is all. + IncludeCategories []string + + // ExcludeCategories - []string - the list of ACL command categories to bar the user from accessing. The default is none. + ExcludeCategories []string + + // IncludeCommands - []string - the list of commands to allow the user to execute. The default is none. If you want to + // specify a subcommand, use the format "command|subcommand". + IncludeCommands []string + + // ExcludeCommands - []string - the list of commands to bar the user from executing. + // The default is none. If you want to specify a subcommand, use the format "command|subcommand". + ExcludeCommands []string + + // IncludeReadWriteKeys - []string - the list of keys the user is allowed read and write access to. The default is all. + // This field accepts glob pattern strings. + IncludeReadWriteKeys []string + + // IncludeReadKeys - []string - the list of keys the user is allowed read access to. The default is all. + // This field accepts glob pattern strings. + IncludeReadKeys []string + + // IncludeWriteKeys - []string - the list of keys the user is allowed write access to. The default is all. + // This field accepts glob pattern strings. + IncludeWriteKeys []string + + // IncludeChannels - []string - the list of PubSub channels the user is allowed to access ("Subscribe" and "Publish"). + // This field accepts glob pattern strings. + IncludeChannels []string + + // ExcludeChannels - []string - the list of PubSub channels the user cannot access ("Subscribe" and "Publish"). + // This field accepts glob pattern strings. + ExcludeChannels []string + } + ``` + + + Checkout the Access Control List documentation for the list of rules. + ``` + > ACL SETUSER username + ``` + + diff --git a/docs/docs/commands/acl/acl_users.mdx b/docs/docs/commands/acl/acl_users.mdx new file mode 100644 index 00000000..e2c6124e --- /dev/null +++ b/docs/docs/commands/acl/acl_users.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ACL USERS + +### Syntax +``` +ACL USERS +``` + +### Module +acl + +### Categories +admin +dangerous +slow + +### Description +Lists all usernames of the configured ACL users. + +### Examples + + + + List ACL usernames: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + users, err := vault.ACLUsers() + ``` + + + List ACL usersnames: + ``` + > ACL USERS + ``` + + diff --git a/docs/docs/commands/acl/acl_whoami.mdx b/docs/docs/commands/acl/acl_whoami.mdx new file mode 100644 index 00000000..f9e2980b --- /dev/null +++ b/docs/docs/commands/acl/acl_whoami.mdx @@ -0,0 +1,38 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ACL WHOAMI + +### Syntax +``` +ACL WHOAMI +``` + +### Module +acl + +### Categories +fast + +### Description +Returns the authenticated user of the current connection. + +### Examples + + + + Not available in embedded mode. + + + Get the username of the user associated with the current connection: + ``` + > ACL WHOAMI + ``` + + diff --git a/docs/docs/commands/acl/index.md b/docs/docs/commands/acl/index.md new file mode 100644 index 00000000..8cd8bbca --- /dev/null +++ b/docs/docs/commands/acl/index.md @@ -0,0 +1 @@ +# ACL diff --git a/docs/docs/commands/admin/command_count.mdx b/docs/docs/commands/admin/command_count.mdx new file mode 100644 index 00000000..0c44b21c --- /dev/null +++ b/docs/docs/commands/admin/command_count.mdx @@ -0,0 +1,46 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# COMMAND COUNT + +### Syntax +``` +COMMAND COUNT +``` + +### Module +admin + +### Categories +admin +slow + +### Description +Get the dumber of commands in the echovault instance. + +### Examples + + + + Get server command count: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + count, err := vault.CommandCount() + ``` + + + Get server command count: + ``` + > COMMAND COUNT + ``` + + diff --git a/docs/docs/commands/admin/command_list.mdx b/docs/docs/commands/admin/command_list.mdx new file mode 100644 index 00000000..0862e264 --- /dev/null +++ b/docs/docs/commands/admin/command_list.mdx @@ -0,0 +1,94 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# COMMAND LIST + +### Syntax +``` +COMMAND LIST [FILTERBY ] +``` + +### Module +admin + +### Categories +admin +slow + +### Description +Get the list of command names. Allows for filtering by ACL category or glob pattern. + +### Options + +FILTERBY - An optional condition used to filter the response. ACLCAT filters by the provided acl +category string. PATTERN filters the response by the provided glob pattern. +MODULE filters the response by the provided EchoVault module. + +### Examples + + + + Get a list of all the loaded commands: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + commands, err := vault.CommandList(echovault.CommandListOptions{}) + ``` + + Get a list of all commands with the \"fast\" ACL category: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + commands, err := vault.CommandList(echovault.CommandListOptions{ACLCAT: "fast"}) + ``` + + Get a list of all commands which satisfy the \"z*\" glob pattern: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + commands, err := vault.CommandList(echovault.CommandListOptions{PATTERN: "z*"}) + ``` + + Get a list of all the commands in the \"set\" module: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + commands, err := vault.CommandList(echovault.CommandListOptions{MODULE: "set"}) + ``` + + + Get a list of all the loaded commands: + ``` + > COMMAND LIST + ``` + + Get a list of all commands with the "fast" ACL category: + ``` + > COMMAND LIST FILTERBY ACLCAT fast + ``` + + Get a list of all commands which satisfy the "z*" glob pattern: + ``` + > COMMAND LIST FILTERBY PATTERN z* + ``` + + Get a list of all the commands in the "set" module: + ``` + > COMMAND LIST FILTERBY MODULE set + ``` + + diff --git a/docs/docs/commands/admin/commands.mdx b/docs/docs/commands/admin/commands.mdx new file mode 100644 index 00000000..141208fa --- /dev/null +++ b/docs/docs/commands/admin/commands.mdx @@ -0,0 +1,40 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# COMMANDS + +### Syntax +``` +COMMANDS +``` + +### Module +admin + +### Categories +admin +slow + +### Description +Get a list of all the commands in available on the echovault with categories and descriptions. +Sub-commmands are formated as "command|subcommand". + +### Examples + + + + Make use of the CommandList method. + + + Get List of commands: + ``` + > COMMAND + ``` + + diff --git a/docs/docs/commands/admin/index.md b/docs/docs/commands/admin/index.md new file mode 100644 index 00000000..4d221b38 --- /dev/null +++ b/docs/docs/commands/admin/index.md @@ -0,0 +1 @@ +# Admin \ No newline at end of file diff --git a/docs/docs/commands/admin/lastsave.mdx b/docs/docs/commands/admin/lastsave.mdx new file mode 100644 index 00000000..5b7181ab --- /dev/null +++ b/docs/docs/commands/admin/lastsave.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# LASTSAVE + +### Syntax +``` +LASTSAVE +``` + +### Module +admin + +### Categories +admin +dangerous +fast + +### Description +Get unix timestamp for the latest snapshot in milliseconds. + +### Examples + + + + Get last snapshot timestamp: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + count, err := vault.LastSave() + ``` + + + Get last snapshot timestamp: + ``` + > LASTSAVE + ``` + + diff --git a/docs/docs/commands/admin/module_list.mdx b/docs/docs/commands/admin/module_list.mdx new file mode 100644 index 00000000..b078a8e7 --- /dev/null +++ b/docs/docs/commands/admin/module_list.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# MODULE LIST + +### Syntax +``` +MODULE LIST +``` + +### Module +admin + +### Categories +admin +dangerous +fast + +### Description +List all the modules that are currently loaded in the server. + +### Examples + + + + List all the modules that are currently loaded in the server: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + modules := server.ListModules() + ``` + + + List all the modules that are currently loaded in the server: + ``` + > MODULE LIST + ``` + + diff --git a/docs/docs/commands/admin/module_load.mdx b/docs/docs/commands/admin/module_load.mdx new file mode 100644 index 00000000..bcd578f4 --- /dev/null +++ b/docs/docs/commands/admin/module_load.mdx @@ -0,0 +1,63 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# MODULE LOAD + +### Syntax +``` +MODULE LOAD path [arg [arg ...]] +``` + +### Module +admin + +### Categories +admin +dangerous +fast + +### Description +Load a module from a dynamic library at runtime. +The path should be the full path to the module, including the .so filename. Any args will be be passed unmodified to the +module's key extraction and handler functions. + +### Examples + + + + Load a modules with no args: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + err := server.LoadModule("/path/to/module.so") + ``` + + Load a module with a few args: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + err := server.LoadModule("/path/to/module.so", "arg1", "arg2", "arg3") + ``` + + + Load a module with no args: + ``` + > MODULE LOAD path/to/module.so + ``` + + Load a module with a few args: + ``` + > MODULE LOAD path/to/module.so arg1 arg2 arg3 + ``` + + diff --git a/docs/docs/commands/admin/module_unload.mdx b/docs/docs/commands/admin/module_unload.mdx new file mode 100644 index 00000000..c736f5aa --- /dev/null +++ b/docs/docs/commands/admin/module_unload.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# MODULE UNLOAD + +### Syntax +``` +MODULE UNLOAD name +``` + +### Module +admin + +### Categories +admin +dangerous +fast + +### Description +Unloads a module based on the its name as displayed by the MODULE LIST command. + +### Examples + + + + Unload a module: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + err := server.UnloadModule("module-name") + ``` + + + Unload a module: + ``` + > MODULE UNLOAD module-name + ``` + + diff --git a/docs/docs/commands/admin/rewriteaof.mdx b/docs/docs/commands/admin/rewriteaof.mdx new file mode 100644 index 00000000..70ff732a --- /dev/null +++ b/docs/docs/commands/admin/rewriteaof.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# REWRITEAOF + +### Syntax +``` +REWRITEAOF +``` + +### Module +admin + +### Categories +admin +dangerous +fast + +### Description +Trigger re-writing of append process. + +### Examples + + + + Trigger re-writing of append process: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + count, err := vault.RewriteAOF() + ``` + + + Trigger re-writing of append process: + ``` + > REWRITEAOF + ``` + + diff --git a/docs/docs/commands/admin/save.mdx b/docs/docs/commands/admin/save.mdx new file mode 100644 index 00000000..7fb5139b --- /dev/null +++ b/docs/docs/commands/admin/save.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SAVE + +### Syntax +``` +SAVE +``` + +### Module +admin + +### Categories +admin +dangerous +fast + +### Description +Trigger a snapshot save. + +### Examples + + + + Trigger a snapshot save: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + count, err := vault.Save() + ``` + + + Trigger a snapshot save: + ``` + > SAVE + ``` + + diff --git a/docs/docs/commands/connection/auth.mdx b/docs/docs/commands/connection/auth.mdx new file mode 100644 index 00000000..50f0eb0d --- /dev/null +++ b/docs/docs/commands/connection/auth.mdx @@ -0,0 +1,46 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# AUTH + +### Syntax +``` +AUTH [username] password +``` + +### Module +connection + +### Categories +connection +slow + +### Description +Authenticates the connection. If the username is not provided, the connection will be authenticated against the +default ACL user. Otherwise, it is authenticated against the ACL user with the provided username. + +### Examples + + + + ```go + // Not available in embedded mode. + ``` + + + Authenticate against the default user: + ``` + > AUTH password + ``` + Authenticate against a specific user: + ``` + > AUTH username password + ``` + + diff --git a/docs/docs/commands/connection/hello.mdx b/docs/docs/commands/connection/hello.mdx new file mode 100644 index 00000000..08a3b129 --- /dev/null +++ b/docs/docs/commands/connection/hello.mdx @@ -0,0 +1,86 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HELLO + +### Syntax +``` +HELLO [protover [AUTH username password] [SETNAME clientname]] +``` + +### Module +connection + +### Categories +connection +fast + +### Description +Switch to a different protocol, optionally authenticating and setting the connection's name. +This command returns a contextual client report. + +### Options +- `protover` - The protocol version to switch to. The default is 2. +- `AUTH username password` - Authenticate with the server using the specified username and password. +- `SETNAME clientname` - Set the connection's name to the specified clientname. + +### Examples + + + + When using the embedded API, there's no need to authenticate the API caller or set an alias for the caller. + Therefore, only the set protocol functionality is available in embedded mode. You can set the protocol using + the SetProtocol method: + + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + err := vault.SetProtocol(2) + ``` + + The method above changes the protocol to version 3. This is relevant when executing commands using the + `ExecuteCommand` method. Since this methods returns a raw RESP response. It will not affect any other methods' + return types as they return native go types. + + `SetProtocol` return an error if the protocol version is not supported (i.e. not 2 or 3). + + + Only fetch client report: + ``` + > HELLO + ``` + + Authenticate and set the connection's name: + ``` + > HELLO 2 AUTH myuser mypass SETNAME myclient + ``` + + Authenticate only: + ``` + > HELLO 2 AUTH myuser mypass + ``` + + Set the connection's name only: + ``` + > HELLO 2 SETNAME myclient + ``` + + Switch to protocol version 3: + ``` + > HELLO 3 + ``` + + Authenticate and switch to protocol version 3: + ``` + > HELLO 3 AUTH myuser mypass + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/connection/index.md b/docs/docs/commands/connection/index.md new file mode 100644 index 00000000..42d070c7 --- /dev/null +++ b/docs/docs/commands/connection/index.md @@ -0,0 +1 @@ +# Connection diff --git a/docs/docs/commands/connection/ping.mdx b/docs/docs/commands/connection/ping.mdx new file mode 100644 index 00000000..003fe11e --- /dev/null +++ b/docs/docs/commands/connection/ping.mdx @@ -0,0 +1,46 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# PING + +### Syntax +``` +PING [message] +``` + +### Module +connection + +### Categories +connection +fast + +### Description +Ping the echovault server. If a message is provided, the message will be echoed back to the client. +Otherwise, the server will return "PONG". + +### Examples + + + + ```go + // Not available in embedded mode. + ``` + + + Ping without message (returns PONG): + ``` + > PING + ``` + Ping with message (returns "Hello, world!"): + ``` + > PING "Hello, world!" + ``` + + diff --git a/docs/docs/commands/connection/select.mdx b/docs/docs/commands/connection/select.mdx new file mode 100644 index 00000000..62e52f7b --- /dev/null +++ b/docs/docs/commands/connection/select.mdx @@ -0,0 +1,50 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SELECT + +### Syntax +``` +SELECT index +``` + +### Module +connection + +### Categories +connection +fast + +### Description +Change the logical database that the current connection is operating from. +If the database does not exist, it will be created. +When this command is executed in a RAFT cluster, the database will be created in all the nodes of the cluster. + +### Examples + + + + Select the database that the embedded instance is operating from: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + err := vault.SelectDB(2) + ``` + After successfully calling this method, all subsequent commands executed on that instance + will be executed on the selected database. So you should to be careful when doing this in a multi-threaded environment. + + + Select the database with index 1: + ``` + > SELECT 1 + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/connection/swapdb.mdx b/docs/docs/commands/connection/swapdb.mdx new file mode 100644 index 00000000..63f4c246 --- /dev/null +++ b/docs/docs/commands/connection/swapdb.mdx @@ -0,0 +1,52 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SWAPDB + +### Syntax +``` +SWAPDB index1 index2 +``` + +### Module +connection + +### Categories +connection +dangerous +keyspace +slow + +### Description +This command swaps two databases, +so that immediately all the clients connected to a given database will see the data of the other database, +and the other way around. If either one of the databases does not exist, it will be created. + +### Examples + + + + Swap the databases with indexes 1 and 2: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + err := vault.SwapDBs(1, 2) + ``` + The method above only switches the databases for the currently active TCP connections. + To switch the database for the embeded instance, use the `SelectDB` method. + + + Swap the databases with indexes 1 and 2: + ``` + > SWAPDB 1 2 + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/generic/decr.mdx b/docs/docs/commands/generic/decr.mdx new file mode 100644 index 00000000..44484e09 --- /dev/null +++ b/docs/docs/commands/generic/decr.mdx @@ -0,0 +1,50 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# DECR + +### Syntax +``` +DECR key +``` + +### Module +generic + +### Categories +fast +write + +### Description +Decrements the number stored at key by one. +If the key does not exist, it is set to 0 before performing the operation. +An error is returned if the key contains a value of the wrong type or contains a string that cannot be represented as integer. +This operation is limited to 64 bit signed integers. + + +### Examples + + + + Decrement the value of the key `mykey`: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + value, err := vault.Decr("mykey") + ``` + + + Decrement the value of the key `mykey`: + ``` + > DECR mykey + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/generic/decrby.mdx b/docs/docs/commands/generic/decrby.mdx new file mode 100644 index 00000000..030c0c53 --- /dev/null +++ b/docs/docs/commands/generic/decrby.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# DECRBY + +### Syntax +``` +DECRBY key decrement +``` + +### Module +generic + +### Categories +fast +write + +### Description +The DECRBY command reduces the value stored at the specified key by the specified decrement. +If the key does not exist, it is initialized with a value of 0 before performing the operation. +If the key's value is not of the correct type or cannot be represented as an integer, an error is returned. + +### Examples + + + + Decrement the value of the key `mykey` by 5: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + value, err := vault.DecrBy("mykey 5") + ``` + + + Decrement the value of the key `mykey` by 5: + ``` + > DECRBY mykey 5 + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/generic/del.mdx b/docs/docs/commands/generic/del.mdx new file mode 100644 index 00000000..4130d6df --- /dev/null +++ b/docs/docs/commands/generic/del.mdx @@ -0,0 +1,61 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# DEL + +### Syntax +``` +DEL key [key ...] +``` + +### Module +generic + +### Categories +fast +keyspace +write + +### Description +Removes one or more keys from the store. + +### Examples + + + + Delete a single key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + noOfDeletedKeys, err = vault.Del("key1") + ``` + + Delete multiple keys: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + noOfDeletedKeys, err = vault.Del("key1", "key2", "key3") + ``` + + + Delete a single key: + ``` + > DEL key + ``` + + Delete multiple keys: + ``` + > DEL key1 key2 key3 + ``` + + diff --git a/docs/docs/commands/generic/expire.mdx b/docs/docs/commands/generic/expire.mdx new file mode 100644 index 00000000..f8fe2c2a --- /dev/null +++ b/docs/docs/commands/generic/expire.mdx @@ -0,0 +1,96 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# EXPIRE + +### Syntax +``` +EXPIRE key seconds [NX | XX | GT | LT] +``` + +### Module +generic + +### Categories +fast +keyspace +write + +### Description +Expire the key in the specified number of seconds. This commands turns a key into a volatile one. + +### Options + +- `NX` - Only set the expiry time if the key has no associated expiry. +- `XX` - Only set the expiry time if the key already has an expiry time. +- `GT` - Only set the expiry time if the new expiry time is greater than the current one. +- `LT` - Only set the expiry time if the new expiry time is less than the current one. + +### Examples + + + + Add an expiration to a key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.Expire("key", 10, echovault.ExpireOptions{}) + ``` + + Add an expiration to a key only if it does not have one already: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.Expire("key", 10, echovault.ExpireOptions{NX: true}) + ``` + + Add an expiration to a key only if it has one already: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.Expire("key", 10, echovault.ExpireOptions{XX: true}) + ``` + + Add an expiration to a key only if it already has one that is less than the current expiry: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.Expire("key", 10, echovault.ExpireOptions{XX: true, LT: true}) + ``` + + + Add an expiration to a key: + ``` + > EXPIRE key 10 + ``` + + Add an expiration to a key only if it does not have one already: + ``` + > EXPIRE key 10 NX + ``` + + Add an expiration to a key only if it has one already: + ``` + > EXPIRE key 10 XX + ``` + + Add an expiration to a key only if it already has one that is less than the current expiry: + ``` + > EXPIRE key 10 XX LT + ``` + + diff --git a/docs/docs/commands/generic/expiretime.mdx b/docs/docs/commands/generic/expiretime.mdx new file mode 100644 index 00000000..c02ff70b --- /dev/null +++ b/docs/docs/commands/generic/expiretime.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# EXPIRETIME + +### Syntax +``` +EXPIRETIME key +``` + +### Module +generic + +### categories +fast +keyspace +read + +### Description +Returns the absolute unix time in seconds when the key will expire. + +### Examples + + + + Get the expiration time of a key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + expireTime, err := vault.ExpireTime("key") + ``` + + + Get the expiration time of a key: + ``` + > EXPIRETIME key + ``` + + diff --git a/docs/docs/commands/generic/flushall.mdx b/docs/docs/commands/generic/flushall.mdx new file mode 100644 index 00000000..1e82f972 --- /dev/null +++ b/docs/docs/commands/generic/flushall.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# FLUSHALL + +### Syntax +``` +FLUSHALL +``` + +### Module +generic + +### Categories +dangerous +keyspace +slow +write + +### Description +Delete all the keys in all the existing databases. This command is always synchronous. + +### Examples + + + + In order to delete all the keys in all the databases, you need to pass -1 to the `Flush` method: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + vault.Flush(-1) + ``` + + + Flush all the databases: + ``` + > FLUSHALL + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/generic/flushdb.mdx b/docs/docs/commands/generic/flushdb.mdx new file mode 100644 index 00000000..b942dbba --- /dev/null +++ b/docs/docs/commands/generic/flushdb.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# FLUSHDB + +### Syntax +``` +FLUSHDB +``` + +### Module +generic + +### Categories +dangerous +keyspace +slow +write + +### Description +Delete all the keys in the currently selected database. This command is always synchronous. + +### Examples + + + + For the embedded instance, you need to pass the database index to the `Flush` method: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + vault.Flush(0) + ``` + + + Flush the database that the current connection is operating from: + ``` + FLUSHDB + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/generic/get.mdx b/docs/docs/commands/generic/get.mdx new file mode 100644 index 00000000..f3656968 --- /dev/null +++ b/docs/docs/commands/generic/get.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# GET + +### Syntax +``` +GET key +``` + +### Module +generic + +### Categories +fast +keyspace +read + +### Description +Get the value at the specified key. + +### Examples + + + + Get the value at the specified key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + value, err := vault.Get("key") + ``` + + + Get the value at the specified key: + ``` + > GET key + ``` + + diff --git a/docs/docs/commands/generic/incr.mdx b/docs/docs/commands/generic/incr.mdx new file mode 100644 index 00000000..f2832bb2 --- /dev/null +++ b/docs/docs/commands/generic/incr.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# INCR + +### Syntax +``` +INCR key +``` + +### Module +generic + +### Categories +fast +write + +### Description +Increments the number stored at key by one. If the key does not exist, it is set to 0 before performing the operation. +An error is returned if the key contains a value of the wrong type or contains a string that cannot be represented as integer. +This operation is limited to 64 bit signed integers. + +### Examples + + + + Increment the value of the key `mykey`: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + value, err := vault.Incr("mykey") + ``` + + + Increment the value of the key `mykey`: + ``` + > INCR mykey + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/generic/incrby.mdx b/docs/docs/commands/generic/incrby.mdx new file mode 100644 index 00000000..a5f8cea7 --- /dev/null +++ b/docs/docs/commands/generic/incrby.mdx @@ -0,0 +1,49 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# INCRBY + +### Syntax +``` +INCRBY key increment +``` + +### Module +generic + +### Categories +fast +write + +### Description +Increments the number stored at key by increment. If the key does not exist, it is set to 0 before performing the operation. +An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer. + +### Options + +### Examples + + + + Increment the value of the key `mykey` by 5: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + value, err := vault.IncrBy("mykey", "5") + ``` + + + Increment the value of the key `mykey` by 5: + ``` + > INCRBY mykey 5 + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/generic/index.md b/docs/docs/commands/generic/index.md new file mode 100644 index 00000000..8b8c2814 --- /dev/null +++ b/docs/docs/commands/generic/index.md @@ -0,0 +1 @@ +# Generic diff --git a/docs/docs/commands/generic/mget.mdx b/docs/docs/commands/generic/mget.mdx new file mode 100644 index 00000000..8e2900d1 --- /dev/null +++ b/docs/docs/commands/generic/mget.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# MGET + +### Syntax +``` +MGET key [key ...] +``` + +### Module +generic + +### Categories +fast +keyspace +read + +### Description +Get multiple values from the specified keys. + +### Examples + + + + Get the values at the specified keys: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + values, err := vault.MGet("key1", "key2", "key3") + ``` + + + Get the values at the specified keys: + ``` + > MGET key1 key2 key3 + ``` + + diff --git a/docs/docs/commands/generic/mset.mdx b/docs/docs/commands/generic/mset.mdx new file mode 100644 index 00000000..e3311a98 --- /dev/null +++ b/docs/docs/commands/generic/mset.mdx @@ -0,0 +1,46 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# MSET + +### Syntax +``` +MSET key value [key value ...] +``` + +### Module +generic + +### Categories +write +slow + +### Description +Set or modify multiple key/value pairs at once. + +### Examples + + + + Set multiple key/value pairs: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.MSet(map[string]string{"key1": "value1", "key2": "value2", "key3": "value3"}) + ``` + + + Set multiple key/value pairs: + ``` + > MSET key1 value1 key2 value2 key3 value3 + ``` + + diff --git a/docs/docs/commands/generic/persist.mdx b/docs/docs/commands/generic/persist.mdx new file mode 100644 index 00000000..e0071e3d --- /dev/null +++ b/docs/docs/commands/generic/persist.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# PERSIST + +### Syntax +``` +PERSIST key +``` + +### Module +generic + +### Categories +fast +keyspace +write + +### Description +Removes the TTl associated with a key, turning it from a volatile key to a persistent key. + +### Examples + + + + Remove the TTL associated with a key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.Persist("key") + ``` + + + Remove the TTL associated with a key: + ``` + > PERSIST key + ``` + + diff --git a/docs/docs/commands/generic/pexpire.mdx b/docs/docs/commands/generic/pexpire.mdx new file mode 100644 index 00000000..8e31dea4 --- /dev/null +++ b/docs/docs/commands/generic/pexpire.mdx @@ -0,0 +1,95 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# PEXPIRE + +### Syntax +``` +PEXPIRE key seconds [NX | XX | GT | LT] +``` + +### Module +generic + +### Categories +fast +write + +### Description +Expire the key in the specified number of milliseconds. This commands turns a key into a volatile one. + +## Options + +- `NX` - Only set the expiry time if the key has no associated expiry. +- `XX` - Only set the expiry time if the key already has an expiry time. +- `GT` - Only set the expiry time if the new expiry time is greater than the current one. +- `LT` - Only set the expiry time if the new expiry time is less than the current one. + +### Examples + + + + Add an expiration to a key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + updated, err := vault.PExpire("key", 10000, echovault.PExpireOptions{}) + ``` + + Add an expiration to a key only if it does not have one already: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + updated, err := vault.PExpire("key", 10000, echovault.PExpireOptions{NX: true}) + ``` + + Add an expiration to a key only if it has one already: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + updated, err := vault.PExpire("key", 10000, echovault.PExpireOptions{XX: true}) + ``` + + Add an expiration to a key only if it already has one that is less than the current expiry: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + updated, err := vault.PExpire("key", 10000, echovault.PExpireOptions{XX: true, LT: true}) + ``` + + + Add an expiration to a key: + ``` + > PEXPIRE key 10000 + ``` + + Add an expiration to a key only if it does not have one already: + ``` + > PEXPIRE key 10000 NX + ``` + + Add an expiration to a key only if it has one already: + ``` + > PEXPIRE key 10000 XX + ``` + + Add an expiration to a key only if it already has one that is less than the current expiry: + ``` + > PEXPIRE key 10000 XX LT + ``` + + diff --git a/docs/docs/commands/generic/pexpiretime.mdx b/docs/docs/commands/generic/pexpiretime.mdx new file mode 100644 index 00000000..09e1f848 --- /dev/null +++ b/docs/docs/commands/generic/pexpiretime.mdx @@ -0,0 +1,50 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# PEXPIRETIME + +### Syntax +``` +PEXPIRETIME key +``` + +### Module +generic + +### Categories +fast +keyspace +read + + +### Description +Returns the absolute unix time in milliseconds when the key will expire. +Returns -1 if the key exists but has no associated expiry time. +Returns -2 if the key does not exist. + +### Examples + + + + Retrieve the expiration time of a key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + pexpireTime, err := vault.PExpireTime("key") + ``` + + + Retrieve the expiration time of a key: + ``` + > PEXPIRETIME key + ``` + + diff --git a/docs/docs/commands/generic/pttl.mdx b/docs/docs/commands/generic/pttl.mdx new file mode 100644 index 00000000..dccfe1a2 --- /dev/null +++ b/docs/docs/commands/generic/pttl.mdx @@ -0,0 +1,49 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# PTTL + +### Syntax +``` +PTTL key +``` + +### Module +generic + +### Categories +fast +keyspace +read + +### Description +Returns the remaining time to live for a key that has an expiry time in milliseconds. +If the key exists but does not have an associated expiry time, -1 is returned. +If the key does not exist, -2 is returned. + +### Examples + + + + Retrieve the expiration time of a key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ttl, err := vault.PTTL("key") + ``` + + + Retrieve the expiration time of a key: + ``` + > PTTL key + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/generic/rename.mdx b/docs/docs/commands/generic/rename.mdx new file mode 100644 index 00000000..a6b9df4f --- /dev/null +++ b/docs/docs/commands/generic/rename.mdx @@ -0,0 +1,46 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# RENAME + +### Syntax +``` +RENAME key newkey +``` + +### Module +generic + +### Categories +fast +write + +### Description +Renames key to newkey. If newkey already exists, it is overwritten. If key does not exist, an error is returned. + +### Examples + + + + Rename the key `mykey` to `newkey`: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + err = vault.Rename("mykey", "newkey") + ``` + + + Rename the key `mykey` to `newkey`: + ``` + > RENAME mykey newkey + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/generic/set.mdx b/docs/docs/commands/generic/set.mdx new file mode 100644 index 00000000..4b2b580d --- /dev/null +++ b/docs/docs/commands/generic/set.mdx @@ -0,0 +1,98 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SET + +### Syntax +``` +SET key value [NX | XX] [GET] [EX seconds | PX milliseconds | EXAT unix-time-seconds | PXAT unix-time-milliseconds] +``` + +### Module +generic + +### Categories +slow +write + +### Description +Set the value of a key, considering the value's type. If the key already exists, it is overwritten. + +### Options +- `NX` - Only set if the key does not exist. +- `XX` - Only set if the key exists. +- `GET` - Return the old value stored at key, or nil if the value does not exist. +- `EX` - Expire the key after the specified number of seconds (positive integer). +- `PX` - Expire the key after the specified number of milliseconds (positive integer). +- `EXAT` - Expire at the exact time in unix seconds (positive integer). +- `PXAT` - Expire at the exat time in unix milliseconds (positive integer). + + +### Examples + + + + Set a value at a key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.Set("name", "EchoVault", echovault.SetOptions{}) + ``` + + Set a value only if the key does not exist: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.Set("name", "EchoVault", echovault.SetOptions{NX: true}) + ``` + + Set a value if key already exists and get the previous value: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + previousValue, err := vault.Set("name", "EchoVault", echovault.SetOptions{XX: true, GET: true}) + ``` + + Set a value if the key already exists, return the previous value, and expire after 10 seconds: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + previousValue, err := vault.Set("name", "EchoVault", echovault.SetOptions{XX: true, GET: true, EX: 10}) + ``` + + + Set a value at a key: + ``` + > SET name EchoVault + ``` + + Set a value only if the key does not exist: + ``` + > SET name EchoVault NX + ``` + + Set a value if key already exists and get the previous value: + ``` + > SET name EchoVault XX GET + ``` + + Set a value if the key already exists, return the previous value, and expire after 10 seconds: + ``` + > SET name EchoVault XX GET EX 10 + ``` + + diff --git a/docs/docs/commands/generic/ttl.mdx b/docs/docs/commands/generic/ttl.mdx new file mode 100644 index 00000000..bae7c483 --- /dev/null +++ b/docs/docs/commands/generic/ttl.mdx @@ -0,0 +1,49 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# TTL + +### Syntax +``` +TTL key +``` + +### Module +generic + +### Categories +fast +keyspace +read + +### Description +Returns the remaining time to live for a key that has an expiry time in milliseconds. +If the key exists but does not have an associated expiry time, -1 is returned. +If the key does not exist, -2 is returned. + +### Examples + + + + Retrieve the expiration time of a key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ttl, err := vault.TTL("key") + ``` + + + Retrieve the expiration time of a key: + ``` + > TTL key + ``` + + diff --git a/docs/docs/commands/hash/hdel.mdx b/docs/docs/commands/hash/hdel.mdx new file mode 100644 index 00000000..43890dd1 --- /dev/null +++ b/docs/docs/commands/hash/hdel.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HDEL + +### Syntax +``` +HDEL key field [field ...] +``` + +### Module +hash + +### Categories +fast +hash +write + + +### Description +Deletes the specified fields from the hash. + +### Examples + + + + Delete fields from a hash: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + deletedCount, err := vault.HDel("key", "field1", "field2") + ``` + + + Delete fields from a hash: + ``` + > HDEL key field1 field2 + ``` + + diff --git a/docs/docs/commands/hash/hexists.mdx b/docs/docs/commands/hash/hexists.mdx new file mode 100644 index 00000000..2aa2f72e --- /dev/null +++ b/docs/docs/commands/hash/hexists.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HEXISTS + +### Syntax +``` +HEXISTS key field +``` + +### Module +hash + +### Categories +fast +hash +read + + +### Description +Returns if field is an existing field in the hash. + +### Examples + + + + Returns if field exists in a hash: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + exists, err := vault.HExists ("key", "field1") + ``` + + + Returns if field exists in a hash: + ``` + > HEXISTS key field1 + ``` + + diff --git a/docs/docs/commands/hash/hget.mdx b/docs/docs/commands/hash/hget.mdx new file mode 100644 index 00000000..6c59d45d --- /dev/null +++ b/docs/docs/commands/hash/hget.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HGET + +### Syntax +``` +HGET key field [field ...] +``` + +### Module +hash + +### Categories +fast +hash +read + +### Description +Retrieve the value of each of the listed fields from the hash. + +### Examples + + + + Retrieve values from a hash: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + values, err := vault.HGet("key", "field1", "field2", "field3") + ``` + + + Retrieve values from a hash: + ``` + > HGET key field1 field2 + ``` + + diff --git a/docs/docs/commands/hash/hgetall.mdx b/docs/docs/commands/hash/hgetall.mdx new file mode 100644 index 00000000..76e56333 --- /dev/null +++ b/docs/docs/commands/hash/hgetall.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HGETALL + +### Syntax +``` +HGETALL key +``` + +### Module +hash + +### Categories +hash +read +slow + +### Description +Get all fields and values of a hash. + +### Examples + + + + Get all fields and values of a hash: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + result, err := vault.HGetAll("key") + ``` + + + Get all fields and values of a hash: + ``` + > HGETALL key + ``` + + diff --git a/docs/docs/commands/hash/hincrby.mdx b/docs/docs/commands/hash/hincrby.mdx new file mode 100644 index 00000000..ceb8f355 --- /dev/null +++ b/docs/docs/commands/hash/hincrby.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HINCRBY + +### Syntax +``` +HINCRBY key field increment +``` + +### Module +hash + +### Categories +fast +hash +write + +### Description +Increment the hash value by the integer increment. + +### Examples + + + + Increment the hash value by the integer increment: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + newValue, err := vault.HIncrBy("key", "field", 7) + ``` + + + Increment the hash value by the integer increment: + ``` + > HINCRBY key field 7 + ``` + + diff --git a/docs/docs/commands/hash/hincrbyfloat.mdx b/docs/docs/commands/hash/hincrbyfloat.mdx new file mode 100644 index 00000000..02ac6198 --- /dev/null +++ b/docs/docs/commands/hash/hincrbyfloat.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HINCRBYFLOAT + +### Syntax +``` +HINCRBYFLOAT key field increment +``` + +### Module +hash + +### Categories +fast +hash +write + +### Description +Increment the hash value by the float increment. + +### Examples + + + + Increment the hash value by the float increment: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + newValue, err := vault.HIncrByFloat("key", "field", 7.75) + ``` + + + Increment the hash value by the float increment: + ``` + > HINCRBYFLOAT key field 7.75 + ``` + + diff --git a/docs/docs/commands/hash/hkeys.mdx b/docs/docs/commands/hash/hkeys.mdx new file mode 100644 index 00000000..bd7e56b3 --- /dev/null +++ b/docs/docs/commands/hash/hkeys.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HKEYS + +### Syntax +``` +HKEYS key +``` + +### Module +hash + +### Categories +hash +read +slow + +### Description +Returns all the fields in a hash. + +### Examples + + + + Retrieve all fields from a hash: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + keys, err := vault.HKeys("key") + ``` + + + Retrieve all fields from a hash: + ``` + > HKEYS key + ``` + + diff --git a/docs/docs/commands/hash/hlen.mdx b/docs/docs/commands/hash/hlen.mdx new file mode 100644 index 00000000..d3902222 --- /dev/null +++ b/docs/docs/commands/hash/hlen.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HLEN + +### Syntax +``` +HLEN key +``` + +### Module +hash + +### Categories +fast +hash +read + +### Description +Returns the number of fields in the hash. + +### Examples + + + + Retrieve the number of fields in the hash: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + length, err := vault.HLen("key") + ``` + + + Retrieve the number of fields in the hash: + ``` + > HLEN key + ``` + + diff --git a/docs/docs/commands/hash/hrandfield.mdx b/docs/docs/commands/hash/hrandfield.mdx new file mode 100644 index 00000000..48eba605 --- /dev/null +++ b/docs/docs/commands/hash/hrandfield.mdx @@ -0,0 +1,51 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HRANDFIELD + +### Syntax +``` +HRANDFIELD key [count [WITHVALUES]] +``` + +### Module +hash + +### Categories +hash +read +slow + +### Description +Returns one or more random fields from the hash. + +## Options +- `WITHVALUES` - When provided, the return value will contain the field and its value. + Otherwise, only the field is returned. + +### Examples + + + + Returns one or more random fields from the hash: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + fields, err := vault.HRandField("key", echovault.HRandFieldOptions{}) + ``` + + + Returns one or more random fields from the hash: + ``` + > HRANDFIELD key + ``` + + diff --git a/docs/docs/commands/hash/hset.mdx b/docs/docs/commands/hash/hset.mdx new file mode 100644 index 00000000..03f5ed2d --- /dev/null +++ b/docs/docs/commands/hash/hset.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HSET + +### Syntax +``` +HSET key field value [field value ...] +``` + +### Module +hash + +### Categories +fast +hash +write + +### Description +Update each field of the hash with the corresponding value. +If the field does not exist, it is created. + +### Examples + + + + Update each field of the hash with the corresponding value: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + noOfUpdatedFields, err := vault.HSet("key", map[string]string{"field1": "value1", "field2": "value2"}) + ``` + + + Update each field of the hash with the corresponding value: + ``` + > HSET key field1 value1 field2 value2 + ``` + + diff --git a/docs/docs/commands/hash/hsetnx.mdx b/docs/docs/commands/hash/hsetnx.mdx new file mode 100644 index 00000000..34400c15 --- /dev/null +++ b/docs/docs/commands/hash/hsetnx.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HSETNX + +### Syntax +``` +HSETNX key field value [field value ...] +``` + +### Module +hash + +### Categories +fast +hash +write + +### Description +Set hash field value only if the field does not exist. + +### Examples + + + + Set hash field value: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + noOfUpdatedFields, err := vault.HSetNX("key", map[string]string{"field1": "value1", "field2": "value2"}) + ``` + + + Set hash field value: + ``` + > HSETNX key field1 value1 field2 value2 + ``` + + diff --git a/docs/docs/commands/hash/hstrlen.mdx b/docs/docs/commands/hash/hstrlen.mdx new file mode 100644 index 00000000..f79a366d --- /dev/null +++ b/docs/docs/commands/hash/hstrlen.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HSTRLEN + +### Syntax +``` +HSTRLEN key field [field ...] +``` + +### Module +hash + +### Categories +fast +hash +read + +### Description +Return the string length of the values stored at the specified fields. +Returns 0 if the value does not exist. + +### Examples + + + + Return the string length of the values stored at the specified fields: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + lengths, err := vault.HStrLen("key", "field1", "field2", "field3") + ``` + + + Return the string length of the values stored at the specified fields: + ``` + > HSTRLEN key field1 field2 + ``` + + diff --git a/docs/docs/commands/hash/hvals.mdx b/docs/docs/commands/hash/hvals.mdx new file mode 100644 index 00000000..949656b9 --- /dev/null +++ b/docs/docs/commands/hash/hvals.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# HVALS + +### Syntax +``` +HVALS key +``` + +### Module +hash + +### Categories +hash +read +slow + +### Description +Returns all the values of the hash at key. + +### Examples + + + + Returns all the values of the hash at key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + values, err := vault.HVals("key") + ``` + + + Returns all the values of the hash at key: + ``` + > HVALS key + ``` + + diff --git a/docs/docs/commands/hash/index.md b/docs/docs/commands/hash/index.md new file mode 100644 index 00000000..b9705e8a --- /dev/null +++ b/docs/docs/commands/hash/index.md @@ -0,0 +1 @@ +# Hash diff --git a/docs/docs/commands/index.md b/docs/docs/commands/index.md new file mode 100644 index 00000000..89560a4c --- /dev/null +++ b/docs/docs/commands/index.md @@ -0,0 +1,5 @@ +--- +sidebar_position: 8 +--- + +# Commands diff --git a/docs/docs/commands/list/index.md b/docs/docs/commands/list/index.md new file mode 100644 index 00000000..6811f7b8 --- /dev/null +++ b/docs/docs/commands/list/index.md @@ -0,0 +1 @@ +# List diff --git a/docs/docs/commands/list/lindex.mdx b/docs/docs/commands/list/lindex.mdx new file mode 100644 index 00000000..f06987ea --- /dev/null +++ b/docs/docs/commands/list/lindex.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# LINDEX + +### Syntax +``` +LINDEX key index +``` + +### Module +list + +### Categories +fast +list +read + +### Description +Returns the list element at the given index. + +### Examples + + + + Returns the list element at the given index: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + element, err := vault.LIndex("key", 2) + ``` + + + Returns the list element at the given index: + ``` + > LINDEX key 2 + ``` + + diff --git a/docs/docs/commands/list/llen.mdx b/docs/docs/commands/list/llen.mdx new file mode 100644 index 00000000..57c811eb --- /dev/null +++ b/docs/docs/commands/list/llen.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# LLEN + +### Syntax +``` +LLEN key +``` + +### Module +list + +### Categories +fast +list +read + +### Description +Returns the length of a list. + +### Examples + + + + Returns the length of a list: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + length, err := vault.LLen("key") + ``` + + + Returns the length of a list: + ``` + > LLEN key + ``` + + diff --git a/docs/docs/commands/list/lmove.mdx b/docs/docs/commands/list/lmove.mdx new file mode 100644 index 00000000..5034aef5 --- /dev/null +++ b/docs/docs/commands/list/lmove.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# LMOVE + +### Syntax +``` +LMOVE source destination +``` + +### Module +list + +### Categories +list +slow +write + +### Description +Move element from one list to the other specifying left/right for both lists. +LEFT represents the start of a list. RIGHT represents the end of a list. + +### Examples + + + + Move an element from the beginning of the source list to the end of the destination list: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.LMove("source", "destination", "LEFT", "RIGHT") + ``` + + + Move an element from the beginning of the source list to the end of the destination list: + ``` + > LMOVE source destination LEFT RIGHT + ``` + + diff --git a/docs/docs/commands/list/lpop.mdx b/docs/docs/commands/list/lpop.mdx new file mode 100644 index 00000000..3e81f198 --- /dev/null +++ b/docs/docs/commands/list/lpop.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# LPOP + +### Syntax +``` +LPOP key +``` + +### Module +list + +### Categories +list +write +fast + +### Description +Removes and returns the first element of a list. + +### Examples + + + + Removes and returns the first element of a list: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + element, err := vault.LPop("key") + ``` + + + Removes and returns the first element of a list: + ``` + > LPOP key + ``` + + diff --git a/docs/docs/commands/list/lpush.mdx b/docs/docs/commands/list/lpush.mdx new file mode 100644 index 00000000..37ac9148 --- /dev/null +++ b/docs/docs/commands/list/lpush.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# LPUSH + +### Syntax +``` +LPUSH key element [element ...] +``` + +### Module +list + +### Categories +fast +list +write + +### Description +Prepends one or more values to the beginning of a list, creates the list if it does not exist. + +### Examples + + + + Prepends one or more values to the beginning of a list, creates the list if it does not exist: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + length, err := vault.LPush("key", "element1", "element2") + ``` + + + Prepends one or more values to the beginning of a list, creates the list if it does not exist: + ``` + > LPUSH key element1 element2 + ``` + + diff --git a/docs/docs/commands/list/lpushx.mdx b/docs/docs/commands/list/lpushx.mdx new file mode 100644 index 00000000..2aa8d125 --- /dev/null +++ b/docs/docs/commands/list/lpushx.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# LPUSHX + +### Syntax +``` +LPUSHX key element [element ...] +``` + +### Module +list + +### Categories +fast +list +write + +### Description +Prepends a value to the beginning of a list only if the list exists. + +### Examples + + + + Prepends a value to the beginning of a list only if the list exists: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + length, err := vault.LPushX("key", "element1", "element2") + ``` + + + Prepends a value to the beginning of a list only if the list exists: + ``` + > LPUSHX key element1 element2 + ``` + + diff --git a/docs/docs/commands/list/lrange.mdx b/docs/docs/commands/list/lrange.mdx new file mode 100644 index 00000000..f35e225c --- /dev/null +++ b/docs/docs/commands/list/lrange.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# LRANGE + +### Syntax +``` +LRANGE key start end +``` + +### Module +list + +### Categories +list +read +slow + +### Description +Return a range of elements between the given indices. + +### Examples + + + + Return a range of elements between the given indices: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + list, err := vault.LRange("key", 2, 6) + ``` + + + Return a range of elements between the given indices: + ``` + > LRANGE key 2 6 + ``` + + diff --git a/docs/docs/commands/list/lrem.mdx b/docs/docs/commands/list/lrem.mdx new file mode 100644 index 00000000..c2b5585e --- /dev/null +++ b/docs/docs/commands/list/lrem.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# LREM + +### Syntax +``` +LREM key count element +``` + +### Module +list + +### Categories +list +write +slow + +### Description +Remove `` elements from list. + +### Examples + + + + Remove 2 instances if "value1" from the list at key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.Lrem("key", 2, "value1") + ``` + + + Remove 2 instances if "value1" from the list at key: + ``` + > LREM key 2 value1 + ``` + + diff --git a/docs/docs/commands/list/lset.mdx b/docs/docs/commands/list/lset.mdx new file mode 100644 index 00000000..0d5994d3 --- /dev/null +++ b/docs/docs/commands/list/lset.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# LSET + +### Syntax +``` +LSET key index element +``` + +### Module +list + +### Categories +fast +list +write + +### Description +Sets the value of an element in a list by its index. + +### Examples + + + + Sets the value of an element in a list by its index: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.LSet("key", 2, "element") + ``` + + + Sets the value of an element in a list by its index: + ``` + > LSET key 2 element + ``` + + diff --git a/docs/docs/commands/list/ltrim.mdx b/docs/docs/commands/list/ltrim.mdx new file mode 100644 index 00000000..c28ded88 --- /dev/null +++ b/docs/docs/commands/list/ltrim.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# LTRIM + +### Syntax +``` +LTRIM key start end +``` + +### Module +list + +### Categories +list +write +slow + +### Description +Trims a list using the specified range. + +### Examples + + + + Trims a list using the specified range: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.LTrim("key", 2, 6) + ``` + + + Trims a list using the specified range: + ``` + > LTRIM key 2 6 + ``` + + diff --git a/docs/docs/commands/list/rpop.mdx b/docs/docs/commands/list/rpop.mdx new file mode 100644 index 00000000..f5a4325d --- /dev/null +++ b/docs/docs/commands/list/rpop.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# RPOP + +### Syntax +``` +LPOP key +``` + +### Module +list + +### Categories +list +write +fast + +### Description +Removes and returns the last element of a list. + +### Examples + + + + Removes and returns the last element of a list: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + element, err := vault.RPop("key") + ``` + + + Removes and returns the last element of a list: + ``` + > RPOP key + ``` + + diff --git a/docs/docs/commands/list/rpush.mdx b/docs/docs/commands/list/rpush.mdx new file mode 100644 index 00000000..561b1c76 --- /dev/null +++ b/docs/docs/commands/list/rpush.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# RPUSH + +### Syntax +``` +RPUSH key element [element ...] +``` + +### Module +list + +### Categories +fast +list +write + +### Description +Prepends one or more values to the end of a list, creates the list if it does not exist. + +### Examples + + + + Prepends one or more values to the end of a list, creates the list if it does not exist: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + length, err := vault.RPush("key", "element1", "element2") + ``` + + + Prepends one or more values to the end of a list, creates the list if it does not exist: + ``` + > RPUSH key element1 element2 + ``` + + diff --git a/docs/docs/commands/list/rpushx.mdx b/docs/docs/commands/list/rpushx.mdx new file mode 100644 index 00000000..8e2041ce --- /dev/null +++ b/docs/docs/commands/list/rpushx.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# RPUSHX + +### Syntax +``` +RPUSHX key element [element ...] +``` + +### Module +list + +### Categories +fast +list +write + +### Description +Appends a value to the end of a list only if the list exists. + +### Examples + + + + Appends a value to the end of a list only if the list exists: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + length, err := vault.RPushX("key", "element1", "element2") + ``` + + + Appends a value to the end of a list only if the list exists: + ``` + > RPUSHX key element1 element2 + ``` + + diff --git a/docs/docs/commands/pubsub/index.md b/docs/docs/commands/pubsub/index.md new file mode 100644 index 00000000..4e5c5cbd --- /dev/null +++ b/docs/docs/commands/pubsub/index.md @@ -0,0 +1 @@ +# PubSub diff --git a/docs/docs/commands/pubsub/psubscribe.mdx b/docs/docs/commands/pubsub/psubscribe.mdx new file mode 100644 index 00000000..96d198f9 --- /dev/null +++ b/docs/docs/commands/pubsub/psubscribe.mdx @@ -0,0 +1,57 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# PSUBSCRIBE + +### Syntax +``` +PSUBSCRIBE pattern [pattern ...] +``` + +### Module +pubsub + +### Categories +connection +pubsub +slow + +### Description +Subscribe to one or more patterns. This command accepts glob patterns. + +### Examples + + + + The Subscribe method returns a readMessage function. + This method is lazy so it must be invoked each time the you want to read the next message from + the pattern. + When subscribing to an'N' number of patterns, the first N messages will be + the subscription confimations. + The readMessage functions returns a message object when called. The message + object is a string slice with the following inforamtion: + event type at index 0 (e.g. subscribe, message), pattern at index 1, + message/subscription index at index 2. + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + readMessage := vault.PSubscribe("subscribe_tag_1", "pattern_[12]", "pattern_h[ae]llo") // Return lazy readMessage function + for i := 0; i < 2; i++ { + message := readMessage() // Call the readMessage function for each channel subscription. + } + ``` + + + ``` + > PSUBSCRIBE pattern_[12] pattern_h[ae]llo + ``` + + diff --git a/docs/docs/commands/pubsub/publish.mdx b/docs/docs/commands/pubsub/publish.mdx new file mode 100644 index 00000000..8b246816 --- /dev/null +++ b/docs/docs/commands/pubsub/publish.mdx @@ -0,0 +1,46 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# PUBLISH + +### Syntax +``` +PUBLISH channel message +``` + +### Module +pubsub + +### Categories +pubsub +fast + +### Description +Publish a message to the specified channel. + +### Examples + + + + Publish a message to the specified channel: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.Publish("channel1", "Hello, world!") + ``` + + + Publish a message to the specified channel: + ``` + > PUBLISH channel1 "Hello, world!" + ``` + + diff --git a/docs/docs/commands/pubsub/pubsub_channels.mdx b/docs/docs/commands/pubsub/pubsub_channels.mdx new file mode 100644 index 00000000..acb85645 --- /dev/null +++ b/docs/docs/commands/pubsub/pubsub_channels.mdx @@ -0,0 +1,50 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# PUBSUB CHANNELS + +### Syntax +``` +PUBSUB CHANNELS [pattern] +``` + +### Module +pubsub + +### Categories +pubsub +slow + +### Description +Returns an array containing the list of channels that + +### Examples + + + + Returns an array containing the list of channels that + match the given pattern. If no pattern is provided, all active channels are returned. Active channels are + channels with 1 or more subscribers. + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + channels, err := vault.PubSubChannels("channel*") + ``` + + + Returns an array containing the list of channels that + match the given pattern. If no pattern is provided, all active channels are returned. Active channels are + channels with 1 or more subscribers. + ``` + > PUBSUB CHANNELS channel* + ``` + + diff --git a/docs/docs/commands/pubsub/pubsub_numpat.mdx b/docs/docs/commands/pubsub/pubsub_numpat.mdx new file mode 100644 index 00000000..95d12a7c --- /dev/null +++ b/docs/docs/commands/pubsub/pubsub_numpat.mdx @@ -0,0 +1,46 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# PUBSUB NUMPAT + +### Syntax +``` +PUBSUB NUMPAT +``` + +### Module +pubsub + +### Categories +pubsub +slow + +### Description +Return the number of patterns that are currently subscribed to by clients. + +### Examples + + + + Return the number of patterns that are currently subscribed to by clients. + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + numOfPatterns, err := vault.PubSubNumPat() + ``` + + + Return the number of patterns that are currently subscribed to by clients. + ``` + > PUBSUB NUMPAT + ``` + + diff --git a/docs/docs/commands/pubsub/pubsub_numsub.mdx b/docs/docs/commands/pubsub/pubsub_numsub.mdx new file mode 100644 index 00000000..7853c1bc --- /dev/null +++ b/docs/docs/commands/pubsub/pubsub_numsub.mdx @@ -0,0 +1,49 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# PUBSUB NUMSUB + +### Syntax +``` +PUBSUB NUMSUB [channel [channel ...]] +``` + +### Module +pubsub + +### Categories +pubsub +slow + +### Description +Return an array of arrays containing the provided channel name and +how many clients are currently subscribed to the channel. + +### Examples + + + + Return an array of arrays containing the provided channel name and + how many clients are currently subscribed to the channel. + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + stats, err := server.PubSubNumSub() + ``` + + + Return an array of arrays containing the provided channel name and + how many clients are currently subscribed to the channel. + ``` + > PUBSUB NUMSUB channel1 channel2 + ``` + + diff --git a/docs/docs/commands/pubsub/punsubscribe.mdx b/docs/docs/commands/pubsub/punsubscribe.mdx new file mode 100644 index 00000000..cd345f2b --- /dev/null +++ b/docs/docs/commands/pubsub/punsubscribe.mdx @@ -0,0 +1,61 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# PUNSUBSCRIBE + +### Syntax +``` +PUNSUBSCRIBE [pattern [pattern ...]] +``` + +### Module +pubsub + +### Categories +pubsub +connection +slow + +### Description +Unsubscribe from a list of channels using patterns. +If the pattern list is not provided, then the connection will be unsubscribed from all the patterns that +it's currently subscribed to. + +### Examples + + + + Unsubscribe from all patterns: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + vault.PUnsubscribe() + ``` + Unsubscribe from specific patterns: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + vault.PUnsubscribe("pattern_[12]", "pattern_h[ae]llo") + ``` + + + Unsubscribe from all patterns: + ``` + > PUNSUBSCRIBE + ``` + Unsubscribe from specific patterns: + ``` + > PUNSUBSCRIBE pattern_[12] pattern_h[ae]llo + ``` + + diff --git a/docs/docs/commands/pubsub/subscribe.mdx b/docs/docs/commands/pubsub/subscribe.mdx new file mode 100644 index 00000000..18803aea --- /dev/null +++ b/docs/docs/commands/pubsub/subscribe.mdx @@ -0,0 +1,57 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SUBSCRIBE + +### Syntax +``` +SUBSCRIBE channel [channel ...] +``` + +### Module +pubsub + +### Categories +pubsub +connection +slow + +### Description +Subscribe to one or more channels. + +### Examples + + + + The Subscribe method returns a readMessage function. + This method is lazy so it must be invoked each time the you want to read the next message from + the channel. + When subscribing to an'N' number of channels, the first N messages will be + the subscription confimations. + The readMessage functions returns a message object when called. The message + object is a string slice with the following inforamtion: + event type at index 0 (e.g. subscribe, message), channel name at index 1, + message/subscription index at index 2. + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + readMessage := vault.Subscribe("subscribe_tag_1", "channel1", "channel2") // Return lazy readMessage function + for i := 0; i < 2; i++ { + message := readMessage() // Call the readMessage function for each channel subscription. + } + ``` + + + ``` + > SUBSCRIBE channel1 channel2 + ``` + + diff --git a/docs/docs/commands/pubsub/unsubscribe.mdx b/docs/docs/commands/pubsub/unsubscribe.mdx new file mode 100644 index 00000000..29da33d5 --- /dev/null +++ b/docs/docs/commands/pubsub/unsubscribe.mdx @@ -0,0 +1,61 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# UNSUBSCRIBE + +### Syntax +``` +UNSUBSCRIBE [channel [channel ...]] +``` + +### Module +pubsub + +### Categories +pubsub +connection +slow + +### Description +Unsubscribe from a list of channels. +If the channel list is not provided, then the connection will be unsubscribed from all the channels that +it's currently subscribed to. + +### Examples + + + + Unsubscribe from all channels: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + vault.Unsubscribe() + ``` + Unsubscribe from specific channels: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + vault.Unsubscribe("channel1", "channel2") + ``` + + + Unsubscribe from all channels: + ``` + > UNSUBSCRIBE + ``` + Unsubscribe from specific channels: + ``` + > UNSUBSCRIBE channel1 channel2 + ``` + + diff --git a/docs/docs/commands/set/index.md b/docs/docs/commands/set/index.md new file mode 100644 index 00000000..caca0f78 --- /dev/null +++ b/docs/docs/commands/set/index.md @@ -0,0 +1 @@ +# Set diff --git a/docs/docs/commands/set/sadd.mdx b/docs/docs/commands/set/sadd.mdx new file mode 100644 index 00000000..bf934b54 --- /dev/null +++ b/docs/docs/commands/set/sadd.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SADD + +### Syntax +``` +SADD key member [member...] +``` + +### Module +set + +### Categories +fast +set +write + +### Description +Add one or more members to the set. If the set does not exist, it's created. + +### Examples + + + + Add members to the set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.SAdd("key", "member1", "member2") + ``` + + + Add members to the set: + ``` + > SADD key member1 member2 + ``` + + diff --git a/docs/docs/commands/set/scard.mdx b/docs/docs/commands/set/scard.mdx new file mode 100644 index 00000000..a3104d55 --- /dev/null +++ b/docs/docs/commands/set/scard.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SCARD + +### Syntax +``` +SCARD key +``` + +### Module +set + +### Categories +fast +set +read + +### Description +Returns the cardinality of the set. + +### Examples + + + + Get the set's cardinality: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.SCard("key") + ``` + + + Get the set's cardinality: + ``` + > SCARD key + ``` + + diff --git a/docs/docs/commands/set/sdiff.mdx b/docs/docs/commands/set/sdiff.mdx new file mode 100644 index 00000000..4c70472d --- /dev/null +++ b/docs/docs/commands/set/sdiff.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SDIFF + +### Syntax +``` +SDIFF key [key...] +``` + +### Module +set + +### Categories +read +set +slow + +### Description +Returns the difference between all the sets in the given keys. + +### Examples + + + + Get the difference between 2 sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + elements, err := vault.SDiff("key1", "key2") + ``` + + + Get the difference between 2 sets: + ``` + > SDIFF key1 key2 + ``` + + diff --git a/docs/docs/commands/set/sdiffstore.mdx b/docs/docs/commands/set/sdiffstore.mdx new file mode 100644 index 00000000..40a2fdb2 --- /dev/null +++ b/docs/docs/commands/set/sdiffstore.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SDIFFSTORE + +### Syntax +``` +SDIFFSTORE destination key [key...] +``` + +### Module +set + +### Categories +set +slow +write + +### Description +Works the same as SDIFF but stores the result at 'destination'. + +### Examples + + + + Store the difference between 2 sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.SDiffStore("destination", "key1", "key2") + ``` + + + Store the difference between 2 sets: + ``` + > SDIFFSTORE destination key1 key2 + ``` + + diff --git a/docs/docs/commands/set/sinter.mdx b/docs/docs/commands/set/sinter.mdx new file mode 100644 index 00000000..a9f3021c --- /dev/null +++ b/docs/docs/commands/set/sinter.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SINTER + +### Syntax +``` +SINTER key [key...] +``` + +### Module +set + +### Categories +read +set +slow + +### Description +Returns the intersection of multiple sets. + +### Examples + + + + Get the difference between 2 sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + elements, err := vault.SInter("key1", "key2") + ``` + + + Get the difference between 2 sets: + ``` + > SINTER key1 key2 + ``` + + \ No newline at end of file diff --git a/docs/docs/commands/set/sintercard.mdx b/docs/docs/commands/set/sintercard.mdx new file mode 100644 index 00000000..84c9e0c9 --- /dev/null +++ b/docs/docs/commands/set/sintercard.mdx @@ -0,0 +1,65 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SINTERCARD + +### Syntax +``` +SINTERCARD key [key...] [LIMIT limit] +``` + +### Module +set + +### Categories +read +set +slow + +### Description +Returns the cardinality of the intersection between multiple sets. + +### Options +- LIMIT - limit is an integer which determines the cardinality at which the intersection calculation +is terminated. + +### Examples + + + + Get the difference between 2 sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.SInterCard([]string{"key1", "key2"}, 0) + ``` + + Get the intersection only upto an intersection cardinality of 5: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.SInterCard([]string{"key1", "key2"}, 5) + ``` + + + Get the difference between 2 sets: + ``` + > SINTERCARD key1 key2 + ``` + + Get the intersection only upto an intersection cardinality of 5: + ``` + > SINTERCARD key1 key2 LIMIT 5 + ``` + + diff --git a/docs/docs/commands/set/sinterstore.mdx b/docs/docs/commands/set/sinterstore.mdx new file mode 100644 index 00000000..9b56a070 --- /dev/null +++ b/docs/docs/commands/set/sinterstore.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SINTERSTORE + +### Syntax +``` +SINTERSTORE destination key [key...] +``` + +### Module +set + +### Categories +set +slow +write + +### Description +Stores the intersection of multiple sets at the destination key. + +### Examples + + + + Get the difference between 2 sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.SInterStore("destination", "key1", "key2") + ``` + + + Get the difference between 2 sets: + ``` + > SINTERSTORE destination key1 key2 + ``` + + diff --git a/docs/docs/commands/set/sismember.mdx b/docs/docs/commands/set/sismember.mdx new file mode 100644 index 00000000..be6794d3 --- /dev/null +++ b/docs/docs/commands/set/sismember.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SISMEMBER + +### Syntax +``` +SISMEMBER key member +``` + +### Module +set + +### Categories +fast +read +set + +### Description +Returns if member is contained in the set. + +### Examples + + + + Check if a member is in the set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + ok, err := vault.SisMember("key", "member") + ``` + + + Check if a member is in the set: + ``` + > SISMEMBER key member + ``` + + diff --git a/docs/docs/commands/set/smembers.mdx b/docs/docs/commands/set/smembers.mdx new file mode 100644 index 00000000..09053943 --- /dev/null +++ b/docs/docs/commands/set/smembers.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SMEMBERS + +### Syntax +``` +SMEMBERS key +``` + +### Module +set + +### Categories +read +set +slow + +### Description +Returns all members of a set. + +### Examples + + + + Get all members of a set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + elements, err := vault.SMembers("key") + ``` + + + Get all members of a set: + ``` + > SMEMBERS key + ``` + + diff --git a/docs/docs/commands/set/smismember.mdx b/docs/docs/commands/set/smismember.mdx new file mode 100644 index 00000000..ed73b5a7 --- /dev/null +++ b/docs/docs/commands/set/smismember.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SMISMEMBER + +### Syntax +``` +SMISMEMBER key member [member...] +``` + +### Module +set + +### Categories +fast +read +set + +### Description +Returns if multiple members are in the set. + +### Examples + + + + Returns if multiple members are in the set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + isMemberSlice, err := vault.SMisMember("key", "member1", "member2") + ``` + + + Returns if multiple members are in the set: + ``` + > SMISMEMBER key member1 member2 + ``` + + diff --git a/docs/docs/commands/set/smove.mdx b/docs/docs/commands/set/smove.mdx new file mode 100644 index 00000000..900b33c6 --- /dev/null +++ b/docs/docs/commands/set/smove.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SMOVE + +### Syntax +``` +SMOVE source destination member +``` + +### Module +set + +### Categories +fast +set +write + +### Description +Moves a member from source set to destination set. + +### Examples + + + + Move a member from source set to destination set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + moved, err := vault.SMove("source", "destination", "member") + ``` + + + Move a member from source set to destination set: + ``` + > SMOVE source destination member + ``` + + diff --git a/docs/docs/commands/set/spop.mdx b/docs/docs/commands/set/spop.mdx new file mode 100644 index 00000000..23ca1f99 --- /dev/null +++ b/docs/docs/commands/set/spop.mdx @@ -0,0 +1,61 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SPOP + +### Syntax +``` +SPOP key [count] +``` + +### Module +set + +### Categories +set +slow +write + +### Description +Returns and removes one or more random members from the set. + +### Examples + + + + Pop one element from the set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + elements, err := vault.SPop("key", 1) + ``` + + Pop 5 elements from the set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + elements, err := vault.SPop("key", 5) + ``` + + + Pop one element from the set: + ``` + > SPOP key + ``` + + Pop 5 elements from the set: + ``` + > SPOP key 5 + ``` + + diff --git a/docs/docs/commands/set/srandmember.mdx b/docs/docs/commands/set/srandmember.mdx new file mode 100644 index 00000000..fea98c83 --- /dev/null +++ b/docs/docs/commands/set/srandmember.mdx @@ -0,0 +1,71 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SRANDMEMBER + +### Syntax +``` +SRANDMEMBER key [count] +``` + +### Module +set + +### Categories +read +set +slow + +### Description +Returns one or more random members from the set without removing them. + +### Examples + + + + Return one random element from the set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + elements, err := vault.SRandMember("key", 1) + ``` + Return 5 unique random elements from the set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + elements, err := vault.SRandMember("key", 5) + ``` + Return 5 random elements from the set allowing duplicates: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + elements, err := vault.SRandMember("key", -5) + ``` + + + Return one random element from the set: + ``` + > SRANDMEMBER key + ``` + Return 5 unique random elements from the set: + ``` + > SRANDMEMBER key 5 + ``` + Return 5 random elements from the set allowing duplicates: + ``` + > SRANDMEMBER key -5 + ``` + + diff --git a/docs/docs/commands/set/srem.mdx b/docs/docs/commands/set/srem.mdx new file mode 100644 index 00000000..e415e2b3 --- /dev/null +++ b/docs/docs/commands/set/srem.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SREM + +### Syntax +``` +SREM key member [member...] +``` + +### Module +set + +### Categories +fast +set +write + +### Description +Remove one or more members from a set. + +### Examples + + + + Remove members from the set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + deletedCount, err := vault.SRem("key", "member1", "member2") + ``` + + + Remove members from the set: + ``` + > SREM key member1 member2 + ``` + + diff --git a/docs/docs/commands/set/sunion.mdx b/docs/docs/commands/set/sunion.mdx new file mode 100644 index 00000000..b5c66dbe --- /dev/null +++ b/docs/docs/commands/set/sunion.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SUNION + +### Syntax +``` +SUNION key [key...] +``` + +### Module +set + +### Categories +set +slow +read + +### Description +Returns the members of the set resulting from the union of the provided sets. + +### Examples + + + + Return the members of the set resulting from the union of the provided sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + elements, err := vault.SUnion("key1", "key2") + ``` + + + Return the members of the set resulting from the union of the provided sets: + ``` + > SUNION key1 key2 + ``` + + diff --git a/docs/docs/commands/set/sunionstore.mdx b/docs/docs/commands/set/sunionstore.mdx new file mode 100644 index 00000000..e9171f54 --- /dev/null +++ b/docs/docs/commands/set/sunionstore.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SUNIONSTORE + +### Syntax +``` +SUNIONSTORE destination key [key...] +``` + +### Module +set + +### Categories +set +slow +write + +### Description +Stores the union of the given sets into destination. + +### Examples + + + + Stores the union of the given sets into destination: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.SUnionStore("destination", "key1", "key2") + ``` + + + + Stores the union of the given sets into destination: + ``` + > SUNIONSTORE destination key1 key2 + ``` + + diff --git a/docs/docs/commands/sorted_set/index.md b/docs/docs/commands/sorted_set/index.md new file mode 100644 index 00000000..6117b123 --- /dev/null +++ b/docs/docs/commands/sorted_set/index.md @@ -0,0 +1 @@ +# Sorted Set diff --git a/docs/docs/commands/sorted_set/zadd.mdx b/docs/docs/commands/sorted_set/zadd.mdx new file mode 100644 index 00000000..504182ae --- /dev/null +++ b/docs/docs/commands/sorted_set/zadd.mdx @@ -0,0 +1,95 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZADD + +### Syntax +``` +ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member...] +``` + +### Module +sortedset + +### Categories +fast +sortedset +write + +### Description +Adds all the specified members with the specified scores to the sorted set at the key. + +### Options +- `NX` - only adds the member if it currently does not exist in the sorted set. +- `XX` - only updates the scores of members that exist in the sorted set. +- `GT` - only updates the score if the new score is greater than the current score. +- `LT` - only updates the score if the new score is less than the current score. +- `CH` - modifies the result to return total number of members changed + added, instead of only new members added. +- `INCR` - modifies the command to act like ZINCRBY, only one score/member pair can be specified in this mode. + +### Examples + + + + Add elements to sorted set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + changedCount, err := vault.ZAdd( + "key", + map[string]float64{"member1": 2.5, "member2": 1.25, "member3": 3}, + echovault.ZAddOptions{}, + ) + ``` + + Add elements to sorted set, skipping members that already exist in the set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + changedCount, err := vault.ZAdd( + "key", + map[string]float64{"member1": 2.5, "member2": 1.25, "member3": 3, "member4": 4}, + echovault.ZAddOptions{NX: true}, + ) + ``` + + Increment the element by the specified score: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + changedCount, err := vault.ZAdd( + "key", + map[string]float64{"member1": 5.75}, + echovault.ZAddOptions{INCR: true}, + ) + ``` + + + Add elements to sorted set: + ``` + > ZADD key 2.5 member1 1.25 member2 3 member3 + ``` + + Add elements to sorted set, skipping members that already exist in the set: + ``` + > ZADD key NX 2.5 member1 1.25 member2 3 member3 4 member4 + ``` + + Increment the element by the specified score: + ``` + > ZADD key INCR 5.75 member1 + ``` + + diff --git a/docs/docs/commands/sorted_set/zcard.mdx b/docs/docs/commands/sorted_set/zcard.mdx new file mode 100644 index 00000000..6bdb567e --- /dev/null +++ b/docs/docs/commands/sorted_set/zcard.mdx @@ -0,0 +1,49 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZCARD + +### Syntax +``` +ZCARD key +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Returns the set cardinality of the sorted set at key. +If the key does not exist, 0 is returned, otherwise the cardinality of the sorted set is returned. +If the key holds a value that is not a sorted set, this command will return an error. + +### Examples + + + + Get the cardinality of the sorted set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.ZCard("key") + ``` + + + Get the cardinality of the sorted set: + ``` + > ZCARD key + ``` + + diff --git a/docs/docs/commands/sorted_set/zcount.mdx b/docs/docs/commands/sorted_set/zcount.mdx new file mode 100644 index 00000000..3a34dff0 --- /dev/null +++ b/docs/docs/commands/sorted_set/zcount.mdx @@ -0,0 +1,49 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZCOUNT + +### Syntax +``` +ZCOUNT key min max +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Returns the number of elements in the sorted set key with scores in the range of min and max. +If the key does not exist, a count of 0 is returned, otherwise return the count. +If the key holds a value that is not a sorted set, an error is returned. + +### Examples + + + + Get the cardinality of the sorted set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + count, err := vault.ZCount("key", 1.25, 10.55) + ``` + + + Get the cardinality of the sorted set: + ``` + > ZCOUNT key 1.25 10.55 + ``` + + diff --git a/docs/docs/commands/sorted_set/zdiff.mdx b/docs/docs/commands/sorted_set/zdiff.mdx new file mode 100644 index 00000000..c69e653c --- /dev/null +++ b/docs/docs/commands/sorted_set/zdiff.mdx @@ -0,0 +1,64 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZDIFF + +### Syntax +``` +ZDIFF key [key...] [WITHSCORES] +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Computes the difference between all the sorted sets specified in the list of keys and returns the result. + +## Options +- `WITHSCORES` - Whether the returned sorted set should include scores + +### Examples + + + + Get the difference between 2 sorted sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + sortedSet, err := vault.ZDiff(false, "key1", "key2") + ``` + + Get the difference between 2 sorted sets and include the scores: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + sortedSet, err := vault.ZDiff(true, "key1", "key2") + ``` + + + Get the difference between 2 sorted sets: + ``` + > ZDIFF key1 key2 + ``` + + Get the difference between 2 sorted sets and include the scores: + ``` + > ZDIFF key1 key2 WITHSCORES + ``` + + diff --git a/docs/docs/commands/sorted_set/zdiffstore.mdx b/docs/docs/commands/sorted_set/zdiffstore.mdx new file mode 100644 index 00000000..4a26c0fd --- /dev/null +++ b/docs/docs/commands/sorted_set/zdiffstore.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZDIFFSTORE + +### Syntax +``` +ZDIFFSTORE destination key1 key2 +``` + +### Module +sortedset + +### Categories +slow +sortedset +write + +### Description +Computes the difference between all the sorted sets specifies in the list of keys. Stores the result in destination. +If the base set (first key) does not exist, return 0, otherwise, return the cardinality of the diff. + +### Examples + + + + Store the difference between 2 sorted sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.ZDiffStore("destination", "key1", "key2") + ``` + + + Store the difference between 2 sorted sets: + ``` + > ZDIFFSTORE destination key1 key2 + ``` + + diff --git a/docs/docs/commands/sorted_set/zincrby.mdx b/docs/docs/commands/sorted_set/zincrby.mdx new file mode 100644 index 00000000..1fcb8738 --- /dev/null +++ b/docs/docs/commands/sorted_set/zincrby.mdx @@ -0,0 +1,51 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZINCRBY + +### Syntax +``` +ZINCRBY key increment member +``` + +### Module +sortedset + +### Categories +fast +sortedset +write + +### Description +Increments the score of the specified sorted set's member by the increment. If the member does not exist, it is created. +If the key does not exist, it is created with new sorted set and the member added with the increment as its score. + +## Options +- `WITHSCORES` - Whether the returned sorted set should include scores + +### Examples + + + + Increment the score of the sorted set's member: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.ZIncrBy("key", 2.55, "member1") + ``` + + + Increment the score of the sorted set's member: + ``` + > ZINCRBY key 2.55 member1 + ``` + + diff --git a/docs/docs/commands/sorted_set/zinter.mdx b/docs/docs/commands/sorted_set/zinter.mdx new file mode 100644 index 00000000..c490039d --- /dev/null +++ b/docs/docs/commands/sorted_set/zinter.mdx @@ -0,0 +1,73 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZINTER + +### Syntax +``` +ZINTER key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE ] [WITHSCORES] +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Computes the intersection of the sets in the keys, with weights, aggregate and scores. + +## Options +- `WEIGHTS` - A list of floats that determine the weight of each sorted set. The scores of each member +of a sort set are multiplied by the corresponding weight. If weights are not provided, the default weight +is 1 for all sorted sets. +- `AGGREGATE` - Determines the strategy used to compare the scores of members in the intersection. +SUM will add the scores, MIN will choose the minimum score, and MAX will choose the maximum score. +- `WITHSCORES` - Determines whether scores should be included in the resulting sorted set. + + +### Examples + + + + Find the intersection between 2 sorted sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + sortedSet, err := vault.ZInter([]string{"key1", "key2"}, echovault.ZInterOptions{}) + ``` + + Find the intersection between 2 sorted sets with a sum of the weighted scores: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + sortedSet, err := vault.ZInter( + []string{"key1", "key2"}, + echovault.ZInterOptions{Weights: []float64{2, 4}, Aggregate: "SUM", WithScores: true}, + ) + ``` + + + Find the intersection between 2 sorted sets: + ``` + > ZINTER key1 key2 + ``` + + Find the intersection between 2 sorted sets with a sum of the weighted scores: + ``` + > ZINTER key1 key2 WEIGHTS 2 4 AGGREGATE SUM WITHSCORES + ``` + + diff --git a/docs/docs/commands/sorted_set/zinterstore.mdx b/docs/docs/commands/sorted_set/zinterstore.mdx new file mode 100644 index 00000000..1d7b3157 --- /dev/null +++ b/docs/docs/commands/sorted_set/zinterstore.mdx @@ -0,0 +1,75 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZINTERSTORE + +### Syntax +``` +ZINTERSTORE destination key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE ] [WITHSCORES] +``` + +### Module +sortedset + +### Categories +write +slow +sortedset + +### Description +Computes the intersection of the sets in the keys, with weights, aggregate and scores. +The result is stored in destination. + +## Options +- `WEIGHTS` - A list of floats that determine the weight of each sorted set. The scores of each member +of a sort set are multiplied by the corresponding weight. If weights are not provided, the default weight +is 1 for all sorted sets. +- `AGGREGATE` - Determines the strategy used to compare the scores of members in the intersection. +SUM will add the scores, MIN will choose the minimum score, and MAX will choose the maximum score. +- `WITHSCORES` - Determines whether scores should be included in the resulting sorted set. + +### Examples + + + + Store the intersection between 2 sorted sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.ZInterStore("destination", []string{"key1", "key2"}, echovault.ZInterStoreOptions{}) + ``` + + Store the intersection between 2 sorted sets with a sum of the weighted scores: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.ZInterStore( + "destination", + []string{"key1", "key2"}, + echovault.ZInterStoreOptions{Weights: []float64{2, 4}, Aggregate: "SUM", WithScores: true}, + ) + ``` + + + Store the intersection between 2 sorted sets: + ``` + > ZINTERSTORE destination key1 key2 + ``` + + Store the intersection between 2 sorted sets with a sum of the weighted scores: + ``` + > ZINTERSTORE destination key1 key2 WEIGHTS 2 4 AGGREGATE SUM WITHSCORES + ``` + + + \ No newline at end of file diff --git a/docs/docs/commands/sorted_set/zlexcount.mdx b/docs/docs/commands/sorted_set/zlexcount.mdx new file mode 100644 index 00000000..561950cc --- /dev/null +++ b/docs/docs/commands/sorted_set/zlexcount.mdx @@ -0,0 +1,49 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZLEXCOUNT + +### Syntax +``` +ZLEXCOUNT key min max +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Returns the number of elements in within the sorted set within the +lexicographical range between min and max. Returns 0, if the keys does not exist or if all the members do not have +the same score. If the value held at key is not a sorted set, an error is returned. + +### Examples + + + + Find the intersection between 2 sorted sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + count, err := vault.ZLexCount("key", "aa", "xx") + ``` + + + Find the intersection between 2 sorted sets: + ``` + > ZLEXCOUNT key aa xx + ``` + + diff --git a/docs/docs/commands/sorted_set/zmpop.mdx b/docs/docs/commands/sorted_set/zmpop.mdx new file mode 100644 index 00000000..44f7f118 --- /dev/null +++ b/docs/docs/commands/sorted_set/zmpop.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZMPOP + +### Syntax +``` +ZMPOP key [key ...] [COUNT count] +``` + +### Module +sortedset + +### Categories +write +slow +sortedset + +### Description +Pop a 'count' elements from multiple sorted sets. +MIN or MAX determines whether to pop elements with the lowest or highest scores respectively. + +### Examples + + + + Pop a 'count' elements from multiple sorted sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + sortedSets, err := vault.ZMPop([]string{"key1", "key2"}, echovault.ZMPopOptions{Min: true, Count: 2}) + ``` + + + Pop a 'count' elements from multiple sorted sets: + ``` + > ZMPOP key1 key2 MIN COUNT 2 + ``` + + diff --git a/docs/docs/commands/sorted_set/zmscore.mdx b/docs/docs/commands/sorted_set/zmscore.mdx new file mode 100644 index 00000000..f2f96549 --- /dev/null +++ b/docs/docs/commands/sorted_set/zmscore.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZMSCORE + +### Syntax +``` +ZMSCORE key member [member ...] +``` + +### Module +sortedset + +### Categories +fast +read +sortedset + +### Description +Returns the associated scores of the specified member in the sorted set. +Returns nil for members that do not exist in the set. + +### Examples + + + + Get the scores of the specified members in the sorted set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + scores, err := vault.ZMScore("key", "member1", "member2") + ``` + + + Get the scores of the specified members in the sorted set: + ``` + > ZMSCORE key member1 member2 + ``` + + diff --git a/docs/docs/commands/sorted_set/zpopmax.mdx b/docs/docs/commands/sorted_set/zpopmax.mdx new file mode 100644 index 00000000..f7bb408a --- /dev/null +++ b/docs/docs/commands/sorted_set/zpopmax.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZPOPMAX + +### Syntax +``` +ZPOPMAX key [count] +``` + +### Module +sortedset + +### Categories +write +slow +sortedset + +### Description +Removes and returns 'count' number of members in the sorted set with the highest scores. +Default count is 1. + +### Examples + + + + Remove and return 'count' number of members in the sorted set with the highest scores: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + members, err := vault.ZPopMax("key", 2) + ``` + + + Remove and return 'count' number of members in the sorted set with the highest scores: + ``` + > ZPOPMAX key 2 + ``` + + diff --git a/docs/docs/commands/sorted_set/zpopmin.mdx b/docs/docs/commands/sorted_set/zpopmin.mdx new file mode 100644 index 00000000..ec292da6 --- /dev/null +++ b/docs/docs/commands/sorted_set/zpopmin.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZPOPMIN + +### Syntax +``` +ZPOPMIN key [count] +``` + +### Module +sortedset + +### Categories +write +slow +sortedset + +### Description +Removes and returns 'count' number of members in the sorted set with the lowest scores. +Default count is 1. + +### Examples + + + + Remove and return 'count' number of members in the sorted set with the lowest scores: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + members, err := vault.ZPopMin("key", 2) + ``` + + + Remove and return 'count' number of members in the sorted set with the lowest scores: + ``` + > ZPOPMIN key 2 + ``` + + diff --git a/docs/docs/commands/sorted_set/zrandmember.mdx b/docs/docs/commands/sorted_set/zrandmember.mdx new file mode 100644 index 00000000..bf537fdb --- /dev/null +++ b/docs/docs/commands/sorted_set/zrandmember.mdx @@ -0,0 +1,77 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZRANDMEMBER + +### Syntax +``` +ZRANDMEMBER key [count [WITHSCORES]] +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Return a list of length equivalent to count containing random members of the sorted set. +If count is negative, repeated elements are allowed. If count is positive, the returned elements will be distinct. +WITHSCORES modifies the result to include scores in the result. + +### Examples + + + + Get a random member from the sorted set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + members, err := vault.ZRandMember("key", 1, false) + ``` + + Get 2 unique random members from the sorted set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + members, err := vault.ZRandMember("key", 2, false) + ``` + + Get 4 non-unique random members from the sorted set with scores: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + members, err := vault.ZRandMember("key", -4, true) + ``` + + + Get a random member from the sorted set: + ``` + > ZRANDMEMBER key + ``` + + Get 2 unique random members from the sorted set: + ``` + > ZRANDMEMBER key 2 + ``` + + Get 4 non-unique random members from the sorted set with scores: + ``` + > ZRANDMEMBER key -4 WITHSCORES + ``` + + diff --git a/docs/docs/commands/sorted_set/zrange.mdx b/docs/docs/commands/sorted_set/zrange.mdx new file mode 100644 index 00000000..45e63645 --- /dev/null +++ b/docs/docs/commands/sorted_set/zrange.mdx @@ -0,0 +1,62 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZRANGE + +### Syntax +``` +ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES] +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Returns the range of elements in the sorted set. + +### Options +- `BYSCORE` - Sorts the elements in accending order of score before calculating the range. +- `BYLEX` - Sorts the elements in ascending lexicographical order before calcularing the range. + This option only works if all the members have the same score. +- `REV` - Reverse the order determined by BYSCORE or BYLEX. +- `LIMIT` - Offset determines where EchoVault will start counting from after the previous modification. + Count is the number of elements to extract after the offset. +- `WITHSCORES` - Whether the result should include scores. + +### Examples + + + + Get range by score: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + sortedSet, err := vault.ZRange("key", "11.55", "15.66", echovault.ZRangeOptions{ + ByScore: true, + Rev: true, + WithScores: true, + Offset: 0, + Count: 2, + }) + ``` + + + Get range by score: + ``` + > ZRANGE key 11.55 15.66 BYSCORE REV LIMIT 0 2 WITHSCORES + ``` + + diff --git a/docs/docs/commands/sorted_set/zrangestore.mdx b/docs/docs/commands/sorted_set/zrangestore.mdx new file mode 100644 index 00000000..3e76510c --- /dev/null +++ b/docs/docs/commands/sorted_set/zrangestore.mdx @@ -0,0 +1,64 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZRANGESTORE + +### Syntax +``` +ZRANGESTORE destination source start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES] +``` + +### Module +sortedset + +### Categories +write +slow +sortedset + +### Description +Retrieve the range of elements in the sorted set and store it in destination. + +### Options +- `BYSCORE` - Sorts the elements in accending order of score before calculating the range. +- `BYLEX` - Sorts the elements in ascending lexicographical order before calcularing the range. + This option only works if all the members have the same score. +- `REV` - Reverse the order determined by BYSCORE or BYLEX. +- `LIMIT` - Offset determines where EchoVault will start counting from after the previous modification. + Count is the number of elements to extract after the offset. +- `WITHSCORES` - Whether the result should include scores. + +### Examples + + + + Get range by score and store it at the destination key: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.ZRangeStore( + "destination", "source", "11.55", "15.66", + echovault.ZRangeStoreOptions{ + ByScore: true, + Rev: true, + WithScores: true, + Offset: 0, + Count: 2, + }) + ``` + + + Get range by score and store it at the destination key: + ``` + > ZRANGESTORE key 11.55 15.66 BYSCORE REV LIMIT 0 2 WITHSCORES + ``` + + diff --git a/docs/docs/commands/sorted_set/zrank.mdx b/docs/docs/commands/sorted_set/zrank.mdx new file mode 100644 index 00000000..620cd13a --- /dev/null +++ b/docs/docs/commands/sorted_set/zrank.mdx @@ -0,0 +1,51 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZRANK + +### Syntax +``` +ZRANK key member [WITHSCORE] +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Returns the rank of the specified member in the sorted set. +WITHSCORE modifies the result to also return the score. + +## Options +- WITHSCORE - Determines whether to return the score along with the member value. + +### Examples + + + + Get the rank of the specified member in the sorted set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + member, err := vault.ZRank("key", "member", true) + ``` + + + Get the rank of the specified member in the sorted set: + ``` + > ZRANK key member WITHSCORE + ``` + + diff --git a/docs/docs/commands/sorted_set/zrem.mdx b/docs/docs/commands/sorted_set/zrem.mdx new file mode 100644 index 00000000..11089ac7 --- /dev/null +++ b/docs/docs/commands/sorted_set/zrem.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZREM + +### Syntax +``` +ZREM key member [member ...] +``` + +### Module +sortedset + +### Categories +write +fast +sortedset + +### Description +Removes the listed members from the sorted set. Returns the number of elements removed. + +### Examples + + + + Remove the listed members from the sorted set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + deletedCount, err := vault.ZRem("key", "member1", "member2") + ``` + + + Remove the listed members from the sorted set: + ``` + > ZREM key member1 member2 + ``` + + diff --git a/docs/docs/commands/sorted_set/zremrangebylex.mdx b/docs/docs/commands/sorted_set/zremrangebylex.mdx new file mode 100644 index 00000000..e8a4e205 --- /dev/null +++ b/docs/docs/commands/sorted_set/zremrangebylex.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZREMRANGEBYLEX + +### Syntax +``` +ZREMRANGEBYLEX key min max +``` + +### Module +sortedset + +### Categories +write +slow +sortedset + +### Description +Removes the elements in the lexicographical range between min and max. + +### Examples + + + + Remove the elements in the lexicographical range between min and max: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + deletedCount, err := vault.ZRemRangeByLex("key", "aa", "xx") + ``` + + + Remove the elements in the lexicographical range between min and max: + ``` + > ZREMRANGEBYLEX key aa xx + ``` + + diff --git a/docs/docs/commands/sorted_set/zremrangebyrank.mdx b/docs/docs/commands/sorted_set/zremrangebyrank.mdx new file mode 100644 index 00000000..dbd0d21d --- /dev/null +++ b/docs/docs/commands/sorted_set/zremrangebyrank.mdx @@ -0,0 +1,48 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZREMRANGEBYRANK + +### Syntax +``` +ZREMRANGEBYRANK key min max +``` + +### Module +sortedset + +### Categories +write +slow +sortedset + +### Description +Removes the elements in the rank range between start and stop. +The elements are ordered from lowest score to highest score. + +### Examples + + + + Remove the elements in the rank range between start and stop: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + deletedCount, err := vault.ZRemRangeByRank("key", 3, 7) + ``` + + + Remove the elements in the rank range between start and stop: + ``` + > ZREMRANGEBYRANK key 3 7 + ``` + + diff --git a/docs/docs/commands/sorted_set/zremrangebyscore.mdx b/docs/docs/commands/sorted_set/zremrangebyscore.mdx new file mode 100644 index 00000000..dc4f303d --- /dev/null +++ b/docs/docs/commands/sorted_set/zremrangebyscore.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZREMRANGEBYSCORE + +### Syntax +``` +ZREMRANGEBYSCORE key min max +``` + +### Module +sortedset + +### Categories +write +slow +sortedset + +### Description +Removes the elements whose scores are in the range between min and max. + +### Examples + + + + Remove the elements whose scores are in the range between min and max: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + deletedCount, err := vault.ZRemRangeByScore("key", 3.55, 12.75) + ``` + + + Remove the elements whose scores are in the range between min and max: + ``` + > ZREMRANGEBYSCORE key 3.55 12.75 + ``` + + diff --git a/docs/docs/commands/sorted_set/zrevrank.mdx b/docs/docs/commands/sorted_set/zrevrank.mdx new file mode 100644 index 00000000..741245b7 --- /dev/null +++ b/docs/docs/commands/sorted_set/zrevrank.mdx @@ -0,0 +1,51 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZREVRANK + +### Syntax +``` +ZREVRANK key member [WITHSCORE] +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Returns the rank of the member in the sorted set in reverse order. +WITHSCORE modifies the result to include the score. + +## Options +- WITHSCORE - Determines whether to return the score along with the member value. + +### Examples + + + + Get the rank of the specified member in the sorted set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + member, err := vault.ZRevRank("key", "member", true) + ``` + + + Get the rank of the specified member in the sorted set: + ``` + > ZREVRANK key member WITHSCORE + ``` + + diff --git a/docs/docs/commands/sorted_set/zscore.mdx b/docs/docs/commands/sorted_set/zscore.mdx new file mode 100644 index 00000000..90f893a6 --- /dev/null +++ b/docs/docs/commands/sorted_set/zscore.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZSCORE + +### Syntax +``` +ZSCORE key member +``` + +### Module +sortedset + +### Categories +read +fast +sortedset + +### Description +Returns the score of the member in the sorted set. + +### Examples + + + + Returns the score of the member in the sorted set: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + score, err := vault.ZScore("key", "member") + ``` + + + Returns the score of the member in the sorted set: + ``` + > ZSCORE key member + ``` + + diff --git a/docs/docs/commands/sorted_set/zunion.mdx b/docs/docs/commands/sorted_set/zunion.mdx new file mode 100644 index 00000000..1c8a7fc9 --- /dev/null +++ b/docs/docs/commands/sorted_set/zunion.mdx @@ -0,0 +1,74 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZUNION + +### Syntax +``` +ZUNION key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE ] [WITHSCORES] +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Return the union of the sorted sets in keys. The scores of each member of +a sorted set are multiplied by the corresponding weight in WEIGHTS. Aggregate determines how the scores are combined. +WITHSCORES option determines whether to return the result with scores included. + +### Options +- `WEIGHTS` - A list of floats that determine the weight of each sorted set. The scores of each member +of a sort set are multiplied by the corresponding weight. If weights are not provided, the default weight +is 1 for all sorted sets. +- `AGGREGATE` - Determines the strategy used to compare the scores of members in the union. + SUM will add the scores, MIN will choose the minimum score, and MAX will choose the maximum score. +- `WITHSCORES` - Determines whether scores should be included in the resulting sorted set. + +### Examples + + + + Find the union between 2 sorted sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + sortedSet, err := vault.ZUnion([]string{"key1", "key2"}, echovault.ZUnionOptions{}) + ``` + + Find the union between 2 sorted sets with a sum of the weighted scores: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + sortedSet, err := vault.ZUnion( + []string{"key1", "key2"}, + echovault.ZUnionOptions{Weights: []float64{2, 4}, Aggregate: "SUM", WithScores: true}, + ) + ``` + + + Find the union between 2 sorted sets: + ``` + > ZUNION key1 key2 + ``` + + Find the union between 2 sorted sets with a sum of the weighted scores: + ``` + > ZUNION key1 key2 WEIGHTS 2 4 AGGREGATE SUM WITHSCORES + ``` + + diff --git a/docs/docs/commands/sorted_set/zunionstore.mdx b/docs/docs/commands/sorted_set/zunionstore.mdx new file mode 100644 index 00000000..77ac8cdd --- /dev/null +++ b/docs/docs/commands/sorted_set/zunionstore.mdx @@ -0,0 +1,75 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZUNIONSTORE + +### Syntax +``` +ZUNIONSTORE destination key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE ] [WITHSCORES] +``` + +### Module +sortedset + +### Categories +write +slow +sortedset + +### Description +Return the union of the sorted sets in keys. The scores of each member of +a sorted set are multiplied by the corresponding weight in WEIGHTS. Aggregate determines how the scores are combined. +The resulting union is stored at the destination key. + +### Options +- `WEIGHTS` - A list of floats that determine the weight of each sorted set. The scores of each member +of a sort set are multiplied by the corresponding weight. If weights are not provided, the default weight +is 1 for all sorted sets. +- `AGGREGATE` - Determines the strategy used to compare the scores of members in the union. + SUM will add the scores, MIN will choose the minimum score, and MAX will choose the maximum score. +- `WITHSCORES` - Determines whether scores should be included in the resulting sorted set. + +### Examples + + + + Store the union between 2 sorted sets: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.ZUnionStore("destination", []string{"key1", "key2"}, echovault.ZUnionStoreOptions{}) + ``` + + Store the union between 2 sorted sets with a sum of the weighted scores: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + cardinality, err := vault.ZUnionStore( + "destination", + []string{"key1", "key2"}, + echovault.ZUnionStoreOptions{Weights: []float64{2, 4}, Aggregate: "SUM", WithScores: true}, + ) + ``` + + + Store the union between 2 sorted sets: + ``` + > ZUNIONSTORE destination key1 key2 + ``` + + Store the union between 2 sorted sets with a sum of the weighted scores: + ``` + > ZUNIONSTORE destination key1 key2 WEIGHTS 2 4 AGGREGATE SUM WITHSCORES + ``` + + diff --git a/docs/docs/commands/string/getrange.mdx b/docs/docs/commands/string/getrange.mdx new file mode 100644 index 00000000..1c1547a7 --- /dev/null +++ b/docs/docs/commands/string/getrange.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# GETRANGE + +### Syntax +``` +GETRANGE key start end +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Return the substring of the string value stored at key. The substring is specified by the start and end indexes. + +### Examples + + + + Get the substring of a string value: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + substring, err := vault.GetRange("key", 4, 10) + ``` + + + Get the substring of a string value: + ``` + > GETRANGE key 4 10 + ``` + + diff --git a/docs/docs/commands/string/index.md b/docs/docs/commands/string/index.md new file mode 100644 index 00000000..2c0923c4 --- /dev/null +++ b/docs/docs/commands/string/index.md @@ -0,0 +1 @@ +# String diff --git a/docs/docs/commands/string/setrange.mdx b/docs/docs/commands/string/setrange.mdx new file mode 100644 index 00000000..30df7318 --- /dev/null +++ b/docs/docs/commands/string/setrange.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SETRANGE + +### Syntax +``` +SETRANGE key offset value +``` + +### Module +sortedset + +### Categories +write +slow +sortedset + +### Description +Overwrites part of a string value with another by offset. Creates the key if it doesn't exist. + +### Examples + + + + Overwrite part of a string value: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + length, err := vault.SetRange("key", 2, "replacement string") + ``` + + + Overwrite part of a string value: + ``` + > SETRANGE key 2 "replacement string" + ``` + + diff --git a/docs/docs/commands/string/strlen.mdx b/docs/docs/commands/string/strlen.mdx new file mode 100644 index 00000000..9bcb0526 --- /dev/null +++ b/docs/docs/commands/string/strlen.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# STRLEN + +### Syntax +``` +STRLEN key +``` + +### Module +sortedset + +### Categories +fast +read +sortedset + +### Description +Returns length of the key's value if it's a string. + +### Examples + + + + Get the substring of a string value: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + length, err := vault.StrLen("key") + ``` + + + Get the substring of a string value: + ``` + > STRLEN key + ``` + + diff --git a/docs/docs/commands/string/substr.mdx b/docs/docs/commands/string/substr.mdx new file mode 100644 index 00000000..f5a089af --- /dev/null +++ b/docs/docs/commands/string/substr.mdx @@ -0,0 +1,47 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# SUBSTR + +### Syntax +``` +SUBSTR key start end +``` + +### Module +sortedset + +### Categories +read +slow +sortedset + +### Description +Return the substring of the string value stored at key. The substring is specified by the start and end indexes. + +### Examples + + + + Get the substring of a string value: + ```go + vault, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + substring, err := vault.GetRange("key", 4, 10) + ``` + + + Get the substring of a string value: + ``` + > GETRANGE key 4 10 + ``` + + diff --git a/docs/docs/configuration.md b/docs/docs/configuration.md new file mode 100644 index 00000000..159a2056 --- /dev/null +++ b/docs/docs/configuration.md @@ -0,0 +1,127 @@ +--- +sidebar_position: 2 +--- + +# Configuration + +EchoVault is highly configurable. It provides the following configuration options to you: + +Flag: `--config`
+Type: `string/path`
+Description: The file path for the server configuration. A JSON or YAML file can be used for server configuration. You can combine CLI flags and config files, but remember that config files override CLI flags. The config file will be prioritised if you have the same config option in the CLI flags and the config file. + +Flag: `--port`
+Type: `integer`
+Description: The port on which to listen to client connections. The default is `7480`. + +Flag: `--bind-addr`
+Type: `string`
+Description: Specify the IP address to which the listener is bound. + +Flag: `--require-pass`
+Type: `boolean`
+Description: Determines whether the server should require a password for the default user before allowing commands. The default is `false`. If this option is provided, it must be accompanied by the `--password` config. + +Flag: `--password`
+Type: `string`
+Description: The password used to authorize the default user to run commands. This flag should be provided alongside the `--require-pass` flag. + +Flag: `--tls`
+Type: `boolean`
+Description: A TLS connection with a client is required. The default is `false`. + +Flag: `mtls`
+Type: `boolean`
+Description: Require mTLS connection with client. It is useful when the client and the server need to verify each other. If `--tls` and `mtls` are provided, `--mtls` will take higher priority. The default is `false`. + +Flag: `--cert-key-pair`
+Type: `string`
+Description: The cert/key pair used by the server to authenticate itself to the client when using TLS or mTLS. This flag can be provided multiple times with multiple cert/key pairs. This is a comma-separated string in the following format: `,`, + +Flag: `--client-ca`
+Type: `string`
+Description: The path to the RootCA that is used to verify client certs when the `--mtls` flag is provided to enable verifying the client. This flag can be passed multiple times with paths to several client RootCAs. + +Flag: `--server-id`
+Type: `string`
+Description: If this node is part of a raft replication cluster, then this flag provides the server ID to use within the cluster configuration. This ID must be unique to all the other nodes' IDs in the cluster. + +Flag: `--join-addr`
+Type: `string`
+Description: When adding a node to a replication cluster, this is the address and port of any cluster member. The current node will use this to request permission to join the cluster. The format of this flag is `:`. + +Flag: `--discovery-port`
+Type: `integer`
+Description. If starting a node in a replication cluster, this port is used for communication between nodes on the memberlist layer. The default is `7946`. + +Flag: `--in-memory`
+Type: `boolean`
+Description: When starting a node in a raft replication cluster, this directs the raft layer to store logs and snapshots in memory. It is only recommended in test mode. The default is `false`. + +Flag: `--data-dir`
+Type: `string`
+Description: The directory for storing Append-Only Logs, Write Ahead Logs, and Snapshots. The default is `/var/lib/echovault` + +Flag: `--bootstrap-cluster`
+Type: `boolean`
+Description: Whether to initialize a new replication cluster with this node as the leader. The default is `false`. + +Flag: `--acl-config`
+Type: `string`
+Description: The file path for the ACL layer config file. The ACL configuration file can be a YAML or JSON file. + +Flag: `--snapshot-threshold`
+Type: `integer`
+Description: The number of write commands required to trigger a snapshot. The default is `1,000` + +Flag: `--snapshot-interval`
+Type: `string`
+Description: The interval between snapshots. You can provide a parseable time format such as `30m45s` or `1h45m`. The default is 5 minutes. + +Flag: `--aof-sync-strategy`
+Type: `string`
+Description: How often to flush the file contents written to append only file. +The options are `always` for syncing on each command, `everysec` to sync every second, and `no` to leave it up to the os. + +Flag: `--restore-snapshot`
+Type: `boolean`
+Description: Determines whether to restore from a snapshot on startup. The default is `false`. + +Flag: `--restore-aof`
+Type: `boolean`
+Description: This flag determines whether to restore from an aof file on startup. If both this flag and `--restore-snapshot` are provided, this flag will take higher priority. + +Flag: `--forward-commands`
+Type: `boolean`
+Description: This flag allows you to send write commands to any node in the cluster. The node will forward the command to the cluster leader. When this is false, write commands can only be accepted by the leader. The default is `false`. + +Flag: `--max-memory`
+Type: `string`
+Examples: "200mb", "8gb", "1tb"
+Description: The maximum memory usage that EchoVault should observe. Once this limit is reached, the chosen key eviction strategy is triggered. The default is no limit. + +Flag: `--eviction-policy`
+Type: `string`
+Description: This flag allows you to choose the key eviction strategy when the maximum memory is reached. The flag accepts the following options:
+ +1. noeviction - Do not evict any keys even when max-memory is exceeded. All new write operations will be rejected. This is the default eviction strategy. +2. allkeys-lfu - Evict the least frequently used keys when max-memory is exceeded. +3. allkeys-lru - Evict the least recently used keys when max-memory is exceeded. +4. volatile-lfu - Evict the least frequently used keys with an expiration when max-memory is exceeded. +5. volatile-lru - Evict the least recently used keys with an expiration when max-memory is exceeded. +6. allkeys-random - Evict random keys until we get under the max-memory limit when max-memory is exceeded. +7. volatile-random - Evict random keys with an expiration when max-memory is exceeded. + +Flag: `--eviction-sample`
+Type: `integer`
+Description: An integer specifying the number of keys to sample when checking for expired keys. By default, EchoVault will sample 20 keys. The sampling is repeated if the number of expired keys found exceeds 20%. + +Flag: `--eviction-interval`
+Type: `string`
+Example: "10s", "5m30s", "100ms"
+Description: The interval between each sampling of keys to evict. By default, this happens every 100 milliseconds. + +Flag: `--loadmodule`
+Type: `string/path`
+Example: "path/to/module.so"
+Description: The full file path to the .so file to load into EchoVault to extend its commands. This flag can be specified multiple times to load multiple plugins. diff --git a/docs/docs/contribution.md b/docs/docs/contribution.md new file mode 100644 index 00000000..5c8bcc8d --- /dev/null +++ b/docs/docs/contribution.md @@ -0,0 +1,25 @@ +--- +sidebar_position: 4 +--- + +# Contribution + +Contributions are welcome! If you're interested in contributing, +feel free to clone the repository and submit a Pull Request. + +Join the [discord server](https://discord.gg/JrG4kPrF8v) if you'd like to discuss your contribution and/or be a part of the community. + +# Development Setup + +Pre-requisites: + +1. Go +2. Docker +3. Docker Compose +4. x86_64-linux-musl-gcc cross-compile toolchain as the development image is built for an Alpine container + +Steps: + +1. Clone the repository. +2. If you're on MacOS, you can run `make run` to build the project and spin up the development docker container. +3. If you're on another OS, you will have to use `go build` with the relevant flags for your system. diff --git a/docs/docs/eviction.md b/docs/docs/eviction.md new file mode 100644 index 00000000..9ed9f473 --- /dev/null +++ b/docs/docs/eviction.md @@ -0,0 +1,42 @@ +--- +sidebar_position: 3 +--- + +# Eviction + +### Memory Limit + +The memory limit can be set using the `--max-memory` config flag. This flag accepts a parsable memory value (e.g 100mb, 16gb). If the limit set is 0, then no memory limit is imposed. The default value is 0. + +### Passive eviction + +In passive eviction, the expired key is not deleted immediately after the expiry time. The key will remain in the store until the next time it is accessed. When attempting to access an expired key, that is when the key is deleted. + +### Active eviction + +Echovault will run a background goroutine that samples a set of volatile keys at a given interval. Any keys that are found to be expired will be deleted. If 20% or more of the sampled keys are deleted, then the process will immediately begin again. Otherwise, wait for the given interval until the next round of sampling/eviction. The default number of keys sampled is 20, and the default interval for sampling is 100 milliseconds. These can be configured using the `--eviction-sample` and `--eviction-interval` flags. + +### Eviction Policies + +Eviction policy can be set using the --eviction-policy flag. The following options are available. + +noeviction:
+This policy does not evict any keys. When max memory is reached, all new write commands will be rejected until keys are manually deleted by the user. + +allkeys-lfu:
+With this policy, all keys are considered for eviction when the max memory is reached. When max memory is reached, the least frequently accessed keys will be evicted until the memory usage is under the memory limit. + +allkeys-lru:
+This policy will consider all keys for eviction when max memory is reached. The least recently accessed keys will be deleted one by one until we are below the memory limit. + +allkeys-random:
+Evict random keys until we're below the max memory limit. + +volatile-lfu:
+With this policy, only keys with an associated expiry time will be evicted to adhere to the memory limit. When the memory limit is exceeded, volatile keys will be evicted starting from the least frequently used until we are below the memory limit or are out of volatile keys to evict. + +volatile-lru:
+With this policy, only keys with an associated expiry time will be evicted to adhere to the memory limit. When the memory limit is exceeded, volatile keys will be evicted starting from the list recently used until we are below the memory limit or are out of volatile keys to evict. + +volatile-random:
+Evict random volatile keys until we're below the memory limit, or we're out of volatile keys to evict. diff --git a/docs/docs/extension/embedded.md b/docs/docs/extension/embedded.md new file mode 100644 index 00000000..5ffad696 --- /dev/null +++ b/docs/docs/extension/embedded.md @@ -0,0 +1,323 @@ +# Embedded + +EchoVault allows you to programmetically extend its list of commands ar runtime. + +The `AddCommand` method allows you to extend the EchoVault server by adding new commands and subcommands. + +Each command can have its own handler and key extraction logic. This method ensures that commands are unique within the server and properly integrated with the existing command handling infrastructure. + +## Method Definition + +```go +func (server *EchoVault) AddCommand(command CommandOptions) error +``` + +## Parameters + +- `command` - An instance of `CommandOptions` which provides the specification of the command to be added. + +## Errors + +- `"command already exists"` - If a command with the same name as the provided command already exists in the server. + +## Explanation + +The `AddCommand` method performs the following steps: + +1. **Command Uniqueness Check**: It checks if the command already exists in the server. If it does, it returns an error. +2. **Command Addition**: + - **Without Subcommands**: If the command does not have subcommands, it adds the command directly to the server's command list. + - **With Subcommands**: If the command has subcommands, it initializes a new command structure and iterates through the provided subcommands to add them to the server's command list. + +## Execute Custom Commands + +### Adding a Command without Subcommands + +In this example, we will be adding a command `COPYDEFAULT` that reads the value from the first key and +copies it into the second key only if both keys exist. + +If the first key does not exist, return an error. If the second key does not exist, the key will be created with the string value 'default'. + +The command will have the following format: `COPYDEFAULT key1 key2`. + +```go +// Define the key extraction function +func myKeyExtractionFunc(cmd []string) (echovault.CommandKeyExtractionFuncResult, error) { + if len(cmd) != 3 { + return echovault.CommandKeyExtractionFuncResult{}, errors.New("command must be length 3") + } + if cmd[1] == cmd[2] { + return echovault.CommandKeyExtractionFuncResult{}, errors.New("keys must be different") + } + return echovault.CommandKeyExtractionFuncResult{ + ReadKeys: []string{cmd[1]}, + WriteKeys: []string{cmd[2]}, + }, nil +} + +// Define the command handler function +func myCommandHandler(params echovault.CommandHandlerFuncParams) ([]byte, error) { + // Extract keys + keys, err := myKeyExtractionFunc(params.Command) + if err != nil { + return nil, err + } + + // Get the write and read keys. + readKey, writeKey := keys.ReadKeys[0], keys.WriteKeys[0] + + keysExist := params.KeysExist(params.Context, []string{writeKey, readKey}) + + // If readKey does not exist, return an error. + if !keysExist[readKey] { + return nil, fmt.Errorf("%s does not exist", readKey) + } + + // If writeKey does not exist, set "default" value at the key. + if !keysExist[writeKey] { + err = params.SetValues(params.Context, map[string]interface{}{writeKey: "default"}) + return []byte("+OK\r\n"), err + } + + // Set the value from readKey to writeKey. + err = params.SetValues(params.Context, map[string]interface{}{ + writeKey: params.GetValues(params.Context, []string{readKey})[readKey], + }) + return []byte("+OK\r\n"), err +} + +func main() { + server, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + + _, _ = server.MSet(map[string]string{ + "key1": "value1", + "key2": "value2", + }) + + // Define the command options + command := echovault.CommandOptions{ + Command: "COPYDEFAULT", // Command keyword + Module: "generic", // Add command to generic module, can be a new custom module. + Categories: []string{"write", "fast"}, // Can be custom categories here. + Description: `(COPYDEFAULT key1 key2) +Copies the value from key1 to key2. If key1 does not exist, an error is returned. If key1 exists but key2 +does not, the value "default" will be stored at key2. If both keys exist, the value from key1 will be copied to key2.`, + Sync: true, + KeyExtractionFunc: myKeyExtractionFunc, + HandlerFunc: myCommandHandler, + } + + // Add the command. + err = server.AddCommand(command) + if err != nil { + fmt.Println("Error adding command:", err) + } else { + fmt.Println("Command added successfully") + } +} +``` + +### Adding a Command with Subcommands + +You can add a command with a list of subcommands by defining them in the `SubCommand` property +of `CommandOptions`. + +```go +// Define the key extraction function for subcommands +func mySubCommandKeyExtractionFunc(cmd []string) (echovault.CommandKeyExtractionFuncResult, error) { + return echovault.CommandKeyExtractionFuncResult{ + ReadKeys: []string{"subkey1"}, + WriteKeys: []string{"subkey2"}, + }, nil +} + +// Define the subcommand handler function +func mySubCommandHandler(params echovault.CommandHandlerFuncParams) ([]byte, error) { + fmt.Println("Subcommand executed:", strings.Join(params.Command, " ")) + return []byte("+OK\r\n"), nil +} + +func main() { + server, err := echovault.NewEchoVault() + if err != nil { + log.Fatal(err) + } + + // Define the subcommands + subCommands := []echovault.SubCommandOptions{ + { + Command: "SUB1", + Module: "mymodule", + Categories: []string{"subcategory1"}, + Description: "This is subcommand 1", + Sync: false, + KeyExtractionFunc: mySubCommandKeyExtractionFunc, + HandlerFunc: mySubCommandHandler, + }, + { + Command: "SUB2", + Module: "mymodule", + Categories: []string{"subcategory2"}, + Description: "This is subcommand 2", + Sync: true, + KeyExtractionFunc: mySubCommandKeyExtractionFunc, + HandlerFunc: mySubCommandHandler, + }, + } + + // Define the main command options + command := echovault.CommandOptions{ + Command: "MYCOMMAND", + Module: "mymodule", + Categories: []string{"category1"}, + Description: "This is a sample command with subcommands", + Sync: true, + SubCommand: subCommands, + } + + // Add the command to the server + err := server.AddCommand(command) + if err != nil { + fmt.Println("Error adding command:", err) + } else { + fmt.Println("Command with subcommands added successfully") + } +} +``` + +Although the example above shows subcommands that share a handler and key extraction function, in practice, each subcommand should provide its own unique key extraction and handler functions. + +Note: If you provide a command handler for the top, level command, it will be ignored. Whenever +a command has subcommands, EchoVault will try to look for subcommands that match the second element +of the subcommand slice. If a subcommand cannot be found, an error is returned. + +## Executing Custom Commands + +You can use the custom command using the `ExecuteCommand` method. The method has the following definition: + +```go +func (server *EchoVault) ExecuteCommand(command ...string) ([]byte, error) +``` + +It accepts a command of varying length to accomodate any custom command. The command passed is case insensitive. So "COPYDEFAULT" is considered the same as "copydefault". + +The returned values are: + +1. A byte slice containing the raw RESP returned from the custom command handler. +2. The error returned from the command handler in RESP error format. + +### Execute Command without Subcommands + +Here's an example of executing the COPYDEFAULT custom command that we created previously: + +```go +// Set the values for key1 and key2 +_, _ = server.MSet(map[string]string{ + "key1": "value1", + "key2": "value2", +}) + +// Execute the custom COPYDEFAULT command +res, err := server.ExecuteCommand("COPYDEFAULT", "key1", "key2") +if err != nil { + fmt.Println(err) +} else { + fmt.Println(string(res)) +} + +// Execute COPYDEFAULT command with lower case parameters +res, err := server.ExecuteCommand("copydefault", "key1", "key2") +if err != nil { + fmt.Println(err) +} else { + fmt.Println(string(res)) +} +``` + +### Execute Command with Subcommands + +Example of executing custom subcommands created previously: + +```go +// Execute subcommand 1 +res, err := server.ExecuteCommand("MYCOMMAND", "SUB1") +if err != nil { + fmt.Println(err) +} else { + fmt.Println(string(res)) +} + +// Execute subcommand 2 +res, err := server.ExecuteCommand("mycommand", "sub2") +if err != nil { + fmt.Println(err) +} else { + fmt.Println(string(res)) +} +``` + +### Execute in TCP client + +You can also execute programmatically added commands with a Redis client over TCP such as redis-cli. An example of executing the COPYDEFAULT commands looks as follows: + +``` +> COPYDEFAULT key1 key2 +``` + +To execute one of the subcommands: + +``` +> MYCOMMAND SUB1 +``` + +## Removing Commands + +You can remove commands using the `RemoveCommand` method. This methods does not only remove programmatically added commands but any commands loaded into the EchoVault instance. Including built-in commands and commands loaded from shared object files. + +The method has the following signature: + +```go +func (server *EchoVault) RemoveCommand(command ...string) +``` + +It accepts a command or subcommand to remove. If you'd like to remove an entire command, including all it's subcommands, you can pass only the command name. If you'd like to remove a particular subcommand but retain the command and it's other subcommands, then you must pass the names of command and the subcommand you'd like to delete. + +### Remove Command with no Subcommandsa + +Example demonstrating how to remove the "COPYDEFAULT" command created previously. + +```go +server.RemoveCommand("COPYDEFAULT") +``` + +### Remove a Subcommand + +To remove the "SUB1" subcommand of the "MYCOMMAND" command, you can pass the following parameters: + +```go +server.RemoveCommand("MYCOMMAND", "SUB1") +``` + +This leaves the "MYCOMMAND" command and "SUB2" subcommand available for execution. + +### Remove an entire Command with Multiple Subcommands + +If you'd like to remove the entirety of "MYCOMMAND" along with all its subcommands, you can pass the top-level command name as follows: + +```go +server.RemoveCommand("MYCOMMAND") +``` + +### Example + +## Important considerations + +Programmatically extending EchoVault like this brings some challenges: + +- If you're running in cluster mode, you have to make sure the custom command is added to all the nodes and that the command's key extraction and handler function implementations are exactly identical. Otherwise, the cluster will not be able to accurately sync the command's side effects across the cluster. +- When removing commands programmetically, you must make sure to remove the commands accross the entire cluster otherwise, the nodes with the missing command will not be able to replicate the command's side effects. + +Due to the reasons above, it's recommended that programmatically adding/removing commands should be done in standalone mode. It can be done in a cluster, but you must be careful and take into account the considerations above. diff --git a/docs/docs/extension/index.md b/docs/docs/extension/index.md new file mode 100644 index 00000000..cb81255c --- /dev/null +++ b/docs/docs/extension/index.md @@ -0,0 +1,11 @@ +# Extension + +The EchoVault command list is always growing, but we realise that it may not provide an exhaustive list of commands. If you're switching from Redis, then there are a lot of commands that may be missing in EchoVault. + +As we continue to develop EchoVault and add built-in commands, we also provide a few ways in which you can extend EchoVault's functionality to add more commands. + +There are multiple ways to extend EchoVault: + +1. Using the embedded API. +2. Using shared object plugins. +3. Using Lua modules (Coming). diff --git a/docs/docs/extension/shared_object.md b/docs/docs/extension/shared_object.md new file mode 100644 index 00000000..e820b4e8 --- /dev/null +++ b/docs/docs/extension/shared_object.md @@ -0,0 +1,238 @@ +# Shared Object Files + +EchoVault allows you to extend its list of commands using shared object files. You can write Go scripts that are compiled in plugin mode to achieve this. + +## Creating a Module + +To demonstrate the creation of a new module, we will create a plugin that adds a command with the keyword `Module.Set`. The command will have the format `Module.Set key `. It's parameters will be a key to write to and an integer value. + +Below is an example of the Go plugin script: + +```go +package main + +import ( + "context" + "fmt" + "strconv" + "strings" +) + +// The command keyword. +var Command string = "Module.Set" + +// The list of categories this command belongs to. +// You can use built-in categories or your own custom categories. +var Categories []string = []string{"write", "fast"} + +// The command's description. +var Description string = `(Module.Set key value) +This module stores the given value at the specified key. The value must be an integer` + +// Whether the command should be synced across all nodes in a raft cluster. +// This is ignores in standalone mode. +var Sync bool = true + +// The key extraction function. +func KeyExtractionFunc( + cmd []string, // The command slice (e.g []string{"Module.Set", "key1", "10"}). + args ...string, // Args passed from module loading. +) ( + // Slice of keys the command handler will read from, extracted from the command slice. + readKeys []string, + // Slice of keys the command handler will write to, extracted from the command slice. + writeKeys []string, + // Error from key extraction handler. + err error, +) { + if len(cmd) != 3 { + return nil, nil, fmt.Errorf("wrong no of args for %s command", strings.ToLower(Command)) + } + return []string{}, cmd[1:2], nil +} + +// The command's handler function. +func HandlerFunc( + // Context passed from the EchoVault instance. + ctx context.Context, + // The command slice (e.g []string{"Module.Set", "key1", "10"}). + command []string, + // keysExist checks whether the keys exist in the store. + // Returns a map with each key pointing to a corresponding boolean value + // that states if the key exists. + keysExist func(ctx context.Context, keys []string) map[string]bool, + // getValues retrieves the values from the provided keys from the store. + // Returns a map with each key pointing to the corresponding value. + // If a key does not exist, its value will be nil. + getValues func(ctx context.Context, keys []string) map[string]interface{}, + // setValues sets the values for each key in the store with the corresponding + // value. If the value exists in the store, it is overwritten. If it does + // not exist, it is created with the new value. + setValues func(ctx context.Context, entries map[string]interface{}) error, + // The arguments passed when the command is loaded. + args ...string, +) ( + []byte, // Byte slice containing raw RESP response. + error, +) { + + _, writeKeys, err := KeyExtractionFunc(command, args...) + if err != nil { + return nil, err + } + key := writeKeys[0] + + value, err := strconv.ParseInt(command[2], 10, 64) + if err != nil { + return nil, err + } + + err = setValues(ctx, map[string]interface{}{key: value}) + if err != nil { + return nil, err + } + + return []byte("+OK\r\n"), nil +} +``` + +### Compiling Module File + +Compiling plugins can be quite tricky due to Golang's plugin system. Make sure that the environment variables you set when compiling the module match the ones used when compiling EchoVault. + +If you're using the official docker images, you can reference the `Dockerfile.dev` amd `Dockerfile.prod` files for reference on which flags you should use. + +If you're building EchoVault from source, make sure the environment variables for the plugin and EchoVault compilation match. + +Pass the -buildmode=plugin flag when compiling the plugin and the -o flag to specify a .so output file. Here's an example of a command to compile a plugin for the dev alpine docker image: + +``` +CGO_ENABLED=1 CC=gcc GOOS=linux GOARCH=amd64 go build -buildmode=plugin -o module_set.so module_set.go +``` + +## Loading Module + +You can load modules in 3 ways: + +### 1. At startup with the `--loadmodule` flag. + +Upon startup you can provide the flag `--loadmodule="//.so"`. This is the path to the module's .so file. You can pass this flag multiple times to load multiple modules on startup. + +### 2. At runtime with the `MODULE LOAD` command. + +You can load modules dynamically at runtime using the `MODULE LOAD` command as follows: + +``` +MODULE LOAD //.so +``` + +This command only takes one path so if you have multiple modules to load, You will have to load them one at a time. + +### 3. At runtime the the `LoadModule` method. + +You can load a module .so file dynamically at runtime using the `LoadModule` method in the embedded API. + +```go +err = server.LoadModule("//.so") +``` + +### Loading Module with Args + +You might have notices the `args ...string` variadic parameter when creating a module. This a list of args that are passed to the module's key extraction and handler functions. + +The values passed here are established once when loading the module, and the same values will be passed to the respective functions everytime the command is executed. + +If you don't provide any args, an empty slice will be passed in the args parameter. Otehrwise, a slice containing your defined args will be used. + +To load a module with args using the embedded API: + +```go +err = server.LoadModule("//.so", "list", "of", "args") +``` + +To load a module with args using the `MODULE LOAD` command: + +``` +MODULE LOAD //.so "list" "of" "args" +``` + +NOTE: You cannot pass args when loading modules at startup with the `--loadmodule` flag. + +## List Modules + +You can list the current modules loaded in the EchoVault instance using both the Client-Server and embedded APIs. + +To check the loaded modules using the embedded API, use the `ListModules` method: + +```go +modules := server.ListModules() +``` + +This method returns a string slice containing all the loaded modules in the EchoVault instance. + +You can also list the loaded modules over the TCP API using the `MODULE LIST` command. + +Here's an example response of the loaded modules: + +``` + 1) "acl" + 2) "admin" + 3) "connection" + 4) "generic" + 5) "hash" + 6) "list" + 7) "pubsub" + 8) "set" + 9) "sortedset" +10) "string" +11) "./modules/module_set/module_set.so" +``` + +Notice that the modules loaded from .so files have their respective file names as the module name. + +## Execute Module Command + +Here's an example of executing the `Module.Set` command with the embedded API: + +Here's an example of executing the COPYDEFAULT custom command that we created previously: + +```go +// Execute the custom COPYDEFAULT command +res, err := server.ExecuteCommand("Module.Set", "key1", "10") +if err != nil { + fmt.Println(err) +} else { + fmt.Println(string(res)) +} +``` + +Here's how we would exectute the same command over the TCP client-server interface: + +``` +Module.Set key1 10 +``` + +## Unload Module + +You can unload modules from the EchoVault instance using both the embedded and TCP APIs. + +Here's an example of unloading a module using the embedded API: + +```go +// Unload custom module +server.UnloadModule("./modules/module_set/module_set.so") +// Unload built-in module +server.UnloadModule("sortedset") +``` + +Here's an example of unloading a module using the TCP interface: + +``` +MODULE UNLOAD ./modules/module_set/module_set.so +``` + +When unloading a module, the name should be equal to what's returned from the `ListModules` method or the `ModuleList` command. + +## Important considerations + +When loading external plugins to EchoVault in cluster mode, make sure to load the modules in all of the cluster's nodes. Otherwise, replication will fail as some nodes will not be able to handle the module's commands during replication. diff --git a/docs/docs/intro.md b/docs/docs/intro.md new file mode 100644 index 00000000..5a397bb4 --- /dev/null +++ b/docs/docs/intro.md @@ -0,0 +1,98 @@ +--- +sidebar_position: 1 +--- + +# Getting started + +## Embedded + +Install EchoVault with: `go get github.com/echovault/echovault`. + +Here's an example of using EchoVault as an embedded library. +You can access all of EchoVault's commands using an ergonomic API. + +```go +func main() { + server, err := echovault.NewEchoVault() + + if err != nil { + log.Fatal(err) + } + + _, _, _ = server.Set("key", "Hello, world!", echovault.SETOptions{}) + + v, _ := server.Get("key") + fmt.Println(v) // Hello, world! + + // (Optional): Listen for TCP connections on this EchoVault instance. + server.Start() +} +``` + +An embedded EchoVault instance can still be part of a cluster, and the changes triggered +from the API will be consistent across the cluster. + +If you want to configure the EchoVault instance, you can modify retrieve the default config and +update its properties to suit your requirements. + +```go +conf := echovault.DefaultConfig() +conf.ServerID = "ServerInstance1" + +server, err := echovault.NewEchoVault( + echovault.WithConfig(conf), +) + +if err != nil { + log.Fatal(err) +} +``` + +For more information on the available configuration values, +check out the configuration page. + +You can also pass in a custom context using the `WithContext` option. + +```go +ctx := context.WithValue(context.Background(), "name", "default") + +server, err := echovault.NewEchoVault( + echovault.WithContext(ctx), +) + +if err != nil { + log.Fatal(err) +} +``` + +## Client-Server + +### Homebrew + +To install via homebrew, run: +1) `brew tap echovault/echovault` +2) `brew install echovault/echovault/echovault` + +Once installed, you can run the server with the following command: +`echovault --bind-addr=localhost --data-dir="path/to/persistence/directory"` + +### Docker + +`docker pull echovault/echovault` + +The full list of tags can be found [here](https://hub.docker.com/r/echovault/echovault/tags). + +### Container Registry + +`docker pull ghcr.io/echovault/echovault` + +The full list of tags can be found [here](https://github.com/EchoVault/EchoVault/pkgs/container/echovault). + +### Binaries + +You can download the binaries by clicking on a release tag and downloading +the binary for your system. + +### Clients + +EchoVault uses RESP, which makes it compatible with existing Redis clients. diff --git a/docs/docs/persistence/append-only.md b/docs/docs/persistence/append-only.md new file mode 100644 index 00000000..c7938a6a --- /dev/null +++ b/docs/docs/persistence/append-only.md @@ -0,0 +1,27 @@ +--- +sidebar_position: 2 +--- + +# Append-Only File + +EchoVault offers an append-only log file which keeps track of every write command. The log can be configured to trigger a compaction once a certain threshold of write commands is reached. + +## How it works + +Whenever a write command is executed, the command is logged in an append-only log file. Once a configured threshold of write commands is reached, the log file is compacted using a snapshot of the current data and then a fresh append-only log file is started. + +On restoration of data, EchoVault will first load the data from the snapshot, and then replay all the write commands from the latest log file. If there is not snapshot, it will simply replay the write commands in the log file. + +To restore data from the AOF file, set the `--restore-aof` configuration flag to `true` when starting an EchoVault instance. Make sure to set the `--data-dir` to the folder containing the AOF file so EchoVault knows where to load the file from. + +You can also trigger a manual compaction of the AOF file using the `REWRITEAOF` command. + +## File sync + +The append-only file strategy allows you to configure how often the file is flushed to disk. You can configure this using the `--aof-sync-strategy` flag. The valid options are: + +- `everysec` - Sync the file every second. This is the default sync strategy. +- `always` - Sync the file with each write command that is logged. +- `no` - Do not sync the file manually, instead, let the OS kernel handle the file syncing whenever it deems fit. + +NOTE: The behaviour described above is only relevant when running a standalone node. Logging and log-compaction in a replication cluster is handled through the `hashicorp/raft` package in the replication layer. At the moment, this is backed by `boltdb`, although there are plans to replace the boltdb dependency with the same append-only engine used by standalone nodes. diff --git a/docs/docs/persistence/index.md b/docs/docs/persistence/index.md new file mode 100644 index 00000000..f52e0176 --- /dev/null +++ b/docs/docs/persistence/index.md @@ -0,0 +1,14 @@ +--- +sidebar_position: 5 +--- + +# Persistence + +EchoVault stores data in-memory but allows you to persist the data on disk. This offers a way to recover data upon restarting an instance. + +There are 2 strategies for persisting data to disk: + +- [Append-Only Files](./append-only) +- [Snapshots](./snapshot) + +NOTE: In standalon mode, if both Append-Only and Snapshot strategies are configured, the append-only strategy will be used. diff --git a/docs/docs/persistence/snapshot.md b/docs/docs/persistence/snapshot.md new file mode 100644 index 00000000..94ff9238 --- /dev/null +++ b/docs/docs/persistence/snapshot.md @@ -0,0 +1,16 @@ +--- +sidebar_position: 1 +--- + +# Snapshot + +EchoVault can take periodic snapshots of the current data and store it on disk. There are 2 configuration values used to configure the snapshot behaviour: + +- `--snapshot-threshold` - The number of write commands before a snapshot is triggered. The default number is 1,000 write commands. +- `--snapshot-interval` - The interval between snapshots. It accepts a parseable time format such as `30m45s` or `1h45m`. The default is 5 minutes. + +To restore data from a snapshot, set the `--restore-snapshot` configuration flag to `true` when starting a new EchoVault instance. Make sure to set the `--data-dir` to the folder containing the snapshot file so EchoVault knows where to load the file from. + +You can trigger a snapshot manually using the `SAVE` command. + +When both of these configuration options are set, the snapshot is triggered by whichever one is reached first since the instance's initialization or the last snapshot. diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts new file mode 100644 index 00000000..08b27235 --- /dev/null +++ b/docs/docusaurus.config.ts @@ -0,0 +1,121 @@ +import { themes as prismThemes } from "prism-react-renderer"; +import type { Config } from "@docusaurus/types"; +import type * as Preset from "@docusaurus/preset-classic"; + +const config: Config = { + title: "EchoVault", + tagline: "Embeddable distributed in-memory data store.", + favicon: "img/echovault-logo.png", + + // Set the production url of your site here + url: "https://echovault.io", + // Set the // pathname under which your site is served + // For GitHub pages deployment, it is often '//' + baseUrl: "/", + + // GitHub pages deployment config. + // If you aren't using GitHub pages, you don't need these. + organizationName: "EchoVault", // Usually your GitHub org/user name. + projectName: "EchoVault", // Usually your repo name. + + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + + // Even if you don't use internationalization, you can use this field to set + // useful metadata like html lang. For example, if your site is Chinese, you + // may want to replace "en" with "zh-Hans". + i18n: { + defaultLocale: "en", + locales: ["en"], + }, + + presets: [ + [ + "classic", + { + docs: { + sidebarPath: "./sidebars.ts", + }, + blog: { + showReadingTime: true, + }, + theme: { + customCss: "./src/css/custom.css", + }, + } satisfies Preset.Options, + ], + ], + + themeConfig: { + colorMode: { + respectPrefersColorScheme: true, + }, + algolia: { + appId: "QGK73FSNRI", + apiKey: "f9225d8721591a9664e4346847407e2d", + indexName: "echovault", + contextualSearch: false, + }, + // Replace with your project's social card + navbar: { + title: "", + style: "dark", + logo: { + alt: "EchoVault Logo", + src: "img/echovault-logo.png", + }, + items: [ + { + type: "docSidebar", + sidebarId: "documentationSidebar", + position: "right", + label: "Documentation", + }, + { + href: "https://github.com/EchoVault/EchoVault", + label: "GitHub", + position: "right", + }, + ], + }, + footer: { + style: "dark", + links: [ + { + title: "Docs", + items: [ + { + label: "Documentation", + to: "/docs/intro", + }, + ], + }, + { + title: "Community", + items: [ + { + label: "Discord", + href: "https://discord.gg/JrG4kPrF8v", + }, + ], + }, + { + title: "More", + items: [ + { + label: "GitHub", + href: "https://github.com/EchoVault/EchoVault", + }, + ], + }, + ], + copyright: `Copyright © ${new Date().getFullYear()} EchoVault.`, + }, + prism: { + theme: prismThemes.github, + darkTheme: prismThemes.dracula, + }, + } satisfies Preset.ThemeConfig, +}; + +export default config; diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 00000000..bcdab221 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,47 @@ +{ + "name": "echovault-docs", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids", + "typecheck": "tsc" + }, + "dependencies": { + "@docusaurus/core": "3.2.1", + "@docusaurus/preset-classic": "3.2.1", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "prism-react-renderer": "^2.3.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.2.1", + "@docusaurus/tsconfig": "3.2.1", + "@docusaurus/types": "3.2.1", + "typescript": "~5.2.2" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 3 chrome version", + "last 3 firefox version", + "last 5 safari version" + ] + }, + "engines": { + "node": ">=18.0" + } +} diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml new file mode 100644 index 00000000..9730e2a7 --- /dev/null +++ b/docs/pnpm-lock.yaml @@ -0,0 +1,10401 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@docusaurus/core': + specifier: 3.2.1 + version: 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/preset-classic': + specifier: 3.2.1 + version: 3.2.1(@algolia/client-search@4.24.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.1)(typescript@5.2.2) + '@mdx-js/react': + specifier: ^3.0.0 + version: 3.0.1(@types/react@18.3.5)(react@18.3.1) + clsx: + specifier: ^2.0.0 + version: 2.1.1 + prism-react-renderer: + specifier: ^2.3.0 + version: 2.4.0(react@18.3.1) + react: + specifier: ^18.0.0 + version: 18.3.1 + react-dom: + specifier: ^18.0.0 + version: 18.3.1(react@18.3.1) + devDependencies: + '@docusaurus/module-type-aliases': + specifier: 3.2.1 + version: 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/tsconfig': + specifier: 3.2.1 + version: 3.2.1 + '@docusaurus/types': + specifier: 3.2.1 + version: 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + typescript: + specifier: ~5.2.2 + version: 5.2.2 + +packages: + + '@algolia/autocomplete-core@1.9.3': + resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + + '@algolia/autocomplete-plugin-algolia-insights@1.9.3': + resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + peerDependencies: + search-insights: '>= 1 < 3' + + '@algolia/autocomplete-preset-algolia@1.9.3': + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/autocomplete-shared@1.9.3': + resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/cache-browser-local-storage@4.24.0': + resolution: {integrity: sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==} + + '@algolia/cache-common@4.24.0': + resolution: {integrity: sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==} + + '@algolia/cache-in-memory@4.24.0': + resolution: {integrity: sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==} + + '@algolia/client-account@4.24.0': + resolution: {integrity: sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==} + + '@algolia/client-analytics@4.24.0': + resolution: {integrity: sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==} + + '@algolia/client-common@4.24.0': + resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} + + '@algolia/client-personalization@4.24.0': + resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==} + + '@algolia/client-search@4.24.0': + resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} + + '@algolia/events@4.0.1': + resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} + + '@algolia/logger-common@4.24.0': + resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==} + + '@algolia/logger-console@4.24.0': + resolution: {integrity: sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==} + + '@algolia/recommend@4.24.0': + resolution: {integrity: sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==} + + '@algolia/requester-browser-xhr@4.24.0': + resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==} + + '@algolia/requester-common@4.24.0': + resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} + + '@algolia/requester-node-http@4.24.0': + resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==} + + '@algolia/transporter@4.24.0': + resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.25.4': + resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.25.2': + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.25.6': + resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.24.7': + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': + resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.25.2': + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.25.4': + resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.25.2': + resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.2': + resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-member-expression-to-functions@7.24.8': + resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.25.2': + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.24.7': + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.24.8': + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.25.0': + resolution: {integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.25.0': + resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-simple-access@7.24.7': + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.24.8': + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-wrap-function@7.25.0': + resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.25.6': + resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.25.6': + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3': + resolution: {integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0': + resolution: {integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0': + resolution: {integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7': + resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0': + resolution: {integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-export-namespace-from@7.8.3': + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.25.6': + resolution: {integrity: sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.25.6': + resolution: {integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.24.7': + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.25.4': + resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-arrow-functions@7.24.7': + resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.25.4': + resolution: {integrity: sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.24.7': + resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.24.7': + resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.25.0': + resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.25.4': + resolution: {integrity: sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.24.7': + resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.25.4': + resolution: {integrity: sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.24.7': + resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.24.8': + resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dotall-regex@7.24.7': + resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-keys@7.24.7': + resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0': + resolution: {integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-dynamic-import@7.24.7': + resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-exponentiation-operator@7.24.7': + resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.24.7': + resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.24.7': + resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.25.1': + resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-json-strings@7.24.7': + resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.25.2': + resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.24.7': + resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.24.7': + resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.24.7': + resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.24.8': + resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.25.0': + resolution: {integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-umd@7.24.7': + resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7': + resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.24.7': + resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7': + resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.24.7': + resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.24.7': + resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.24.7': + resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.24.7': + resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.24.8': + resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.24.7': + resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.25.4': + resolution: {integrity: sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.24.7': + resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.24.7': + resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-constant-elements@7.25.1': + resolution: {integrity: sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-display-name@7.24.7': + resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-development@7.24.7': + resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.25.2': + resolution: {integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-pure-annotations@7.24.7': + resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.24.7': + resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-reserved-words@7.24.7': + resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-runtime@7.25.4': + resolution: {integrity: sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.24.7': + resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.24.7': + resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.24.7': + resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.24.7': + resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.24.8': + resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.25.2': + resolution: {integrity: sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.24.7': + resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.24.7': + resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.24.7': + resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.25.4': + resolution: {integrity: sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.25.4': + resolution: {integrity: sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + '@babel/preset-react@7.24.7': + resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-typescript@7.24.7': + resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/regjsgen@0.8.0': + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + + '@babel/runtime-corejs3@7.25.6': + resolution: {integrity: sha512-Gz0Nrobx8szge6kQQ5Z5MX9L3ObqNwCQY1PSwSNzreFL7aHGxv8Fp2j3ETV6/wWdbiV+mW6OSm8oQhg3Tcsniw==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.25.6': + resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.6': + resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.25.6': + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + engines: {node: '>=6.9.0'} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@discoveryjs/json-ext@0.5.7': + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + + '@docsearch/css@3.6.1': + resolution: {integrity: sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg==} + + '@docsearch/react@3.6.1': + resolution: {integrity: sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + + '@docusaurus/core@3.2.1': + resolution: {integrity: sha512-ZeMAqNvy0eBv2dThEeMuNzzuu+4thqMQakhxsgT5s02A8LqRcdkg+rbcnuNqUIpekQ4GRx3+M5nj0ODJhBXo9w==} + engines: {node: '>=18.0'} + hasBin: true + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/cssnano-preset@3.2.1': + resolution: {integrity: sha512-wTL9KuSSbMJjKrfu385HZEzAoamUsbKqwscAQByZw4k6Ja/RWpqgVvt/CbAC+aYEH6inLzOt+MjuRwMOrD3VBA==} + engines: {node: '>=18.0'} + + '@docusaurus/logger@3.2.1': + resolution: {integrity: sha512-0voOKJCn9RaM3np6soqEfo7SsVvf2C+CDTWhW+H/1AyBhybASpExtDEz+7ECck9TwPzFQ5tt+I3zVugUJbJWDg==} + engines: {node: '>=18.0'} + + '@docusaurus/mdx-loader@3.2.1': + resolution: {integrity: sha512-Fs8tXhXKZjNkdGaOy1xSLXSwfjCMT73J3Zfrju2U16uGedRFRjgK0ojpK5tiC7TnunsL3tOFgp1BSMBRflX9gw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/module-type-aliases@3.2.1': + resolution: {integrity: sha512-FyViV5TqhL1vsM7eh29nJ5NtbRE6Ra6LP1PDcPvhwPSlA7eiWGRKAn3jWwMUcmjkos5SYY+sr0/feCdbM3eQHQ==} + peerDependencies: + react: '*' + react-dom: '*' + + '@docusaurus/plugin-content-blog@3.2.1': + resolution: {integrity: sha512-lOx0JfhlGZoZu6pEJfeEpSISZR5dQbJGGvb42IP13G5YThNHhG9R9uoWuo4IOimPqBC7sHThdLA3VLevk61Fsw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/plugin-content-docs@3.2.1': + resolution: {integrity: sha512-GHe5b/lCskAR8QVbfWAfPAApvRZgqk7FN3sOHgjCtjzQACZxkHmq6QqyqZ8Jp45V7lVck4wt2Xw2IzBJ7Cz3bA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/plugin-content-pages@3.2.1': + resolution: {integrity: sha512-TOqVfMVTAHqWNEGM94Drz+PUpHDbwFy6ucHFgyTx9zJY7wPNSG5EN+rd/mU7OvAi26qpOn2o9xTdUmb28QLjEQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/plugin-debug@3.2.1': + resolution: {integrity: sha512-AMKq8NuUKf2sRpN1m/sIbqbRbnmk+rSA+8mNU1LNxEl9BW9F/Gng8m9HKlzeyMPrf5XidzS1jqkuTLDJ6KIrFw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/plugin-google-analytics@3.2.1': + resolution: {integrity: sha512-/rJ+9u+Px0eTCiF4TNcNtj3kHf8cp6K1HCwOTdbsSlz6Xn21syZYcy+f1VM9wF6HrvUkXUcbM5TDCvg2IRL6bQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/plugin-google-gtag@3.2.1': + resolution: {integrity: sha512-XtuJnlMvYfppeVdUyKiDIJAa/gTJKCQU92z8CLZZ9ibJdgVjFOLS10s0hIC0eL5z0U2u2loJz2rZ63HOkNHbBA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/plugin-google-tag-manager@3.2.1': + resolution: {integrity: sha512-wiS/kE0Ny5pnjTxVCs8ljRnkL1RVMj59t6jmSsgEX7piDOoaXSMIUaoIt9ogS/v132uO0xEsxHstkRUZHQyPcQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/plugin-sitemap@3.2.1': + resolution: {integrity: sha512-uWZ7AxzdeaQSTCwD2yZtOiEm9zyKU+wqCmi/Sf25kQQqqFSBZUStXfaQ8OHP9cecnw893ZpZ811rPhB/wfujJw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/preset-classic@3.2.1': + resolution: {integrity: sha512-E3OHSmttpEBcSMhfPBq3EJMBxZBM01W1rnaCUTXy9EHvkmB5AwgTfW1PwGAybPAX579ntE03R+2zmXdizWfKnQ==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/react-loadable@5.5.2': + resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} + peerDependencies: + react: '*' + + '@docusaurus/theme-classic@3.2.1': + resolution: {integrity: sha512-+vSbnQyoWjc6vRZi4vJO2dBU02wqzynsai15KK+FANZudrYaBHtkbLZAQhgmxzBGVpxzi87gRohlMm+5D8f4tA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/theme-common@3.2.1': + resolution: {integrity: sha512-d+adiD7L9xv6EvfaAwUqdKf4orsM3jqgeqAM+HAjgL/Ux0GkVVnfKr+tsoe+4ow4rHe6NUt+nkkW8/K8dKdilA==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/theme-search-algolia@3.2.1': + resolution: {integrity: sha512-bzhCrpyXBXzeydNUH83II2akvFEGfhsNTPPWsk5N7e+odgQCQwoHhcF+2qILbQXjaoZ6B3c48hrvkyCpeyqGHw==} + engines: {node: '>=18.0'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/theme-translations@3.2.1': + resolution: {integrity: sha512-jAUMkIkFfY+OAhJhv6mV8zlwY6J4AQxJPTgLdR2l+Otof9+QdJjHNh/ifVEu9q0lp3oSPlJj9l05AaP7Ref+cg==} + engines: {node: '>=18.0'} + + '@docusaurus/tsconfig@3.2.1': + resolution: {integrity: sha512-+biUwtsYW3oChLxYezzA+NIgS3Q9KDRl7add/YT54RXs9Q4rKInebxdHdG6JFs5BaTg45gyjDu0rvNVcGeHODg==} + + '@docusaurus/types@3.2.1': + resolution: {integrity: sha512-n/toxBzL2oxTtRTOFiGKsHypzn/Pm+sXyw+VSk1UbqbXQiHOwHwts55bpKwbcUgA530Is6kix3ELiFOv9GAMfw==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + + '@docusaurus/utils-common@3.2.1': + resolution: {integrity: sha512-N5vadULnRLiqX2QfTjVEU3u5vo6RG2EZTdyXvJdzDOdrLCGIZAfnf/VkssinFZ922sVfaFfQ4FnStdhn5TWdVg==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true + + '@docusaurus/utils-validation@3.2.1': + resolution: {integrity: sha512-+x7IR9hNMXi62L1YAglwd0s95fR7+EtirjTxSN4kahYRWGqOi3jlQl1EV0az/yTEvKbxVvOPcdYicGu9dk4LJw==} + engines: {node: '>=18.0'} + + '@docusaurus/utils@3.2.1': + resolution: {integrity: sha512-DPkIS/EPc+pGAV798PUXgNzJFM3HJouoQXgr0KDZuJVz1EkWbDLOcQwLIz8Qx7liI9ddfkN/TXTRQdsTPZNakw==} + engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true + + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@leichtgewicht/ip-codec@2.0.5': + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + + '@mdx-js/mdx@3.0.1': + resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} + + '@mdx-js/react@3.0.1': + resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} + peerDependencies: + '@types/react': '>=16' + react: '>=16' + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@2.3.1': + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + engines: {node: '>=12'} + + '@polka/url@1.0.0-next.25': + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + + '@slorber/remark-comment@1.0.0': + resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} + + '@svgr/babel-plugin-add-jsx-attribute@6.5.1': + resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1': + resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-dynamic-title@6.5.1': + resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-em-dimensions@6.5.1': + resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-react-native-svg@6.5.1': + resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-svg-component@6.5.1': + resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-preset@6.5.1': + resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/core@6.5.1': + resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} + engines: {node: '>=10'} + + '@svgr/hast-util-to-babel-ast@6.5.1': + resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} + engines: {node: '>=10'} + + '@svgr/plugin-jsx@6.5.1': + resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': ^6.0.0 + + '@svgr/plugin-svgo@6.5.1': + resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/webpack@6.5.1': + resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} + engines: {node: '>=10'} + + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + + '@types/acorn@4.0.6': + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/bonjour@3.5.13': + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + + '@types/connect-history-api-fallback@1.5.4': + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/express-serve-static-core@4.19.5': + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} + + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + + '@types/gtag.js@0.0.12': + resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/history@4.7.11': + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + + '@types/html-minifier-terser@6.1.0': + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/http-proxy@1.17.15': + resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/node-forge@1.3.11': + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + + '@types/node@22.5.4': + resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/prismjs@1.26.4': + resolution: {integrity: sha512-rlAnzkW2sZOjbqZ743IHUhFcvzaGbqijwOu8QZnZCjfQzBqFE3s4lOTJEsxikImav9uzz/42I+O7YUs1mWgMlg==} + + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + '@types/qs@6.9.15': + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/react-router-config@5.0.11': + resolution: {integrity: sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==} + + '@types/react-router-dom@5.3.3': + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + + '@types/react-router@5.1.20': + resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + + '@types/react@18.3.5': + resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==} + + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + + '@types/sax@1.2.7': + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-index@1.9.4': + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + + '@types/sockjs@0.3.36': + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/ws@8.5.12': + resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + algoliasearch-helper@3.22.5: + resolution: {integrity: sha512-lWvhdnc+aKOKx8jyA3bsdEgHzm/sglC4cYdMG4xSQyRiPLJVJtH/IVYZG3Hp6PkTEhQqhyVYkeP9z2IlcHJsWw==} + peerDependencies: + algoliasearch: '>= 3.1 < 6' + + algoliasearch@4.24.0: + resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + babel-loader@9.1.3: + resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + + babel-plugin-dynamic-import-node@2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + + babel-plugin-polyfill-corejs2@0.4.11: + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.10.6: + resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.2: + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boxen@6.2.1: + resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + + caniuse-lite@1.0.30001660: + resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0: + resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} + engines: {node: '>=18.17'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combine-promises@1.2.0: + resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} + engines: {node: '>=10'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + configstore@6.0.0: + resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} + engines: {node: '>=12'} + + connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + + consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + + content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + copy-text-to-clipboard@3.2.0: + resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} + engines: {node: '>=12'} + + copy-webpack-plugin@11.0.0: + resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.1.0 + + core-js-compat@3.38.1: + resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} + + core-js-pure@3.38.1: + resolution: {integrity: sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==} + + core-js@3.38.1: + resolution: {integrity: sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cosmiconfig@6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + + css-declaration-sorter@6.4.1: + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + + css-loader@6.11.0: + resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + css-minimizer-webpack-plugin@4.2.2: + resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@parcel/css': '*' + '@swc/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + lightningcss: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + '@swc/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true + + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssnano-preset-advanced@5.3.10: + resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano-preset-default@5.2.14: + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano-utils@3.1.0: + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano@5.1.15: + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + detect-port-alt@1.1.6: + resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} + engines: {node: '>= 4.2.1'} + hasBin: true + + detect-port@1.6.1: + resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} + engines: {node: '>= 4.0.0'} + hasBin: true + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + + dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dot-prop@6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} + engines: {node: '>=10'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.18: + resolution: {integrity: sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + emoticon@4.1.0: + resolution: {integrity: sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + encoding-sniffer@0.2.0: + resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-goat@4.0.0: + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-value-to-estree@3.1.2: + resolution: {integrity: sha512-S0gW2+XZkmsx00tU2uJ4L9hUT7IFabbml9pHh2WQqFmAbxit++YGZne0sKJbNwkj9Wvg9E4uqWl4nCIFQMmfag==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eta@2.2.0: + resolution: {integrity: sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==} + engines: {node: '>=6.0.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eval@0.1.8: + resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} + engines: {node: '>= 0.8'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + express@4.20.0: + resolution: {integrity: sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==} + engines: {node: '>= 0.10.0'} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-uri@3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + + fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + feed@4.2.2: + resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} + engines: {node: '>=0.4.0'} + + file-loader@6.2.0: + resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + filesize@8.0.7: + resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} + engines: {node: '>= 0.4.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + + find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + fork-ts-checker-webpack-plugin@6.5.3: + resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} + engines: {node: '>=10', yarn: '>=1.0.0'} + peerDependencies: + eslint: '>= 6' + typescript: '>= 2.7' + vue-template-compiler: '*' + webpack: '>= 4' + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + + form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-monkey@1.0.6: + resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + github-slugger@1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + global-dirs@3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} + + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-yarn@3.0.0: + resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.0.4: + resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} + + hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + + hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + history@4.10.1: + resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + + html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + + html-minifier-terser@7.2.0: + resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + html-webpack-plugin@5.6.0: + resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} + engines: {node: '>=10.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + + htmlparser2@9.1.0: + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + + http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + + http-proxy-middleware@2.0.6: + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + image-size@1.1.1: + resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} + engines: {node: '>=16.x'} + hasBin: true + + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + infima@0.2.0-alpha.43: + resolution: {integrity: sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==} + engines: {node: '>=12'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + + inline-style-parser@0.2.3: + resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} + + interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-installed-globally@0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + + is-npm@6.0.0: + resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + + is-root@2.1.0: + resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} + engines: {node: '>=6'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-yarn-global@0.4.1: + resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} + engines: {node: '>=12'} + + isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + joi@17.13.3: + resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + latest-version@7.0.0: + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} + + launch-editor@2.9.1: + resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + + loader-utils@3.3.1: + resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} + engines: {node: '>= 12.13.0'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + + mdast-util-directive@3.0.0: + resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + + mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + + mdast-util-mdx-jsx@3.1.3: + resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + + micromark-extension-directive@3.0.1: + resolution: {integrity: sha512-VGV2uxUzhEZmaP7NSFo2vtq7M2nUD+WfmYQD+d8i/1nHbzE+rMy9uzTvUybBbNiVbrhOZibg3gbyoARGqgDWyg==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + + micromark-extension-mdx-jsx@3.0.1: + resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-mdx-expression@2.0.2: + resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} + + micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + + micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.33.0: + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + engines: {node: '>= 0.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.18: + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + mini-css-extract-plugin@2.9.1: + resolution: {integrity: sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-emoji@2.1.3: + resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} + engines: {node: '>=18'} + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + + p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + + parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} + + path-to-regexp@1.8.0: + resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + + path-to-regexp@2.2.1: + resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} + + pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} + + postcss-calc@8.2.4: + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + + postcss-colormin@5.3.1: + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-convert-values@5.1.3: + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-comments@5.1.2: + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-duplicates@5.1.0: + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-empty@5.1.1: + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-overridden@5.1.0: + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-unused@5.1.0: + resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-loader@7.3.4: + resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} + engines: {node: '>= 14.15.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + + postcss-merge-idents@5.1.1: + resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-longhand@5.1.7: + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-rules@5.1.4: + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-font-values@5.1.0: + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-gradients@5.1.1: + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-params@5.1.4: + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-selectors@5.2.1: + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-modules-extract-imports@3.1.0: + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.0.5: + resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.2.0: + resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-normalize-charset@5.1.0: + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-display-values@5.1.0: + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-positions@5.1.1: + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-repeat-style@5.1.1: + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-string@5.1.0: + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-timing-functions@5.1.0: + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-unicode@5.1.1: + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-url@5.1.0: + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-whitespace@5.1.1: + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-ordered-values@5.1.3: + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-idents@5.2.0: + resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-initial@5.1.2: + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-transforms@5.1.0: + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-sort-media-queries@4.4.1: + resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.4.16 + + postcss-svgo@5.1.0: + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-unique-selectors@5.1.1: + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss-zindex@5.1.0: + resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss@8.4.45: + resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} + engines: {node: ^10 || ^12 || >=14} + + pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + + pretty-time@1.1.0: + resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} + engines: {node: '>=4'} + + prism-react-renderer@2.4.0: + resolution: {integrity: sha512-327BsVCD/unU4CNLZTWVHyUHKnsqcvj2qbPlQ8MiBE2eq2rgctjigPA1Gp9HLF83kZ20zNN6jgizHJeEsyFYOw==} + peerDependencies: + react: '>=16.0.0' + + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pupa@3.1.0: + resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} + engines: {node: '>=12.20'} + + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.0: + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} + engines: {node: '>= 0.6'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-dev-utils@12.0.1: + resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=2.7' + webpack: '>=4' + peerDependenciesMeta: + typescript: + optional: true + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-error-overlay@6.0.11: + resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} + + react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + + react-helmet-async@1.3.0: + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + + react-helmet-async@2.0.5: + resolution: {integrity: sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-json-view-lite@1.5.0: + resolution: {integrity: sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==} + engines: {node: '>=14'} + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + + react-loadable-ssr-addon-v5-slorber@1.0.1: + resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} + engines: {node: '>=10.13.0'} + peerDependencies: + react-loadable: '*' + webpack: '>=4.41.1 || 5.x' + + react-router-config@5.1.1: + resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} + peerDependencies: + react: '>=15' + react-router: '>=5' + + react-router-dom@5.3.4: + resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} + peerDependencies: + react: '>=15' + + react-router@5.3.4: + resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} + peerDependencies: + react: '>=15' + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + reading-time@1.5.0: + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + + rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + + recursive-readdir@2.2.3: + resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} + engines: {node: '>=6.0.0'} + + regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + + regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + + registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} + + registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} + + regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + + remark-directive@3.0.0: + resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} + + remark-emoji@4.0.1: + resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-like@0.1.2: + resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pathname@3.0.0: + resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rtl-detect@1.1.2: + resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} + + rtlcss@4.3.0: + resolution: {integrity: sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==} + engines: {node: '>=12.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + schema-utils@2.7.0: + resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} + engines: {node: '>= 8.9.0'} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + + search-insights@2.17.1: + resolution: {integrity: sha512-HHFjYH/0AqXacETlIbe9EYc3UNlQYGNNTY0fZ/sWl6SweX+GDxq9NB5+RVoPLgEFuOtCz7M9dhYxqDnhbbF0eQ==} + + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + + selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + + semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-handler@6.1.5: + resolution: {integrity: sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==} + + serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.0: + resolution: {integrity: sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==} + engines: {node: '>= 0.8.0'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + + shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + sitemap@7.1.2: + resolution: {integrity: sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + + sort-css-media-queries@2.1.0: + resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} + engines: {node: '>= 6.3.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + + spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + srcset@4.0.0: + resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} + engines: {node: '>=12'} + + stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + + style-to-object@1.0.7: + resolution: {integrity: sha512-uSjr59G5u6fbxUfKbb8GcqMGT3Xs9v5IbPkjb0S16GyOeBLAzSRK0CixBv5YrYvzO6TDLzIS6QCn78tkqWngPw==} + + stylehacks@5.1.1: + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + + svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + + tapable@1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} + engines: {node: '>=6'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.32.0: + resolution: {integrity: sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==} + engines: {node: '>=10'} + hasBin: true + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + + typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + undici@6.19.8: + resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} + engines: {node: '>=18.17'} + + unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-notifier@6.0.2: + resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} + engines: {node: '>=14.16'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-loader@4.1.1: + resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + file-loader: '*' + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + + utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + value-equal@1.0.1: + resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + + wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + webpack-bundle-analyzer@4.10.2: + resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==} + engines: {node: '>= 10.13.0'} + hasBin: true + + webpack-dev-middleware@5.3.4: + resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + webpack-dev-server@4.15.2: + resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + + webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.94.0: + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + webpackbar@5.0.2: + resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} + engines: {node: '>=12'} + peerDependencies: + webpack: 3 || 4 || 5 + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} + + wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + + xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.1)': + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.1) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.1)': + dependencies: + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + search-insights: 2.17.1 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + + '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': + dependencies: + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + '@algolia/client-search': 4.24.0 + algoliasearch: 4.24.0 + + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': + dependencies: + '@algolia/client-search': 4.24.0 + algoliasearch: 4.24.0 + + '@algolia/cache-browser-local-storage@4.24.0': + dependencies: + '@algolia/cache-common': 4.24.0 + + '@algolia/cache-common@4.24.0': {} + + '@algolia/cache-in-memory@4.24.0': + dependencies: + '@algolia/cache-common': 4.24.0 + + '@algolia/client-account@4.24.0': + dependencies: + '@algolia/client-common': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/client-analytics@4.24.0': + dependencies: + '@algolia/client-common': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/client-common@4.24.0': + dependencies: + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/client-personalization@4.24.0': + dependencies: + '@algolia/client-common': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/client-search@4.24.0': + dependencies: + '@algolia/client-common': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/events@4.0.1': {} + + '@algolia/logger-common@4.24.0': {} + + '@algolia/logger-console@4.24.0': + dependencies: + '@algolia/logger-common': 4.24.0 + + '@algolia/recommend@4.24.0': + dependencies: + '@algolia/cache-browser-local-storage': 4.24.0 + '@algolia/cache-common': 4.24.0 + '@algolia/cache-in-memory': 4.24.0 + '@algolia/client-common': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/logger-common': 4.24.0 + '@algolia/logger-console': 4.24.0 + '@algolia/requester-browser-xhr': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/requester-node-http': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/requester-browser-xhr@4.24.0': + dependencies: + '@algolia/requester-common': 4.24.0 + + '@algolia/requester-common@4.24.0': {} + + '@algolia/requester-node-http@4.24.0': + dependencies: + '@algolia/requester-common': 4.24.0 + + '@algolia/transporter@4.24.0': + dependencies: + '@algolia/cache-common': 4.24.0 + '@algolia/logger-common': 4.24.0 + '@algolia/requester-common': 4.24.0 + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.1.0 + + '@babel/compat-data@7.25.4': {} + + '@babel/core@7.25.2': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.25.6': + dependencies: + '@babel/types': 7.25.6 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/helper-annotate-as-pure@7.24.7': + dependencies: + '@babel/types': 7.25.6 + + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-compilation-targets@7.25.2': + dependencies: + '@babel/compat-data': 7.25.4 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.3 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/traverse': 7.25.6 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + regexpu-core: 5.3.2 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + debug: 4.3.7 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.24.8': + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.24.7': + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.24.7': + dependencies: + '@babel/types': 7.25.6 + + '@babel/helper-plugin-utils@7.24.8': {} + + '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-wrap-function': 7.25.0 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.24.7': + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + dependencies: + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.24.8': {} + + '@babel/helper-validator-identifier@7.24.7': {} + + '@babel/helper-validator-option@7.24.8': {} + + '@babel/helper-wrap-function@7.25.0': + dependencies: + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.25.6': + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 + + '@babel/highlight@7.24.7': + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.0 + + '@babel/parser@7.25.6': + dependencies: + '@babel/types': 7.25.6 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-import-assertions@7.25.6(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-async-generator-functions@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/traverse': 7.25.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/template': 7.25.0 + + '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + + '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + + '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + + '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + + '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + + '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + + '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + + '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + + '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-react-constant-elements@7.25.1(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + regenerator-transform: 0.15.2 + + '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-runtime@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-sets-regex@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/preset-env@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/compat-data': 7.25.4 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.2) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-import-assertions': 7.25.6(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.25.2) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-async-generator-functions': 7.25.4(@babel/core@7.25.2) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.2) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.25.2) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.2) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-sets-regex': 7.25.4(@babel/core@7.25.2) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) + core-js-compat: 3.38.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/types': 7.25.6 + esutils: 2.0.3 + + '@babel/preset-react@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/preset-typescript@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/regjsgen@0.8.0': {} + + '@babel/runtime-corejs3@7.25.6': + dependencies: + core-js-pure: 3.38.1 + regenerator-runtime: 0.14.1 + + '@babel/runtime@7.25.6': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/template@7.25.0': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 + + '@babel/traverse@7.25.6': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.25.6': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + + '@colors/colors@1.5.0': + optional: true + + '@discoveryjs/json-ext@0.5.7': {} + + '@docsearch/css@3.6.1': {} + + '@docsearch/react@3.6.1(@algolia/client-search@4.24.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.1)': + dependencies: + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.1) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + '@docsearch/css': 3.6.1 + algoliasearch: 4.24.0 + optionalDependencies: + '@types/react': 18.3.5 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + search-insights: 2.17.1 + transitivePeerDependencies: + - '@algolia/client-search' + + '@docusaurus/core@3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/generator': 7.25.6 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-runtime': 7.25.4(@babel/core@7.25.2) + '@babel/preset-env': 7.25.4(@babel/core@7.25.2) + '@babel/preset-react': 7.24.7(@babel/core@7.25.2) + '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) + '@babel/runtime': 7.25.6 + '@babel/runtime-corejs3': 7.25.6 + '@babel/traverse': 7.25.6 + '@docusaurus/cssnano-preset': 3.2.1 + '@docusaurus/logger': 3.2.1 + '@docusaurus/mdx-loader': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/react-loadable': 5.5.2(react@18.3.1) + '@docusaurus/utils': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-common': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@svgr/webpack': 6.5.1 + autoprefixer: 10.4.20(postcss@8.4.45) + babel-loader: 9.1.3(@babel/core@7.25.2)(webpack@5.94.0) + babel-plugin-dynamic-import-node: 2.3.3 + boxen: 6.2.1 + chalk: 4.1.2 + chokidar: 3.6.0 + clean-css: 5.3.3 + cli-table3: 0.6.5 + combine-promises: 1.2.0 + commander: 5.1.0 + copy-webpack-plugin: 11.0.0(webpack@5.94.0) + core-js: 3.38.1 + css-loader: 6.11.0(webpack@5.94.0) + css-minimizer-webpack-plugin: 4.2.2(clean-css@5.3.3)(webpack@5.94.0) + cssnano: 5.1.15(postcss@8.4.45) + del: 6.1.1 + detect-port: 1.6.1 + escape-html: 1.0.3 + eta: 2.2.0 + eval: 0.1.8 + file-loader: 6.2.0(webpack@5.94.0) + fs-extra: 11.2.0 + html-minifier-terser: 7.2.0 + html-tags: 3.3.1 + html-webpack-plugin: 5.6.0(webpack@5.94.0) + leven: 3.1.0 + lodash: 4.17.21 + mini-css-extract-plugin: 2.9.1(webpack@5.94.0) + p-map: 4.0.0 + postcss: 8.4.45 + postcss-loader: 7.3.4(postcss@8.4.45)(typescript@5.2.2)(webpack@5.94.0) + prompts: 2.4.2 + react: 18.3.1 + react-dev-utils: 12.0.1(typescript@5.2.2)(webpack@5.94.0) + react-dom: 18.3.1(react@18.3.1) + react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.3.1)' + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2(react@18.3.1))(webpack@5.94.0) + react-router: 5.3.4(react@18.3.1) + react-router-config: 5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1) + react-router-dom: 5.3.4(react@18.3.1) + rtl-detect: 1.1.2 + semver: 7.6.3 + serve-handler: 6.1.5 + shelljs: 0.8.5 + terser-webpack-plugin: 5.3.10(webpack@5.94.0) + tslib: 2.7.0 + update-notifier: 6.0.2 + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.94.0))(webpack@5.94.0) + webpack: 5.94.0 + webpack-bundle-analyzer: 4.10.2 + webpack-dev-server: 4.15.2(webpack@5.94.0) + webpack-merge: 5.10.0 + webpackbar: 5.0.2(webpack@5.94.0) + transitivePeerDependencies: + - '@docusaurus/types' + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/cssnano-preset@3.2.1': + dependencies: + cssnano-preset-advanced: 5.3.10(postcss@8.4.45) + postcss: 8.4.45 + postcss-sort-media-queries: 4.4.1(postcss@8.4.45) + tslib: 2.7.0 + + '@docusaurus/logger@3.2.1': + dependencies: + chalk: 4.1.2 + tslib: 2.7.0 + + '@docusaurus/mdx-loader@3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@docusaurus/logger': 3.2.1 + '@docusaurus/utils': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@mdx-js/mdx': 3.0.1 + '@slorber/remark-comment': 1.0.0 + escape-html: 1.0.3 + estree-util-value-to-estree: 3.1.2 + file-loader: 6.2.0(webpack@5.94.0) + fs-extra: 11.2.0 + image-size: 1.1.1 + mdast-util-mdx: 3.0.0 + mdast-util-to-string: 4.0.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + rehype-raw: 7.0.0 + remark-directive: 3.0.0 + remark-emoji: 4.0.1 + remark-frontmatter: 5.0.0 + remark-gfm: 4.0.0 + stringify-object: 3.3.0 + tslib: 2.7.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.94.0))(webpack@5.94.0) + vfile: 6.0.3 + webpack: 5.94.0 + transitivePeerDependencies: + - '@docusaurus/types' + - '@swc/core' + - esbuild + - supports-color + - uglify-js + - webpack-cli + + '@docusaurus/module-type-aliases@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@docusaurus/react-loadable': 5.5.2(react@18.3.1) + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@types/history': 4.7.11 + '@types/react': 18.3.5 + '@types/react-router-config': 5.0.11 + '@types/react-router-dom': 5.3.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet-async: 2.0.5(react@18.3.1) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.3.1)' + transitivePeerDependencies: + - '@swc/core' + - esbuild + - supports-color + - uglify-js + - webpack-cli + + '@docusaurus/plugin-content-blog@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': + dependencies: + '@docusaurus/core': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/logger': 3.2.1 + '@docusaurus/mdx-loader': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-common': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + cheerio: 1.0.0 + feed: 4.2.2 + fs-extra: 11.2.0 + lodash: 4.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reading-time: 1.5.0 + srcset: 4.0.0 + tslib: 2.7.0 + unist-util-visit: 5.0.0 + utility-types: 3.11.0 + webpack: 5.94.0 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/plugin-content-docs@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': + dependencies: + '@docusaurus/core': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/logger': 3.2.1 + '@docusaurus/mdx-loader': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/module-type-aliases': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-common': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@types/react-router-config': 5.0.11 + combine-promises: 1.2.0 + fs-extra: 11.2.0 + js-yaml: 4.1.0 + lodash: 4.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.7.0 + utility-types: 3.11.0 + webpack: 5.94.0 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/plugin-content-pages@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': + dependencies: + '@docusaurus/core': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/mdx-loader': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + fs-extra: 11.2.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.7.0 + webpack: 5.94.0 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/plugin-debug@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': + dependencies: + '@docusaurus/core': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + fs-extra: 11.2.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-json-view-lite: 1.5.0(react@18.3.1) + tslib: 2.7.0 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/plugin-google-analytics@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': + dependencies: + '@docusaurus/core': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.7.0 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/plugin-google-gtag@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': + dependencies: + '@docusaurus/core': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@types/gtag.js': 0.0.12 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.7.0 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/plugin-google-tag-manager@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': + dependencies: + '@docusaurus/core': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.7.0 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/plugin-sitemap@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': + dependencies: + '@docusaurus/core': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/logger': 3.2.1 + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-common': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + fs-extra: 11.2.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + sitemap: 7.1.2 + tslib: 2.7.0 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/preset-classic@3.2.1(@algolia/client-search@4.24.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.1)(typescript@5.2.2)': + dependencies: + '@docusaurus/core': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-content-blog': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-content-docs': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-content-pages': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-debug': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-google-analytics': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-google-gtag': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-google-tag-manager': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-sitemap': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/theme-classic': 3.2.1(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/theme-common': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/theme-search-algolia': 3.2.1(@algolia/client-search@4.24.0)(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.1)(typescript@5.2.2) + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@algolia/client-search' + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - '@types/react' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - search-insights + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/react-loadable@5.5.2(react@18.3.1)': + dependencies: + '@types/react': 18.3.5 + prop-types: 15.8.1 + react: 18.3.1 + + '@docusaurus/theme-classic@3.2.1(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': + dependencies: + '@docusaurus/core': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/mdx-loader': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/module-type-aliases': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-content-docs': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-content-pages': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/theme-common': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/theme-translations': 3.2.1 + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-common': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@mdx-js/react': 3.0.1(@types/react@18.3.5)(react@18.3.1) + clsx: 2.1.1 + copy-text-to-clipboard: 3.2.0 + infima: 0.2.0-alpha.43 + lodash: 4.17.21 + nprogress: 0.2.0 + postcss: 8.4.45 + prism-react-renderer: 2.4.0(react@18.3.1) + prismjs: 1.29.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router-dom: 5.3.4(react@18.3.1) + rtlcss: 4.3.0 + tslib: 2.7.0 + utility-types: 3.11.0 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - '@types/react' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/theme-common@3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2)': + dependencies: + '@docusaurus/mdx-loader': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/module-type-aliases': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-content-docs': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/plugin-content-pages': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/utils': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-common': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@types/history': 4.7.11 + '@types/react': 18.3.5 + '@types/react-router-config': 5.0.11 + clsx: 2.1.1 + parse-numeric-range: 1.3.0 + prism-react-renderer: 2.4.0(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.7.0 + utility-types: 3.11.0 + transitivePeerDependencies: + - '@docusaurus/types' + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/theme-search-algolia@3.2.1(@algolia/client-search@4.24.0)(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.1)(typescript@5.2.2)': + dependencies: + '@docsearch/react': 3.6.1(@algolia/client-search@4.24.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.1) + '@docusaurus/core': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/logger': 3.2.1 + '@docusaurus/plugin-content-docs': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/theme-common': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.2.2) + '@docusaurus/theme-translations': 3.2.1 + '@docusaurus/utils': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + algoliasearch: 4.24.0 + algoliasearch-helper: 3.22.5(algoliasearch@4.24.0) + clsx: 2.1.1 + eta: 2.2.0 + fs-extra: 11.2.0 + lodash: 4.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.7.0 + utility-types: 3.11.0 + transitivePeerDependencies: + - '@algolia/client-search' + - '@docusaurus/types' + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - '@types/react' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - search-insights + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + + '@docusaurus/theme-translations@3.2.1': + dependencies: + fs-extra: 11.2.0 + tslib: 2.7.0 + + '@docusaurus/tsconfig@3.2.1': {} + + '@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@mdx-js/mdx': 3.0.1 + '@types/history': 4.7.11 + '@types/react': 18.3.5 + commander: 5.1.0 + joi: 17.13.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + utility-types: 3.11.0 + webpack: 5.94.0 + webpack-merge: 5.10.0 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - supports-color + - uglify-js + - webpack-cli + + '@docusaurus/utils-common@3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + dependencies: + tslib: 2.7.0 + optionalDependencies: + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + + '@docusaurus/utils-validation@3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + dependencies: + '@docusaurus/logger': 3.2.1 + '@docusaurus/utils': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-common': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + joi: 17.13.3 + js-yaml: 4.1.0 + tslib: 2.7.0 + transitivePeerDependencies: + - '@docusaurus/types' + - '@swc/core' + - esbuild + - supports-color + - uglify-js + - webpack-cli + + '@docusaurus/utils@3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + dependencies: + '@docusaurus/logger': 3.2.1 + '@docusaurus/utils-common': 3.2.1(@docusaurus/types@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@svgr/webpack': 6.5.1 + escape-string-regexp: 4.0.0 + file-loader: 6.2.0(webpack@5.94.0) + fs-extra: 11.2.0 + github-slugger: 1.5.0 + globby: 11.1.0 + gray-matter: 4.0.3 + jiti: 1.21.6 + js-yaml: 4.1.0 + lodash: 4.17.21 + micromatch: 4.0.8 + prompts: 2.4.2 + resolve-pathname: 3.0.0 + shelljs: 0.8.5 + tslib: 2.7.0 + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.94.0))(webpack@5.94.0) + webpack: 5.94.0 + optionalDependencies: + '@docusaurus/types': 3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - '@swc/core' + - esbuild + - supports-color + - uglify-js + - webpack-cli + + '@hapi/hoek@9.3.0': {} + + '@hapi/topo@5.1.0': + dependencies: + '@hapi/hoek': 9.3.0 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.5.4 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@leichtgewicht/ip-codec@2.0.5': {} + + '@mdx-js/mdx@3.0.1': + dependencies: + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-build-jsx: 3.0.1 + estree-util-is-identifier-name: 3.0.0 + estree-util-to-js: 2.0.0 + estree-walker: 3.0.3 + hast-util-to-estree: 3.1.0 + hast-util-to-jsx-runtime: 2.3.0 + markdown-extensions: 2.0.0 + periscopic: 3.1.0 + remark-mdx: 3.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@mdx-js/react@3.0.1(@types/react@18.3.5)(react@18.3.1)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 18.3.5 + react: 18.3.1 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@2.3.1': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@polka/url@1.0.0-next.25': {} + + '@sideway/address@4.1.5': + dependencies: + '@hapi/hoek': 9.3.0 + + '@sideway/formula@3.0.1': {} + + '@sideway/pinpoint@2.0.0': {} + + '@sinclair/typebox@0.27.8': {} + + '@sindresorhus/is@4.6.0': {} + + '@sindresorhus/is@5.6.0': {} + + '@slorber/remark-comment@1.0.0': + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + + '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + + '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + + '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + + '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + + '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + + '@svgr/babel-preset@6.5.1(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.25.2) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.25.2) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.25.2) + '@svgr/babel-plugin-replace-jsx-attribute-value': 6.5.1(@babel/core@7.25.2) + '@svgr/babel-plugin-svg-dynamic-title': 6.5.1(@babel/core@7.25.2) + '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.25.2) + '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.25.2) + '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.25.2) + + '@svgr/core@6.5.1': + dependencies: + '@babel/core': 7.25.2 + '@svgr/babel-preset': 6.5.1(@babel/core@7.25.2) + '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) + camelcase: 6.3.0 + cosmiconfig: 7.1.0 + transitivePeerDependencies: + - supports-color + + '@svgr/hast-util-to-babel-ast@6.5.1': + dependencies: + '@babel/types': 7.25.6 + entities: 4.5.0 + + '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)': + dependencies: + '@babel/core': 7.25.2 + '@svgr/babel-preset': 6.5.1(@babel/core@7.25.2) + '@svgr/core': 6.5.1 + '@svgr/hast-util-to-babel-ast': 6.5.1 + svg-parser: 2.0.4 + transitivePeerDependencies: + - supports-color + + '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)': + dependencies: + '@svgr/core': 6.5.1 + cosmiconfig: 7.1.0 + deepmerge: 4.3.1 + svgo: 2.8.0 + + '@svgr/webpack@6.5.1': + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-transform-react-constant-elements': 7.25.1(@babel/core@7.25.2) + '@babel/preset-env': 7.25.4(@babel/core@7.25.2) + '@babel/preset-react': 7.24.7(@babel/core@7.25.2) + '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) + '@svgr/core': 6.5.1 + '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) + '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1) + transitivePeerDependencies: + - supports-color + + '@szmarczak/http-timer@5.0.1': + dependencies: + defer-to-connect: 2.0.1 + + '@trysound/sax@0.2.0': {} + + '@types/acorn@4.0.6': + dependencies: + '@types/estree': 1.0.5 + + '@types/body-parser@1.19.5': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 22.5.4 + + '@types/bonjour@3.5.13': + dependencies: + '@types/node': 22.5.4 + + '@types/connect-history-api-fallback@1.5.4': + dependencies: + '@types/express-serve-static-core': 4.19.5 + '@types/node': 22.5.4 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.5.4 + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.5 + + '@types/estree@1.0.5': {} + + '@types/express-serve-static-core@4.19.5': + dependencies: + '@types/node': 22.5.4 + '@types/qs': 6.9.15 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express@4.17.21': + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.5 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 + + '@types/gtag.js@0.0.12': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/history@4.7.11': {} + + '@types/html-minifier-terser@6.1.0': {} + + '@types/http-cache-semantics@4.0.4': {} + + '@types/http-errors@2.0.4': {} + + '@types/http-proxy@1.17.15': + dependencies: + '@types/node': 22.5.4 + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/json-schema@7.0.15': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdx@2.0.13': {} + + '@types/mime@1.3.5': {} + + '@types/ms@0.7.34': {} + + '@types/node-forge@1.3.11': + dependencies: + '@types/node': 22.5.4 + + '@types/node@17.0.45': {} + + '@types/node@22.5.4': + dependencies: + undici-types: 6.19.8 + + '@types/parse-json@4.0.2': {} + + '@types/prismjs@1.26.4': {} + + '@types/prop-types@15.7.12': {} + + '@types/qs@6.9.15': {} + + '@types/range-parser@1.2.7': {} + + '@types/react-router-config@5.0.11': + dependencies: + '@types/history': 4.7.11 + '@types/react': 18.3.5 + '@types/react-router': 5.1.20 + + '@types/react-router-dom@5.3.3': + dependencies: + '@types/history': 4.7.11 + '@types/react': 18.3.5 + '@types/react-router': 5.1.20 + + '@types/react-router@5.1.20': + dependencies: + '@types/history': 4.7.11 + '@types/react': 18.3.5 + + '@types/react@18.3.5': + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + + '@types/retry@0.12.0': {} + + '@types/sax@1.2.7': + dependencies: + '@types/node': 17.0.45 + + '@types/send@0.17.4': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 22.5.4 + + '@types/serve-index@1.9.4': + dependencies: + '@types/express': 4.17.21 + + '@types/serve-static@1.15.7': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 22.5.4 + '@types/send': 0.17.4 + + '@types/sockjs@0.3.36': + dependencies: + '@types/node': 22.5.4 + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@types/ws@8.5.12': + dependencies: + '@types/node': 22.5.4 + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.33': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@ungap/structured-clone@1.2.0': {} + + '@webassemblyjs/ast@1.12.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + + '@webassemblyjs/helper-api-error@1.11.6': {} + + '@webassemblyjs/helper-buffer@1.12.1': {} + + '@webassemblyjs/helper-numbers@1.11.6': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + + '@webassemblyjs/helper-wasm-section@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + + '@webassemblyjs/ieee754@1.11.6': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.11.6': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.11.6': {} + + '@webassemblyjs/wasm-edit@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + + '@webassemblyjs/wasm-gen@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wasm-opt@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + + '@webassemblyjs/wasm-parser@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wast-printer@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-import-attributes@1.9.5(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + address@1.2.2: {} + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + ajv-formats@2.1.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv-keywords@5.1.0(ajv@8.17.1): + dependencies: + ajv: 8.17.1 + fast-deep-equal: 3.1.3 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.1 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + algoliasearch-helper@3.22.5(algoliasearch@4.24.0): + dependencies: + '@algolia/events': 4.0.1 + algoliasearch: 4.24.0 + + algoliasearch@4.24.0: + dependencies: + '@algolia/cache-browser-local-storage': 4.24.0 + '@algolia/cache-common': 4.24.0 + '@algolia/cache-in-memory': 4.24.0 + '@algolia/client-account': 4.24.0 + '@algolia/client-analytics': 4.24.0 + '@algolia/client-common': 4.24.0 + '@algolia/client-personalization': 4.24.0 + '@algolia/client-search': 4.24.0 + '@algolia/logger-common': 4.24.0 + '@algolia/logger-console': 4.24.0 + '@algolia/recommend': 4.24.0 + '@algolia/requester-browser-xhr': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/requester-node-http': 4.24.0 + '@algolia/transporter': 4.24.0 + + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-html-community@0.0.8: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-flatten@1.1.1: {} + + array-union@2.1.0: {} + + astring@1.9.0: {} + + at-least-node@1.0.0: {} + + autoprefixer@10.4.20(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + caniuse-lite: 1.0.30001660 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.0 + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + babel-loader@9.1.3(@babel/core@7.25.2)(webpack@5.94.0): + dependencies: + '@babel/core': 7.25.2 + find-cache-dir: 4.0.0 + schema-utils: 4.2.0 + webpack: 5.94.0 + + babel-plugin-dynamic-import-node@2.3.3: + dependencies: + object.assign: 4.1.5 + + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): + dependencies: + '@babel/compat-data': 7.25.4 + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2): + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + core-js-compat: 3.38.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2): + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + batch@0.6.1: {} + + big.js@5.2.2: {} + + binary-extensions@2.3.0: {} + + body-parser@1.20.3: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + bonjour-service@1.2.1: + dependencies: + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 + + boolbase@1.0.0: {} + + boxen@6.2.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 6.3.0 + chalk: 4.1.2 + cli-boxes: 3.0.0 + string-width: 5.1.2 + type-fest: 2.19.0 + widest-line: 4.0.1 + wrap-ansi: 8.1.0 + + boxen@7.1.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 7.0.1 + chalk: 5.3.0 + cli-boxes: 3.0.0 + string-width: 5.1.2 + type-fest: 2.19.0 + widest-line: 4.0.1 + wrap-ansi: 8.1.0 + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.23.3: + dependencies: + caniuse-lite: 1.0.30001660 + electron-to-chromium: 1.5.18 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) + + buffer-from@1.1.2: {} + + bytes@3.0.0: {} + + bytes@3.1.2: {} + + cacheable-lookup@7.0.0: {} + + cacheable-request@10.2.14: + dependencies: + '@types/http-cache-semantics': 4.0.4 + get-stream: 6.0.1 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + mimic-response: 4.0.0 + normalize-url: 8.0.1 + responselike: 3.0.0 + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + callsites@3.1.0: {} + + camel-case@4.1.2: + dependencies: + pascal-case: 3.1.2 + tslib: 2.7.0 + + camelcase@6.3.0: {} + + camelcase@7.0.1: {} + + caniuse-api@3.0.0: + dependencies: + browserslist: 4.23.3 + caniuse-lite: 1.0.30001660 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + + caniuse-lite@1.0.30001660: {} + + ccount@2.0.1: {} + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + char-regex@1.0.2: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + + cheerio@1.0.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + encoding-sniffer: 0.2.0 + htmlparser2: 9.1.0 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 + parse5-parser-stream: 7.1.2 + undici: 6.19.8 + whatwg-mimetype: 4.0.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chrome-trace-event@1.0.4: {} + + ci-info@3.9.0: {} + + clean-css@5.3.3: + dependencies: + source-map: 0.6.1 + + clean-stack@2.2.0: {} + + cli-boxes@3.0.0: {} + + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + + clone-deep@4.0.1: + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + + clsx@2.1.1: {} + + collapse-white-space@2.1.0: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + colord@2.9.3: {} + + colorette@2.0.20: {} + + combine-promises@1.2.0: {} + + comma-separated-tokens@2.0.3: {} + + commander@10.0.1: {} + + commander@2.20.3: {} + + commander@5.1.0: {} + + commander@7.2.0: {} + + commander@8.3.0: {} + + common-path-prefix@3.0.0: {} + + compressible@2.0.18: + dependencies: + mime-db: 1.53.0 + + compression@1.7.4: + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + concat-map@0.0.1: {} + + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + configstore@6.0.0: + dependencies: + dot-prop: 6.0.1 + graceful-fs: 4.2.11 + unique-string: 3.0.0 + write-file-atomic: 3.0.3 + xdg-basedir: 5.1.0 + + connect-history-api-fallback@2.0.0: {} + + consola@2.15.3: {} + + content-disposition@0.5.2: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.0.6: {} + + cookie@0.6.0: {} + + copy-text-to-clipboard@3.2.0: {} + + copy-webpack-plugin@11.0.0(webpack@5.94.0): + dependencies: + fast-glob: 3.3.2 + glob-parent: 6.0.2 + globby: 13.2.2 + normalize-path: 3.0.0 + schema-utils: 4.2.0 + serialize-javascript: 6.0.2 + webpack: 5.94.0 + + core-js-compat@3.38.1: + dependencies: + browserslist: 4.23.3 + + core-js-pure@3.38.1: {} + + core-js@3.38.1: {} + + core-util-is@1.0.3: {} + + cosmiconfig@6.0.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + + cosmiconfig@8.3.6(typescript@5.2.2): + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 5.2.2 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-random-string@4.0.0: + dependencies: + type-fest: 1.4.0 + + css-declaration-sorter@6.4.1(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + + css-loader@6.11.0(webpack@5.94.0): + dependencies: + icss-utils: 5.1.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.45) + postcss-modules-local-by-default: 4.0.5(postcss@8.4.45) + postcss-modules-scope: 3.2.0(postcss@8.4.45) + postcss-modules-values: 4.0.0(postcss@8.4.45) + postcss-value-parser: 4.2.0 + semver: 7.6.3 + optionalDependencies: + webpack: 5.94.0 + + css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(webpack@5.94.0): + dependencies: + cssnano: 5.1.15(postcss@8.4.45) + jest-worker: 29.7.0 + postcss: 8.4.45 + schema-utils: 4.2.0 + serialize-javascript: 6.0.2 + source-map: 0.6.1 + webpack: 5.94.0 + optionalDependencies: + clean-css: 5.3.3 + + css-select@4.3.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + + css-tree@1.1.3: + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + + css-what@6.1.0: {} + + cssesc@3.0.0: {} + + cssnano-preset-advanced@5.3.10(postcss@8.4.45): + dependencies: + autoprefixer: 10.4.20(postcss@8.4.45) + cssnano-preset-default: 5.2.14(postcss@8.4.45) + postcss: 8.4.45 + postcss-discard-unused: 5.1.0(postcss@8.4.45) + postcss-merge-idents: 5.1.1(postcss@8.4.45) + postcss-reduce-idents: 5.2.0(postcss@8.4.45) + postcss-zindex: 5.1.0(postcss@8.4.45) + + cssnano-preset-default@5.2.14(postcss@8.4.45): + dependencies: + css-declaration-sorter: 6.4.1(postcss@8.4.45) + cssnano-utils: 3.1.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-calc: 8.2.4(postcss@8.4.45) + postcss-colormin: 5.3.1(postcss@8.4.45) + postcss-convert-values: 5.1.3(postcss@8.4.45) + postcss-discard-comments: 5.1.2(postcss@8.4.45) + postcss-discard-duplicates: 5.1.0(postcss@8.4.45) + postcss-discard-empty: 5.1.1(postcss@8.4.45) + postcss-discard-overridden: 5.1.0(postcss@8.4.45) + postcss-merge-longhand: 5.1.7(postcss@8.4.45) + postcss-merge-rules: 5.1.4(postcss@8.4.45) + postcss-minify-font-values: 5.1.0(postcss@8.4.45) + postcss-minify-gradients: 5.1.1(postcss@8.4.45) + postcss-minify-params: 5.1.4(postcss@8.4.45) + postcss-minify-selectors: 5.2.1(postcss@8.4.45) + postcss-normalize-charset: 5.1.0(postcss@8.4.45) + postcss-normalize-display-values: 5.1.0(postcss@8.4.45) + postcss-normalize-positions: 5.1.1(postcss@8.4.45) + postcss-normalize-repeat-style: 5.1.1(postcss@8.4.45) + postcss-normalize-string: 5.1.0(postcss@8.4.45) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.45) + postcss-normalize-unicode: 5.1.1(postcss@8.4.45) + postcss-normalize-url: 5.1.0(postcss@8.4.45) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.45) + postcss-ordered-values: 5.1.3(postcss@8.4.45) + postcss-reduce-initial: 5.1.2(postcss@8.4.45) + postcss-reduce-transforms: 5.1.0(postcss@8.4.45) + postcss-svgo: 5.1.0(postcss@8.4.45) + postcss-unique-selectors: 5.1.1(postcss@8.4.45) + + cssnano-utils@3.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + + cssnano@5.1.15(postcss@8.4.45): + dependencies: + cssnano-preset-default: 5.2.14(postcss@8.4.45) + lilconfig: 2.1.0 + postcss: 8.4.45 + yaml: 1.10.2 + + csso@4.2.0: + dependencies: + css-tree: 1.1.3 + + csstype@3.1.3: {} + + debounce@1.2.1: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-extend@0.6.0: {} + + deepmerge@4.3.1: {} + + default-gateway@6.0.3: + dependencies: + execa: 5.1.1 + + defer-to-connect@2.0.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-lazy-prop@2.0.0: {} + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + del@6.1.1: + dependencies: + globby: 11.1.0 + graceful-fs: 4.2.11 + is-glob: 4.0.3 + is-path-cwd: 2.2.0 + is-path-inside: 3.0.3 + p-map: 4.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + + depd@1.1.2: {} + + depd@2.0.0: {} + + dequal@2.0.3: {} + + destroy@1.2.0: {} + + detect-node@2.1.0: {} + + detect-port-alt@1.1.6: + dependencies: + address: 1.2.2 + debug: 2.6.9 + transitivePeerDependencies: + - supports-color + + detect-port@1.6.1: + dependencies: + address: 1.2.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dns-packet@5.6.1: + dependencies: + '@leichtgewicht/ip-codec': 2.0.5 + + dom-converter@0.2.0: + dependencies: + utila: 0.4.0 + + dom-serializer@1.4.1: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@4.3.1: + dependencies: + domelementtype: 2.3.0 + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@2.8.0: + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.7.0 + + dot-prop@6.0.1: + dependencies: + is-obj: 2.0.0 + + duplexer@0.1.2: {} + + eastasianwidth@0.2.0: {} + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.18: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + emojilib@2.4.0: {} + + emojis-list@3.0.0: {} + + emoticon@4.1.0: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + encoding-sniffer@0.2.0: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + entities@2.2.0: {} + + entities@4.5.0: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-module-lexer@1.5.4: {} + + escalade@3.2.0: {} + + escape-goat@4.0.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + esprima@4.0.1: {} + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.5 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.4 + + estree-util-value-to-estree@3.1.2: + dependencies: + '@types/estree': 1.0.5 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.5 + + esutils@2.0.3: {} + + eta@2.2.0: {} + + etag@1.8.1: {} + + eval@0.1.8: + dependencies: + '@types/node': 22.5.4 + require-like: 0.1.2 + + eventemitter3@4.0.7: {} + + events@3.3.0: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + express@4.20.0: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.6.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.10 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend@3.0.2: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-uri@3.0.1: {} + + fast-url-parser@1.1.3: + dependencies: + punycode: 1.4.1 + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fault@2.0.1: + dependencies: + format: 0.2.2 + + faye-websocket@0.11.4: + dependencies: + websocket-driver: 0.7.4 + + feed@4.2.2: + dependencies: + xml-js: 1.6.11 + + file-loader@6.2.0(webpack@5.94.0): + dependencies: + loader-utils: 2.0.4 + schema-utils: 3.3.0 + webpack: 5.94.0 + + filesize@8.0.7: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.2.0: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-cache-dir@4.0.0: + dependencies: + common-path-prefix: 3.0.0 + pkg-dir: 7.0.0 + + find-up@3.0.0: + dependencies: + locate-path: 3.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + find-up@6.3.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + + flat@5.0.2: {} + + follow-redirects@1.15.9: {} + + fork-ts-checker-webpack-plugin@6.5.3(typescript@5.2.2)(webpack@5.94.0): + dependencies: + '@babel/code-frame': 7.24.7 + '@types/json-schema': 7.0.15 + chalk: 4.1.2 + chokidar: 3.6.0 + cosmiconfig: 6.0.0 + deepmerge: 4.3.1 + fs-extra: 9.1.0 + glob: 7.2.3 + memfs: 3.5.3 + minimatch: 3.1.2 + schema-utils: 2.7.0 + semver: 7.6.3 + tapable: 1.1.3 + typescript: 5.2.2 + webpack: 5.94.0 + + form-data-encoder@2.1.4: {} + + format@0.2.2: {} + + forwarded@0.2.0: {} + + fraction.js@4.3.7: {} + + fresh@0.5.2: {} + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-monkey@1.0.6: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + get-own-enumerable-property-symbols@3.0.2: {} + + get-stream@6.0.1: {} + + github-slugger@1.5.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + global-dirs@3.0.1: + dependencies: + ini: 2.0.0 + + global-modules@2.0.0: + dependencies: + global-prefix: 3.0.0 + + global-prefix@3.0.0: + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + + globals@11.12.0: {} + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + globby@13.2.2: + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 4.0.0 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + got@12.6.1: + dependencies: + '@sindresorhus/is': 5.6.0 + '@szmarczak/http-timer': 5.0.1 + cacheable-lookup: 7.0.0 + cacheable-request: 10.2.14 + decompress-response: 6.0.0 + form-data-encoder: 2.1.4 + get-stream: 6.0.1 + http2-wrapper: 2.2.1 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 3.0.0 + + graceful-fs@4.2.10: {} + + graceful-fs@4.2.11: {} + + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + + gzip-size@6.0.0: + dependencies: + duplexer: 0.1.2 + + handle-thing@2.0.1: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-yarn@3.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-from-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.5.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-raw@9.0.4: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-estree@3.1.0: + dependencies: + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-jsx-runtime@2.3.0: + dependencies: + '@types/estree': 1.0.5 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.7 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + hast-util-to-parse5@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + + he@1.2.0: {} + + history@4.10.1: + dependencies: + '@babel/runtime': 7.25.6 + loose-envify: 1.4.0 + resolve-pathname: 3.0.0 + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + value-equal: 1.0.1 + + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + + hpack.js@2.1.6: + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 + + html-entities@2.5.2: {} + + html-escaper@2.0.2: {} + + html-minifier-terser@6.1.0: + dependencies: + camel-case: 4.1.2 + clean-css: 5.3.3 + commander: 8.3.0 + he: 1.2.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.32.0 + + html-minifier-terser@7.2.0: + dependencies: + camel-case: 4.1.2 + clean-css: 5.3.3 + commander: 10.0.1 + entities: 4.5.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.32.0 + + html-tags@3.3.1: {} + + html-void-elements@3.0.0: {} + + html-webpack-plugin@5.6.0(webpack@5.94.0): + dependencies: + '@types/html-minifier-terser': 6.1.0 + html-minifier-terser: 6.1.0 + lodash: 4.17.21 + pretty-error: 4.0.0 + tapable: 2.2.1 + optionalDependencies: + webpack: 5.94.0 + + htmlparser2@6.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + domutils: 2.8.0 + entities: 2.2.0 + + htmlparser2@9.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + + http-cache-semantics@4.1.1: {} + + http-deceiver@1.2.7: {} + + http-errors@1.6.3: + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-parser-js@0.5.8: {} + + http-proxy-middleware@2.0.6(@types/express@4.17.21): + dependencies: + '@types/http-proxy': 1.17.15 + http-proxy: 1.18.1 + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.8 + optionalDependencies: + '@types/express': 4.17.21 + transitivePeerDependencies: + - debug + + http-proxy@1.18.1: + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.9 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + + http2-wrapper@2.2.1: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + human-signals@2.1.0: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + icss-utils@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + + ignore@5.3.2: {} + + image-size@1.1.1: + dependencies: + queue: 6.0.2 + + immer@9.0.21: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-lazy@4.0.0: {} + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + infima@0.2.0-alpha.43: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.3: {} + + inherits@2.0.4: {} + + ini@1.3.8: {} + + ini@2.0.0: {} + + inline-style-parser@0.1.1: {} + + inline-style-parser@0.2.3: {} + + interpret@1.4.0: {} + + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + + ipaddr.js@1.9.1: {} + + ipaddr.js@2.2.0: {} + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-arrayish@0.2.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-ci@3.0.1: + dependencies: + ci-info: 3.9.0 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-decimal@2.0.1: {} + + is-docker@2.2.1: {} + + is-extendable@0.1.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@2.0.1: {} + + is-installed-globally@0.4.0: + dependencies: + global-dirs: 3.0.1 + is-path-inside: 3.0.3 + + is-npm@6.0.0: {} + + is-number@7.0.0: {} + + is-obj@1.0.1: {} + + is-obj@2.0.0: {} + + is-path-cwd@2.2.0: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@3.0.0: {} + + is-plain-obj@4.1.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-reference@3.0.2: + dependencies: + '@types/estree': 1.0.5 + + is-regexp@1.0.0: {} + + is-root@2.1.0: {} + + is-stream@2.0.1: {} + + is-typedarray@1.0.0: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + is-yarn-global@0.4.1: {} + + isarray@0.0.1: {} + + isarray@1.0.0: {} + + isexe@2.0.0: {} + + isobject@3.0.1: {} + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 22.5.4 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-worker@27.5.1: + dependencies: + '@types/node': 22.5.4 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest-worker@29.7.0: + dependencies: + '@types/node': 22.5.4 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jiti@1.21.6: {} + + joi@17.13.3: + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsesc@0.5.0: {} + + jsesc@2.5.2: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json5@2.2.3: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + kleur@3.0.3: {} + + latest-version@7.0.0: + dependencies: + package-json: 8.1.1 + + launch-editor@2.9.1: + dependencies: + picocolors: 1.1.0 + shell-quote: 1.8.1 + + leven@3.1.0: {} + + lilconfig@2.1.0: {} + + lines-and-columns@1.2.4: {} + + loader-runner@4.3.0: {} + + loader-utils@2.0.4: + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 + + loader-utils@3.3.1: {} + + locate-path@3.0.0: + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + locate-path@7.2.0: + dependencies: + p-locate: 6.0.0 + + lodash.debounce@4.0.8: {} + + lodash.memoize@4.1.2: {} + + lodash.uniq@4.5.0: {} + + lodash@4.17.21: {} + + longest-streak@3.1.0: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lower-case@2.0.2: + dependencies: + tslib: 2.7.0 + + lowercase-keys@3.0.0: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + markdown-extensions@2.0.0: {} + + markdown-table@3.0.3: {} + + mdast-util-directive@3.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-visit-parents: 6.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-find-and-replace@3.0.1: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-frontmatter@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.3 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.1.3: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdn-data@2.0.14: {} + + media-typer@0.3.0: {} + + memfs@3.5.3: + dependencies: + fs-monkey: 1.0.6 + + merge-descriptors@1.0.3: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromark-core-commonmark@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-directive@3.0.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + parse-entities: 4.0.1 + + micromark-extension-frontmatter@2.0.0: + dependencies: + fault: 2.0.1 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-table@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-mdx-expression@3.0.0: + dependencies: + '@types/estree': 1.0.5 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-mdx-jsx@3.0.1: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.5 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + micromark-extension-mdx-expression: 3.0.0 + micromark-extension-mdx-jsx: 3.0.1 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-destination@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-label@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-mdx-expression@2.0.2: + dependencies: + '@types/estree': 1.0.5 + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-factory-space@1.1.0: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + + micromark-factory-space@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + + micromark-factory-title@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-whitespace@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-character@1.2.0: + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-util-character@2.1.0: + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-chunked@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-classify-character@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-combine-extensions@2.0.0: + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-decode-numeric-character-reference@2.0.1: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-decode-string@2.0.0: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + + micromark-util-encode@2.0.0: {} + + micromark-util-events-to-acorn@2.0.2: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.5 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + + micromark-util-html-tag-name@2.0.0: {} + + micromark-util-normalize-identifier@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-resolve-all@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-util-sanitize-uri@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-subtokenize@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-symbol@1.1.0: {} + + micromark-util-symbol@2.0.0: {} + + micromark-util-types@1.1.0: {} + + micromark-util-types@2.0.0: {} + + micromark@4.0.0: + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.7 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.33.0: {} + + mime-db@1.52.0: {} + + mime-db@1.53.0: {} + + mime-types@2.1.18: + dependencies: + mime-db: 1.33.0 + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + mimic-fn@2.1.0: {} + + mimic-response@3.1.0: {} + + mimic-response@4.0.0: {} + + mini-css-extract-plugin@2.9.1(webpack@5.94.0): + dependencies: + schema-utils: 4.2.0 + tapable: 2.2.1 + webpack: 5.94.0 + + minimalistic-assert@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimist@1.2.8: {} + + mrmime@2.0.0: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + multicast-dns@7.2.5: + dependencies: + dns-packet: 5.6.1 + thunky: 1.1.0 + + nanoid@3.3.7: {} + + negotiator@0.6.3: {} + + neo-async@2.6.2: {} + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.7.0 + + node-emoji@2.1.3: + dependencies: + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + + node-forge@1.3.1: {} + + node-releases@2.0.18: {} + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + normalize-url@6.1.0: {} + + normalize-url@8.0.1: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + nprogress@0.2.0: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + object-assign@4.1.1: {} + + object-inspect@1.13.2: {} + + object-keys@1.1.1: {} + + object.assign@4.1.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + obuf@1.1.2: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + on-headers@1.0.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + opener@1.5.2: {} + + p-cancelable@3.0.0: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-limit@4.0.0: + dependencies: + yocto-queue: 1.1.1 + + p-locate@3.0.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-locate@6.0.0: + dependencies: + p-limit: 4.0.0 + + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + + p-retry@4.6.2: + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + + p-try@2.2.0: {} + + package-json@8.1.1: + dependencies: + got: 12.6.1 + registry-auth-token: 5.0.2 + registry-url: 6.0.1 + semver: 7.6.3 + + param-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.7.0 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-entities@4.0.1: + dependencies: + '@types/unist': 2.0.11 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.24.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-numeric-range@1.3.0: {} + + parse5-htmlparser2-tree-adapter@7.0.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 + + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.1.2 + + parse5@7.1.2: + dependencies: + entities: 4.5.0 + + parseurl@1.3.3: {} + + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.7.0 + + path-exists@3.0.0: {} + + path-exists@4.0.0: {} + + path-exists@5.0.0: {} + + path-is-absolute@1.0.1: {} + + path-is-inside@1.0.2: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-to-regexp@0.1.10: {} + + path-to-regexp@1.8.0: + dependencies: + isarray: 0.0.1 + + path-to-regexp@2.2.1: {} + + path-type@4.0.0: {} + + periscopic@3.1.0: + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + + picocolors@1.1.0: {} + + picomatch@2.3.1: {} + + pkg-dir@7.0.0: + dependencies: + find-up: 6.3.0 + + pkg-up@3.1.0: + dependencies: + find-up: 3.0.0 + + postcss-calc@8.2.4(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + + postcss-colormin@5.3.1(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-convert-values@5.1.3(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-discard-comments@5.1.2(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + + postcss-discard-duplicates@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + + postcss-discard-empty@5.1.1(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + + postcss-discard-overridden@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + + postcss-discard-unused@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + + postcss-loader@7.3.4(postcss@8.4.45)(typescript@5.2.2)(webpack@5.94.0): + dependencies: + cosmiconfig: 8.3.6(typescript@5.2.2) + jiti: 1.21.6 + postcss: 8.4.45 + semver: 7.6.3 + webpack: 5.94.0 + transitivePeerDependencies: + - typescript + + postcss-merge-idents@5.1.1(postcss@8.4.45): + dependencies: + cssnano-utils: 3.1.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-merge-longhand@5.1.7(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + stylehacks: 5.1.1(postcss@8.4.45) + + postcss-merge-rules@5.1.4(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + cssnano-utils: 3.1.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + + postcss-minify-font-values@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@5.1.1(postcss@8.4.45): + dependencies: + colord: 2.9.3 + cssnano-utils: 3.1.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-minify-params@5.1.4(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + cssnano-utils: 3.1.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@5.2.1(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + + postcss-modules-extract-imports@3.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + + postcss-modules-local-by-default@4.0.5(postcss@8.4.45): + dependencies: + icss-utils: 5.1.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + + postcss-modules-scope@3.2.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + + postcss-modules-values@4.0.0(postcss@8.4.45): + dependencies: + icss-utils: 5.1.0(postcss@8.4.45) + postcss: 8.4.45 + + postcss-normalize-charset@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + + postcss-normalize-display-values@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@5.1.1(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@5.1.1(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@5.1.1(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@5.1.0(postcss@8.4.45): + dependencies: + normalize-url: 6.1.0 + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@5.1.1(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-ordered-values@5.1.3(postcss@8.4.45): + dependencies: + cssnano-utils: 3.1.0(postcss@8.4.45) + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-reduce-idents@5.2.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@5.1.2(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + postcss: 8.4.45 + + postcss-reduce-transforms@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-sort-media-queries@4.4.1(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + sort-css-media-queries: 2.1.0 + + postcss-svgo@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-value-parser: 4.2.0 + svgo: 2.8.0 + + postcss-unique-selectors@5.1.1(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + + postcss-value-parser@4.2.0: {} + + postcss-zindex@5.1.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 + + postcss@8.4.45: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + pretty-error@4.0.0: + dependencies: + lodash: 4.17.21 + renderkid: 3.0.0 + + pretty-time@1.1.0: {} + + prism-react-renderer@2.4.0(react@18.3.1): + dependencies: + '@types/prismjs': 1.26.4 + clsx: 2.1.1 + react: 18.3.1 + + prismjs@1.29.0: {} + + process-nextick-args@2.0.1: {} + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + property-information@6.5.0: {} + + proto-list@1.2.4: {} + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + punycode@1.4.1: {} + + punycode@2.3.1: {} + + pupa@3.1.0: + dependencies: + escape-goat: 4.0.0 + + qs@6.11.0: + dependencies: + side-channel: 1.0.6 + + qs@6.13.0: + dependencies: + side-channel: 1.0.6 + + queue-microtask@1.2.3: {} + + queue@6.0.2: + dependencies: + inherits: 2.0.4 + + quick-lru@5.1.1: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + range-parser@1.2.0: {} + + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + react-dev-utils@12.0.1(typescript@5.2.2)(webpack@5.94.0): + dependencies: + '@babel/code-frame': 7.24.7 + address: 1.2.2 + browserslist: 4.23.3 + chalk: 4.1.2 + cross-spawn: 7.0.3 + detect-port-alt: 1.1.6 + escape-string-regexp: 4.0.0 + filesize: 8.0.7 + find-up: 5.0.0 + fork-ts-checker-webpack-plugin: 6.5.3(typescript@5.2.2)(webpack@5.94.0) + global-modules: 2.0.0 + globby: 11.1.0 + gzip-size: 6.0.0 + immer: 9.0.21 + is-root: 2.1.0 + loader-utils: 3.3.1 + open: 8.4.2 + pkg-up: 3.1.0 + prompts: 2.4.2 + react-error-overlay: 6.0.11 + recursive-readdir: 2.2.3 + shell-quote: 1.8.1 + strip-ansi: 6.0.1 + text-table: 0.2.0 + webpack: 5.94.0 + optionalDependencies: + typescript: 5.2.2 + transitivePeerDependencies: + - eslint + - supports-color + - vue-template-compiler + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-error-overlay@6.0.11: {} + + react-fast-compare@3.2.2: {} + + react-helmet-async@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.6 + invariant: 2.2.4 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-fast-compare: 3.2.2 + shallowequal: 1.1.0 + + react-helmet-async@2.0.5(react@18.3.1): + dependencies: + invariant: 2.2.4 + react: 18.3.1 + react-fast-compare: 3.2.2 + shallowequal: 1.1.0 + + react-is@16.13.1: {} + + react-json-view-lite@1.5.0(react@18.3.1): + dependencies: + react: 18.3.1 + + react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2(react@18.3.1))(webpack@5.94.0): + dependencies: + '@babel/runtime': 7.25.6 + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.3.1)' + webpack: 5.94.0 + + react-router-config@5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.6 + react: 18.3.1 + react-router: 5.3.4(react@18.3.1) + + react-router-dom@5.3.4(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.6 + history: 4.10.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.1 + react-router: 5.3.4(react@18.3.1) + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + + react-router@5.3.4(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.6 + history: 4.10.1 + hoist-non-react-statics: 3.3.2 + loose-envify: 1.4.0 + path-to-regexp: 1.8.0 + prop-types: 15.8.1 + react: 18.3.1 + react-is: 16.13.1 + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + reading-time@1.5.0: {} + + rechoir@0.6.2: + dependencies: + resolve: 1.22.8 + + recursive-readdir@2.2.3: + dependencies: + minimatch: 3.1.2 + + regenerate-unicode-properties@10.1.1: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regenerator-runtime@0.14.1: {} + + regenerator-transform@0.15.2: + dependencies: + '@babel/runtime': 7.25.6 + + regexpu-core@5.3.2: + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.1 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + + registry-auth-token@5.0.2: + dependencies: + '@pnpm/npm-conf': 2.3.1 + + registry-url@6.0.1: + dependencies: + rc: 1.2.8 + + regjsparser@0.9.1: + dependencies: + jsesc: 0.5.0 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.0.4 + vfile: 6.0.3 + + relateurl@0.2.7: {} + + remark-directive@3.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-directive: 3.0.0 + micromark-extension-directive: 3.0.1 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-emoji@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + emoticon: 4.1.0 + mdast-util-find-and-replace: 3.0.1 + node-emoji: 2.1.3 + unified: 11.0.5 + + remark-frontmatter@5.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-frontmatter: 2.0.1 + micromark-extension-frontmatter: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-gfm@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.0.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + + renderkid@3.0.0: + dependencies: + css-select: 4.3.0 + dom-converter: 0.2.0 + htmlparser2: 6.1.0 + lodash: 4.17.21 + strip-ansi: 6.0.1 + + require-from-string@2.0.2: {} + + require-like@0.1.2: {} + + requires-port@1.0.0: {} + + resolve-alpn@1.2.1: {} + + resolve-from@4.0.0: {} + + resolve-pathname@3.0.0: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + responselike@3.0.0: + dependencies: + lowercase-keys: 3.0.0 + + retry@0.13.1: {} + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rtl-detect@1.1.2: {} + + rtlcss@4.3.0: + dependencies: + escalade: 3.2.0 + picocolors: 1.1.0 + postcss: 8.4.45 + strip-json-comments: 3.1.1 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + sax@1.4.1: {} + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + schema-utils@2.7.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + schema-utils@4.2.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + + search-insights@2.17.1: {} + + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + + select-hose@2.0.0: {} + + selfsigned@2.4.1: + dependencies: + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 + + semver-diff@4.0.0: + dependencies: + semver: 7.6.3 + + semver@6.3.1: {} + + semver@7.6.3: {} + + send@0.18.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + send@0.19.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + serve-handler@6.1.5: + dependencies: + bytes: 3.0.0 + content-disposition: 0.5.2 + fast-url-parser: 1.1.3 + mime-types: 2.1.18 + minimatch: 3.1.2 + path-is-inside: 1.0.2 + path-to-regexp: 2.2.1 + range-parser: 1.2.0 + + serve-index@1.9.1: + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + + serve-static@1.16.0: + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + setprototypeof@1.1.0: {} + + setprototypeof@1.2.0: {} + + shallow-clone@3.0.1: + dependencies: + kind-of: 6.0.3 + + shallowequal@1.1.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shell-quote@1.8.1: {} + + shelljs@0.8.5: + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + + signal-exit@3.0.7: {} + + sirv@2.0.4: + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + + sisteransi@1.0.5: {} + + sitemap@7.1.2: + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.4.1 + + skin-tone@2.0.0: + dependencies: + unicode-emoji-modifier-base: 1.0.0 + + slash@3.0.0: {} + + slash@4.0.0: {} + + sockjs@0.3.24: + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + + sort-css-media-queries@2.1.0: {} + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + space-separated-tokens@2.0.2: {} + + spdy-transport@3.0.0: + dependencies: + debug: 4.3.7 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.2 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + + spdy@4.0.2: + dependencies: + debug: 4.3.7 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color + + sprintf-js@1.0.3: {} + + srcset@4.0.0: {} + + stable@0.1.8: {} + + statuses@1.5.0: {} + + statuses@2.0.1: {} + + std-env@3.7.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + stringify-object@3.3.0: + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom-string@1.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-json-comments@2.0.1: {} + + strip-json-comments@3.1.1: {} + + style-to-object@0.4.4: + dependencies: + inline-style-parser: 0.1.1 + + style-to-object@1.0.7: + dependencies: + inline-style-parser: 0.2.3 + + stylehacks@5.1.1(postcss@8.4.45): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.45 + postcss-selector-parser: 6.1.2 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + svg-parser@2.0.4: {} + + svgo@2.8.0: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.1.0 + stable: 0.1.8 + + tapable@1.1.3: {} + + tapable@2.2.1: {} + + terser-webpack-plugin@5.3.10(webpack@5.94.0): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.32.0 + webpack: 5.94.0 + + terser@5.32.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + text-table@0.2.0: {} + + thunky@1.1.0: {} + + tiny-invariant@1.3.3: {} + + tiny-warning@1.0.3: {} + + to-fast-properties@2.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + totalist@3.0.1: {} + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + tslib@2.7.0: {} + + type-fest@1.4.0: {} + + type-fest@2.19.0: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typedarray-to-buffer@3.1.5: + dependencies: + is-typedarray: 1.0.0 + + typescript@5.2.2: {} + + undici-types@6.19.8: {} + + undici@6.19.8: {} + + unicode-canonical-property-names-ecmascript@2.0.0: {} + + unicode-emoji-modifier-base@1.0.0: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + + unicode-match-property-value-ecmascript@2.1.0: {} + + unicode-property-aliases-ecmascript@2.1.0: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unique-string@3.0.0: + dependencies: + crypto-random-string: 4.0.0 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universalify@2.0.1: {} + + unpipe@1.0.0: {} + + update-browserslist-db@1.1.0(browserslist@4.23.3): + dependencies: + browserslist: 4.23.3 + escalade: 3.2.0 + picocolors: 1.1.0 + + update-notifier@6.0.2: + dependencies: + boxen: 7.1.1 + chalk: 5.3.0 + configstore: 6.0.0 + has-yarn: 3.0.0 + import-lazy: 4.0.0 + is-ci: 3.0.1 + is-installed-globally: 0.4.0 + is-npm: 6.0.0 + is-yarn-global: 0.4.1 + latest-version: 7.0.0 + pupa: 3.1.0 + semver: 7.6.3 + semver-diff: 4.0.0 + xdg-basedir: 5.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + url-loader@4.1.1(file-loader@6.2.0(webpack@5.94.0))(webpack@5.94.0): + dependencies: + loader-utils: 2.0.4 + mime-types: 2.1.35 + schema-utils: 3.3.0 + webpack: 5.94.0 + optionalDependencies: + file-loader: 6.2.0(webpack@5.94.0) + + util-deprecate@1.0.2: {} + + utila@0.4.0: {} + + utility-types@3.11.0: {} + + utils-merge@1.0.1: {} + + uuid@8.3.2: {} + + value-equal@1.0.1: {} + + vary@1.1.2: {} + + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + wbuf@1.7.3: + dependencies: + minimalistic-assert: 1.0.1 + + web-namespaces@2.0.1: {} + + webpack-bundle-analyzer@4.10.2: + dependencies: + '@discoveryjs/json-ext': 0.5.7 + acorn: 8.12.1 + acorn-walk: 8.3.4 + commander: 7.2.0 + debounce: 1.2.1 + escape-string-regexp: 4.0.0 + gzip-size: 6.0.0 + html-escaper: 2.0.2 + opener: 1.5.2 + picocolors: 1.1.0 + sirv: 2.0.4 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + webpack-dev-middleware@5.3.4(webpack@5.94.0): + dependencies: + colorette: 2.0.20 + memfs: 3.5.3 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.2.0 + webpack: 5.94.0 + + webpack-dev-server@4.15.2(webpack@5.94.0): + dependencies: + '@types/bonjour': 3.5.13 + '@types/connect-history-api-fallback': 1.5.4 + '@types/express': 4.17.21 + '@types/serve-index': 1.9.4 + '@types/serve-static': 1.15.7 + '@types/sockjs': 0.3.36 + '@types/ws': 8.5.12 + ansi-html-community: 0.0.8 + bonjour-service: 1.2.1 + chokidar: 3.6.0 + colorette: 2.0.20 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.20.0 + graceful-fs: 4.2.11 + html-entities: 2.5.2 + http-proxy-middleware: 2.0.6(@types/express@4.17.21) + ipaddr.js: 2.2.0 + launch-editor: 2.9.1 + open: 8.4.2 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.2.0 + selfsigned: 2.4.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack-dev-middleware: 5.3.4(webpack@5.94.0) + ws: 8.18.0 + optionalDependencies: + webpack: 5.94.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + webpack-merge@5.10.0: + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + + webpack-sources@3.2.3: {} + + webpack@5.94.0: + dependencies: + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.23.3 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(webpack@5.94.0) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + webpackbar@5.0.2(webpack@5.94.0): + dependencies: + chalk: 4.1.2 + consola: 2.15.3 + pretty-time: 1.1.0 + std-env: 3.7.0 + webpack: 5.94.0 + + websocket-driver@0.7.4: + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + + websocket-extensions@0.1.4: {} + + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + widest-line@4.0.1: + dependencies: + string-width: 5.1.2 + + wildcard@2.0.1: {} + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + write-file-atomic@3.0.3: + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + + ws@7.5.10: {} + + ws@8.18.0: {} + + xdg-basedir@5.1.0: {} + + xml-js@1.6.11: + dependencies: + sax: 1.4.1 + + yallist@3.1.1: {} + + yaml@1.10.2: {} + + yocto-queue@0.1.0: {} + + yocto-queue@1.1.1: {} + + zwitch@2.0.4: {} diff --git a/docs/sidebars.ts b/docs/sidebars.ts new file mode 100644 index 00000000..bf3f00d1 --- /dev/null +++ b/docs/sidebars.ts @@ -0,0 +1,31 @@ +import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; + +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ +const sidebars: SidebarsConfig = { + // By default, Docusaurus generates a sidebar from the docs folder structure + documentationSidebar: [{ type: "autogenerated", dirName: "." }], + + // But you can create a sidebar manually + /* + tutorialSidebar: [ + 'intro', + 'hello', + { + type: 'category', + label: 'Tutorial', + items: ['tutorial-basics/create-a-document'], + }, + ], + */ +}; + +export default sidebars; diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css new file mode 100644 index 00000000..fca6519b --- /dev/null +++ b/docs/src/css/custom.css @@ -0,0 +1,121 @@ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + */ + + +/* You can override the default Infima variables here. */ +:root { + --ifm-color-primary: #9a9a9a; + --ifm-color-primary-dark: #9a9a9a; + --ifm-color-primary-darker: #9a9a9a; + --ifm-color-primary-darkest: #9a9a9a; + --ifm-color-primary-light: #9a9a9a; + --ifm-color-primary-lighter: #9a9a9a; + --ifm-color-primary-lightest: #9a9a9a; + --ifm-code-font-size: 95%; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); +} + +/* For readability concerns, you should choose a lighter palette in dark mode. */ +[data-theme='dark'] { + --ifm-color-primary: #9a9a9a; + --ifm-color-primary-dark: #9a9a9a; + --ifm-color-primary-darker: #9a9a9a; + --ifm-color-primary-darkest: #9a9a9a; + --ifm-color-primary-light: #9a9a9a; + --ifm-color-primary-lighter: #9a9a9a; + --ifm-color-primary-lightest: #9a9a9a; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); +} + +.navbar { + background: black; +} + +.footer { + background: black; +} + +.home img { + float: right; +} + +#commandPageContainer { + display: flex; + flex-direction: column; + gap: 16px; +} + +#aclCategoryContainer { + display: inline-flex; + flex-direction: row; + gap: 4px; +} + +.acl-category { + padding: 4px; + padding-left: 8px; + padding-right: 8px; + font-weight: bold; + /* Special styles for acl category badges (default) */ + background-color: black; + color: white; +} + +[data-theme="dark"] .acl-category { + padding: 4px; + padding-left: 8px; + padding-right: 8px; + font-weight: bold; + /* Special styles for acl category badges (dark) */ + background-color: white; + color: black; +} + +#commandExampleContainer { + display: flex; + flex-direction: column; + gap: 16px; +} + +#commandExampleTabHeader{ + display: flex; + flex-direction: row; + gap: 16px; +} + +.command-example-tab { + padding-top: 4px; + padding-bottom: 4px; + padding-left: 8px; + padding-right: 8px; + font-weight: bold; + cursor: pointer; +} + +.command-example-tab.active { + padding-top: 4px; + padding-bottom: 4px; + padding-left: 8px; + padding-right: 8px; + font-weight: bold; + cursor: pointer; + /* Special styles for active tabs (default) */ + background-color: black; + color: white; +} + +[data-theme="dark"] .command-example-tab.active { + padding-top: 4px; + padding-bottom: 4px; + padding-left: 8px; + padding-right: 8px; + font-weight: bold; + cursor: pointer; + /* Special styles for active tabs (dark) */ + background-color: white; + color: black; +} + diff --git a/docs/src/pages/index.mdx b/docs/src/pages/index.mdx new file mode 100644 index 00000000..9f967c57 --- /dev/null +++ b/docs/src/pages/index.mdx @@ -0,0 +1,24 @@ +
+ +# Unleash the Power of Configurable, Distributed In-Memory Storage +EchoVault is a highly configurable, distributed, in-memory data store and cache implemented in Go. It can be imported as a Go library or run as an independent service. + +EchoVault aims to provide a rich set of data structures and functions for manipulating data in memory. These data structures include, but are not limited to: Lists, Sets, Sorted Sets, Hashes, and more. + +EchoVault provides a persistence layer for increased reliability. Both Append-Only files and snapshots can be used to persist data in the disk for recovery in case of unexpected shutdowns. + +Replication is a core feature of EchoVault and is implemented using the RAFT algorithm, allowing you to create a fault-tolerant cluster of EchoVault nodes to improve reliability. If you do not need a replication cluster, you can always run EchoVault in standalone mode and have a fully capable single node. + +EchoVault aims to not only be a server but to be importable to existing projects to enhance them with EchoVault features, this capability is always being worked on and improved. + +# Features +Some key features offered by EchoVault include: + +- TLS and mTLS support for multiple server and client RootCAs. +- Replication cluster support using the RAFT algorithm. +- ACL Layer for user Authentication and Authorization. +- Distributed Pub/Sub functionality with consumer groups. +- Sets, Sorted Sets, Hashes, Lists and more. +- Persistence layer with Snapshots and Append-Only files. +- Key Eviction Policies. +
\ No newline at end of file diff --git a/docs/src/theme/MDXComponents.ts b/docs/src/theme/MDXComponents.ts new file mode 100644 index 00000000..80c9b762 --- /dev/null +++ b/docs/src/theme/MDXComponents.ts @@ -0,0 +1,9 @@ +// Import the original mapper +import MDXComponents from "@theme-original/MDXComponents"; + +export default { + // Re-use the default mapping + ...MDXComponents, + // Map the "" tag to our Highlight component + // `Highlight` will receive all props that were passed to `` in MDX +}; diff --git a/docs/static/.nojekyll b/docs/static/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/docs/static/img/EchoVault Cover.png b/docs/static/img/EchoVault Cover.png new file mode 100644 index 0000000000000000000000000000000000000000..82a505dbc09b01bdef2ebd281c746129ccbcd586 GIT binary patch literal 300785 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�uaSEM?VE!3o_4G@ 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�nA6_N>E_(LHDj(cw>^K|qU+ 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
me{Uw7v| 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 fgzs%Vr*-jYG(YMS<ttdtee# literal 0 HcmV?d00001 diff --git a/docs/static/img/docusaurus.png b/docs/static/img/docusaurus.png new file mode 100644 index 0000000000000000000000000000000000000000..f458149e3c8f53335f28fbc162ae67f55575c881 GIT binary patch literal 5142 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 F{0H{b<4^zq literal 0 HcmV?d00001 diff --git a/docs/static/img/echovault-logo.png b/docs/static/img/echovault-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..47b76beb816e44428b9a920be9cd4d79bfa17b8e GIT binary patch literal 47024 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 \ No newline at end of file diff --git a/docs/static/img/ram.png b/docs/static/img/ram.png new file mode 100644 index 0000000000000000000000000000000000000000..2b93101032559e4be23939ff15a4a8a454b784eb GIT binary patch literal 60751 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

BS0#=YVCjiUWS*#xpAw7Q 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%0Ap0Yz~}4wAjB9Q@aLAg6xW$h@^JkWd8Y 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 literal 0 HcmV?d00001 diff --git a/docs/static/img/undraw_docusaurus_mountain.svg b/docs/static/img/undraw_docusaurus_mountain.svg new file mode 100644 index 00000000..af961c49 --- /dev/null +++ b/docs/static/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,171 @@ + + Easy to Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/undraw_docusaurus_react.svg b/docs/static/img/undraw_docusaurus_react.svg new file mode 100644 index 00000000..94b5cf08 --- /dev/null +++ b/docs/static/img/undraw_docusaurus_react.svg @@ -0,0 +1,170 @@ + + Powered by React + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/undraw_docusaurus_tree.svg b/docs/static/img/undraw_docusaurus_tree.svg new file mode 100644 index 00000000..d9161d33 --- /dev/null +++ b/docs/static/img/undraw_docusaurus_tree.svg @@ -0,0 +1,40 @@ + + Focus on What Matters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 00000000..7dc3bde1 --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,8 @@ +{ + // This file is not used in compilation. It is here just for a nice editor experience. + "extends": "@docusaurus/tsconfig", + "compilerOptions": { + "jsx": "react", + "baseUrl": "." + } +} diff --git a/docs/yarn.lock b/docs/yarn.lock new file mode 100644 index 00000000..584ac8b7 --- /dev/null +++ b/docs/yarn.lock @@ -0,0 +1,8466 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@algolia/autocomplete-core@1.9.3": + version "1.9.3" + resolved "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz" + integrity sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-plugin-algolia-insights@1.9.3": + version "1.9.3" + resolved "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz" + integrity sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg== + dependencies: + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-preset-algolia@1.9.3": + version "1.9.3" + resolved "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz" + integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA== + dependencies: + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-shared@1.9.3": + version "1.9.3" + resolved "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz" + integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== + +"@algolia/cache-browser-local-storage@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz" + integrity sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg== + dependencies: + "@algolia/cache-common" "4.23.3" + +"@algolia/cache-common@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.23.3.tgz" + integrity sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A== + +"@algolia/cache-in-memory@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz" + integrity sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg== + dependencies: + "@algolia/cache-common" "4.23.3" + +"@algolia/client-account@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.23.3.tgz" + integrity sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA== + dependencies: + "@algolia/client-common" "4.23.3" + "@algolia/client-search" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/client-analytics@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.23.3.tgz" + integrity sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA== + dependencies: + "@algolia/client-common" "4.23.3" + "@algolia/client-search" "4.23.3" + "@algolia/requester-common" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/client-common@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.23.3.tgz" + integrity sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw== + dependencies: + "@algolia/requester-common" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/client-personalization@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.23.3.tgz" + integrity sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g== + dependencies: + "@algolia/client-common" "4.23.3" + "@algolia/requester-common" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/client-search@>= 4.9.1 < 6", "@algolia/client-search@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.23.3.tgz" + integrity sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw== + dependencies: + "@algolia/client-common" "4.23.3" + "@algolia/requester-common" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/events@^4.0.1": + version "4.0.1" + resolved "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz" + integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== + +"@algolia/logger-common@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.23.3.tgz" + integrity sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g== + +"@algolia/logger-console@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.23.3.tgz" + integrity sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A== + dependencies: + "@algolia/logger-common" "4.23.3" + +"@algolia/recommend@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.23.3.tgz" + integrity sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w== + dependencies: + "@algolia/cache-browser-local-storage" "4.23.3" + "@algolia/cache-common" "4.23.3" + "@algolia/cache-in-memory" "4.23.3" + "@algolia/client-common" "4.23.3" + "@algolia/client-search" "4.23.3" + "@algolia/logger-common" "4.23.3" + "@algolia/logger-console" "4.23.3" + "@algolia/requester-browser-xhr" "4.23.3" + "@algolia/requester-common" "4.23.3" + "@algolia/requester-node-http" "4.23.3" + "@algolia/transporter" "4.23.3" + +"@algolia/requester-browser-xhr@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.3.tgz" + integrity sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw== + dependencies: + "@algolia/requester-common" "4.23.3" + +"@algolia/requester-common@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.23.3.tgz" + integrity sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw== + +"@algolia/requester-node-http@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.23.3.tgz" + integrity sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA== + dependencies: + "@algolia/requester-common" "4.23.3" + +"@algolia/transporter@4.23.3": + version "4.23.3" + resolved "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.23.3.tgz" + integrity sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ== + dependencies: + "@algolia/cache-common" "4.23.3" + "@algolia/logger-common" "4.23.3" + "@algolia/requester-common" "4.23.3" + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2", "@babel/code-frame@^7.8.3": + version "7.24.2" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== + dependencies: + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz" + integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== + +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.19.6", "@babel/core@^7.23.3", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz" + integrity sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.4" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.24.4" + "@babel/parser" "^7.24.4" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.1" + "@babel/types" "^7.24.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.23.3", "@babel/generator@^7.24.1", "@babel/generator@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz" + integrity sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw== + dependencies: + "@babel/types" "^7.24.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.24.1", "@babel/helper-create-class-features-plugin@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz" + integrity sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.24.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.1": + version "0.6.1" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz" + integrity sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== + dependencies: + "@babel/types" "^7.23.0" + +"@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.24.1", "@babel/helper-module-imports@^7.24.3": + version "7.24.3" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== + dependencies: + "@babel/types" "^7.24.0" + +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.0" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz" + integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== + +"@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" + +"@babel/helper-replace-supers@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz" + integrity sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" + +"@babel/helpers@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz" + integrity sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw== + dependencies: + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.1" + "@babel/types" "^7.24.0" + +"@babel/highlight@^7.24.2": + version "7.24.2" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz" + integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz" + integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg== + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz" + integrity sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz" + integrity sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz" + integrity sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.24.1" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz" + integrity sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz" + integrity sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-import-attributes@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz" + integrity sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz" + integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz" + integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz" + integrity sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-async-generator-functions@^7.24.3": + version "7.24.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz" + integrity sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz" + integrity sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw== + dependencies: + "@babel/helper-module-imports" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-remap-async-to-generator" "^7.22.20" + +"@babel/plugin-transform-block-scoped-functions@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz" + integrity sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-block-scoping@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz" + integrity sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-class-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz" + integrity sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-class-static-block@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz" + integrity sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.4" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz" + integrity sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-replace-supers" "^7.24.1" + "@babel/helper-split-export-declaration" "^7.22.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz" + integrity sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/template" "^7.24.0" + +"@babel/plugin-transform-destructuring@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz" + integrity sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-dotall-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz" + integrity sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-duplicate-keys@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz" + integrity sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-dynamic-import@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz" + integrity sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz" + integrity sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-export-namespace-from@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz" + integrity sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz" + integrity sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-function-name@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz" + integrity sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA== + dependencies: + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-json-strings@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz" + integrity sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz" + integrity sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz" + integrity sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz" + integrity sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-modules-amd@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz" + integrity sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-modules-commonjs@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz" + integrity sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-simple-access" "^7.22.5" + +"@babel/plugin-transform-modules-systemjs@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz" + integrity sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA== + dependencies: + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/plugin-transform-modules-umd@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz" + integrity sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-new-target@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz" + integrity sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz" + integrity sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz" + integrity sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz" + integrity sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA== + dependencies: + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.24.1" + +"@babel/plugin-transform-object-super@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz" + integrity sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-replace-supers" "^7.24.1" + +"@babel/plugin-transform-optional-catch-binding@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz" + integrity sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz" + integrity sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz" + integrity sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-private-methods@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz" + integrity sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-private-property-in-object@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz" + integrity sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz" + integrity sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-react-constant-elements@^7.18.12": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.1.tgz" + integrity sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-react-display-name@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz" + integrity sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-react-jsx-development@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.22.5" + +"@babel/plugin-transform-react-jsx@^7.22.5", "@babel/plugin-transform-react-jsx@^7.23.4": + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz" + integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/types" "^7.23.4" + +"@babel/plugin-transform-react-pure-annotations@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz" + integrity sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-regenerator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz" + integrity sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz" + integrity sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-runtime@^7.22.9": + version "7.24.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz" + integrity sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ== + dependencies: + "@babel/helper-module-imports" "^7.24.3" + "@babel/helper-plugin-utils" "^7.24.0" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.1" + babel-plugin-polyfill-regenerator "^0.6.1" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz" + integrity sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-spread@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz" + integrity sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz" + integrity sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-template-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz" + integrity sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-typeof-symbol@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz" + integrity sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-typescript@^7.24.1": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz" + integrity sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.4" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-typescript" "^7.24.1" + +"@babel/plugin-transform-unicode-escapes@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz" + integrity sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-unicode-property-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz" + integrity sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-unicode-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz" + integrity sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-unicode-sets-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz" + integrity sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/preset-env@^7.19.4", "@babel/preset-env@^7.22.9": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz" + integrity sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A== + dependencies: + "@babel/compat-data" "^7.24.4" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.4" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.1" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.24.1" + "@babel/plugin-syntax-import-attributes" "^7.24.1" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.24.1" + "@babel/plugin-transform-async-generator-functions" "^7.24.3" + "@babel/plugin-transform-async-to-generator" "^7.24.1" + "@babel/plugin-transform-block-scoped-functions" "^7.24.1" + "@babel/plugin-transform-block-scoping" "^7.24.4" + "@babel/plugin-transform-class-properties" "^7.24.1" + "@babel/plugin-transform-class-static-block" "^7.24.4" + "@babel/plugin-transform-classes" "^7.24.1" + "@babel/plugin-transform-computed-properties" "^7.24.1" + "@babel/plugin-transform-destructuring" "^7.24.1" + "@babel/plugin-transform-dotall-regex" "^7.24.1" + "@babel/plugin-transform-duplicate-keys" "^7.24.1" + "@babel/plugin-transform-dynamic-import" "^7.24.1" + "@babel/plugin-transform-exponentiation-operator" "^7.24.1" + "@babel/plugin-transform-export-namespace-from" "^7.24.1" + "@babel/plugin-transform-for-of" "^7.24.1" + "@babel/plugin-transform-function-name" "^7.24.1" + "@babel/plugin-transform-json-strings" "^7.24.1" + "@babel/plugin-transform-literals" "^7.24.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" + "@babel/plugin-transform-member-expression-literals" "^7.24.1" + "@babel/plugin-transform-modules-amd" "^7.24.1" + "@babel/plugin-transform-modules-commonjs" "^7.24.1" + "@babel/plugin-transform-modules-systemjs" "^7.24.1" + "@babel/plugin-transform-modules-umd" "^7.24.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.24.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" + "@babel/plugin-transform-numeric-separator" "^7.24.1" + "@babel/plugin-transform-object-rest-spread" "^7.24.1" + "@babel/plugin-transform-object-super" "^7.24.1" + "@babel/plugin-transform-optional-catch-binding" "^7.24.1" + "@babel/plugin-transform-optional-chaining" "^7.24.1" + "@babel/plugin-transform-parameters" "^7.24.1" + "@babel/plugin-transform-private-methods" "^7.24.1" + "@babel/plugin-transform-private-property-in-object" "^7.24.1" + "@babel/plugin-transform-property-literals" "^7.24.1" + "@babel/plugin-transform-regenerator" "^7.24.1" + "@babel/plugin-transform-reserved-words" "^7.24.1" + "@babel/plugin-transform-shorthand-properties" "^7.24.1" + "@babel/plugin-transform-spread" "^7.24.1" + "@babel/plugin-transform-sticky-regex" "^7.24.1" + "@babel/plugin-transform-template-literals" "^7.24.1" + "@babel/plugin-transform-typeof-symbol" "^7.24.1" + "@babel/plugin-transform-unicode-escapes" "^7.24.1" + "@babel/plugin-transform-unicode-property-regex" "^7.24.1" + "@babel/plugin-transform-unicode-regex" "^7.24.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.18.6", "@babel/preset-react@^7.22.5": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.1.tgz" + integrity sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-transform-react-display-name" "^7.24.1" + "@babel/plugin-transform-react-jsx" "^7.23.4" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.24.1" + +"@babel/preset-typescript@^7.18.6", "@babel/preset-typescript@^7.22.5": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz" + integrity sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-syntax-jsx" "^7.24.1" + "@babel/plugin-transform-modules-commonjs" "^7.24.1" + "@babel/plugin-transform-typescript" "^7.24.1" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime-corejs3@^7.22.6": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.24.4.tgz" + integrity sha512-VOQOexSilscN24VEY810G/PqtpFvx/z6UqDIjIWbDe2368HhDLkYN5TYwaEz/+eRCUkhJ2WaNLLmQAlxzfWj4w== + dependencies: + core-js-pure "^3.30.2" + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.22.6", "@babel/runtime@^7.8.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz" + integrity sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.15", "@babel/template@^7.24.0": + version "7.24.0" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + +"@babel/traverse@^7.22.8", "@babel/traverse@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz" + integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ== + dependencies: + "@babel/code-frame" "^7.24.1" + "@babel/generator" "^7.24.1" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.24.1" + "@babel/types" "^7.24.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.20.0", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.24.0", "@babel/types@^7.4.4": + version "7.24.0" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz" + integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@discoveryjs/json-ext@0.5.7": + version "0.5.7" + resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@docsearch/css@3.6.0": + version "3.6.0" + resolved "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz" + integrity sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ== + +"@docsearch/react@^3.5.2": + version "3.6.0" + resolved "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz" + integrity sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w== + dependencies: + "@algolia/autocomplete-core" "1.9.3" + "@algolia/autocomplete-preset-algolia" "1.9.3" + "@docsearch/css" "3.6.0" + algoliasearch "^4.19.1" + +"@docusaurus/core@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/core/-/core-3.2.1.tgz" + integrity sha512-ZeMAqNvy0eBv2dThEeMuNzzuu+4thqMQakhxsgT5s02A8LqRcdkg+rbcnuNqUIpekQ4GRx3+M5nj0ODJhBXo9w== + dependencies: + "@babel/core" "^7.23.3" + "@babel/generator" "^7.23.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.22.9" + "@babel/preset-env" "^7.22.9" + "@babel/preset-react" "^7.22.5" + "@babel/preset-typescript" "^7.22.5" + "@babel/runtime" "^7.22.6" + "@babel/runtime-corejs3" "^7.22.6" + "@babel/traverse" "^7.22.8" + "@docusaurus/cssnano-preset" "3.2.1" + "@docusaurus/logger" "3.2.1" + "@docusaurus/mdx-loader" "3.2.1" + "@docusaurus/react-loadable" "5.5.2" + "@docusaurus/utils" "3.2.1" + "@docusaurus/utils-common" "3.2.1" + "@docusaurus/utils-validation" "3.2.1" + "@svgr/webpack" "^6.5.1" + autoprefixer "^10.4.14" + babel-loader "^9.1.3" + babel-plugin-dynamic-import-node "^2.3.3" + boxen "^6.2.1" + chalk "^4.1.2" + chokidar "^3.5.3" + clean-css "^5.3.2" + cli-table3 "^0.6.3" + combine-promises "^1.1.0" + commander "^5.1.0" + copy-webpack-plugin "^11.0.0" + core-js "^3.31.1" + css-loader "^6.8.1" + css-minimizer-webpack-plugin "^4.2.2" + cssnano "^5.1.15" + del "^6.1.1" + detect-port "^1.5.1" + escape-html "^1.0.3" + eta "^2.2.0" + eval "^0.1.8" + file-loader "^6.2.0" + fs-extra "^11.1.1" + html-minifier-terser "^7.2.0" + html-tags "^3.3.1" + html-webpack-plugin "^5.5.3" + leven "^3.1.0" + lodash "^4.17.21" + mini-css-extract-plugin "^2.7.6" + p-map "^4.0.0" + postcss "^8.4.26" + postcss-loader "^7.3.3" + prompts "^2.4.2" + react-dev-utils "^12.0.1" + react-helmet-async "^1.3.0" + react-loadable "npm:@docusaurus/react-loadable@5.5.2" + react-loadable-ssr-addon-v5-slorber "^1.0.1" + react-router "^5.3.4" + react-router-config "^5.1.1" + react-router-dom "^5.3.4" + rtl-detect "^1.0.4" + semver "^7.5.4" + serve-handler "^6.1.5" + shelljs "^0.8.5" + terser-webpack-plugin "^5.3.9" + tslib "^2.6.0" + update-notifier "^6.0.2" + url-loader "^4.1.1" + webpack "^5.88.1" + webpack-bundle-analyzer "^4.9.0" + webpack-dev-server "^4.15.1" + webpack-merge "^5.9.0" + webpackbar "^5.0.2" + +"@docusaurus/cssnano-preset@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.2.1.tgz" + integrity sha512-wTL9KuSSbMJjKrfu385HZEzAoamUsbKqwscAQByZw4k6Ja/RWpqgVvt/CbAC+aYEH6inLzOt+MjuRwMOrD3VBA== + dependencies: + cssnano-preset-advanced "^5.3.10" + postcss "^8.4.26" + postcss-sort-media-queries "^4.4.1" + tslib "^2.6.0" + +"@docusaurus/logger@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.2.1.tgz" + integrity sha512-0voOKJCn9RaM3np6soqEfo7SsVvf2C+CDTWhW+H/1AyBhybASpExtDEz+7ECck9TwPzFQ5tt+I3zVugUJbJWDg== + dependencies: + chalk "^4.1.2" + tslib "^2.6.0" + +"@docusaurus/mdx-loader@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.2.1.tgz" + integrity sha512-Fs8tXhXKZjNkdGaOy1xSLXSwfjCMT73J3Zfrju2U16uGedRFRjgK0ojpK5tiC7TnunsL3tOFgp1BSMBRflX9gw== + dependencies: + "@docusaurus/logger" "3.2.1" + "@docusaurus/utils" "3.2.1" + "@docusaurus/utils-validation" "3.2.1" + "@mdx-js/mdx" "^3.0.0" + "@slorber/remark-comment" "^1.0.0" + escape-html "^1.0.3" + estree-util-value-to-estree "^3.0.1" + file-loader "^6.2.0" + fs-extra "^11.1.1" + image-size "^1.0.2" + mdast-util-mdx "^3.0.0" + mdast-util-to-string "^4.0.0" + rehype-raw "^7.0.0" + remark-directive "^3.0.0" + remark-emoji "^4.0.0" + remark-frontmatter "^5.0.0" + remark-gfm "^4.0.0" + stringify-object "^3.3.0" + tslib "^2.6.0" + unified "^11.0.3" + unist-util-visit "^5.0.0" + url-loader "^4.1.1" + vfile "^6.0.1" + webpack "^5.88.1" + +"@docusaurus/module-type-aliases@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.2.1.tgz" + integrity sha512-FyViV5TqhL1vsM7eh29nJ5NtbRE6Ra6LP1PDcPvhwPSlA7eiWGRKAn3jWwMUcmjkos5SYY+sr0/feCdbM3eQHQ== + dependencies: + "@docusaurus/react-loadable" "5.5.2" + "@docusaurus/types" "3.2.1" + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router-config" "*" + "@types/react-router-dom" "*" + react-helmet-async "*" + react-loadable "npm:@docusaurus/react-loadable@5.5.2" + +"@docusaurus/plugin-content-blog@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.2.1.tgz" + integrity sha512-lOx0JfhlGZoZu6pEJfeEpSISZR5dQbJGGvb42IP13G5YThNHhG9R9uoWuo4IOimPqBC7sHThdLA3VLevk61Fsw== + dependencies: + "@docusaurus/core" "3.2.1" + "@docusaurus/logger" "3.2.1" + "@docusaurus/mdx-loader" "3.2.1" + "@docusaurus/types" "3.2.1" + "@docusaurus/utils" "3.2.1" + "@docusaurus/utils-common" "3.2.1" + "@docusaurus/utils-validation" "3.2.1" + cheerio "^1.0.0-rc.12" + feed "^4.2.2" + fs-extra "^11.1.1" + lodash "^4.17.21" + reading-time "^1.5.0" + srcset "^4.0.0" + tslib "^2.6.0" + unist-util-visit "^5.0.0" + utility-types "^3.10.0" + webpack "^5.88.1" + +"@docusaurus/plugin-content-docs@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.2.1.tgz" + integrity sha512-GHe5b/lCskAR8QVbfWAfPAApvRZgqk7FN3sOHgjCtjzQACZxkHmq6QqyqZ8Jp45V7lVck4wt2Xw2IzBJ7Cz3bA== + dependencies: + "@docusaurus/core" "3.2.1" + "@docusaurus/logger" "3.2.1" + "@docusaurus/mdx-loader" "3.2.1" + "@docusaurus/module-type-aliases" "3.2.1" + "@docusaurus/types" "3.2.1" + "@docusaurus/utils" "3.2.1" + "@docusaurus/utils-common" "3.2.1" + "@docusaurus/utils-validation" "3.2.1" + "@types/react-router-config" "^5.0.7" + combine-promises "^1.1.0" + fs-extra "^11.1.1" + js-yaml "^4.1.0" + lodash "^4.17.21" + tslib "^2.6.0" + utility-types "^3.10.0" + webpack "^5.88.1" + +"@docusaurus/plugin-content-pages@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.2.1.tgz" + integrity sha512-TOqVfMVTAHqWNEGM94Drz+PUpHDbwFy6ucHFgyTx9zJY7wPNSG5EN+rd/mU7OvAi26qpOn2o9xTdUmb28QLjEQ== + dependencies: + "@docusaurus/core" "3.2.1" + "@docusaurus/mdx-loader" "3.2.1" + "@docusaurus/types" "3.2.1" + "@docusaurus/utils" "3.2.1" + "@docusaurus/utils-validation" "3.2.1" + fs-extra "^11.1.1" + tslib "^2.6.0" + webpack "^5.88.1" + +"@docusaurus/plugin-debug@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.2.1.tgz" + integrity sha512-AMKq8NuUKf2sRpN1m/sIbqbRbnmk+rSA+8mNU1LNxEl9BW9F/Gng8m9HKlzeyMPrf5XidzS1jqkuTLDJ6KIrFw== + dependencies: + "@docusaurus/core" "3.2.1" + "@docusaurus/types" "3.2.1" + "@docusaurus/utils" "3.2.1" + fs-extra "^11.1.1" + react-json-view-lite "^1.2.0" + tslib "^2.6.0" + +"@docusaurus/plugin-google-analytics@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.2.1.tgz" + integrity sha512-/rJ+9u+Px0eTCiF4TNcNtj3kHf8cp6K1HCwOTdbsSlz6Xn21syZYcy+f1VM9wF6HrvUkXUcbM5TDCvg2IRL6bQ== + dependencies: + "@docusaurus/core" "3.2.1" + "@docusaurus/types" "3.2.1" + "@docusaurus/utils-validation" "3.2.1" + tslib "^2.6.0" + +"@docusaurus/plugin-google-gtag@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.2.1.tgz" + integrity sha512-XtuJnlMvYfppeVdUyKiDIJAa/gTJKCQU92z8CLZZ9ibJdgVjFOLS10s0hIC0eL5z0U2u2loJz2rZ63HOkNHbBA== + dependencies: + "@docusaurus/core" "3.2.1" + "@docusaurus/types" "3.2.1" + "@docusaurus/utils-validation" "3.2.1" + "@types/gtag.js" "^0.0.12" + tslib "^2.6.0" + +"@docusaurus/plugin-google-tag-manager@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.2.1.tgz" + integrity sha512-wiS/kE0Ny5pnjTxVCs8ljRnkL1RVMj59t6jmSsgEX7piDOoaXSMIUaoIt9ogS/v132uO0xEsxHstkRUZHQyPcQ== + dependencies: + "@docusaurus/core" "3.2.1" + "@docusaurus/types" "3.2.1" + "@docusaurus/utils-validation" "3.2.1" + tslib "^2.6.0" + +"@docusaurus/plugin-sitemap@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.2.1.tgz" + integrity sha512-uWZ7AxzdeaQSTCwD2yZtOiEm9zyKU+wqCmi/Sf25kQQqqFSBZUStXfaQ8OHP9cecnw893ZpZ811rPhB/wfujJw== + dependencies: + "@docusaurus/core" "3.2.1" + "@docusaurus/logger" "3.2.1" + "@docusaurus/types" "3.2.1" + "@docusaurus/utils" "3.2.1" + "@docusaurus/utils-common" "3.2.1" + "@docusaurus/utils-validation" "3.2.1" + fs-extra "^11.1.1" + sitemap "^7.1.1" + tslib "^2.6.0" + +"@docusaurus/preset-classic@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.2.1.tgz" + integrity sha512-E3OHSmttpEBcSMhfPBq3EJMBxZBM01W1rnaCUTXy9EHvkmB5AwgTfW1PwGAybPAX579ntE03R+2zmXdizWfKnQ== + dependencies: + "@docusaurus/core" "3.2.1" + "@docusaurus/plugin-content-blog" "3.2.1" + "@docusaurus/plugin-content-docs" "3.2.1" + "@docusaurus/plugin-content-pages" "3.2.1" + "@docusaurus/plugin-debug" "3.2.1" + "@docusaurus/plugin-google-analytics" "3.2.1" + "@docusaurus/plugin-google-gtag" "3.2.1" + "@docusaurus/plugin-google-tag-manager" "3.2.1" + "@docusaurus/plugin-sitemap" "3.2.1" + "@docusaurus/theme-classic" "3.2.1" + "@docusaurus/theme-common" "3.2.1" + "@docusaurus/theme-search-algolia" "3.2.1" + "@docusaurus/types" "3.2.1" + +"@docusaurus/react-loadable@5.5.2": + version "5.5.2" + resolved "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz" + integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== + dependencies: + "@types/react" "*" + prop-types "^15.6.2" + +"@docusaurus/theme-classic@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.2.1.tgz" + integrity sha512-+vSbnQyoWjc6vRZi4vJO2dBU02wqzynsai15KK+FANZudrYaBHtkbLZAQhgmxzBGVpxzi87gRohlMm+5D8f4tA== + dependencies: + "@docusaurus/core" "3.2.1" + "@docusaurus/mdx-loader" "3.2.1" + "@docusaurus/module-type-aliases" "3.2.1" + "@docusaurus/plugin-content-blog" "3.2.1" + "@docusaurus/plugin-content-docs" "3.2.1" + "@docusaurus/plugin-content-pages" "3.2.1" + "@docusaurus/theme-common" "3.2.1" + "@docusaurus/theme-translations" "3.2.1" + "@docusaurus/types" "3.2.1" + "@docusaurus/utils" "3.2.1" + "@docusaurus/utils-common" "3.2.1" + "@docusaurus/utils-validation" "3.2.1" + "@mdx-js/react" "^3.0.0" + clsx "^2.0.0" + copy-text-to-clipboard "^3.2.0" + infima "0.2.0-alpha.43" + lodash "^4.17.21" + nprogress "^0.2.0" + postcss "^8.4.26" + prism-react-renderer "^2.3.0" + prismjs "^1.29.0" + react-router-dom "^5.3.4" + rtlcss "^4.1.0" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-common@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.2.1.tgz" + integrity sha512-d+adiD7L9xv6EvfaAwUqdKf4orsM3jqgeqAM+HAjgL/Ux0GkVVnfKr+tsoe+4ow4rHe6NUt+nkkW8/K8dKdilA== + dependencies: + "@docusaurus/mdx-loader" "3.2.1" + "@docusaurus/module-type-aliases" "3.2.1" + "@docusaurus/plugin-content-blog" "3.2.1" + "@docusaurus/plugin-content-docs" "3.2.1" + "@docusaurus/plugin-content-pages" "3.2.1" + "@docusaurus/utils" "3.2.1" + "@docusaurus/utils-common" "3.2.1" + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router-config" "*" + clsx "^2.0.0" + parse-numeric-range "^1.3.0" + prism-react-renderer "^2.3.0" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-search-algolia@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.2.1.tgz" + integrity sha512-bzhCrpyXBXzeydNUH83II2akvFEGfhsNTPPWsk5N7e+odgQCQwoHhcF+2qILbQXjaoZ6B3c48hrvkyCpeyqGHw== + dependencies: + "@docsearch/react" "^3.5.2" + "@docusaurus/core" "3.2.1" + "@docusaurus/logger" "3.2.1" + "@docusaurus/plugin-content-docs" "3.2.1" + "@docusaurus/theme-common" "3.2.1" + "@docusaurus/theme-translations" "3.2.1" + "@docusaurus/utils" "3.2.1" + "@docusaurus/utils-validation" "3.2.1" + algoliasearch "^4.18.0" + algoliasearch-helper "^3.13.3" + clsx "^2.0.0" + eta "^2.2.0" + fs-extra "^11.1.1" + lodash "^4.17.21" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-translations@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.2.1.tgz" + integrity sha512-jAUMkIkFfY+OAhJhv6mV8zlwY6J4AQxJPTgLdR2l+Otof9+QdJjHNh/ifVEu9q0lp3oSPlJj9l05AaP7Ref+cg== + dependencies: + fs-extra "^11.1.1" + tslib "^2.6.0" + +"@docusaurus/tsconfig@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.2.1.tgz" + integrity sha512-+biUwtsYW3oChLxYezzA+NIgS3Q9KDRl7add/YT54RXs9Q4rKInebxdHdG6JFs5BaTg45gyjDu0rvNVcGeHODg== + +"@docusaurus/types@*", "@docusaurus/types@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/types/-/types-3.2.1.tgz" + integrity sha512-n/toxBzL2oxTtRTOFiGKsHypzn/Pm+sXyw+VSk1UbqbXQiHOwHwts55bpKwbcUgA530Is6kix3ELiFOv9GAMfw== + dependencies: + "@mdx-js/mdx" "^3.0.0" + "@types/history" "^4.7.11" + "@types/react" "*" + commander "^5.1.0" + joi "^17.9.2" + react-helmet-async "^1.3.0" + utility-types "^3.10.0" + webpack "^5.88.1" + webpack-merge "^5.9.0" + +"@docusaurus/utils-common@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.2.1.tgz" + integrity sha512-N5vadULnRLiqX2QfTjVEU3u5vo6RG2EZTdyXvJdzDOdrLCGIZAfnf/VkssinFZ922sVfaFfQ4FnStdhn5TWdVg== + dependencies: + tslib "^2.6.0" + +"@docusaurus/utils-validation@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.2.1.tgz" + integrity sha512-+x7IR9hNMXi62L1YAglwd0s95fR7+EtirjTxSN4kahYRWGqOi3jlQl1EV0az/yTEvKbxVvOPcdYicGu9dk4LJw== + dependencies: + "@docusaurus/logger" "3.2.1" + "@docusaurus/utils" "3.2.1" + "@docusaurus/utils-common" "3.2.1" + joi "^17.9.2" + js-yaml "^4.1.0" + tslib "^2.6.0" + +"@docusaurus/utils@3.2.1": + version "3.2.1" + resolved "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.2.1.tgz" + integrity sha512-DPkIS/EPc+pGAV798PUXgNzJFM3HJouoQXgr0KDZuJVz1EkWbDLOcQwLIz8Qx7liI9ddfkN/TXTRQdsTPZNakw== + dependencies: + "@docusaurus/logger" "3.2.1" + "@docusaurus/utils-common" "3.2.1" + "@svgr/webpack" "^6.5.1" + escape-string-regexp "^4.0.0" + file-loader "^6.2.0" + fs-extra "^11.1.1" + github-slugger "^1.5.0" + globby "^11.1.0" + gray-matter "^4.0.3" + jiti "^1.20.0" + js-yaml "^4.1.0" + lodash "^4.17.21" + micromatch "^4.0.5" + prompts "^2.4.2" + resolve-pathname "^3.0.0" + shelljs "^0.8.5" + tslib "^2.6.0" + url-loader "^4.1.1" + webpack "^5.88.1" + +"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": + version "9.3.0" + resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.1.0": + version "5.1.0" + resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + +"@mdx-js/mdx@^3.0.0": + version "3.0.1" + resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.1.tgz" + integrity sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdx" "^2.0.0" + collapse-white-space "^2.0.0" + devlop "^1.0.0" + estree-util-build-jsx "^3.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-util-to-js "^2.0.0" + estree-walker "^3.0.0" + hast-util-to-estree "^3.0.0" + hast-util-to-jsx-runtime "^2.0.0" + markdown-extensions "^2.0.0" + periscopic "^3.0.0" + remark-mdx "^3.0.0" + remark-parse "^11.0.0" + remark-rehype "^11.0.0" + source-map "^0.7.0" + unified "^11.0.0" + unist-util-position-from-estree "^2.0.0" + unist-util-stringify-position "^4.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +"@mdx-js/react@^3.0.0": + version "3.0.1" + resolved "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz" + integrity sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A== + dependencies: + "@types/mdx" "^2.0.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pnpm/config.env-replace@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz" + integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== + +"@pnpm/network.ca-file@^1.0.1": + version "1.0.2" + resolved "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz" + integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^2.1.0": + version "2.2.2" + resolved "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz" + integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== + dependencies: + "@pnpm/config.env-replace" "^1.1.0" + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" + +"@polka/url@^1.0.0-next.24": + version "1.0.0-next.25" + resolved "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz" + integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ== + +"@sideway/address@^4.1.5": + version "4.1.5" + resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz" + integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sindresorhus/is@^4.6.0": + version "4.6.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@sindresorhus/is@^5.2.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz" + integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== + +"@slorber/remark-comment@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz" + integrity sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.1.0" + micromark-util-symbol "^1.0.1" + +"@svgr/babel-plugin-add-jsx-attribute@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz" + integrity sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ== + +"@svgr/babel-plugin-remove-jsx-attribute@*": + version "8.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz" + integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== + +"@svgr/babel-plugin-remove-jsx-empty-expression@*": + version "8.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz" + integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz" + integrity sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg== + +"@svgr/babel-plugin-svg-dynamic-title@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz" + integrity sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw== + +"@svgr/babel-plugin-svg-em-dimensions@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz" + integrity sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA== + +"@svgr/babel-plugin-transform-react-native-svg@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz" + integrity sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg== + +"@svgr/babel-plugin-transform-svg-component@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz" + integrity sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ== + +"@svgr/babel-preset@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz" + integrity sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^6.5.1" + "@svgr/babel-plugin-remove-jsx-attribute" "*" + "@svgr/babel-plugin-remove-jsx-empty-expression" "*" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.1" + "@svgr/babel-plugin-svg-dynamic-title" "^6.5.1" + "@svgr/babel-plugin-svg-em-dimensions" "^6.5.1" + "@svgr/babel-plugin-transform-react-native-svg" "^6.5.1" + "@svgr/babel-plugin-transform-svg-component" "^6.5.1" + +"@svgr/core@*", "@svgr/core@^6.0.0", "@svgr/core@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz" + integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw== + dependencies: + "@babel/core" "^7.19.6" + "@svgr/babel-preset" "^6.5.1" + "@svgr/plugin-jsx" "^6.5.1" + camelcase "^6.2.0" + cosmiconfig "^7.0.1" + +"@svgr/hast-util-to-babel-ast@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz" + integrity sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw== + dependencies: + "@babel/types" "^7.20.0" + entities "^4.4.0" + +"@svgr/plugin-jsx@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz" + integrity sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw== + dependencies: + "@babel/core" "^7.19.6" + "@svgr/babel-preset" "^6.5.1" + "@svgr/hast-util-to-babel-ast" "^6.5.1" + svg-parser "^2.0.4" + +"@svgr/plugin-svgo@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz" + integrity sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ== + dependencies: + cosmiconfig "^7.0.1" + deepmerge "^4.2.2" + svgo "^2.8.0" + +"@svgr/webpack@^6.5.1": + version "6.5.1" + resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz" + integrity sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA== + dependencies: + "@babel/core" "^7.19.6" + "@babel/plugin-transform-react-constant-elements" "^7.18.12" + "@babel/preset-env" "^7.19.4" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.18.6" + "@svgr/core" "^6.5.1" + "@svgr/plugin-jsx" "^6.5.1" + "@svgr/plugin-svgo" "^6.5.1" + +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/acorn@^4.0.0": + version "4.0.6" + resolved "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz" + integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== + dependencies: + "@types/estree" "*" + +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.9": + version "3.5.13" + resolved "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.5.4" + resolved "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/debug@^4.0.0": + version "4.1.12" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.7" + resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.56.9" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.9.tgz" + integrity sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree-jsx@^1.0.0": + version "1.0.5" + resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz" + integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg== + dependencies: + "@types/estree" "*" + +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": + version "4.19.0" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz" + integrity sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*", "@types/express@^4.17.13": + version "4.17.21" + resolved "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/gtag.js@^0.0.12": + version "0.0.12" + resolved "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz" + integrity sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg== + +"@types/hast@^3.0.0": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + +"@types/history@^4.7.11": + version "4.7.11" + resolved "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz" + integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-cache-semantics@^4.0.2": + version "4.0.4" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/http-proxy@^1.17.8": + version "1.17.14" + resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/mdast@^4.0.0", "@types/mdast@^4.0.2": + version "4.0.3" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz" + integrity sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg== + dependencies: + "@types/unist" "*" + +"@types/mdx@^2.0.0": + version "2.0.13" + resolved "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz" + integrity sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/ms@*": + version "0.7.34" + resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "20.12.7" + resolved "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz" + integrity sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg== + dependencies: + undici-types "~5.26.4" + +"@types/node@^17.0.5": + version "17.0.45" + resolved "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz" + integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== + +"@types/parse-json@^4.0.0": + version "4.0.2" + resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/prismjs@^1.26.0": + version "1.26.3" + resolved "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.3.tgz" + integrity sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw== + +"@types/prop-types@*": + version "15.7.12" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/qs@*": + version "6.9.14" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz" + integrity sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/react-router-config@*", "@types/react-router-config@^5.0.7": + version "5.0.11" + resolved "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz" + integrity sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "^5.1.0" + +"@types/react-router-dom@*": + version "5.3.3" + resolved "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz" + integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*", "@types/react-router@^5.1.0": + version "5.1.20" + resolved "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz" + integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + +"@types/react@*", "@types/react@>= 16.8.0 < 19.0.0", "@types/react@>=16": + version "18.2.78" + resolved "https://registry.npmjs.org/@types/react/-/react-18.2.78.tgz" + integrity sha512-qOwdPnnitQY4xKlKayt42q5W5UQrSHjgoXNVEtxeqdITJ99k4VXJOP3vt8Rkm9HmgJpH50UNU+rlqfkfWOqp0A== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/sax@^1.2.1": + version "1.2.7" + resolved "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz" + integrity sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A== + dependencies: + "@types/node" "*" + +"@types/send@*": + version "0.17.4" + resolved "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.1": + version "1.9.4" + resolved "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.7" + resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" + +"@types/sockjs@^0.3.33": + version "0.3.36" + resolved "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" + +"@types/unist@*", "@types/unist@^3.0.0": + version "3.0.2" + resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz" + integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== + +"@types/unist@^2.0.0": + version "2.0.10" + resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz" + integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== + +"@types/ws@^8.5.5": + version "8.5.10" + resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz" + integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + dependencies: + "@types/yargs-parser" "*" + +"@ungap/structured-clone@^1.0.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@webassemblyjs/ast@^1.12.1", "@webassemblyjs/ast@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" + +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + +"@webassemblyjs/wasm-parser@^1.12.1", "@webassemblyjs/wasm-parser@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.0.0: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.0.0: + version "8.3.2" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.0.0, acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.2: + version "8.11.3" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +address@^1.0.1, address@^1.1.2: + version "1.2.2" + resolved "https://registry.npmjs.org/address/-/address-1.2.2.tgz" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.2, ajv@^6.12.5, ajv@^6.9.1: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.8.2, ajv@^8.9.0: + version "8.12.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +algoliasearch-helper@^3.13.3: + version "3.17.0" + resolved "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.17.0.tgz" + integrity sha512-R5422OiQjvjlK3VdpNQ/Qk7KsTIGeM5ACm8civGifOVWdRRV/3SgXuKmeNxe94Dz6fwj/IgpVmXbHutU4mHubg== + dependencies: + "@algolia/events" "^4.0.1" + +algoliasearch@^4.18.0, algoliasearch@^4.19.1, "algoliasearch@>= 3.1 < 6", "algoliasearch@>= 4.9.1 < 6": + version "4.23.3" + resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.23.3.tgz" + integrity sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg== + dependencies: + "@algolia/cache-browser-local-storage" "4.23.3" + "@algolia/cache-common" "4.23.3" + "@algolia/cache-in-memory" "4.23.3" + "@algolia/client-account" "4.23.3" + "@algolia/client-analytics" "4.23.3" + "@algolia/client-common" "4.23.3" + "@algolia/client-personalization" "4.23.3" + "@algolia/client-search" "4.23.3" + "@algolia/logger-common" "4.23.3" + "@algolia/logger-console" "4.23.3" + "@algolia/recommend" "4.23.3" + "@algolia/requester-browser-xhr" "4.23.3" + "@algolia/requester-common" "4.23.3" + "@algolia/requester-node-http" "4.23.3" + "@algolia/transporter" "4.23.3" + +ansi-align@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^5.0.0: + version "5.0.2" + resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +astring@^1.8.0: + version "1.8.6" + resolved "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz" + integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +autoprefixer@^10.4.12, autoprefixer@^10.4.14: + version "10.4.19" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz" + integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew== + dependencies: + browserslist "^4.23.0" + caniuse-lite "^1.0.30001599" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +babel-loader@^9.1.3: + version "9.1.3" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz" + integrity sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw== + dependencies: + find-cache-dir "^4.0.0" + schema-utils "^4.0.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.10" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz" + integrity sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.1" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.1, babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.4" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz" + integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.1" + core-js-compat "^3.36.1" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz" + integrity sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.1" + +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.0.11: + version "1.2.1" + resolved "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz" + integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== + dependencies: + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boxen@^6.2.1: + version "6.2.1" + resolved "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz" + integrity sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw== + dependencies: + ansi-align "^3.0.1" + camelcase "^6.2.0" + chalk "^4.1.2" + cli-boxes "^3.0.0" + string-width "^5.0.1" + type-fest "^2.5.0" + widest-line "^4.0.1" + wrap-ansi "^8.0.1" + +boxen@^7.0.0: + version "7.1.1" + resolved "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz" + integrity sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog== + dependencies: + ansi-align "^3.0.1" + camelcase "^7.0.1" + chalk "^5.2.0" + cli-boxes "^3.0.0" + string-width "^5.1.2" + type-fest "^2.13.0" + widest-line "^4.0.1" + wrap-ansi "^8.1.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.22.2, browserslist@^4.23.0, "browserslist@>= 4.21.0": + version "4.23.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.8: + version "10.2.14" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz" + integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== + dependencies: + "@types/http-cache-semantics" "^4.0.2" + get-stream "^6.0.1" + http-cache-semantics "^4.1.1" + keyv "^4.5.3" + mimic-response "^4.0.0" + normalize-url "^8.0.0" + responselike "^3.0.0" + +call-bind@^1.0.5, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +camelcase@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001599: + version "1.0.30001609" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001609.tgz" + integrity sha512-JFPQs34lHKx1B5t1EpQpWH4c+29zIyn/haGsbpfq3suuV9v56enjFt23zqijxGTMwy1p/4H2tjnQMY+p1WoAyA== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.0.1, chalk@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@^1.0.0-rc.12: + version "1.0.0-rc.12" + resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" + +chokidar@^3.4.2, chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +clean-css@^5.2.2, clean-css@^5.3.2, clean-css@~5.3.2: + version "5.3.3" + resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== + +cli-table3@^0.6.3: + version "0.6.4" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz" + integrity sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clsx@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz" + integrity sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg== + +collapse-white-space@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz" + integrity sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.10: + version "2.0.20" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combine-promises@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz" + integrity sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ== + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== + dependencies: + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +consola@^2.15.3: + version "2.15.3" + resolved "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz" + integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz" + integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +copy-text-to-clipboard@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz" + integrity sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q== + +copy-webpack-plugin@^11.0.0: + version "11.0.0" + resolved "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz" + integrity sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ== + dependencies: + fast-glob "^3.2.11" + glob-parent "^6.0.1" + globby "^13.1.1" + normalize-path "^3.0.0" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + +core-js-compat@^3.31.0, core-js-compat@^3.36.1: + version "3.36.1" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz" + integrity sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA== + dependencies: + browserslist "^4.23.0" + +core-js-pure@^3.30.2: + version "3.36.1" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.1.tgz" + integrity sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA== + +core-js@^3.31.1: + version "3.36.1" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.36.1.tgz" + integrity sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.1: + version "7.1.0" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cosmiconfig@^8.3.5: + version "8.3.6" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" + +css-declaration-sorter@^6.3.1: + version "6.4.1" + resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz" + integrity sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g== + +css-loader@^6.8.1: + version "6.11.0" + resolved "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz" + integrity sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.33" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.5.4" + +css-minimizer-webpack-plugin@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz" + integrity sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA== + dependencies: + cssnano "^5.1.8" + jest-worker "^29.1.2" + postcss "^8.4.17" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^6.0.1, css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-advanced@^5.3.10: + version "5.3.10" + resolved "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz" + integrity sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ== + dependencies: + autoprefixer "^10.4.12" + cssnano-preset-default "^5.2.14" + postcss-discard-unused "^5.1.0" + postcss-merge-idents "^5.1.1" + postcss-reduce-idents "^5.2.0" + postcss-zindex "^5.1.0" + +cssnano-preset-default@^5.2.14: + version "5.2.14" + resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz" + integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.1" + postcss-convert-values "^5.1.3" + postcss-discard-comments "^5.1.2" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.1" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.7" + postcss-merge-rules "^5.1.4" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.1" + postcss-minify-params "^5.1.4" + postcss-minify-selectors "^5.2.1" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.1" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.1" + postcss-ordered-values "^5.1.3" + postcss-reduce-initial "^5.1.2" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.1" + +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== + +cssnano@^5.1.15, cssnano@^5.1.8: + version "5.1.15" + resolved "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz" + integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== + dependencies: + cssnano-preset-default "^5.2.14" + lilconfig "^2.0.3" + yaml "^1.10.2" + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@^2.6.0: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +del@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/del/-/del-6.1.1.tgz" + integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-port-alt@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detect-port@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz" + integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== + dependencies: + address "^1.0.1" + debug "4" + +devlop@^1.0.0, devlop@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.668: + version "1.4.736" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.736.tgz" + integrity sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojilib@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz" + integrity sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +emoticon@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz" + integrity sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +enhanced-resolve@^5.16.0: + version "5.16.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz" + integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.2.1: + version "1.5.0" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz" + integrity sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw== + +escalade@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-goat@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz" + integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-util-attach-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz" + integrity sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-build-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz" + integrity sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-walker "^3.0.0" + +estree-util-is-identifier-name@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz" + integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== + +estree-util-to-js@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz" + integrity sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + +estree-util-value-to-estree@^3.0.1: + version "3.1.1" + resolved "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.1.1.tgz" + integrity sha512-5mvUrF2suuv5f5cGDnDphIy4/gW86z82kl5qG6mM9z04SEQI4FB5Apmaw/TGEf3l55nLtMs5s51dmhUzvAHQCA== + dependencies: + "@types/estree" "^1.0.0" + is-plain-obj "^4.0.0" + +estree-util-visit@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz" + integrity sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/unist" "^3.0.0" + +estree-walker@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eta@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz" + integrity sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eval@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz" + integrity sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw== + dependencies: + "@types/node" "*" + require-like ">= 0.1.1" + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +express@^4.17.3: + version "4.19.2" + resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-url-parser@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== + dependencies: + punycode "^1.3.2" + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fault@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz" + integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== + dependencies: + format "^0.2.0" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +feed@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz" + integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== + dependencies: + xml-js "^1.6.11" + +file-loader@*, file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +filesize@^8.0.6: + version "8.0.7" + resolved "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz" + integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== + dependencies: + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +follow-redirects@^1.0.0: + version "1.15.6" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +fork-ts-checker-webpack-plugin@^6.5.0: + version "6.5.3" + resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz" + integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + memfs "^3.1.2" + minimatch "^3.0.4" + schema-utils "2.7.0" + semver "^7.3.2" + tapable "^1.0.0" + +form-data-encoder@^2.1.2: + version "2.1.4" + resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^11.1.1: + version "11.2.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^9.0.0: + version "9.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz" + integrity sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-stream@^6.0.0, get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +github-slugger@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz" + integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^13.1.1: + version "13.2.2" + resolved "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +got@^12.1.0: + version "12.6.1" + resolved "https://registry.npmjs.org/got/-/got-12.6.1.tgz" + integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.8" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-yarn@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz" + integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== + +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hast-util-from-parse5@^8.0.0: + version "8.0.1" + resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz" + integrity sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + hastscript "^8.0.0" + property-information "^6.0.0" + vfile "^6.0.0" + vfile-location "^5.0.0" + web-namespaces "^2.0.0" + +hast-util-parse-selector@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz" + integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-raw@^9.0.0: + version "9.0.2" + resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.2.tgz" + integrity sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + "@ungap/structured-clone" "^1.0.0" + hast-util-from-parse5 "^8.0.0" + hast-util-to-parse5 "^8.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + parse5 "^7.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-to-estree@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz" + integrity sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-attach-comments "^3.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.4.0" + unist-util-position "^5.0.0" + zwitch "^2.0.0" + +hast-util-to-jsx-runtime@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz" + integrity sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ== + dependencies: + "@types/estree" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^1.0.0" + unist-util-position "^5.0.0" + vfile-message "^4.0.0" + +hast-util-to-parse5@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz" + integrity sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== + dependencies: + "@types/hast" "^3.0.0" + +hastscript@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz" + integrity sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^4.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.npmjs.org/history/-/history-4.10.1.tgz" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.1.0: + version "3.3.2" + resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^2.3.2: + version "2.5.2" + resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz" + integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + +html-escaper@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-minifier-terser@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz" + integrity sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== + dependencies: + camel-case "^4.1.2" + clean-css "~5.3.2" + commander "^10.0.0" + entities "^4.4.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.15.1" + +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +html-void-elements@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== + +html-webpack-plugin@^5.5.3: + version "5.6.0" + resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz" + integrity sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http2-wrapper@^2.1.10: + version "2.2.1" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +image-size@^1.0.2: + version "1.1.1" + resolved "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz" + integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== + dependencies: + queue "6.0.2" + +immer@^9.0.7: + version "9.0.21" + resolved "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infima@0.2.0-alpha.43: + version "0.2.0-alpha.43" + resolved "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.43.tgz" + integrity sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@2, inherits@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + +inline-style-parser@0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz" + integrity sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g== + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ipaddr.js@^2.0.1: + version "2.1.0" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-npm@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz" + integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-reference@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz" + integrity sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg== + dependencies: + "@types/estree" "*" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-root@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-yarn-global@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz" + integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^29.1.2: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jiti@^1.20.0: + version "1.21.0" + resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + +joi@^17.9.2: + version "17.12.3" + resolved "https://registry.npmjs.org/joi/-/joi-17.12.3.tgz" + integrity sha512-2RRziagf555owrm9IRVtdKynOBeITiDpuZqIpgwqXShPncPKNiRQoiGsl/T8SQdq+8ugRzH2LqY67irr2y/d+g== + dependencies: + "@hapi/hoek" "^9.3.0" + "@hapi/topo" "^5.1.0" + "@sideway/address" "^4.1.5" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +latest-version@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz" + integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== + dependencies: + package-json "^8.1.0" + +launch-editor@^2.6.0: + version "2.6.1" + resolved "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz" + integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +lilconfig@^2.0.3: + version "2.1.0" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^3.2.0: + version "3.2.1" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz" + integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +markdown-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz" + integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== + +markdown-table@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz" + integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== + +mdast-util-directive@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz" + integrity sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-find-and-replace@^3.0.0, mdast-util-find-and-replace@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz" + integrity sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA== + dependencies: + "@types/mdast" "^4.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-from-markdown@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz" + integrity sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + mdast-util-to-string "^4.0.0" + micromark "^4.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-decode-string "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-stringify-position "^4.0.0" + +mdast-util-frontmatter@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz" + integrity sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + escape-string-regexp "^5.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + +mdast-util-gfm-autolink-literal@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz" + integrity sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg== + dependencies: + "@types/mdast" "^4.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-find-and-replace "^3.0.0" + micromark-util-character "^2.0.0" + +mdast-util-gfm-footnote@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz" + integrity sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + +mdast-util-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz" + integrity sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz" + integrity sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-task-list-item@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz" + integrity sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz" + integrity sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-gfm-autolink-literal "^2.0.0" + mdast-util-gfm-footnote "^2.0.0" + mdast-util-gfm-strikethrough "^2.0.0" + mdast-util-gfm-table "^2.0.0" + mdast-util-gfm-task-list-item "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-expression@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz" + integrity sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-jsx@^3.0.0: + version "3.1.2" + resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz" + integrity sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-remove-position "^5.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +mdast-util-mdx@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz" + integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdxjs-esm@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz" + integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-phrasing@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz" + integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== + dependencies: + "@types/mdast" "^4.0.0" + unist-util-is "^6.0.0" + +mdast-util-to-hast@^13.0.0: + version "13.1.0" + resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz" + integrity sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +mdast-util-to-markdown@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz" + integrity sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-string "^4.0.0" + micromark-util-decode-string "^2.0.0" + unist-util-visit "^5.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz" + integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== + dependencies: + "@types/mdast" "^4.0.0" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.1.2, memfs@^3.4.3: + version "3.5.3" + resolved "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz" + integrity sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw== + dependencies: + fs-monkey "^1.0.4" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromark-core-commonmark@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz" + integrity sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA== + dependencies: + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-factory-destination "^2.0.0" + micromark-factory-label "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-title "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-html-tag-name "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-directive@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.0.tgz" + integrity sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + parse-entities "^4.0.0" + +micromark-extension-frontmatter@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz" + integrity sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg== + dependencies: + fault "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-autolink-literal@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz" + integrity sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-footnote@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz" + integrity sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg== + dependencies: + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz" + integrity sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz" + integrity sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-tagfilter@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz" + integrity sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-gfm-task-list-item@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz" + integrity sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz" + integrity sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w== + dependencies: + micromark-extension-gfm-autolink-literal "^2.0.0" + micromark-extension-gfm-footnote "^2.0.0" + micromark-extension-gfm-strikethrough "^2.0.0" + micromark-extension-gfm-table "^2.0.0" + micromark-extension-gfm-tagfilter "^2.0.0" + micromark-extension-gfm-task-list-item "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-expression@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz" + integrity sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-jsx@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz" + integrity sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdx-md@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz" + integrity sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-mdxjs-esm@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz" + integrity sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdxjs@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz" + integrity sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ== + dependencies: + acorn "^8.0.0" + acorn-jsx "^5.0.0" + micromark-extension-mdx-expression "^3.0.0" + micromark-extension-mdx-jsx "^3.0.0" + micromark-extension-mdx-md "^2.0.0" + micromark-extension-mdxjs-esm "^3.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-destination@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz" + integrity sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-label@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz" + integrity sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw== + dependencies: + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-mdx-expression@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz" + integrity sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-space@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz" + integrity sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-title@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz" + integrity sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-whitespace@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz" + integrity sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-character@^1.0.0, micromark-util-character@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz" + integrity sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-chunked@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz" + integrity sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-classify-character@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz" + integrity sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-combine-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz" + integrity sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ== + dependencies: + micromark-util-chunked "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-decode-numeric-character-reference@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz" + integrity sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-decode-string@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz" + integrity sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz" + integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== + +micromark-util-events-to-acorn@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz" + integrity sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + estree-util-visit "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-util-html-tag-name@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz" + integrity sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw== + +micromark-util-normalize-identifier@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz" + integrity sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-resolve-all@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz" + integrity sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA== + dependencies: + micromark-util-types "^2.0.0" + +micromark-util-sanitize-uri@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz" + integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-subtokenize@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz" + integrity sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-symbol@^1.0.0, micromark-util-symbol@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-symbol@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz" + integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== + +micromark-util-types@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark-util-types@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz" + integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== + +micromark@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz" + integrity sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +"mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.27: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@^2.1.31: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@~2.1.17, mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + +mime-types@~2.1.24: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + +mini-css-extract-plugin@^2.7.6: + version "2.8.1" + resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz" + integrity sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA== + dependencies: + schema-utils "^4.0.0" + tapable "^2.2.1" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0: + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mrmime@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-emoji@^2.1.0: + version "2.1.3" + resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz" + integrity sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA== + dependencies: + "@sindresorhus/is" "^4.6.0" + char-regex "^1.0.2" + emojilib "^2.4.0" + skin-tone "^2.0.0" + +node-forge@^1: + version "1.3.1" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +normalize-url@^8.0.0: + version "8.0.1" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz" + integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.5" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.0.9, open@^8.4.0: + version "8.4.2" + resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^8.1.0: + version "8.1.1" + resolved "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz" + integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== + dependencies: + got "^12.1.0" + registry-auth-token "^5.0.1" + registry-url "^6.0.0" + semver "^7.3.7" + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-entities@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz" + integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== + dependencies: + "@types/unist" "^2.0.0" + character-entities "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-numeric-range@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz" + integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== + +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== + dependencies: + domhandler "^5.0.2" + parse5 "^7.0.0" + +parse5@^7.0.0: + version "7.1.2" + resolved "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-is-inside@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-to-regexp@2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz" + integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +periscopic@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz" + integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^3.0.0" + is-reference "^3.0.0" + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== + dependencies: + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" + +postcss-colormin@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz" + integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^5.1.3: + version "5.1.3" + resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz" + integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-discard-comments@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== + +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== + +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== + +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== + +postcss-discard-unused@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz" + integrity sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-loader@^7.3.3: + version "7.3.4" + resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz" + integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== + dependencies: + cosmiconfig "^8.3.5" + jiti "^1.20.0" + semver "^7.5.4" + +postcss-merge-idents@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz" + integrity sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-merge-longhand@^5.1.7: + version "5.1.7" + resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz" + integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^5.1.1" + +postcss-merge-rules@^5.1.4: + version "5.1.4" + resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz" + integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz" + integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== + dependencies: + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^5.1.4: + version "5.1.4" + resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz" + integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== + dependencies: + browserslist "^4.21.4" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz" + integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + +postcss-modules-local-by-default@^4.0.5: + version "4.0.5" + resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz" + integrity sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz" + integrity sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== + +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz" + integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== + dependencies: + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz" + integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-reduce-idents@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz" + integrity sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz" + integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.16" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz" + integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-sort-media-queries@^4.4.1: + version "4.4.1" + resolved "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz" + integrity sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw== + dependencies: + sort-css-media-queries "2.1.0" + +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^2.7.0" + +postcss-unique-selectors@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz" + integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-zindex@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz" + integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A== + +"postcss@^7.0.0 || ^8.0.1", postcss@^8.0.9, postcss@^8.1.0, postcss@^8.2.15, postcss@^8.2.2, postcss@^8.4.16, postcss@^8.4.17, postcss@^8.4.21, postcss@^8.4.26, postcss@^8.4.33: + version "8.4.38" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty-time@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz" + integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== + +prism-react-renderer@^2.3.0: + version "2.3.1" + resolved "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz" + integrity sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw== + dependencies: + "@types/prismjs" "^1.26.0" + clsx "^2.0.0" + +prismjs@^1.29.0: + version "1.29.0" + resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.6.2, prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^6.0.0: + version "6.5.0" + resolved "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz" + integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pupa@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz" + integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== + dependencies: + escape-goat "^4.0.0" + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue@6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" + integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@1.2.8: + version "1.2.8" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dev-utils@^12.0.1: + version "12.0.1" + resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz" + integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== + dependencies: + "@babel/code-frame" "^7.16.0" + address "^1.1.2" + browserslist "^4.18.1" + chalk "^4.1.2" + cross-spawn "^7.0.3" + detect-port-alt "^1.1.6" + escape-string-regexp "^4.0.0" + filesize "^8.0.6" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^6.5.0" + global-modules "^2.0.0" + globby "^11.0.4" + gzip-size "^6.0.0" + immer "^9.0.7" + is-root "^2.1.0" + loader-utils "^3.2.0" + open "^8.4.0" + pkg-up "^3.1.0" + prompts "^2.4.2" + react-error-overlay "^6.0.11" + recursive-readdir "^2.2.2" + shell-quote "^1.7.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +react-dom@*, "react-dom@^16.6.0 || ^17.0.0 || ^18.0.0", react-dom@^18.0.0, "react-dom@>= 16.8.0 < 19.0.0": + version "18.2.0" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-error-overlay@^6.0.11: + version "6.0.11" + resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz" + integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== + +react-fast-compare@^3.2.0: + version "3.2.2" + resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + +react-helmet-async@*, react-helmet-async@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz" + integrity sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg== + dependencies: + "@babel/runtime" "^7.12.5" + invariant "^2.2.4" + prop-types "^15.7.2" + react-fast-compare "^3.2.0" + shallowequal "^1.1.0" + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-json-view-lite@^1.2.0: + version "1.3.0" + resolved "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.3.0.tgz" + integrity sha512-aN1biKC5v4DQkmQBlZjuMFR09MKZGMPtIg+cut8zEeg2HXd6gl2gRy0n4HMacHf0dznQgo0SVXN7eT8zV3hEuQ== + +react-loadable-ssr-addon-v5-slorber@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz" + integrity sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A== + dependencies: + "@babel/runtime" "^7.10.3" + +react-loadable@*, "react-loadable@npm:@docusaurus/react-loadable@5.5.2": + version "5.5.2" + resolved "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz" + integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== + dependencies: + "@types/react" "*" + prop-types "^15.6.2" + +react-router-config@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz" + integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== + dependencies: + "@babel/runtime" "^7.1.2" + +react-router-dom@^5.3.4: + version "5.3.4" + resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@^5.3.4, react-router@>=5, react-router@5.3.4: + version "5.3.4" + resolved "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react@*, "react@^16.13.1 || ^17.0.0 || ^18.0.0", "react@^16.6.0 || ^17.0.0 || ^18.0.0", react@^18.0.0, react@^18.2.0, "react@>= 16.8.0 < 19.0.0", react@>=15, react@>=16, react@>=16.0.0: + version "18.2.0" + resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reading-time@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz" + integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +recursive-readdir@^2.2.2: + version "2.2.3" + resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz" + integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== + dependencies: + minimatch "^3.0.5" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +registry-auth-token@^5.0.1: + version "5.0.2" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz" + integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== + dependencies: + "@pnpm/npm-conf" "^2.1.0" + +registry-url@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== + dependencies: + rc "1.2.8" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +rehype-raw@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz" + integrity sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww== + dependencies: + "@types/hast" "^3.0.0" + hast-util-raw "^9.0.0" + vfile "^6.0.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remark-directive@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz" + integrity sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-directive "^3.0.0" + micromark-extension-directive "^3.0.0" + unified "^11.0.0" + +remark-emoji@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz" + integrity sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg== + dependencies: + "@types/mdast" "^4.0.2" + emoticon "^4.0.1" + mdast-util-find-and-replace "^3.0.1" + node-emoji "^2.1.0" + unified "^11.0.4" + +remark-frontmatter@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz" + integrity sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-frontmatter "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + unified "^11.0.0" + +remark-gfm@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz" + integrity sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-gfm "^3.0.0" + micromark-extension-gfm "^3.0.0" + remark-parse "^11.0.0" + remark-stringify "^11.0.0" + unified "^11.0.0" + +remark-mdx@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz" + integrity sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA== + dependencies: + mdast-util-mdx "^3.0.0" + micromark-extension-mdxjs "^3.0.0" + +remark-parse@^11.0.0: + version "11.0.0" + resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz" + integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + micromark-util-types "^2.0.0" + unified "^11.0.0" + +remark-rehype@^11.0.0: + version "11.1.0" + resolved "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz" + integrity sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + mdast-util-to-hast "^13.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +remark-stringify@^11.0.0: + version "11.0.0" + resolved "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz" + integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-to-markdown "^2.0.0" + unified "^11.0.0" + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +"require-like@>= 0.1.1": + version "0.1.2" + resolved "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz" + integrity sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve@^1.1.6, resolve@^1.14.2: + version "1.22.8" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rtl-detect@^1.0.4: + version "1.1.2" + resolved "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz" + integrity sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ== + +rtlcss@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/rtlcss/-/rtlcss-4.1.1.tgz" + integrity sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + postcss "^8.4.21" + strip-json-comments "^3.1.1" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.3.0" + resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +schema-utils@^3.0.0: + version "3.3.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^3.1.1: + version "3.3.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +"search-insights@>= 1 < 3": + version "2.13.0" + resolved "https://registry.npmjs.org/search-insights/-/search-insights-2.13.0.tgz" + integrity sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw== + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.1.1: + version "2.4.1" + resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + +semver-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz" + integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== + dependencies: + semver "^7.3.5" + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.4: + version "7.6.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-handler@^6.1.5: + version "6.1.5" + resolved "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz" + integrity sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + fast-url-parser "1.1.3" + mime-types "2.1.18" + minimatch "3.1.2" + path-is-inside "1.0.2" + path-to-regexp "2.2.1" + range-parser "1.2.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.7.3, shell-quote@^1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +shelljs@^0.8.5: + version "0.8.5" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +sirv@^2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== + dependencies: + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" + totalist "^3.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +sitemap@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz" + integrity sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg== + dependencies: + "@types/node" "^17.0.5" + "@types/sax" "^1.2.1" + arg "^5.0.0" + sax "^1.2.4" + +skin-tone@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz" + integrity sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA== + dependencies: + unicode-emoji-modifier-base "^1.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +sort-css-media-queries@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz" + integrity sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA== + +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.0: + version "0.7.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +srcset@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz" + integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +std-env@^3.0.1: + version "3.7.0" + resolved "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +string-width@^4.1.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +style-to-object@^0.4.0: + version "0.4.4" + resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz" + integrity sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg== + dependencies: + inline-style-parser "0.1.1" + +style-to-object@^1.0.0: + version "1.0.6" + resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.6.tgz" + integrity sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA== + dependencies: + inline-style-parser "0.2.3" + +stylehacks@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz" + integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== + dependencies: + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-parser@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^2.7.0, svgo@^2.8.0: + version "2.8.0" + resolved "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.9: + version "5.3.10" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" + +terser@^5.10.0, terser@^5.15.1, terser@^5.26.0: + version "5.30.3" + resolved "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz" + integrity sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tiny-invariant@^1.0.2: + version "1.3.3" + resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz" + integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== + +tiny-warning@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trough@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz" + integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== + +tslib@^2.0.3, tslib@^2.6.0: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +type-fest@^1.0.1: + version "1.4.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^2.13.0, type-fest@^2.5.0: + version "2.19.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +"typescript@>= 2.7", typescript@>=4.9.5, typescript@~5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-emoji-modifier-base@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz" + integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unified@^11.0.0, unified@^11.0.3, unified@^11.0.4: + version "11.0.4" + resolved "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz" + integrity sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ== + dependencies: + "@types/unist" "^3.0.0" + bail "^2.0.0" + devlop "^1.0.0" + extend "^3.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^6.0.0" + +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== + dependencies: + crypto-random-string "^4.0.0" + +unist-util-is@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz" + integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position-from-estree@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz" + integrity sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-remove-position@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz" + integrity sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q== + dependencies: + "@types/unist" "^3.0.0" + unist-util-visit "^5.0.0" + +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz" + integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz" + integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unpipe@~1.0.0, unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +update-notifier@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz" + integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== + dependencies: + boxen "^7.0.0" + chalk "^5.0.1" + configstore "^6.0.0" + has-yarn "^3.0.0" + import-lazy "^4.0.0" + is-ci "^3.0.1" + is-installed-globally "^0.4.0" + is-npm "^6.0.0" + is-yarn-global "^0.4.0" + latest-version "^7.0.0" + pupa "^3.1.0" + semver "^7.3.7" + semver-diff "^4.0.0" + xdg-basedir "^5.1.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utila@~0.4: + version "0.4.0" + resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utility-types@^3.10.0: + version "3.11.0" + resolved "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz" + integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vfile-location@^5.0.0: + version "5.0.2" + resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz" + integrity sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg== + dependencies: + "@types/unist" "^3.0.0" + vfile "^6.0.0" + +vfile-message@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz" + integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile@^6.0.0, vfile@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz" + integrity sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +watchpack@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + +webpack-bundle-analyzer@^4.9.0: + version "4.10.2" + resolved "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz" + integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== + dependencies: + "@discoveryjs/json-ext" "0.5.7" + acorn "^8.0.4" + acorn-walk "^8.0.0" + commander "^7.2.0" + debounce "^1.2.1" + escape-string-regexp "^4.0.0" + gzip-size "^6.0.0" + html-escaper "^2.0.2" + opener "^1.5.2" + picocolors "^1.0.0" + sirv "^2.0.3" + ws "^7.3.1" + +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.15.1: + version "4.15.2" + resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.5" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.4" + ws "^8.13.0" + +webpack-merge@^5.9.0: + version "5.10.0" + resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +"webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.20.0, webpack@^5.88.1, "webpack@>= 4", "webpack@>=4.41.1 || 5.x", webpack@>=5, "webpack@3 || 4 || 5": + version "5.91.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz" + integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.16.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +webpackbar@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz" + integrity sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ== + dependencies: + chalk "^4.1.0" + consola "^2.15.3" + pretty-time "^1.1.0" + std-env "^3.0.1" + +websocket-driver@^0.7.4, websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +which@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== + dependencies: + string-width "^5.0.1" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.3.1: + version "7.5.9" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^8.13.0: + version "8.16.0" + resolved "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + +xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== From c3dff00513949d15902af964e1c6c70d78264754 Mon Sep 17 00:00:00 2001 From: Kelvin Clement Mwinuka Date: Tue, 10 Sep 2024 23:55:26 +0800 Subject: [PATCH 2/8] Updated cache-directory-path to cache-dependency-path --- .github/workflows/test-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index 7321e37b..02603fb9 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -23,7 +23,7 @@ jobs: with: node-version: 18 cache: pnpm - cache-directory-path: ./docs/pnpm-lock.yaml + cache-dependency-path: ./docs/pnpm-lock.yaml - name: Install dependencies run: pnpm install - name: Test build website From aa66d098ec589c3c02fcfe7712deef1e815ec791 Mon Sep 17 00:00:00 2001 From: Kelvin Clement Mwinuka Date: Tue, 10 Sep 2024 23:57:51 +0800 Subject: [PATCH 3/8] Updated cache-dependency-path in test-deploy --- .github/workflows/test-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index 02603fb9..bcc8b6d0 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -23,7 +23,7 @@ jobs: with: node-version: 18 cache: pnpm - cache-dependency-path: ./docs/pnpm-lock.yaml + cache-dependency-path: docs/pnpm-lock.yaml - name: Install dependencies run: pnpm install - name: Test build website From a151d026053bc9286e1504576fb20be4991646d1 Mon Sep 17 00:00:00 2001 From: Kelvin Clement Mwinuka Date: Wed, 11 Sep 2024 00:06:24 +0800 Subject: [PATCH 4/8] Added --prefix to pnpm steps in the test-deploy workflow --- .github/workflows/test-deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index bcc8b6d0..f20bddc6 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -25,6 +25,6 @@ jobs: cache: pnpm cache-dependency-path: docs/pnpm-lock.yaml - name: Install dependencies - run: pnpm install + run: pnpm --prefix docs install - name: Test build website - run: pnpm run build \ No newline at end of file + run: pnpm --prefix docs run build \ No newline at end of file From 25161a9eb1b35c31be744414b399e2478f938b9e Mon Sep 17 00:00:00 2001 From: Kelvin Clement Mwinuka Date: Wed, 11 Sep 2024 00:11:25 +0800 Subject: [PATCH 5/8] Renamed test-deploy job to test_docs_deploy and added --prefix flag to build_docs job --- .github/workflows/release.yml | 6 +++--- .github/workflows/test-deploy.yml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0ae601a0..b10b6886 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -91,13 +91,13 @@ jobs: cache: pnpm cache-dependency-path: ./docs/pnpm-lock.yaml - name: Install dependencies - run: pnpm install + run: pnpm --prefix docs install - name: Build website - run: pnpm run build + run: pnpm --prefix docs run build - name: Upload Build Artifact uses: actions/upload-pages-artifact@v3 with: - path: ./docs/build + path: docs/build publish_docs: name: Publish docusaurus docs to GitHub pages diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index f20bddc6..36cfe803 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -8,8 +8,8 @@ on: # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on jobs: - test-deploy: - name: Test deployment + test_docs_deploy: + name: Test docusaurus documentation deployment runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From e01e17b030a19f7d43d2bde70de0efaf3e6bf2db Mon Sep 17 00:00:00 2001 From: Kelvin Clement Mwinuka Date: Wed, 11 Sep 2024 00:24:46 +0800 Subject: [PATCH 6/8] Added build_docs and publish_docs to test-deploy to debug the docs release jobs --- .github/workflows/test-deploy.yml | 44 ++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index 36cfe803..967a2e61 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -27,4 +27,46 @@ jobs: - name: Install dependencies run: pnpm --prefix docs install - name: Test build website - run: pnpm --prefix docs run build \ No newline at end of file + run: pnpm --prefix docs run build + + build_docs: + name: Build docusaurus documentation + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: pnpm/action-setup@v4 + name: Install pnpm + with: + version: 9 + - uses: actions/setup-node@v4 + with: + node-version: 18 + cache: pnpm + cache-dependency-path: ./docs/pnpm-lock.yaml + - name: Install dependencies + run: pnpm --prefix docs install + - name: Build website + run: pnpm --prefix docs run build + - name: Upload Build Artifact + uses: actions/upload-pages-artifact@v3 + with: + path: docs/build + + publish_docs: + name: Publish docusaurus docs to GitHub pages + needs: build_docs + permissions: + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + environment: + # Deploy to the github-pages environment + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file From 7461161ce43ca075310262d174ef13d01d4c4b7d Mon Sep 17 00:00:00 2001 From: Kelvin Clement Mwinuka Date: Wed, 11 Sep 2024 00:37:06 +0800 Subject: [PATCH 7/8] Updated commend to force workflow re-trigger --- .github/workflows/test-deploy.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index 967a2e61..7588c2f5 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -69,4 +69,6 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 \ No newline at end of file + uses: actions/deploy-pages@v4 + + # Update comment \ No newline at end of file From 312f3bb6fc836983e0ba5d3ca3578c7e43a4fa2e Mon Sep 17 00:00:00 2001 From: Kelvin Clement Mwinuka Date: Wed, 11 Sep 2024 00:40:22 +0800 Subject: [PATCH 8/8] Removed build and publish jobs in test-deploy workflow --- .github/workflows/test-deploy.yml | 44 ------------------------------- 1 file changed, 44 deletions(-) diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index 7588c2f5..6baea961 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -28,47 +28,3 @@ jobs: run: pnpm --prefix docs install - name: Test build website run: pnpm --prefix docs run build - - build_docs: - name: Build docusaurus documentation - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: pnpm - cache-dependency-path: ./docs/pnpm-lock.yaml - - name: Install dependencies - run: pnpm --prefix docs install - - name: Build website - run: pnpm --prefix docs run build - - name: Upload Build Artifact - uses: actions/upload-pages-artifact@v3 - with: - path: docs/build - - publish_docs: - name: Publish docusaurus docs to GitHub pages - needs: build_docs - permissions: - # Grant GITHUB_TOKEN the permissions required to make a Pages deployment - pages: write # to deploy to Pages - id-token: write # to verify the deployment originates from an appropriate source - environment: - # Deploy to the github-pages environment - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 - - # Update comment \ No newline at end of file