From 6891792f4ed07628dd67433fc6b69d9238d8aab5 Mon Sep 17 00:00:00 2001 From: Alexey Zimarev Date: Wed, 22 May 2024 09:58:54 +0100 Subject: [PATCH] New docs (#2200) * Migrated documentation to Docusaurus --- .github/workflows/build-dev.yml | 12 +- .github/workflows/pull-request-docs.yml | 20 + .github/workflows/pull-request.yml | 30 +- .idea/.gitignore | 1 + Directory.Packages.props | 4 +- RestSharp.sln | 30 - docs/.gitignore | 20 + docs/.idea/.gitignore | 3 + docs/.idea/codeStyles/codeStyleConfig.xml | 5 - docs/.idea/dictionaries/alexey.xml | 7 - docs/.idea/material_theme_project_new.xml | 18 + docs/.idea/misc.xml | 6 - docs/.vuepress/config.js | 64 - docs/.vuepress/styles/index.scss | 4 - docs/.vuepress/styles/palette.scss | 3 - .../CI-CD_DOCUMENTATION.md | 67 - .../CI-CD_DOCUMENTATION/CodeQL_alert_page.png | Bin 55356 -> 0 bytes docs/CI-CD_DOCUMENTATION/CodeQL_results.png | Bin 56671 -> 0 bytes docs/CI-CD_DOCUMENTATION/Dependabot_PRs.png | Bin 64548 -> 0 bytes .../Dependabot_alert_page.png | Bin 48809 -> 0 bytes .../Dependabot_alerts_page.png | Bin 25137 -> 0 bytes .../Dependabot_dependency_graph.png | Bin 53551 -> 0 bytes .../Dependabot_log_page.png | Bin 49583 -> 0 bytes docs/CI-CD_DOCUMENTATION/Dependabot_tab.png | Bin 42873 -> 0 bytes docs/README.md | 58 +- docs/babel.config.js | 3 + docs/docs/advanced/_category_.json | 7 + docs/{ => docs/advanced}/authenticators.md | 20 +- docs/{ => docs/advanced}/error-handling.md | 7 +- docs/{ => docs/advanced}/interceptors.md | 0 docs/{ => docs/advanced}/serialization.md | 20 +- docs/{ => docs}/intro.md | 36 +- docs/docs/usage/_category_.json | 7 + docs/docs/usage/example.md | 148 + docs/{ => docs/usage}/usage.md | 231 +- docs/docusaurus.config.ts | 106 + docs/package-lock.json | 14655 ++++++++++++++++ docs/package.json | 47 + docs/sidebars.ts | 21 + .../src/components/HomepageFeatures/index.tsx | 70 + .../HomepageFeatures/styles.module.css | 11 + docs/src/css/custom.css | 30 + docs/src/pages/index.module.css | 23 + docs/src/pages/index.tsx | 43 + docs/src/pages/markdown-page.md | 7 + .../README.md => src/pages/support.md} | 24 +- docs/{v107/README.md => src/pages/v107.md} | 4 +- docs/static/.nojekyll | 0 .../img}/android-chrome-192x192.png | Bin .../img}/android-chrome-512x512.png | Bin .../img}/apple-touch-icon.png | Bin .../public => static/img}/aws_logo.png | Bin .../public => static/img}/favicon-16x16.png | Bin .../public => static/img}/favicon-32x32.png | Bin .../public => static/img}/favicon.ico | Bin .../public => static/img}/restsharp.png | Bin .../public => static/img}/site.webmanifest | 0 docs/tsconfig.json | 7 + docs/v107/interfaces.md | 112 - docs/yarn.lock | 8391 +++++++++ .../CsvHelperSerializer.cs | 11 +- ...BasicAuthenticator.cs => HttpBasicAuth.cs} | 4 +- .../{OAuth1Authenticator.cs => OAuth1Auth.cs} | 18 +- src/RestSharp/ContentType.cs | 4 +- src/RestSharp/KnownHeaders.cs | 2 + .../Request/PropertyCache.Populator.cs | 53 +- .../Request/RestRequestExtensions.Body.cs | 120 + .../Request/RestRequestExtensions.File.cs | 91 + .../Request/RestRequestExtensions.Headers.cs | 118 + .../Request/RestRequestExtensions.Object.cs | 65 + .../Request/RestRequestExtensions.Query.cs | 41 + .../Request/RestRequestExtensions.Url.cs | 42 + .../Request/RestRequestExtensions.cs | 422 +- src/RestSharp/RestClient.Async.cs | 2 +- src/RestSharp/RestClient.cs | 8 +- src/RestSharp/RestSharp.csproj | 19 +- .../Serializers/Xml/DotNetXmlSerializer.cs | 2 +- .../AuthenticationTests.cs | 8 +- test/RestSharp.InteractiveTests/Program.cs | 2 +- .../TwitterClient.cs | 2 +- .../Authentication/AuthenticationTests.cs | 13 +- .../Authentication/OAuth2Tests.cs | 13 +- .../CompressionTests.cs | 22 +- .../RestSharp.Tests.Integrated/CookieTests.cs | 1 - .../DefaultParameterTests.cs | 24 +- .../DownloadFileTests.cs | 1 + .../Fixtures/CaptureFixture.cs | 1 - .../Fixtures/CookieExtensions.cs | 2 - .../Fixtures/OutputLogger.cs | 8 +- .../HttpClientTests.cs | 13 +- .../HttpHeadersTests.cs | 16 +- .../Interceptor/InterceptorTests.cs | 32 +- .../JsonBodyTests.cs | 14 +- .../MultipartFormDataTests.cs | 7 +- .../NonProtocolExceptionHandlingTests.cs | 17 +- test/RestSharp.Tests.Integrated/NtlmTests.cs | 9 +- test/RestSharp.Tests.Integrated/PostTests.cs | 13 +- test/RestSharp.Tests.Integrated/PutTests.cs | 15 +- .../RedirectTests.cs | 31 +- .../RequestBodyTests.cs | 15 +- .../RequestFailureTests.cs | 16 +- .../RequestTests.cs | 17 +- .../RestSharp.Tests.Integrated.csproj | 9 +- .../RootElementTests.cs | 1 - .../Server/Handlers/CookieHandlers.cs | 70 - .../Server/Handlers/FileHandlers.cs | 39 - .../Server/Handlers/FormRequest.cs | 12 - .../Server/Handlers/HeaderHandlers.cs | 10 - .../Server/Handlers/RequestHandlers.cs | 20 - .../Server/TestServer.cs | 77 - .../Server/TestServerFixture.cs | 13 - .../Server/WireMockTestServer.cs | 67 +- .../StatusCodeTests.cs | 4 +- .../StructuredSyntaxSuffixTests.cs | 2 +- .../TestResponse.cs | 1 - .../UploadFileTests.cs | 21 +- .../XmlResponseTests.cs | 3 - .../xunit.runner.json | 4 - .../CsvHelperTests.cs | 91 +- .../TestObject.cs | 14 +- .../NewtonsoftJson/IntegratedSimpleTests.cs | 36 +- .../NewtonsoftJson/SerializationTests.cs | 27 +- .../SystemTextJson/SystemTextJsonTests.cs | 44 +- .../WireMockExtensions.cs | 3 +- test/RestSharp.Tests/AddRangeTests.cs | 12 +- .../Auth/AuthenticatorTests.cs | 42 + .../Auth/HttpBasicAuthTests.cs | 27 + .../{ => Auth}/JwtAuthTests.cs | 44 +- .../OAuth1AuthTests.cs} | 71 +- .../RestSharp.Tests/{ => Auth}/OAuth1Tests.cs | 32 +- test/RestSharp.Tests/{ => Auth}/OAuthTests.cs | 5 +- test/RestSharp.Tests/AuthenticatorTests.cs | 66 - .../Fixtures/MockHttpClient.cs | 18 + .../HttpBasicAuthenticatorTests.cs | 36 - test/RestSharp.Tests/MultipartFormTests.cs | 18 +- test/RestSharp.Tests/ObjectParserTests.cs | 2 +- test/RestSharp.Tests/OptionsTests.cs | 9 +- .../ParameterValidationTests.cs | 42 + test/RestSharp.Tests/ParametersTests.cs | 26 +- test/RestSharp.Tests/RequestHeaderTests.cs | 120 +- test/RestSharp.Tests/RestClientTests.cs | 40 +- test/RestSharp.Tests/RestContentTests.cs | 2 +- .../RestRequestParametersTests.cs | 75 - test/RestSharp.Tests/RestRequestTests.cs | 26 +- test/RestSharp.Tests/RestSharp.Tests.csproj | 14 + test/RestSharp.Tests/UrlBuilderTests.cs | 179 +- 146 files changed, 25042 insertions(+), 2148 deletions(-) create mode 100644 .github/workflows/pull-request-docs.yml create mode 100644 docs/.gitignore delete mode 100644 docs/.idea/codeStyles/codeStyleConfig.xml delete mode 100644 docs/.idea/dictionaries/alexey.xml create mode 100644 docs/.idea/material_theme_project_new.xml delete mode 100644 docs/.idea/misc.xml delete mode 100644 docs/.vuepress/config.js delete mode 100644 docs/.vuepress/styles/index.scss delete mode 100644 docs/.vuepress/styles/palette.scss delete mode 100644 docs/CI-CD_DOCUMENTATION/CI-CD_DOCUMENTATION.md delete mode 100644 docs/CI-CD_DOCUMENTATION/CodeQL_alert_page.png delete mode 100644 docs/CI-CD_DOCUMENTATION/CodeQL_results.png delete mode 100644 docs/CI-CD_DOCUMENTATION/Dependabot_PRs.png delete mode 100644 docs/CI-CD_DOCUMENTATION/Dependabot_alert_page.png delete mode 100644 docs/CI-CD_DOCUMENTATION/Dependabot_alerts_page.png delete mode 100644 docs/CI-CD_DOCUMENTATION/Dependabot_dependency_graph.png delete mode 100644 docs/CI-CD_DOCUMENTATION/Dependabot_log_page.png delete mode 100644 docs/CI-CD_DOCUMENTATION/Dependabot_tab.png create mode 100644 docs/babel.config.js create mode 100644 docs/docs/advanced/_category_.json rename docs/{ => docs/advanced}/authenticators.md (87%) rename docs/{ => docs/advanced}/error-handling.md (95%) rename docs/{ => docs/advanced}/interceptors.md (100%) rename docs/{ => docs/advanced}/serialization.md (74%) rename docs/{ => docs}/intro.md (65%) create mode 100644 docs/docs/usage/_category_.json create mode 100644 docs/docs/usage/example.md rename docs/{ => docs/usage}/usage.md (74%) create mode 100644 docs/docusaurus.config.ts create mode 100644 docs/package-lock.json create mode 100644 docs/package.json create mode 100644 docs/sidebars.ts create mode 100644 docs/src/components/HomepageFeatures/index.tsx create mode 100644 docs/src/components/HomepageFeatures/styles.module.css create mode 100644 docs/src/css/custom.css create mode 100644 docs/src/pages/index.module.css create mode 100644 docs/src/pages/index.tsx create mode 100644 docs/src/pages/markdown-page.md rename docs/{support/README.md => src/pages/support.md} (95%) rename docs/{v107/README.md => src/pages/v107.md} (99%) create mode 100644 docs/static/.nojekyll rename docs/{.vuepress/public => static/img}/android-chrome-192x192.png (100%) rename docs/{.vuepress/public => static/img}/android-chrome-512x512.png (100%) rename docs/{.vuepress/public => static/img}/apple-touch-icon.png (100%) rename docs/{.vuepress/public => static/img}/aws_logo.png (100%) rename docs/{.vuepress/public => static/img}/favicon-16x16.png (100%) rename docs/{.vuepress/public => static/img}/favicon-32x32.png (100%) rename docs/{.vuepress/public => static/img}/favicon.ico (100%) rename docs/{.vuepress/public => static/img}/restsharp.png (100%) rename docs/{.vuepress/public => static/img}/site.webmanifest (100%) create mode 100644 docs/tsconfig.json delete mode 100644 docs/v107/interfaces.md create mode 100644 docs/yarn.lock rename src/RestSharp/Authenticators/{HttpBasicAuthenticator.cs => HttpBasicAuth.cs} (87%) rename src/RestSharp/Authenticators/OAuth/{OAuth1Authenticator.cs => OAuth1Auth.cs} (94%) create mode 100644 src/RestSharp/Request/RestRequestExtensions.Body.cs create mode 100644 src/RestSharp/Request/RestRequestExtensions.File.cs create mode 100644 src/RestSharp/Request/RestRequestExtensions.Headers.cs create mode 100644 src/RestSharp/Request/RestRequestExtensions.Object.cs create mode 100644 src/RestSharp/Request/RestRequestExtensions.Query.cs create mode 100644 src/RestSharp/Request/RestRequestExtensions.Url.cs delete mode 100644 test/RestSharp.Tests.Integrated/Server/Handlers/CookieHandlers.cs delete mode 100644 test/RestSharp.Tests.Integrated/Server/Handlers/FileHandlers.cs delete mode 100644 test/RestSharp.Tests.Integrated/Server/Handlers/FormRequest.cs delete mode 100644 test/RestSharp.Tests.Integrated/Server/Handlers/HeaderHandlers.cs delete mode 100644 test/RestSharp.Tests.Integrated/Server/Handlers/RequestHandlers.cs delete mode 100644 test/RestSharp.Tests.Integrated/Server/TestServer.cs delete mode 100644 test/RestSharp.Tests.Integrated/Server/TestServerFixture.cs delete mode 100644 test/RestSharp.Tests.Integrated/TestResponse.cs delete mode 100644 test/RestSharp.Tests.Integrated/xunit.runner.json rename test/RestSharp.Tests.Shared/{Fixtures => Extensions}/WireMockExtensions.cs (89%) create mode 100644 test/RestSharp.Tests/Auth/AuthenticatorTests.cs create mode 100644 test/RestSharp.Tests/Auth/HttpBasicAuthTests.cs rename test/RestSharp.Tests/{ => Auth}/JwtAuthTests.cs (71%) rename test/RestSharp.Tests/{OAuth1AuthenticatorTests.cs => Auth/OAuth1AuthTests.cs} (71%) rename test/RestSharp.Tests/{ => Auth}/OAuth1Tests.cs (81%) rename test/RestSharp.Tests/{ => Auth}/OAuthTests.cs (97%) delete mode 100644 test/RestSharp.Tests/AuthenticatorTests.cs create mode 100644 test/RestSharp.Tests/Fixtures/MockHttpClient.cs delete mode 100644 test/RestSharp.Tests/HttpBasicAuthenticatorTests.cs create mode 100644 test/RestSharp.Tests/ParameterValidationTests.cs delete mode 100644 test/RestSharp.Tests/RestRequestParametersTests.cs diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index 26c0b4bf0..4679d8862 100644 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -22,12 +22,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 - - - name: Setup .NET - uses: actions/setup-dotnet@v3 - with: - dotnet-version: '7.0.102' + uses: actions/checkout@v4 +# - +# name: Setup .NET +# uses: actions/setup-dotnet@v3 +# with: +# dotnet-version: '7.0.102' - name: Unshallow run: git fetch --prune --unshallow diff --git a/.github/workflows/pull-request-docs.yml b/.github/workflows/pull-request-docs.yml new file mode 100644 index 000000000..a28ed530d --- /dev/null +++ b/.github/workflows/pull-request-docs.yml @@ -0,0 +1,20 @@ +name: Build and test PRs with docs + +on: + pull_request: + paths: + - docs/** + +jobs: + docs: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Build docs + run: | + cd docs + yarn install + yarn build diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 1daf73fbb..fa1806ee4 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -1,6 +1,9 @@ name: Build and test PRs -on: [pull_request] +on: + pull_request: + paths-ignore: + - docs/** permissions: contents: read @@ -26,11 +29,6 @@ jobs: - name: Checkout uses: actions/checkout@v4 -# - -# name: Setup .NET -# uses: actions/setup-dotnet@v3 -# with: -# dotnet-version: '8.0' - name: Run tests run: dotnet test -f ${{ matrix.dotnet }} @@ -54,12 +52,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 -# - -# name: Setup .NET -# uses: actions/setup-dotnet@v3 -# with: -# dotnet-version: '8.0' + uses: actions/checkout@v4 - name: Run tests run: dotnet test -f ${{ matrix.dotnet }} @@ -73,16 +66,3 @@ jobs: test-results/**/*.xml test-results/**/*.trx test-results/**/*.json - - docs: - runs-on: ubuntu-latest - - steps: - - - name: Checkout - uses: actions/checkout@v3 - - - name: Build docs - run: | - yarn install - yarn docs:build diff --git a/.idea/.gitignore b/.idea/.gitignore index b58b603fe..9b0e31c26 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -3,3 +3,4 @@ /workspace.xml # Editor-based HTTP Client requests /httpRequests/ +/material_theme_project_new.xml diff --git a/Directory.Packages.props b/Directory.Packages.props index df91988b6..fd7ce005e 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -12,9 +12,9 @@ 8.0.3 - + - + diff --git a/RestSharp.sln b/RestSharp.sln index 711c5536c..b3efff12e 100644 --- a/RestSharp.sln +++ b/RestSharp.sln @@ -446,36 +446,6 @@ Global {FE778406-ADCF-45A1-B775-A054B55BFC50}.Release|x64.Build.0 = Release|Any CPU {FE778406-ADCF-45A1-B775-A054B55BFC50}.Release|x86.ActiveCfg = Release|Any CPU {FE778406-ADCF-45A1-B775-A054B55BFC50}.Release|x86.Build.0 = Release|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug.Appveyor|Any CPU.ActiveCfg = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug.Appveyor|Any CPU.Build.0 = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug.Appveyor|ARM.ActiveCfg = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug.Appveyor|ARM.Build.0 = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug.Appveyor|Mixed Platforms.ActiveCfg = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug.Appveyor|Mixed Platforms.Build.0 = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug.Appveyor|x64.ActiveCfg = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug.Appveyor|x64.Build.0 = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug.Appveyor|x86.ActiveCfg = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug.Appveyor|x86.Build.0 = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug|ARM.ActiveCfg = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug|ARM.Build.0 = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug|x64.ActiveCfg = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug|x64.Build.0 = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug|x86.ActiveCfg = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Debug|x86.Build.0 = Debug|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Release|Any CPU.Build.0 = Release|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Release|ARM.ActiveCfg = Release|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Release|ARM.Build.0 = Release|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Release|x64.ActiveCfg = Release|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Release|x64.Build.0 = Release|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Release|x86.ActiveCfg = Release|Any CPU - {5E8D472F-5A12-4CD8-8DBE-E3F6E0F76798}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..b2d6de306 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,20 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# 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/.idea/.gitignore b/docs/.idea/.gitignore index b58b603fe..13566b81b 100644 --- a/docs/.idea/.gitignore +++ b/docs/.idea/.gitignore @@ -3,3 +3,6 @@ /workspace.xml # Editor-based HTTP Client requests /httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/docs/.idea/codeStyles/codeStyleConfig.xml b/docs/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index a55e7a179..000000000 --- a/docs/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/docs/.idea/dictionaries/alexey.xml b/docs/.idea/dictionaries/alexey.xml deleted file mode 100644 index 3fdb12f80..000000000 --- a/docs/.idea/dictionaries/alexey.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - deserialized - - - \ No newline at end of file diff --git a/docs/.idea/material_theme_project_new.xml b/docs/.idea/material_theme_project_new.xml new file mode 100644 index 000000000..8cde3b428 --- /dev/null +++ b/docs/.idea/material_theme_project_new.xml @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git a/docs/.idea/misc.xml b/docs/.idea/misc.xml deleted file mode 100644 index 28a804d89..000000000 --- a/docs/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js deleted file mode 100644 index 31d27d4b4..000000000 --- a/docs/.vuepress/config.js +++ /dev/null @@ -1,64 +0,0 @@ -module.exports = { - title: "RestSharp", - description: "Simple .NET client for HTTP REST APIs", - plugins: ["@vuepress/active-header-links"], - head: [ - ["link", {rel: "apple-touch-icon", sizes: "180x180", href: "/apple-touch-icon.png"}], - ["link", {rel: "icon", type: "image/png", sizes: "32x32", href: "/favicon-32x32.png"}], - ["link", {rel: "icon", type: "image/png", sizes: "16x16", href: "/favicon-16x16.png"}], - ["link", {rel: "manifest", href: "/site.webmanifest"}] - ], - themeConfig: { - logo: "/restsharp.png", - navbar: [ - {text: "Migration from legacy", link: "/v107/"}, - {text: "Documentation", link: "/intro.html"}, - {text: "Get help", link: "/support/"}, - {text: "NuGet", link: "https://nuget.org/packages/RestSharp"} - ], - sidebarDepth: 2, - sidebar: { - "/": [ - { - text: "", - header: "RestSharp", - children: [ - "intro.md", - "usage.md", - "serialization.md", - "authenticators.md", - "interceptors.md", - "error-handling.md" - ] - } - ], - "/v107/": [ - { - text: "", - header: "Migration from legacy", - children: [ - "/v107/README.md" - ] - } - ], - "/support/": [ - { - text: "", - header: "Get help", - children: [ - "/support/README.md" - ] - } - ] - }, - searchPlaceholder: "Search...", - lastUpdated: "Last Updated", - repo: "restsharp/RestSharp", - - docsRepo: "restsharp/RestSharp", - docsDir: "docs", - docsBranch: "dev", - editLinks: true, - editLinkText: "Help us by improving this page!" - } -} diff --git a/docs/.vuepress/styles/index.scss b/docs/.vuepress/styles/index.scss deleted file mode 100644 index 20047a04c..000000000 --- a/docs/.vuepress/styles/index.scss +++ /dev/null @@ -1,4 +0,0 @@ -:root { - --content-width: 940px; - --homepage-width: 1060px; -} diff --git a/docs/.vuepress/styles/palette.scss b/docs/.vuepress/styles/palette.scss deleted file mode 100644 index 03bea932a..000000000 --- a/docs/.vuepress/styles/palette.scss +++ /dev/null @@ -1,3 +0,0 @@ -$MQNarrow: 1120px !default; -$MQMobile: 719px !default; -$MQMobileNarrow: 419px !default; diff --git a/docs/CI-CD_DOCUMENTATION/CI-CD_DOCUMENTATION.md b/docs/CI-CD_DOCUMENTATION/CI-CD_DOCUMENTATION.md deleted file mode 100644 index 65603d7f0..000000000 --- a/docs/CI-CD_DOCUMENTATION/CI-CD_DOCUMENTATION.md +++ /dev/null @@ -1,67 +0,0 @@ -# RestSharp CI/CD documentation - -## 1. Set up Dependabot - -Dependabot is a GitHub native security tool that goes through the dependencies in the project and creates alerts, and PRs with updates when a new and/or non-vulnerable version is found. - -- for PRs with version updates, this pipeline comes pre-configured for all current dependency sources in the project, so at "Insights" tab -> "Dependency graph" -> "Dependabot", you should be able to see all tracked sources of dependencies, when they have been checked last and view a full log of the last check - -![Dependabot_tab](./Dependabot_tab.png) - -![Dependabot_log_page](./Dependabot_log_page.png) - -### Set up security alerts and updates -##### - GitHub, through Dependabot, also natively offers a security check for vulnerable dependencies - -1. Go to the project's GitHub repository and click on the **Settings** tab - -2. Go to **Security & analysis** section - -3. Click "Enable" for both "Dependabot alerts" and "Dependabot security updates" - -- By enabling "Dependabot alerts", you would be notified for any vulnerable dependencies in the project. At "Security" tab -> "Dependabot alerts", you can manage all alerts. By clicking on an alert, you would be able to see a detailed explanation of the vulnerability and a viable solution. - -![Dependabot_alerts_page](./Dependabot_alerts_page.png) - -![Dependabot_alert_page](./Dependabot_alert_page.png) - -- By enabling "Dependabot security updates", you authorize Dependabot to create PRs specifically for **security updates** - -![Dependabot_PRs](./Dependabot_PRs.png) - -### Set up Dependency graph -##### - The "Dependency graph" option should be enabled by default for all public repos, but in case it isn't: - -1. Go to the project's GitHub repository and click on the **Settings** tab - -2. Go to **Security & analysis** section - -3. Click "Enable" for the "Dependency graph" option - -- this option enables the "Insights" tab -> "Dependency graph" section -> "Dependencies" tab, in which all the dependencies for the project are listed, under the different manifests they are included in - -![Dependabot_dependency_graph](./Dependabot_dependency_graph.png) - -NOTE: **screenshots are only exemplary** - -
- -## 2. CodeQL - -CodeQL is GitHub's own industry-leading semantic code analysis engine. CodeQL requires no setup, because it comes fully pre-configured by us. - -To activate it and see its results, only a push commit or a merge of a PR to the default branch of your repository, is required. - -We've also configured CodeQL to run on schedule, so every day at 8:00AM UTC, it automatically tests the code. - -- you can see the results here at **Security** tab -> **Code scanning alerts** -> **CodeQL**: - -![CodeQL_results](./CodeQL_results.png) - -- on the page of each result, you can see an explanation of what the problem is and also one or more solutions: - -![CodeQL_alert_page](./CodeQL_alert_page.png) - -# - -Built with ❤ by [Pipeline Foundation](https://pipeline.foundation) diff --git a/docs/CI-CD_DOCUMENTATION/CodeQL_alert_page.png b/docs/CI-CD_DOCUMENTATION/CodeQL_alert_page.png deleted file mode 100644 index 59020bbccdbc306c60c975c729f1be74a70e16e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55356 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 diff --git a/docs/CI-CD_DOCUMENTATION/CodeQL_results.png b/docs/CI-CD_DOCUMENTATION/CodeQL_results.png deleted file mode 100644 index 8848b0db9e232a9c7f6f94073f860b8cb142df76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56671 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 du+jd&giDNr;0_(}E>eQ;{d}&oC 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 czUShZOuCz*h^*Zk>@> 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

qkvPhE{{U{ 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 RY%5!=&)T0MoWAzQ{{jMVH1hxe diff --git a/docs/CI-CD_DOCUMENTATION/Dependabot_tab.png b/docs/CI-CD_DOCUMENTATION/Dependabot_tab.png deleted file mode 100644 index b6a2129b1ed549bf6a4719f29bb8484c73ece60d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42873 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

=yRY8@n{%wq z+7gIkBGa=qWk{th74X*}x^t zoQ<%j6iX%|%%`W0DXjWSTv!B|ffwHxGHZo3iaUJPP*{oU%v^MdgxLi~C<)3##oY{V z`Yxm*Oy^V=k8qpz7zo3v+URS*PRH{HWo$7oC>Tr06Y(7tkS5P|GkpmQJUgMtu3 zEehJ8y~u-rg_y6sy%7*d3clf#gd(YqRoHgE{lGOKNb0HW>uY(>g7#jSo3rx+D|Bxb zhs=e~Z&XM2U0}yP;6jKJ`||K1BnJ%z{Fve(VoTE=pWVS$ck`~bs&WAAisl;Su}Ftr z_p9(Bo%L>Rgi&A5pmowsMxdb6eZ_C&os_92ZV+galiBI@kBo<9Uvc}@-MRUW9Ah@6 zD)r}FfA{NPkl=eSqS)*DV=Jo+Z*|C?0H_1ggk*?WCS7a zr~3Tl@(O+_4uQv?a-7m&AM`eqz2FDB{rwP_w(0T#Qno3%e2Aw-xu>nFYqPH8>gt&Q z#cQZ^x?Ft11Lmvf{QXfFx-zgiyjVwVS#qq+=)qLZo^+*1RvM@tk177L5Cp&fcAoaR zyZg=XN6k)KL^prwy^4ubyR3z*5@Q{UxL1J!me5;*wy4Y;UpMX37w#?Aopcjcb@O`t zCBdALLHOqP^g(H|x8c~)lk!>h(e$-;L2cJ#?*8sYu#7g`@sp|n>g$xAysY7DlU#O} zjHHy6xsug(Lm-qzyZG!XY0iDbkRm1~NCM)9(O$XKa7CV)SByCImALTN=Xs9}06u_G z>4$k;S0gNf^3Cxl^a*&0g=;`;6GUmXTbddH!u0c<&2*Ok6n8UtNJon^M`86;_ zuk-u721Vpc0!?Z9e-$@|Nc8o86*s|M#cfrv*0a;_PsvSXsi%7?Nn*Y5BBPzaSAL%2 z!X1+K{M2rz`k6pR4qRU0?iRZB6`ujG`Okl|r4wYSfzQAjgg}pbFvt%#b?GsGn6@%jp}_0kU{h|l;;EoANlu0 zHl_-ODN=aQRYQU2bnc^+4Xv>)(#&oT;)i{V^vts^pS8iJgitU2qU#AeEu86*Y7123 zI3ReRE2sMusrhTU!+q3TmY)Vp13=7>}bi9P)C`?^-Zt#M=AdS>E+Q z7jd)M^WiUZ;6+V7n(exy1*f|40bb_?&5Gt-P zFN>0v$5*^zkFIj!YYV@fE&mlP>tn5onfL42| z@*SGj%#)X?>Ct7WQDgz*1!aMRoE*FA+&<(nd2VsuYTL&27LW&2 zf@T9Ne!bn!1G{RP?gpo;G`yr`k*Fl4AbCQ>#b5&Z^}?|JS-2PAv|JG-D0pmP0Ev1` zLB_6xOm8Y_Mz1t+9ZtPVF0w*xFWy3?&nqOyQFx-fhZgdnDUK9g;$!-H-yb2wy^;Dnp)K<&?Mj;4XDnZRfT1ycIY;^Ud6(u4(M@6# zl7K0bg6;;Vb$$ogV};!ncW3$kII~UzU&OO%>Kk>7Q402}TGkD3xmb)qm>FH|jV>F} zN;U1&23Z;jKQ7QF1@&2L9U#->gahjR@tU97wN6eqKLO@FdzWm{3+d4BQo@s5a&QTd za>x+%#);$1E5l(g6T;nN_D}eC|Kj4o5uTZ5$r+6ri|HKIHhp8-uOU6>%uvN2`u_+> zTR%XQi7YraVEV+X_s_?zXNw|7HN6356{8Qk5EHcGMmzfS%#Qou>fVAz7H>YOw*nD0 zZ%wq$z14d~c2=7G(Hl0*@Eo$mZ z-a0x+xGcHjskVrdOsaNn^{@m1XE3O7h$KS^+mFt6>w$XcCsEyo`;+K7hT0z1QFSi! zh(gtqsn_Qex6MjjYmiV;p4#Ynl2sS;7|Ye?!)`Qw3BSv1SL0`eOCTq{(WZ6-)nIxH z%=D<+rB=BbHHsDU8G37ltGOyw8+L&mH5N}Rud?aZkd-;K-58x8nq|kDS~gQJj_;L# zZFexhuF6pYb;xn}M4xoMPJhvTUXHaP@&!6N)YHW7{mWB@1| zkT<^<6OgzzBAmhS+Odpzt68V24!l+)p_KGn(UZYQ=Qc&tVb~Cay`c6*dx(_ch4oA6 zu5%!kjru;2mIkp>5l}+8#_Zwb-ONj0w^b6s25K_<@AifmRP<)=qwU9O_ar3Rru6X3Cc;8uaj})tZv|OO0Gcpjg*htfBw_grmw9FX)!eSV=k{%jp zdERdG^-<~9=N1pnGNRe4AI^d}wVaWNZx}hrGv<|B)vSrq-J9toToz4YJKK&W$tPVR|h z=kMJIi2q8fjE8c+u=dEjTQ-#AP)9QxB@t`tb}S|GA-joYXhxzL>+gwXNm8%>Of+M5 z{xi|cR=CQ^8W|W+?XLX5b?f%yMKM0XsR)71m0!9&{I{Ye*M}97R&EYBEyK1Gk!hv0Um_4T`27>X_WN>FW0Y1>WOJBQ zgZ5c&v;Bt4azh)+n=JMixSVkLFo-b|#7eXG0o&h%`o&-Fy@Ip%zx|++6oz2cU2TA? zbH$@0q-CU@=NmwIe6s-ow`qfuRCgr%k|=@i4J$;C4b|kB+01Pu$=L&(?9jT5SW!E9NVV9v}jVbsUwa~IMUWb=k>Mf zYgVE*ZC(UmGs5S3qhi1@{y)u%$ccQD3Rb3!S3Nw$ zkUz6f*Q%SPZmzwteRHV13pFrScBycx%xk(rJ_K3zw(%3X;Iz=5D0luBg}{Jk~NN-@3Aa5JBHnHJX>V?yZa zsT#M8awX;3v1lQ zL$}BxL4r@#0bT1JXBg6QKJa7wr^{#wp958cLDdC zOEqJwde(aqyIlkjDpRG_Z9utCy0k8)LusO`yTCLT*;?#!KQldov}*uLn)9 zyJTmY|8_*iwyz1jcwWuxOQ)RRnj^@dlQRzUv>iB>4;9^9lb)~vJqWDhE7VYwpULSX zWuL<@sF;|=Q#u~2rtM)&Q%#fpf$y>MSCvw8_w122Zm)$YI7sv)Xx3H3e0Aq;-BMa} z<6kMYP^(@feP^+!m6A14iOV=APU&-kD>h_JGNT6vRMFmMQ@TM3f7~N-6h{7lW&a8m zX13CZEWB@^-^CrQ)Q;8$>x95>VDV)uN6q683Z2Q+sBU|#LaoQ(d^GKI$NCPOlN(l~ zAE*yJaYxlFsz(iFn9E-r|2E)^01@O&tt}7HI}I>k;f1L^XuM&Wq6QkM#%*-xL9D4! zwo2tRD*(uCu$K+oza`$9o<5gxZp0xOu4S#*Yd$zzHRyKPeRmaeSqZDQqx!)c0L*S( z+m2Q(R_tXYp_*EUAV?K{AyHajz-u{34G&e`RVp_^?(%6LUv~p3ZAdHI0T!l9{QvcO zH;YL(m5tX?vp!WlKYdaN`Cg%I5a6 zyJ!+d@OGO@3t6m6`1_O!^)!4!K!@oKo`XAx3Ufn4Dc?)9`&Za>A%phC;`b`eTgfvL z+@-4vCuL4UTnBwFE9}_cgqsX_j>!%7z#xJnGjfbX)0H;dLP_3+yZYl(qn2#PB6`WMcr_M=iotT@B}1*JtSx;Pt_4ve zxT@WN7I|h`&?1?GCNx3~bHgn6f7rqA^ua3J=40r97oHu9%f|*7_d<4EZ$f=W|$kq$qP!HjAHEr z4vpzPNzAfW)gupiK7U;Cg!xt(vJtG2yIvLO&%azI^Bz}eIQ;9OLDj%L)R0{phRZK14Wr@2%(Vwfke<)6i4AD0^HBJ&FlUkS_rJnhRS zt132fFSUoE+ZFThPZ0y>+^a;`)v7($o*o>()0%S(cNUv~^*=*18kQ%^`TjPdIC%da zZogYj)Be^&^KZZ%zptJ?0GO`gUqHYsiN_x8gAiom6Amu^HE2GJ~qjcyL~tXKZvNri!@7$Ss0!v9^D=&m^?Xs0a= za$+v9LVHrpepqM16A>hFWXSR@_V0+Qm%{HYR z>uq@YLxeQMTzc*SKdO0g@DMU6x8B<|d6n1GFc|bUEK1rKtK^hUm0EceCResnk)ot} zrp~;tWoY!Y{MD8E6q?^U9k!we{5|yoQX|v3D-PIspa4ys{}1Rt@|^`OT$>}wZai2i zu7m)hs2K>*sF9m$W1(f8*JZK&)`h*WBjN1s&-6Ydn*7i#Eh*P_7G|&Iz6Z9I&9}ds zM*+KZ^`DzZfdkFtho+OkFpvI;&@syFKb(z>tL^^>)ZqKQt22#41cr(ATW-3nyd6WS zx-{MCsQR~!Bp82W`qMJX^rxoA^yhB`{Vso(x&CL|o$n9(z@g84#4QDb)?YC~F+d<# zB7^<2nIH6&+Z7@I(+zMRI!innG1S-c=wp1{!}dy`Vg9dd8U6oR*|IcT{ba|+-8+E^ z#Z^FLF;1|Lum=J0$^z4Z6r(;gTuak>gV#g+zTJw`6X{cc``(|X~}tpzpbhh^y$>uaD<<{}X!pD)Up9yt%F z#zcWX1U5x`Bdun5*M2Xq8v3xu&PD0RViflJmHfb|r4p0g-UHkQz?>GWAywMs=RGX? zIA5V_-e8;&v~_drnq|fEgB{h>+e~8?s zjl1HsvbWg14H(%4k(T-*pXAG!fVE_cVL;YUvZX|SG0^b{-`&R&TAnrZVRH8{nQ3)U z>?Z3Cmyik-PU+3%DoaS`%>`Z4wbtb2+l7UvgOP*;zSd~UXIzhn-+Fel<|GU$jMVE6 ze;d4eO9UEUh>y>RP#Wn4^L;)&~)**5s_TllGaYdcTn6n=fM`M_(W3iu#B?fPWw zNuCp*S%Qs7Ml7dITZ0fELT^!OkJGiOk<44^C7KW)o~F z_sTm>g|m`|>5~Pa`d1r3kjTnG4zJOgz$;cg_GB)QnfCSR{|oOZon@-=;hO?Re*<BTc9fMCN&)~dk?zTbS?*R*bi^%PYK9t+9EUQl=1#sM-@ecaONr8f zk>&c^`L1bQC4aw^U>W(yB)sLLt~r9_zZ?MX)J}Cb#Y{i8=#rbOsmg`WQDo8=gb*I# zj;{xN-2nYITuL#n2f9^hGw4GkB{~aFt`B?V4xo~+~nz*U&c<4!@9nHDY zl|jXBA`W!i7&}=$N?_3#6v@it8WyZjne}O9$Z{=sPVdX@!`gP+{=mh3ig=S_RT)$c~#fSWF3CcG!0j6S-zw#9@5L;KFQ zCg56Gg703-ou&F7w#SLM4`Uh_m=Lqx^?aW-kBKPI*?%VA%1wnZh7wH zV3~dL;Xs=WQf|Z$zrf#1fte%AmMFJ`Q8I8rqFP2*>jb3S zFF&>0S*Uj1326xD^NUXj&dlbMTW_6Nvr8Rz%_F3{%0pArala3@2pV=2805HMi6tMUTBH7)Rk-SrlbNFtU|{|v>Ux=YykbPcdW8_ z)9-=Uy;I(TwXTa654J}o{Wg7;H_%#gXE$DSW~RwJtaaEPUDu{`a!VcGR?%KKI<3bB z${4uRc%#}5OjX4LbgF56K}KxB$A>;1oyB(vn1_ia`i|Bh3Ky1$MZ?vm>umHa*R5ne z$M~Sl^E!lAsWd`S`u62|6u~@cw@av-Afwd)G1pb_u@`H;R4X)K2V-+9DbyIj!{;@~ ze?F0m3#A?`hgFugml+o0cmmMAVKLUOMpQ_HWp&_KTcd${XT9C#x+ng@;=uQ^eG`_d zkS}~%%hP9b##X-zG?A;krKaDOc8o0TBOmI}&53YeMAtH=T%ga1p4wc7zyvs1tP0c2 z=7Zgr-}BX57xe4$1wIIYWBbU5q!5yRrE7+RXIzimSNBaETTuT#SLQ=6q71Qo_jx|5 zNn?}PdGA)$!EEoFY&ZCs027QQ0hmtkF_q8k?pP~y)>B_FHsG^zEv)si48fCc-+`)B z)NP*a#1AkWIbK&0*Bo{Q4NDo^XzOKX1tDFY-xxi7L}3(z>$WcL$%scZQx&O8)+s%fuG=i7EGo=5-@w=>gMEGDoBphdOrfKIG;Ut$t%~(YO`4 zzUfvxoL?Tf^eK2qXxqv#FwpO>&bTBwcRc{|z0IP}fhm%cG*k;6BG4l9;CZb{ktUBI z=u|T((cFIw!qFCHq>iuA?QO2~p^x0^wn*-};ZcJ?)Hx;2G!|A|Sci!oDex0bs&P5x z_l%|J!Po4>$1D?b^Z_U`Gi6K_sVf-ky{478oG%i9IWG`l@j$+SUHJ;>-P&UMp=2qG zMFWA~MkF(vqR7cx+xgUvHIo5(E9i+FLsosv*SFXOl&|$s|3GwUFODbZhH$@;f*{A1 zT|3%ZyuYK<`$hrQ#d2k3(c)LDDtz4JSFF;jlovIvM!x4301Y_uu4+JT5Oo}{k-r{; zuD@4#R_C8L0eC29_}||w*8nL6LJrJohXU^#<)RSZHs!mBW&Za-lRb2lm%K+JOinkA z$BPo-ud4~gjb`gzwG=wPb0_4m-Q%ZoEEAtED{O3^GaS7Dx{DWmd71?g9@lJU2xjX@l-arg%9@&8`J^Gj01uQSa>4bZq7+Kz4PozXL}0W52#Ay586Aq_F%g9^#<-| z;xeDl*N5#1A+10M@$oj?9I4Qu)eF+v-@RSv;0Rbv^;%Geb=5W9%MI8WF4RC1_UwFn zmfb#%H$co;x@Wihb7)q>?41vk*&DE>s@Se$x5xLN9L}S}=nToZTBAHP6u1SA;p4V# zPg5|-qCrh!Rg@3c!vk_zm*?x}X>&i57MoI%>R(HApK%Gh!hQh+Ij&fNSy+ixq=rTf z`RGX%wYXDSH@8*f%_QLwgOM+joWtvN%lMo3=U+>YU|(w)$`)UxJKp8cf^h#3sPvkx z`rGLXmUk1_Tz2|K*E4xJKU=7}X$;B^+ckBb_iBcG^69>|W~T5rY5xa_Vs#{{69|ZP z+DW8)6ztPpNFfFEL6oAsm3@u+S2AyRqCM%U$@PkhQ*z!HdVeNP;nDAE+_j>yTE07q zcfJNaeY=46B$v8b35&lLAy79IfZ#>gAq5Dw-CsqIiytPgQdT<=rrfnV?JRR;D^nXW zz>A7~A(eX18ZQ15Q^xh*_DN6Z*Fb__zX8AP;#GCC%X{;0o7zT#PLOY+T#PbrbJ-Aw z^4y;9hvaPApiRYjasSU|ZZeU%{7ahqeOJHg8s+HuFTn@?zkYqku(ftw{kktR-yYte zvqro6UOMnv8V0YhFyQS;sl3;J`}?o+IDP18?*{%|zYJu&+8$w+3I|3@t4+YTssZ8 zDEW8l*^{qNmOecH_H%8~i#@y7z4JTyW8U4HkINUvXjztD|H3SP@T0`PIs1)O4y!R- zD&4wIPWX=KeD3S_AKFd1U4J&f@9gqo!JT!-~94=Xsq=)xygIqDI4rMd*tBtOJzsS-v(~;kf>?Bd3C3qY-0pC z%DM)}aF)X2m3K;RNWJG?y$84ogVy2e*eCMEG2a}m+zkD`Z|-nSnibWX8z|l`I&rzjbAww7wB2}05_7(Q!xyF;1E%zkNa8Cey$wQ5nrHDHp`{*ML+(E|1xfj>Dd>qx2<;fjNcQB z7^1>~+I!ufO!E7FRdYk$uc{JT;Cir+utWWUOW9kBUI9-fGFmu$pSPa>^z6zUYtSfz z!%whdi$$R)`vY&kgpaWdmEEVvV_<{$P_Up{zkmO$UpaAaZOQ2Zg}tY%pUXO@geCx| CJi>hd diff --git a/docs/README.md b/docs/README.md index 4151ff852..80e81477a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,32 +1,26 @@ ---- -home: true -heroImage: /restsharp.png -heroText: RestSharp -tagline: Probably, the most popular REST API client library for .NET -actions: -- text: Get Started → - link: /intro.html -features: -- title: Serialization - details: JSON, XML and custom serialization and deserialization -- title: Fully async - details: Variety of overloads to make asynchronous HTTP calls -- title: Extensive configuration - details: Almost every aspect of an HTTP call can be customized -- title: Authentication - details: Basic, OAuth1, OAuth2, and JWT are supported. Not enough? Write your own! -- title: Forms, request body, and files - details: Send objects as the request body in JSON or XML, or as a form. Upload and download files as bytes or as streams. -- title: Parameters - details: Add query, URL segment, body, form or header parameter using an easy and fluent API -footer: Apache 2.0 Licensed | Copyright (c) .NET Foundation and Contributors ---- - -RestSharp is probably the most popular HTTP client library for .NET. Featuring automatic serialization and deserialization, request and response type detection, variety of authentications and other useful features, it is being used by hundreds of thousands of projects. - -RestSharp passed over 190 million downloads on NuGet, with average daily download count over 43,000. It's being used by many popular OSS projects, including Roslyn and Swagger. - -Supported by [AWS](https://aws.amazon.com/developer/language/net/solutions/). -
AWS logo
- -Supported by the [.NET Foundation](https://dotnetfoundation.org). +# Website + +This is a RestSharp documentation website built using [Docusaurus](https://docusaurus.io/), a modern static website generator. + +### Installation + +``` +$ yarn +``` + +### Local Development + +``` +$ yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +### Build + +``` +$ yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + diff --git a/docs/babel.config.js b/docs/babel.config.js new file mode 100644 index 000000000..e00595dae --- /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/docs/advanced/_category_.json b/docs/docs/advanced/_category_.json new file mode 100644 index 000000000..f395bdfe4 --- /dev/null +++ b/docs/docs/advanced/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Advanced topics", + "position": 4, + "link": { + "type": "generated-index" + } +} diff --git a/docs/authenticators.md b/docs/docs/advanced/authenticators.md similarity index 87% rename from docs/authenticators.md rename to docs/docs/advanced/authenticators.md index 4d96da8ed..98c20a77e 100644 --- a/docs/authenticators.md +++ b/docs/docs/advanced/authenticators.md @@ -7,7 +7,7 @@ There are two ways to set the authenticator: client-wide or per-request. Set the client-wide authenticator by assigning the `Authenticator` property of `RestClientOptions`: ```csharp -var options = new RestClientOptions("http://example.com") { +var options = new RestClientOptions("https://example.com") { Authenticator = new HttpBasicAuthenticator("username", "password") }; var client = new RestClient(options); @@ -27,7 +27,7 @@ var response = await client.ExecuteAsync(request, cancellationToken); The `HttpBasicAuthenticator` allows you pass a username and password as a basic `Authorization` header using a base64 encoded string. ```csharp -var options = new RestClientOptions("http://example.com") { +var options = new RestClientOptions("https://example.com") { Authenticator = new HttpBasicAuthenticator("username", "password") }; var client = new RestClient(options); @@ -42,7 +42,7 @@ For OAuth1 authentication the `OAuth1Authenticator` class provides static method This method requires a `consumerKey` and `consumerSecret` to authenticate. ```csharp -var options = new RestClientOptions("http://example.com") { +var options = new RestClientOptions("https://example.com") { Authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret) }; var client = new RestClient(options); @@ -56,7 +56,7 @@ This method retrieves an access token when provided `consumerKey`, `consumerSecr var authenticator = OAuth1Authenticator.ForAccessToken( consumerKey, consumerSecret, oauthToken, oauthTokenSecret ); -var options = new RestClientOptions("http://example.com") { +var options = new RestClientOptions("https://example.com") { Authenticator = authenticator }; var client = new RestClient(options); @@ -94,7 +94,7 @@ For example: var authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator( token, "Bearer" ); -var options = new RestClientOptions("http://example.com") { +var options = new RestClientOptions("https://example.com") { Authenticator = authenticator }; var client = new RestClient(options); @@ -102,7 +102,7 @@ var client = new RestClient(options); The code above will tell RestSharp to send the bearer token with each request as a header. Essentially, the code above does the same as the sample for `JwtAuthenticator` below. -As those authenticators don't do much to get the token itself, you might be interested in looking at our [sample OAuth2 authenticator](usage.md#authenticator), which requests the token on its own. +As those authenticators don't do much to get the token itself, you might be interested in looking at our [sample OAuth2 authenticator](../usage/example.md#authenticator), which requests the token on its own. ## JWT @@ -110,7 +110,7 @@ The JWT authentication can be supported by using `JwtAuthenticator`. It is a ver ```csharp var authenticator = new JwtAuthenticator(myToken); -var options = new RestClientOptions("http://example.com") { +var options = new RestClientOptions("https://example.com") { Authenticator = authenticator }; var client = new RestClient(options); @@ -127,13 +127,13 @@ registering it with your RestClient: ```csharp var authenticator = new SuperAuthenticator(); // implements IAuthenticator -var options = new RestClientOptions("http://example.com") { +var options = new RestClientOptions("https://example.com") { Authenticator = authenticator }; var client = new RestClient(options); ``` The `Authenticate` method is the very first thing called upon calling `RestClient.Execute` or `RestClient.Execute`. -It gets the `RestRequest` currently being executed giving you access to every part of the request data (headers, parameters, etc.) +It gets the `RestRequest` currently being executed giving you access to every part of the request data (headers, parameters, etc.) -You can find an example of a custom authenticator that fetches and uses an OAuth2 bearer token [here](usage.md#authenticator). +You can find an example of a custom authenticator that fetches and uses an OAuth2 bearer token [here](../usage/example.md#authenticator). diff --git a/docs/error-handling.md b/docs/docs/advanced/error-handling.md similarity index 95% rename from docs/error-handling.md rename to docs/docs/advanced/error-handling.md index 60508ee3f..7b3be11fc 100644 --- a/docs/error-handling.md +++ b/docs/docs/advanced/error-handling.md @@ -26,10 +26,11 @@ var options = new RestClientOptions(url) { }; var client = new RestClient(options); var request = new RestRequest("resource/{id}").AddUrlSegment("id", 123); -var response = await client.ExecuteGetAsync(request); // will throw if the request fails +// 👇 will throw if the request fails +var response = await client.ExecuteGetAsync(request); ``` -::: warning +:::warning Please be aware that deserialization failures will only work if the serializer throws an exception when deserializing the response. Many serializers don't throw by default, and just return a `null` result. RestSharp is unable to figure out why `null` is returned, so it won't fail in this case. Check the serializer documentation to find out if it can be configured to throw on deserialization error. @@ -39,7 +40,7 @@ There are also slight differences on how different overloads handle exceptions. Asynchronous generic methods `GetAsync`, `PostAsync` and so on, which aren't a part of `RestClient` interface (those methods are extension methods) return `Task`. It means that there's no `RestResponse` to set the response status to error. We decided to throw an exception when such a request fails. It is a trade-off between the API consistency and usability of the library. Usually, you only need the content of `RestResponse` instance to diagnose issues and most of the time the exception would tell you what's wrong. -Below you can find how different extensions deal with errors. Note that functions, which don't throw by default, will throw exceptions when `ThrowOnAnyError` is set to `true`. +Below, you can find how different extensions deal with errors. Note that functions, which don't throw by default, will throw exceptions when `ThrowOnAnyError` is set to `true`. | Function | Throws on errors | |:----------------------|:-----------------| diff --git a/docs/interceptors.md b/docs/docs/advanced/interceptors.md similarity index 100% rename from docs/interceptors.md rename to docs/docs/advanced/interceptors.md diff --git a/docs/serialization.md b/docs/docs/advanced/serialization.md similarity index 74% rename from docs/serialization.md rename to docs/docs/advanced/serialization.md index cf8d8387b..d668568e3 100644 --- a/docs/serialization.md +++ b/docs/docs/advanced/serialization.md @@ -1,6 +1,10 @@ # Serialization -RestSharp has JSON and XML serializers built in. +One of the most common reasons to choose RestSharp over plain `HttpClient` is its rich build-in serialization support. RestSharp allows adding complex objects as request body to be serialized when making a call to an API endpoint, and deserializing the response to a given .NET type. RestSharp supports JSON and XML serialization and deserialization by default. In addition, you can use a CSV serializer or write your own. + +In contrast to `System.Net.Http.Json` package that contains `HttpClient` extensions to make `GET` or `POST` calls using JSON, RestSharp support JSON responses for all HTTP methods, not just for `GET`. + +## Configuration :::tip The default behavior of RestSharp is to swallow deserialization errors and return `null` in the `Data` @@ -16,6 +20,14 @@ var client = new RestClient( ); ``` +All RestSharp serializers implement the `IRestSerializer` interface. Among other things, the interface requires implementing the `AcceptedContentTypes` property, which must return a collection of content types supported by the serializer. Being configured to use certain serializers, RestSharp populates the `Accept` header accordingly, so it doesn't need to be set manually. + +When making a call, RestSharp sets the request content type according to the request body type. For example, when you use `AddJsonBody`, the content type is set to `application/json`. Normally, you won't need to set the `Content-Type` header manually. If you need to set a custom content type for a JSON call, you can use the optional `contentType` argument of `AddJsonBody`, for example: + +```csharp +request.AddJsonBody(data, "text/json"); +``` + ## JSON The default JSON serializer uses `System.Text.Json`, which is a part of .NET since .NET 6. For earlier versions, it is added as a dependency. There are also a few serializers provided as additional packages. @@ -51,7 +63,7 @@ The `NewtonsoftJson` package is the most popular JSON serializer for .NET. It ha RestSharp support Json.Net serializer via a separate package [`RestSharp.Serializers.NewtonsoftJson`](https://www.nuget.org/packages/RestSharp.Serializers.NewtonsoftJson). -::: warning +:::warning Please note that `RestSharp.Newtonsoft.Json` package is not provided by RestSharp, is marked as obsolete on NuGet, and no longer supported by its creator. ::: @@ -99,7 +111,9 @@ You can also supply your instance of `CsvConfiguration` as a parameter for the e ```csharp var client = new RestClient( options, - configureSerialization: s => s.UseCsvHelper(new CsvConfiguration(CultureInfo.InvariantCulture) {...}) + configureSerialization: s => s.UseCsvHelper( + new CsvConfiguration(CultureInfo.InvariantCulture) {...} + ) ); ``` diff --git a/docs/intro.md b/docs/docs/intro.md similarity index 65% rename from docs/intro.md rename to docs/docs/intro.md index 96e983d0d..556a52f8d 100644 --- a/docs/intro.md +++ b/docs/docs/intro.md @@ -1,16 +1,17 @@ --- +sidebar_position: 1 title: Quick start --- ## Introduction -::: warning -RestSharp v107 changes the library API surface and its behaviour significantly. We advise looking at [v107](/v107/) docs to understand how to migrate to the latest version of RestSharp. +:::warning +RestSharp v107 changes the library API surface and its behaviour significantly. We advise looking at [v107](/v107) docs to understand how to migrate to the latest version of RestSharp. ::: The main purpose of RestSharp is to make synchronous and asynchronous calls to remote resources over HTTP. As the name suggests, the main audience of RestSharp are developers who use REST APIs. However, RestSharp can call any API over HTTP, as long as you have the resource URI and request parameters that you want to send comply with W3C HTTP standards. -One of the main challenges of using HTTP APIs for .NET developers is to work with requests and responses of different kinds and translate them to complex C# types. RestSharp can take care of serializing the request body to JSON or XML and deserialize the response. It can also form a valid request URI based on different parameter kinds - path, query, form or body. +One of the main challenges of using HTTP APIs for .NET developers is to work with requests and responses of different kinds and translate them to complex C# types. RestSharp can take care of serializing the request body to JSON or XML and deserialize the response. It can also form a valid request URI based on different parameter kinds: path, query, form or body. ## Getting Started @@ -22,7 +23,7 @@ dotnet add package RestSharp ### Basic Usage -If you only have a few number of one-off requests to make to an API, you can use RestSharp like so: +If you only have a small number of one-off API requests to perform, you can use RestSharp like this: ```csharp using RestSharp; @@ -40,7 +41,7 @@ var response = await client.GetAsync(request, cancellationToken); It will return a `RestResponse` back, which contains all the information returned from the remote server. You have access to the headers, content, HTTP status and more. -We recommend using the generic overloads like `Get` to automatically deserialize the response into .NET classes. +You can also use generic overloads like `Get` to automatically deserialize the response into a .NET class. For example: @@ -62,23 +63,22 @@ var timeline = await client.GetAsync(request, cancellationToken); Both snippets above use the `GetAsync` extension, which is a wrapper about `ExecuteGetAsync`, which, in turn, is a wrapper around `ExecuteAsync`. All `ExecuteAsync` overloads and return the `RestResponse` or `RestResponse`. -The most important difference is that async methods that are named after HTTP methods return the `Task` instead of `Task>`. Because it means that you won't get an error response if the request fails, those methods -throw an exception. For keeping the API consistent, non-generic functions like `GetAsync` or `PostAsync` also throw an exception if the request fails, although they return the `Task`. +The most important difference is that async methods named after HTTP methods (like `GetAsync` or `PostAsync`) return `Task` instead of `Task>`. It means that you won't get an error response if the request fails as those methods throw an exception for unsuccessful HTTP calls. For keeping the API consistent, non-generic functions like `GetAsync` or `PostAsync` also throw an exception if the request fails, although they return the `Task`. -Read [here](error-handling.md) about how RestSharp handles exceptions. +Read [here](advanced/error-handling.md) about how RestSharp handles exceptions. -RestSharp also offers even simpler way to make JSON calls. You can use the `GetJsonAsync` and `PostJsonAsync` extension methods, which will automatically serialize the request body to JSON and deserialize the response to the specified type. +RestSharp also offers simple ways to call APIs that accept and return JSON payloads. You can use the `GetJsonAsync` and `PostJsonAsync` extension methods, which will automatically serialize the request body to JSON and deserialize the response to the specified type. ```csharp var client = new RestClient(options); var timeline = await client.GetJsonAsync("statuses/home_timeline.json", cancellationToken); ``` -Read [here](usage.md#json-requests) about making JSON calls without preparing a request object. +Read [here](usage/usage.md#json-requests) about making JSON calls without preparing a request object. ### Content type -RestSharp supports sending XML or JSON body as part of the request. To add a body to the request, simply call `AddJsonBody` or `AddXmlBody` method of the `RestRequest` instance. +RestSharp supports sending XML or JSON body as part of the request. To add a body to the request, simply call `AddJsonBody` or `AddXmlBody` method of the `RestRequest` object. There is no need to set the `Content-Type` or add the `DataFormat` parameter to the request when using those methods, RestSharp will do it for you. @@ -91,14 +91,22 @@ var request = new RestRequest("address/update").AddJsonBody(updatedAddress); var response = await client.PostAsync(request); ``` -Read more about serialization and deserialization [here](serialization.md). +It's also possible to make the same call using `PostAsync` shorter syntax: + +```csharp +var response = await PostJsonAsync( + "address/update", request, cancellationToken +); +``` + +Read more about serialization and deserialization [here](advanced/serialization.md). ### Response -When you use `ExecuteAsync`, you get an instance of `RestResponse` back that has the `Content` property, which contains the response as string. You can find other useful properties there, like `StatusCode`, `ContentType` and so on. If the request wasn't successful, you'd get a response back with `IsSuccessful` property set to `false` and the error explained in the `ErrorException` and `ErrorMessage` properties. +When you use `ExecuteAsync`, you get an instance of `RestResponse` back. The response object has the `Content` property, which contains the response as string. You can find other useful properties there, like `StatusCode`, `ContentType` and so on. If the request wasn't successful, you'd get a response back with `IsSuccessful` property set to `false` and the error explained in the `ErrorException` and `ErrorMessage` properties. When using typed `ExecuteAsync`, you get an instance of `RestResponse` back, which is identical to `RestResponse` but also contains the `T Data` property with the deserialized response. None of `ExecuteAsync` overloads throw if the remote server returns an error. You can inspect the response and find the status code, error message, and, potentially, an exception. -Extensions like `GetAsync` will not return the whole `RestResponse` but just a deserialized response. These extensions will throw an exception if the remote server returns an error. The exception will tell you what status code was returned by the server. +Extensions like `GetAsync` will not return the whole `RestResponse` but just a deserialized response. These extensions will throw an exception if the remote server returns an error. The exception details contain the status code returned by the server. diff --git a/docs/docs/usage/_category_.json b/docs/docs/usage/_category_.json new file mode 100644 index 000000000..acfc0c422 --- /dev/null +++ b/docs/docs/usage/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Using ReshSharp", + "position": 3, + "link": { + "type": "generated-index" + } +} diff --git a/docs/docs/usage/example.md b/docs/docs/usage/example.md new file mode 100644 index 000000000..458ed57bb --- /dev/null +++ b/docs/docs/usage/example.md @@ -0,0 +1,148 @@ +# Example + +RestSharp works best as the foundation for a proxy class for your API. Each API would most probably require different settings for `RestClient`. Hence, a dedicated API class (and its interface) gives you sound isolation between different `RestClient` instances and make them testable. + +For example, let's look at a simple Twitter API v2 client, which uses OAuth2 machine-to-machine authentication. For it to work, you would need to have access to the Twitter Developers portal, a project, and an approved application inside the project with OAuth2 enabled. + +## Client model + +Before implementing an API client, we need to have a model for it. The model includes an abstraction for the client, which has functions for the API calls we are interested to implement. In addition, the client model would include the necessary request and response models. Usually those are simple classes or records without logic, which are often referred to as DTOs (data transfer objects). + +This example starts with a single function that retrieves one Twitter user. Lets being by defining the API client interface: + +```csharp +public interface ITwitterClient { + Task GetUser(string user); +} +``` + +As the function returns a `TwitterUser` instance, we need to define it as a model: + +```csharp +public record TwitterUser(string Id, string Name, string Username); +``` + +## Client implementation + +When that is done, we can implement the interface and add all the necessary code blocks to get a working API client. + +The client class needs the following: +- A constructor for passing API credentials +- A wrapped `RestClient` instance with the Twitter API base URI pre-configured +- An authenticator to support authorizing the client using Twitter OAuth2 authentication +- The actual function to get the user (to implement the `ITwitterClient` interface) + +Creating an authenticator is described [below](#authenticator). + +Here's how the client implementation could look like: + +```csharp +public class TwitterClient : ITwitterClient, IDisposable { + readonly RestClient _client; + + public TwitterClient(string apiKey, string apiKeySecret) { + var options = new RestClientOptions("https://api.twitter.com/2"); + _client = new RestClient(options); + } + + public async Task GetUser(string user) { + var response = await _client.GetJsonAsync>( + "users/by/username/{user}", + new { user } + ); + return response!.Data; + } + + record TwitterSingleObject(T Data); + + public void Dispose() { + _client?.Dispose(); + GC.SuppressFinalize(this); + } +} +``` + +It is also possible to use ASP.NET Core Options for configuring the client, instead of passing the credentials as strings. For example, we can add a class for Twitter client options, and use it in a constructor: + +```csharp +public class TwitterClientOptions(string ApiKey, string ApiSecret); + +public TwitterClient(IOptions options) { + var opt = new RestClientOptions("https://api.twitter.com/2"); + _client = new RestClient(options); +} +``` + +Then, you can register and configure the client using ASP.NET Core dependency injection container. + +Right now, the client won't really work as Twitter API requires authentication. It's covered in the next section. + +## Authenticator + +Before we can call the API itself, we need to get a bearer token. Twitter exposes an endpoint `https://api.twitter.com/oauth2/token`. As it follows the OAuth2 conventions, the code can be used to create an authenticator for some other vendors. + +First, we need a model for deserializing the token endpoint response. OAuth2 uses snake case for property naming, so we need to decorate model properties with `JsonPropertyName` attribute: + +```csharp +record TokenResponse { + [JsonPropertyName("token_type")] + public string TokenType { get; init; } + [JsonPropertyName("access_token")] + public string AccessToken { get; init; } +} +``` + +Next, we create the authenticator itself. It needs the API key and API key secret to call the token endpoint using basic HTTP authentication. In addition, we can extend the list of parameters with the base URL to convert it to a more generic OAuth2 authenticator. + +The easiest way to create an authenticator is to inherit from the `AuthenticatorBase` base class: + +```csharp +public class TwitterAuthenticator : AuthenticatorBase { + readonly string _baseUrl; + readonly string _clientId; + readonly string _clientSecret; + + public TwitterAuthenticator(string baseUrl, string clientId, string clientSecret) : base("") { + _baseUrl = baseUrl; + _clientId = clientId; + _clientSecret = clientSecret; + } + + protected override async ValueTask GetAuthenticationParameter(string accessToken) { + Token = string.IsNullOrEmpty(Token) ? await GetToken() : Token; + return new HeaderParameter(KnownHeaders.Authorization, Token); + } +} +``` + +During the first call made by the client using the authenticator, it will find out that the `Token` property is empty. It will then call the `GetToken` function to get the token once and reuse the token going forward. + +Now, we need to implement the `GetToken` function in the class: + +```csharp +async Task GetToken() { + var options = new RestClientOptions(_baseUrl){ + Authenticator = new HttpBasicAuthenticator(_clientId, _clientSecret), + }; + using var client = new RestClient(options); + + var request = new RestRequest("oauth2/token") + .AddParameter("grant_type", "client_credentials"); + var response = await client.PostAsync(request); + return $"{response!.TokenType} {response!.AccessToken}"; +} +``` + +As we need to make a call to the token endpoint, we need our own short-lived instance of `RestClient`. Unlike the actual Twitter client, it will use the `HttpBasicAuthenticator` to send the API key and secret as the username and password. The client then gets disposed as we only use it once. + +Here we add a POST parameter `grant_type` with `client_credentials` as its value. At the moment, it's the only supported value. + +The POST request will use the `application/x-www-form-urlencoded` content type by default. + +:::note +Sample code provided on this page is a production code. For example, the authenticator might produce undesired side effect when multiple requests are made at the same time when the token hasn't been obtained yet. It can be solved rather than simply using semaphores or synchronized invocation. +::: + +## Final words + +This page demonstrates how an API client can be implemented as a typed, configurable client with its own interface. Usage of the client in applications is not covered here as different application types and target frameworks have their own idiomatic ways to use HTTP clients. \ No newline at end of file diff --git a/docs/usage.md b/docs/docs/usage/usage.md similarity index 74% rename from docs/usage.md rename to docs/docs/usage/usage.md index b84918e2a..75ed55711 100644 --- a/docs/usage.md +++ b/docs/docs/usage/usage.md @@ -1,10 +1,12 @@ --- -title: Usage +sidebar_position: 2 --- -## Recommended usage +# RestSharp basics -RestSharp works best as the foundation for a proxy class for your API. Each API would most probably require different settings for `RestClient`. Hence, a dedicated API class (and its interface) gives you sound isolation between different `RestClient` instances and make them testable. +This page describes some of the essential properties and features of RestSharp. + +## What RestSharp does Essentially, RestSharp is a wrapper around `HttpClient` that allows you to do the following: - Add default parameters of any kind (not just headers) to the client, once @@ -14,140 +16,25 @@ Essentially, RestSharp is a wrapper around `HttpClient` that allows you to do th - Handle the remote endpoint response - Deserialize the response from JSON or XML if necessary -For example, let's look at a simple Twitter API v2 client, which uses OAuth2 machine-to-machine authentication. For it to work, you would need to have access to the Twitter Developers portal, a project, and an approved application inside the project with OAuth2 enabled. - -### Authenticator - -Before we can call the API itself, we need to get a bearer token. Twitter exposes an endpoint `https://api.twitter.com/oauth2/token`. As it follows the OAuth2 conventions, the code can be used to create an authenticator for some other vendors. - -First, we need a model for deserializing the token endpoint response. OAuth2 uses snake case for property naming, so we need to decorate model properties with `JsonPropertyName` attribute: - -```csharp -record TokenResponse { - [JsonPropertyName("token_type")] - public string TokenType { get; init; } - [JsonPropertyName("access_token")] - public string AccessToken { get; init; } -} -``` - -Next, we create the authenticator itself. It needs the API key and API key secret to call the token endpoint using basic HTTP authentication. In addition, we can extend the list of parameters with the base URL to convert it to a more generic OAuth2 authenticator. - -The easiest way to create an authenticator is to inherit from the `AuthenticatorBase` base class: +## API client -```csharp -public class TwitterAuthenticator : AuthenticatorBase { - readonly string _baseUrl; - readonly string _clientId; - readonly string _clientSecret; - - public TwitterAuthenticator(string baseUrl, string clientId, string clientSecret) : base("") { - _baseUrl = baseUrl; - _clientId = clientId; - _clientSecret = clientSecret; - } +The best way to call an external HTTP API is to create a typed client, which encapsulates RestSharp calls and doesn't expose the `RestClient` instance in public. - protected override async ValueTask GetAuthenticationParameter(string accessToken) { - Token = string.IsNullOrEmpty(Token) ? await GetToken() : Token; - return new HeaderParameter(KnownHeaders.Authorization, Token); - } -} -``` +You can find an example of a Twitter API client on the [Example](example.md) page. -During the first call made by the client using the authenticator, it will find out that the `Token` property is empty. It will then call the `GetToken` function to get the token once and reuse the token going forward. +## Creating the client -Now, we need to implement the `GetToken` function in the class: +A RestSharp client can be instantiated by one of the constructors: ```csharp -async Task GetToken() { - var options = new RestClientOptions(_baseUrl){ - Authenticator = new HttpBasicAuthenticator(_clientId, _clientSecret), - }; - using var client = new RestClient(options); - - var request = new RestRequest("oauth2/token") - .AddParameter("grant_type", "client_credentials"); - var response = await client.PostAsync(request); - return $"{response!.TokenType} {response!.AccessToken}"; -} -``` - -As we need to make a call to the token endpoint, we need our own short-lived instance of `RestClient`. Unlike the actual Twitter client, it will use the `HttpBasicAuthenticator` to send the API key and secret as the username and password. The client then gets disposed as we only use it once. - -Here we add a POST parameter `grant_type` with `client_credentials` as its value. At the moment, it's the only supported value. - -The POST request will use the `application/x-www-form-urlencoded` content type by default. - -### API client - -Now, we can start creating the API client itself. Here we start with a single function that retrieves one Twitter user. Let's being by defining the API client interface: - -```csharp -public interface ITwitterClient { - Task GetUser(string user); -} -``` - -As the function returns a `TwitterUser` instance, we need to define it as a model: - -```csharp -public record TwitterUser(string Id, string Name, string Username); -``` - -When that is done, we can implement the interface and add all the necessary code blocks to get a working API client. - -The client class needs the following: -- A constructor, which accepts API credentials to pass to the authenticator -- A wrapped `RestClient` instance with the Twitter API base URI pre-configured -- The `TwitterAuthenticator` that we created previously as the client authenticator -- The actual function to get the user - -```csharp -public class TwitterClient : ITwitterClient, IDisposable { - readonly RestClient _client; - - public TwitterClient(string apiKey, string apiKeySecret) { - var options = new RestClientOptions("https://api.twitter.com/2"){ - Authenticator = new TwitterAuthenticator("https://api.twitter.com", apiKey, apiKeySecret) - }; - - _client = new RestClient(options); - } +// Creates a client with default options to call a given base URL +var client = new RestClient("https://localhost:5000"); - public async Task GetUser(string user) { - var response = await _client.GetJsonAsync>( - "users/by/username/{user}", - new { user } - ); - return response!.Data; - } - - record TwitterSingleObject(T Data); - - public void Dispose() { - _client?.Dispose(); - GC.SuppressFinalize(this); - } -} -``` - -The code above includes a couple of things that go beyond the "basics", and so we won't cover them here: -- The API client class needs to be disposable, so that it can dispose of the wrapped `HttpClient` instance -- Twitter API returns wrapped models. In this case, we use the `TwitterSingleObject` wrapper. In other methods, you'd need a similar object with `T[] Data` to accept collections - -You can find the full example code in [this gist](https://gist.github.com/alexeyzimarev/62d77bb25d7aa5bb4b9685461f8aabdd). - -Such a client can and should be used _as a singleton_, as it's thread-safe and authentication-aware. If you make it a transient dependency, you'll keep bombarding Twitter with token requests and effectively half your request limit. - -You can, for example, register it in the DI container: - -```csharp -services.AddSingleton( - new TwitterClient( - Configuration["Twitter:ApiKey"], - Configuration["Twitter:ApiKeySecret"] - ) -); +// Creates a client using the options object +var options = new RestClientOptions("https://localhost:5000") { + MaxTimeout = 1000 +}; +var client = new RestClient(options); ``` ### Simple factory @@ -190,7 +77,7 @@ var request = new RestRequest(resource, Method.Post); After you've created a `RestRequest`, you can add parameters to it. Below, you can find all the parameter types supported by RestSharp. -### Headers +### Adding headers Adds the header parameter as an HTTP header that is sent along with the request. The header name is the parameter's name and the header value is the value. @@ -202,6 +89,12 @@ AddHeader(string name, T value); // value will be converted to stri AddOrUpdateHeader(string name, string value); // replaces the header if it already exists ``` +For example: + +```csharp +var request = new RestRequest("/path").AddHeader("X-Key", someKey); +``` + You can also add header parameters to the client, and they will be added to every request made by the client. This is useful for adding authentication headers, for example. ```csharp @@ -212,14 +105,26 @@ client.AddDefaultHeader(string name, string value); RestSharp will use the correct content type by default. Avoid adding the `Content-Type` header manually to your requests unless you are absolutely sure it is required. You can add a custom content type to the [body parameter](#request-body) itself. ::: -### Get or Post +### Get or Post parameters + +The default RestSharp parameter type is `GetOrPostParameter`. You can add `GetOrPost` parameter to the request using the `AddParameter` function: -`GetOrPost` behaves differently based on the method. If you execute a GET call, RestSharp will append the parameters to the Url in the form `url?name1=value1&name2=value2`. +```csharp +request + .AddParameter("name1", "value1") + .AddParameter("name2", "value2"); +``` -On a POST or PUT Requests, it depends on whether you have files attached to a Request. -If not, the Parameters will be sent as the body of the request in the form `name1=value1&name2=value2`. Also, the request will be sent as `application/x-www-form-urlencoded`. +`GetOrPost` behaves differently based on the HTTP method. If you execute a `GET` call, RestSharp will append the parameters to the URL in the form `url?name1=value1&name2=value2`. -In both cases, name and value will automatically be url-encoded. +On a `POST` or `PUT` requests, it depends on whether you have files attached to a request. +If not, the parameters will be sent as the body of the request in the form `name1=value1&name2=value2`. Also, the request will be sent as `application/x-www-form-urlencoded`. + +In both cases, name and value will automatically be URL-encoded, unless specified otherwise: + +```csharp +request.AddParameter("name", "Væ üé", false); // don't encode the value +``` If you have files, RestSharp will send a `multipart/form-data` request. Your parameters will be part of this request in the form: @@ -237,7 +142,7 @@ client.AddDefaultParameter("foo", "bar"); It will work the same way as request parameters, except that it will be added to every request. -#### AddObject +### Using AddObject You can avoid calling `AddParameter` multiple times if you collect all the parameters in an object, and then use `AddObject`. For example, this code: @@ -276,16 +181,40 @@ request.AddObject(new RequestModel { FromDate = DateTime.Now }); In this case, the request will get a GET or POST parameter named `from_date` and its value would be the current date in short date format. -### Url Segment +### Using AddObjectStatic + +Request function `AddObjectStatic(...)` allows using pre-compiled expressions for getting property values. Compared to `AddObject` that uses reflections for each call, `AddObjectStatic` caches functions to retrieve properties from an object of type `T`, so it works much faster. -Unlike `GetOrPost`, this `ParameterType` replaces placeholder values in the `RequestUrl`: +You can instruct `AddObjectStatic` to use custom parameter names and formats, as well as supply the list of properties than need to be used as parameters. The last option could be useful if the type `T` has properties that don't need to be sent with HTTP call. + +To use custom parameter name or format, use the `RequestProperty` attribute. For example: + +```csharp +class TestObject { + [RequestProperty(Name = "some_data")] + public string SomeData { get; set; } + + [RequestProperty(Format = "d")] + public DateTime SomeDate { get; set; } + + [RequestProperty(Name = "dates", Format = "d")] + public DateTime[] DatesArray { get; set; } + + public int Plain { get; set; } + public DateTime[] PlainArray { get; set; } +} +``` + +### URL segment parameter + +Unlike `GetOrPost`, URL segment parameter replaces placeholder values in the request URL: ```csharp var request = new RestRequest("health/{entity}/status") .AddUrlSegment("entity", "s2"); ``` -When the request executes, RestSharp will try to match any `{placeholder}` with a parameter of that name (without the `{}`) and replace it with the value. So the above code results in `health/s2/status` being the url. +When the request executes, RestSharp will try to match any `{placeholder}` with a parameter of that name (without the `{}`) and replace it with the value. So the above code results in `health/s2/status` being the URL. You can also add `UrlSegment` parameter as a default parameter to the client. This will add the parameter to every request made by the client. @@ -316,11 +245,13 @@ RestSharp supports multiple ways to add a request body: We recommend using `AddJsonBody` or `AddXmlBody` methods instead of `AddParameter` with type `BodyParameter`. Those methods will set the proper request type and do the serialization work for you. -When you make a `POST`, `PUT` or `PATCH` request and added `GetOrPost` [parameters](#get-or-post), RestSharp will send them as a URL-encoded form request body by default. When a request also has files, it will send a `multipart/form-data` request. You can also instruct RestSharp to send the body as `multipart/form-data` by setting the `AlwaysMultipartFormData` property to `true`. +When you make a `POST`, `PUT` or `PATCH` request and added `GetOrPost` [parameters](#get-or-post-parameters), RestSharp will send them as a URL-encoded form request body by default. When a request also has files, it will send a `multipart/form-data` request. You can also instruct RestSharp to send the body as `multipart/form-data` by setting the `AlwaysMultipartFormData` property to `true`. + +You can specify a custom body content type if necessary. The `contentType` argument is available in all the overloads that add a request body. It is not possible to add client-level default body parameters. -#### AddStringBody +#### String body If you have a pre-serialized payload like a JSON string, you can use `AddStringBody` to add it as a body parameter. You need to specify the content type, so the remote endpoint knows what to do with the request body. For example: @@ -329,9 +260,7 @@ const json = "{ data: { foo: \"bar\" } }"; request.AddStringBody(json, ContentType.Json); ``` -You can specify a custom body content type if necessary. The `contentType` argument is available in all the overloads that add a request body. - -#### AddJsonBody +#### JSON body When you call `AddJsonBody`, it does the following for you: @@ -367,10 +296,10 @@ const string payload = @" } },"; request.AddJsonBody(payload, forceSerialize: true); // the string will be serialized -request.AddJsonBody(payload); // the string will NOT be serialized and will be sent as-is +request.AddJsonBody(payload); // the string will NOT be serialized and will be sent as-is ``` -#### AddXmlBody +#### XML body When you call `AddXmlBody`, it does the following for you: @@ -378,11 +307,11 @@ When you call `AddXmlBody`, it does the following for you: - Sets the content type to `application/xml` - Sets the internal data type of the request body to `DataType.Xml` -::: warning +:::warning Do not send XML string to `AddXmlBody`; it won't work! ::: -### Query String +### Query string `QueryString` works like `GetOrPost`, except that it always appends the parameters to the url in the form `url?name1=value1&name2=value2`, regardless of the request method. @@ -395,7 +324,7 @@ var request = new RestRequest("search") var response = await client.GetAsync(request); ``` -It will send a `GET` request to `https://search.me/search?foo=bar")`. +It will send a `GET` request to `https://search.me/search?foo=bar`. For `POST`-style requests you need to add the query string parameter explicitly: @@ -450,7 +379,7 @@ Task> ExecutePostAsync(RestRequest request, CancellationToken Task> ExecutePutAsync(RestRequest request, CancellationToken cancellationToken) ``` -All the overloads with names starting with `Execute` don't throw an exception if the server returns an error. Read more about it [here](error-handling.md). +All the overloads with names starting with `Execute` don't throw an exception if the server returns an error. Read more about it [here](../advanced/error-handling.md). If you just need a deserialized response, you can use one of the extensions: diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts new file mode 100644 index 000000000..0a9b7cd57 --- /dev/null +++ b/docs/docusaurus.config.ts @@ -0,0 +1,106 @@ +import type {Config} from "@docusaurus/types"; +import type * as Preset from "@docusaurus/preset-classic"; +import {themes} from "prism-react-renderer"; + +const config: Config = { + title: "RestSharp", + tagline: "Simple REST and HTTP API Client for .NET", + favicon: "img/favicon.ico", + url: "https://restsharp.dev", + baseUrl: "/", + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + i18n: { + defaultLocale: "en", + locales: ["en"], + }, + + presets: [ + [ + "classic", + { + docs: { + sidebarPath: "./sidebars.ts", + }, + theme: { + customCss: "./src/css/custom.css", + }, + } satisfies Preset.Options, + ], + ], + + themeConfig: { + navbar: { + title: "RestSharp", + logo: { + alt: "RestSharp Logo", + src: "img/restsharp.png", + }, + items: [ + { + type: "docSidebar", + sidebarId: "tutorialSidebar", + position: "left", + label: "Documentation", + }, + { + href: "/support", + label: "Support", + }, + { + href: 'https://github.com/RestSharp/RestSharp', + label: "GitHub", + position: "right", + }, + ], + }, + footer: { + style: "dark", + links: [ + { + title: "Docs", + items: [ + { + label: "Documentation", + to: "/docs/intro", + }, + ], + }, + { + title: "Community", + items: [ + { + label: "Stack Overflow", + href: "https://stackoverflow.com/questions/tagged/restsharp", + }, + { + label: "Discord", + href: "https://discordapp.com/invite/docusaurus", + }, + { + label: "Twitter", + href: "https://twitter.com/RestSharp", + }, + ], + }, + { + title: "More", + items: [ + { + label: "GitHub", + href: "https://github.com/RestSharp/RestSharp", + }, + ], + }, + ], + copyright: `Copyright © ${new Date().getFullYear()} .NET Foundation. Built with Docusaurus.`, + }, + prism: { + theme: themes.vsLight, + darkTheme: themes.vsDark, + additionalLanguages: ['csharp'], + }, + } satisfies Preset.ThemeConfig, +}; + +export default config; diff --git a/docs/package-lock.json b/docs/package-lock.json new file mode 100644 index 000000000..bcd88a398 --- /dev/null +++ b/docs/package-lock.json @@ -0,0 +1,14655 @@ +{ + "name": "docs", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "docs", + "version": "0.0.0", + "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", + "prism-react-renderer": "^2.3.1", + "typescript": "~5.2.2" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@algolia/autocomplete-core": { + "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==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", + "@algolia/autocomplete-shared": "1.9.3" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "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==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", + "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", + "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.2.tgz", + "integrity": "sha512-PvRQdCmtiU22dw9ZcTJkrVKgNBVAxKgD0/cfiqyxhA5+PHzA2WDt6jOmZ9QASkeM2BpyzClJb/Wr1yt2/t78Kw==", + "license": "MIT", + "dependencies": { + "@algolia/cache-common": "4.23.2" + } + }, + "node_modules/@algolia/cache-common": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.23.2.tgz", + "integrity": "sha512-OUK/6mqr6CQWxzl/QY0/mwhlGvS6fMtvEPyn/7AHUx96NjqDA4X4+Ju7aXFQKh+m3jW9VPB0B9xvEQgyAnRPNw==", + "license": "MIT" + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.23.2.tgz", + "integrity": "sha512-rfbi/SnhEa3MmlqQvgYz/9NNJ156NkU6xFxjbxBtLWnHbpj+qnlMoKd+amoiacHRITpajg6zYbLM9dnaD3Bczw==", + "license": "MIT", + "dependencies": { + "@algolia/cache-common": "4.23.2" + } + }, + "node_modules/@algolia/client-account": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.23.2.tgz", + "integrity": "sha512-VbrOCLIN/5I7iIdskSoSw3uOUPF516k4SjDD4Qz3BFwa3of7D9A0lzBMAvQEJJEPHWdVraBJlGgdJq/ttmquJQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "4.23.2", + "@algolia/client-search": "4.23.2", + "@algolia/transporter": "4.23.2" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.23.2.tgz", + "integrity": "sha512-lLj7irsAztGhMoEx/SwKd1cwLY6Daf1Q5f2AOsZacpppSvuFvuBrmkzT7pap1OD/OePjLKxicJS8wNA0+zKtuw==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "4.23.2", + "@algolia/client-search": "4.23.2", + "@algolia/requester-common": "4.23.2", + "@algolia/transporter": "4.23.2" + } + }, + "node_modules/@algolia/client-common": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.23.2.tgz", + "integrity": "sha512-Q2K1FRJBern8kIfZ0EqPvUr3V29ICxCm/q42zInV+VJRjldAD9oTsMGwqUQ26GFMdFYmqkEfCbY4VGAiQhh22g==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.23.2", + "@algolia/transporter": "4.23.2" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.23.2.tgz", + "integrity": "sha512-vwPsgnCGhUcHhhQG5IM27z8q7dWrN9itjdvgA6uKf2e9r7vB+WXt4OocK0CeoYQt3OGEAExryzsB8DWqdMK5wg==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "4.23.2", + "@algolia/requester-common": "4.23.2", + "@algolia/transporter": "4.23.2" + } + }, + "node_modules/@algolia/client-search": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.23.2.tgz", + "integrity": "sha512-CxSB29OVGSE7l/iyoHvamMonzq7Ev8lnk/OkzleODZ1iBcCs3JC/XgTIKzN/4RSTrJ9QybsnlrN/bYCGufo7qw==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "4.23.2", + "@algolia/requester-common": "4.23.2", + "@algolia/transporter": "4.23.2" + } + }, + "node_modules/@algolia/events": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", + "license": "MIT" + }, + "node_modules/@algolia/logger-common": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.23.2.tgz", + "integrity": "sha512-jGM49Q7626cXZ7qRAWXn0jDlzvoA1FvN4rKTi1g0hxKsTTSReyYk0i1ADWjChDPl3Q+nSDhJuosM2bBUAay7xw==", + "license": "MIT" + }, + "node_modules/@algolia/logger-console": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.23.2.tgz", + "integrity": "sha512-oo+lnxxEmlhTBTFZ3fGz1O8PJ+G+8FiAoMY2Qo3Q4w23xocQev6KqDTA1JQAGPDxAewNA2VBwWOsVXeXFjrI/Q==", + "license": "MIT", + "dependencies": { + "@algolia/logger-common": "4.23.2" + } + }, + "node_modules/@algolia/recommend": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.23.2.tgz", + "integrity": "sha512-Q75CjnzRCDzgIlgWfPnkLtrfF4t82JCirhalXkSSwe/c1GH5pWh4xUyDOR3KTMo+YxxX3zTlrL/FjHmUJEWEcg==", + "license": "MIT", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.23.2", + "@algolia/cache-common": "4.23.2", + "@algolia/cache-in-memory": "4.23.2", + "@algolia/client-common": "4.23.2", + "@algolia/client-search": "4.23.2", + "@algolia/logger-common": "4.23.2", + "@algolia/logger-console": "4.23.2", + "@algolia/requester-browser-xhr": "4.23.2", + "@algolia/requester-common": "4.23.2", + "@algolia/requester-node-http": "4.23.2", + "@algolia/transporter": "4.23.2" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.2.tgz", + "integrity": "sha512-TO9wLlp8+rvW9LnIfyHsu8mNAMYrqNdQ0oLF6eTWFxXfxG3k8F/Bh7nFYGk2rFAYty4Fw4XUtrv/YjeNDtM5og==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.23.2" + } + }, + "node_modules/@algolia/requester-common": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.23.2.tgz", + "integrity": "sha512-3EfpBS0Hri0lGDB5H/BocLt7Vkop0bTTLVUBB844HH6tVycwShmsV6bDR7yXbQvFP1uNpgePRD3cdBCjeHmk6Q==", + "license": "MIT" + }, + "node_modules/@algolia/requester-node-http": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.23.2.tgz", + "integrity": "sha512-SVzgkZM/malo+2SB0NWDXpnT7nO5IZwuDTaaH6SjLeOHcya1o56LSWXk+3F3rNLz2GVH+I/rpYKiqmHhSOjerw==", + "license": "MIT", + "dependencies": { + "@algolia/requester-common": "4.23.2" + } + }, + "node_modules/@algolia/transporter": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.23.2.tgz", + "integrity": "sha512-GY3aGKBy+8AK4vZh8sfkatDciDVKad5rTY2S10Aefyjh7e7UGBP4zigf42qVXwU8VOPwi7l/L7OACGMOFcjB0Q==", + "license": "MIT", + "dependencies": { + "@algolia/cache-common": "4.23.2", + "@algolia/logger-common": "4.23.2", + "@algolia/requester-common": "4.23.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/@babel/generator": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "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==", + "license": "MIT", + "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" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/@babel/helper-environment-visitor": { + "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==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "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==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "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==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "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==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "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==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", + "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.1.tgz", + "integrity": "sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "license": "MIT" + }, + "node_modules/@babel/runtime": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", + "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.24.4.tgz", + "integrity": "sha512-VOQOexSilscN24VEY810G/PqtpFvx/z6UqDIjIWbDe2368HhDLkYN5TYwaEz/+eRCUkhJ2WaNLLmQAlxzfWj4w==", + "license": "MIT", + "dependencies": { + "core-js-pure": "^3.30.2", + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docsearch/css": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", + "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==", + "license": "MIT" + }, + "node_modules/@docsearch/react": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", + "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.9.3", + "@docsearch/css": "3.6.0", + "algoliasearch": "^4.19.1" + }, + "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 + } + } + }, + "node_modules/@docusaurus/core": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.2.1.tgz", + "integrity": "sha512-ZeMAqNvy0eBv2dThEeMuNzzuu+4thqMQakhxsgT5s02A8LqRcdkg+rbcnuNqUIpekQ4GRx3+M5nj0ODJhBXo9w==", + "license": "MIT", + "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" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/core/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@docusaurus/cssnano-preset": { + "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==", + "license": "MIT", + "dependencies": { + "cssnano-preset-advanced": "^5.3.10", + "postcss": "^8.4.26", + "postcss-sort-media-queries": "^4.4.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/logger": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.2.1.tgz", + "integrity": "sha512-0voOKJCn9RaM3np6soqEfo7SsVvf2C+CDTWhW+H/1AyBhybASpExtDEz+7ECck9TwPzFQ5tt+I3zVugUJbJWDg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/mdx-loader": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.2.1.tgz", + "integrity": "sha512-Fs8tXhXKZjNkdGaOy1xSLXSwfjCMT73J3Zfrju2U16uGedRFRjgK0ojpK5tiC7TnunsL3tOFgp1BSMBRflX9gw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/module-type-aliases": { + "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==", + "license": "MIT", + "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" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/module-type-aliases/node_modules/react-helmet-async": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-2.0.4.tgz", + "integrity": "sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==", + "license": "Apache-2.0", + "dependencies": { + "invariant": "^2.2.4", + "react-fast-compare": "^3.2.2", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-blog": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.2.1.tgz", + "integrity": "sha512-lOx0JfhlGZoZu6pEJfeEpSISZR5dQbJGGvb42IP13G5YThNHhG9R9uoWuo4IOimPqBC7sHThdLA3VLevk61Fsw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.2.1.tgz", + "integrity": "sha512-GHe5b/lCskAR8QVbfWAfPAApvRZgqk7FN3sOHgjCtjzQACZxkHmq6QqyqZ8Jp45V7lVck4wt2Xw2IzBJ7Cz3bA==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "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==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.2.1", + "@docusaurus/types": "3.2.1", + "@docusaurus/utils-validation": "3.2.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.2.1.tgz", + "integrity": "sha512-XtuJnlMvYfppeVdUyKiDIJAa/gTJKCQU92z8CLZZ9ibJdgVjFOLS10s0hIC0eL5z0U2u2loJz2rZ63HOkNHbBA==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-tag-manager": { + "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==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.2.1", + "@docusaurus/types": "3.2.1", + "@docusaurus/utils-validation": "3.2.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.2.1.tgz", + "integrity": "sha512-uWZ7AxzdeaQSTCwD2yZtOiEm9zyKU+wqCmi/Sf25kQQqqFSBZUStXfaQ8OHP9cecnw893ZpZ811rPhB/wfujJw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.2.1.tgz", + "integrity": "sha512-E3OHSmttpEBcSMhfPBq3EJMBxZBM01W1rnaCUTXy9EHvkmB5AwgTfW1PwGAybPAX579ntE03R+2zmXdizWfKnQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/react-loadable": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "license": "MIT", + "dependencies": { + "@types/react": "*", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.2.1.tgz", + "integrity": "sha512-+vSbnQyoWjc6vRZi4vJO2dBU02wqzynsai15KK+FANZudrYaBHtkbLZAQhgmxzBGVpxzi87gRohlMm+5D8f4tA==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-common": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-translations": { + "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==", + "license": "MIT", + "dependencies": { + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/tsconfig": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.2.1.tgz", + "integrity": "sha512-+biUwtsYW3oChLxYezzA+NIgS3Q9KDRl7add/YT54RXs9Q4rKInebxdHdG6JFs5BaTg45gyjDu0rvNVcGeHODg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docusaurus/types": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.2.1.tgz", + "integrity": "sha512-n/toxBzL2oxTtRTOFiGKsHypzn/Pm+sXyw+VSk1UbqbXQiHOwHwts55bpKwbcUgA530Is6kix3ELiFOv9GAMfw==", + "license": "MIT", + "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" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.2.1.tgz", + "integrity": "sha512-DPkIS/EPc+pGAV798PUXgNzJFM3HJouoQXgr0KDZuJVz1EkWbDLOcQwLIz8Qx7liI9ddfkN/TXTRQdsTPZNakw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/utils-common": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.2.1.tgz", + "integrity": "sha512-N5vadULnRLiqX2QfTjVEU3u5vo6RG2EZTdyXvJdzDOdrLCGIZAfnf/VkssinFZ922sVfaFfQ4FnStdhn5TWdVg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/utils-validation": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.2.1.tgz", + "integrity": "sha512-+x7IR9hNMXi62L1YAglwd0s95fR7+EtirjTxSN4kahYRWGqOi3jlQl1EV0az/yTEvKbxVvOPcdYicGu9dk4LJw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "license": "MIT", + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "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==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.1.tgz", + "integrity": "sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@mdx-js/react": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", + "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", + "license": "MIT", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pnpm/config.env-replace": { + "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==", + "license": "MIT", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "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==", + "license": "MIT", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "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==", + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@polka/url": { + "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==", + "license": "MIT" + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@slorber/remark-comment": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", + "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.1.0", + "micromark-util-symbol": "^1.0.1" + } + }, + "node_modules/@slorber/remark-comment/node_modules/micromark-factory-space": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/@slorber/remark-comment/node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/@slorber/remark-comment/node_modules/micromark-util-symbol": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/@slorber/remark-comment/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/@svgr/plugin-svgo": { + "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==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", + "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/acorn": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", + "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@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==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "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==", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.7", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.7.tgz", + "integrity": "sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "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==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "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==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/gtag.js": { + "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==", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "license": "MIT" + }, + "node_modules/@types/html-minifier-terser": { + "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==", + "license": "MIT" + }, + "node_modules/@types/http-cache-semantics": { + "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==", + "license": "MIT" + }, + "node_modules/@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==", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "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==", + "license": "MIT" + }, + "node_modules/@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==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "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==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", + "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.12.tgz", + "integrity": "sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==", + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.12.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.4.tgz", + "integrity": "sha512-E+Fa9z3wSQpzgYQdYmme5X3OTuejnnTx88A6p6vkkJosR3KBz+HpE3kqNm98VE6cfLFcISx7zW7MsJkH6KwbTw==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "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==", + "license": "MIT" + }, + "node_modules/@types/prismjs": { + "version": "1.26.3", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.3.tgz", + "integrity": "sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==" + }, + "node_modules/@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==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==", + "license": "MIT" + }, + "node_modules/@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==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.2.74", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.74.tgz", + "integrity": "sha512-9AEqNZZyBx8OdZpxzQlaFEVCSFUM2YXJH46yPOiOpm078k6ZLOCcuAzGum/zK8YBwY+dbahVNbHrbgrAwIRlqw==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-config": { + "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==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "^5.1.0" + } + }, + "node_modules/@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==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "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==", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "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==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@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==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "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==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "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==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "license": "MIT", + "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" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "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==", + "license": "MIT", + "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" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "license": "MIT", + "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" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "license": "MIT", + "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" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" + }, + "node_modules/accepts": { + "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==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "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==", + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/algoliasearch": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.23.2.tgz", + "integrity": "sha512-8aCl055IsokLuPU8BzLjwzXjb7ty9TPcUFFOk0pYOwsE5DMVhE3kwCMFtsCFKcnoPZK7oObm+H5mbnSO/9ioxQ==", + "license": "MIT", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.23.2", + "@algolia/cache-common": "4.23.2", + "@algolia/cache-in-memory": "4.23.2", + "@algolia/client-account": "4.23.2", + "@algolia/client-analytics": "4.23.2", + "@algolia/client-common": "4.23.2", + "@algolia/client-personalization": "4.23.2", + "@algolia/client-search": "4.23.2", + "@algolia/logger-common": "4.23.2", + "@algolia/logger-console": "4.23.2", + "@algolia/recommend": "4.23.2", + "@algolia/requester-browser-xhr": "4.23.2", + "@algolia/requester-common": "4.23.2", + "@algolia/requester-node-http": "4.23.2", + "@algolia/transporter": "4.23.2" + } + }, + "node_modules/algoliasearch-helper": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.17.0.tgz", + "integrity": "sha512-R5422OiQjvjlK3VdpNQ/Qk7KsTIGeM5ACm8civGifOVWdRRV/3SgXuKmeNxe94Dz6fwj/IgpVmXbHutU4mHubg==", + "license": "MIT", + "dependencies": { + "@algolia/events": "^4.0.1" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 6" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-html-community": { + "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==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/astring": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", + "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "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" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "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==", + "license": "MIT", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.1", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/batch": { + "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==", + "license": "MIT" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/boxen": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", + "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "license": "MIT", + "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" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request/node_modules/mimic-response": { + "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==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "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==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001606", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001606.tgz", + "integrity": "sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/character-entities": { + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", + "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" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio-select/node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "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==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-css": { + "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==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "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==", + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "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==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/combine-promises": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", + "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-path-prefix": { + "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==", + "license": "ISC" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/config-chain": { + "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==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "license": "BSD-2-Clause", + "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" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/yeoman/configstore?sponsor=1" + } + }, + "node_modules/connect-history-api-fallback": { + "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==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "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==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/copy-text-to-clipboard": { + "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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "license": "MIT", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.1.tgz", + "integrity": "sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", + "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.1.tgz", + "integrity": "sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "license": "MIT", + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/css-declaration-sorter": { + "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==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "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 + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/css-select/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-advanced": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "license": "MIT", + "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" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "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==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decode-named-character-reference": { + "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==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "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==", + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "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==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + } + }, + "node_modules/detect-port-alt": { + "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==", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/detect-port/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.728", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.728.tgz", + "integrity": "sha512-Ud1v7hJJYIqehlUJGqR6PF1Ek8l80zWwxA6nGxigBsGJ9f9M2fciHyrIiNMerSHSH3p+0/Ia7jIlnDkt41h5cw==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/emoticon": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz", + "integrity": "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", + "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-util-attach-comments": { + "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==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "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==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "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==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "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==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/estree-util-value-to-estree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.1.0.tgz", + "integrity": "sha512-608Ljjzmf3uOy19YczqzdX7keOJfC72CRKebDYxdPTZn2I+och7MOxh8F1fw9nwkgvNMrHNuGpYUsOTCoO5r2A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "is-plain-obj": "^4.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eta": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", + "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "url": "https://github.com/eta-dev/eta?sponsor=1" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eval": { + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "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==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "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==", + "license": "MIT" + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "license": "MIT", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "license": "MIT", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/feed": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", + "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "license": "MIT", + "dependencies": { + "xml-js": "^1.6.11" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "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==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "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==", + "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "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==", + "license": "MIT", + "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" + }, + "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 + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data-encoder": { + "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==", + "license": "MIT", + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "license": "Unlicense" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "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==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "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==", + "license": "ISC" + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "license": "ISC" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "license": "ISC", + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "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==", + "license": "BSD-2-Clause" + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/got/node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "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==", + "license": "ISC" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "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==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-from-parse5": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.2.tgz", + "integrity": "sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/inline-style-parser": { + "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==", + "license": "MIT" + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object": { + "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==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.3" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", + "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "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==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", + "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", + "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" + } + }, + "node_modules/hoist-non-react-statics": { + "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==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "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" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "license": "MIT", + "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" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-webpack-plugin": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/html-webpack-plugin/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", + "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" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "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==", + "license": "BSD-2-Clause" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", + "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", + "license": "MIT", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infima": { + "version": "0.2.0-alpha.43", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.43.tgz", + "integrity": "sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/inline-style-parser": { + "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==", + "license": "MIT" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", + "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "license": "MIT", + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/joi": { + "version": "17.12.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.3.tgz", + "integrity": "sha512-2RRziagf555owrm9IRVtdKynOBeITiDpuZqIpgwqXShPncPKNiRQoiGsl/T8SQdq+8ugRzH2LqY67irr2y/d+g==", + "license": "BSD-3-Clause", + "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" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "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==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "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==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "license": "MIT", + "dependencies": { + "package-json": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/launch-editor": { + "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==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", + "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-directive": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", + "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { + "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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", + "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "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==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "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==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.6.0.tgz", + "integrity": "sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ==", + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/micromark-core-commonmark": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/micromark-extension-directive": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.0.tgz", + "integrity": "sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "license": "MIT", + "dependencies": { + "fault": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "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==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "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==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/micromark-factory-whitespace": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/micromark-util-character": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/micromark-util-html-tag-name": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", + "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/micromark/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mini-css-extract-plugin": { + "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==", + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-emoji": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", + "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "license": "MIT" + }, + "node_modules/nth-check": { + "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==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "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==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "license": "MIT", + "dependencies": { + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "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==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-numeric-range": { + "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==", + "license": "ISC" + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "license": "MIT", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "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==", + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "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==", + "license": "(WTFPL OR MIT)" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "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==", + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "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==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-unused": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", + "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", + "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.3.5", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-merge-idents": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", + "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-longhand": { + "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==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "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==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "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==", + "license": "MIT", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "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==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "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==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "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==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "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==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "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==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "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==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "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==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "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==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "license": "MIT", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-idents": { + "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==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-selector-parser": { + "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==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sort-media-queries": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz", + "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==", + "license": "MIT", + "dependencies": { + "sort-css-media-queries": "2.1.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.16" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/postcss-zindex": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", + "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prism-react-renderer": { + "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" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "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==", + "license": "MIT" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" + }, + "node_modules/proxy-addr": { + "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==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", + "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "license": "MIT", + "dependencies": { + "escape-goat": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "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==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dev-utils": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-error-overlay": { + "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==", + "license": "MIT" + }, + "node_modules/react-fast-compare": { + "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==", + "license": "MIT" + }, + "node_modules/react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "license": "Apache-2.0", + "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" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-json-view-lite": { + "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==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "license": "MIT", + "dependencies": { + "@types/react": "*", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-loadable-ssr-addon-v5-slorber": { + "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==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.3" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "react-loadable": "*", + "webpack": ">=4.41.1 || 5.x" + } + }, + "node_modules/react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", + "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" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-config": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + }, + "peerDependencies": { + "react": ">=15", + "react-router": ">=5" + } + }, + "node_modules/react-router-dom": { + "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==", + "license": "MIT", + "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" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router/node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reading-time": { + "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==", + "license": "MIT" + }, + "node_modules/rechoir": { + "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" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "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==", + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "license": "MIT", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-directive": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz", + "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-directive": "^3.0.0", + "micromark-extension-directive": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-emoji": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", + "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", + "license": "MIT", + "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" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", + "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", + "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "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==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/require-from-string": { + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "engines": { + "node": "*" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "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==", + "license": "MIT" + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rtl-detect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz", + "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==", + "license": "BSD-3-Clause" + }, + "node_modules/rtlcss": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.1.1.tgz", + "integrity": "sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==", + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0", + "postcss": "^8.4.21", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "license": "ISC" + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/search-insights": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.13.0.tgz", + "integrity": "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==", + "peer": true + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "license": "MIT", + "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" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "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==", + "license": "MIT", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "license": "BSD-3-Clause", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "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==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/sitemap": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", + "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", + "license": "MIT", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=5.6.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "license": "MIT" + }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "license": "MIT", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sort-css-media-queries": { + "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==", + "license": "MIT", + "engines": { + "node": ">= 6.3.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "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==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", + "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" + } + }, + "node_modules/spdy-transport/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy-transport/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/spdy/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/srcset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", + "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "license": "MIT" + }, + "node_modules/string_decoder": { + "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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "license": "MIT", + "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" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.30.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz", + "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "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==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "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==", + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "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==", + "license": "MIT" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "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==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "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==", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-emoji-modifier-base": { + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "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==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unist-util-is": { + "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==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "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==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "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==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "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==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "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==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "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==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-notifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "license": "BSD-2-Clause", + "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" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/boxen": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", + "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "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==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" + }, + "node_modules/utility-types": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "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==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpack": { + "version": "5.91.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", + "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", + "license": "MIT", + "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" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", + "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", + "license": "MIT", + "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", + "is-plain-object": "^5.0.0", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "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==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "license": "MIT", + "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" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "license": "MIT", + "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 + } + } + }, + "node_modules/webpack-merge": { + "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==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "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==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "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==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpackbar": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", + "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.3", + "pretty-time": "^1.1.0", + "std-env": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "webpack": "3 || 4 || 5" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "license": "MIT", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "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==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "license": "MIT", + "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 + } + } + }, + "node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "license": "MIT", + "dependencies": { + "sax": "^1.2.4" + }, + "bin": { + "xml-js": "bin/cli.js" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 000000000..291562c49 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,47 @@ +{ + "name": "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/sidebars.ts b/docs/sidebars.ts new file mode 100644 index 000000000..431ed961b --- /dev/null +++ b/docs/sidebars.ts @@ -0,0 +1,21 @@ +import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; + +const sidebars: SidebarsConfig = { + // By default, Docusaurus generates a sidebar from the docs folder structure + tutorialSidebar: [{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/components/HomepageFeatures/index.tsx b/docs/src/components/HomepageFeatures/index.tsx new file mode 100644 index 000000000..fd953b7c6 --- /dev/null +++ b/docs/src/components/HomepageFeatures/index.tsx @@ -0,0 +1,70 @@ +import clsx from "clsx"; +import Heading from "@theme/Heading"; +import styles from "./styles.module.css"; + +type FeatureItem = { + title: string; + // Svg: React.ComponentType>; + description: JSX.Element; +}; + +const FeatureList: FeatureItem[] = [ + { + title: "Serialization", + // Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default, + description: ( + <> + Make calls using XML or JSON body, and receive XML or JSON responses. + RestSharp takes care of serializing requests and deserializing responses, as well as adding the correct content type. + + ), + }, + { + title: "Fully async", + // Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default, + description: ( + <> + RestSharp API has an extensive number of async functions to make all sort of HTTP calls. + It still provides sync overloads to allow using RestSharp in legacy applications or non-async environments. + + ), + }, + { + title: "Parameters", + // Svg: require('@site/static/img/undraw_docusaurus_react.svg').default, + description: ( + <> + Whether you want to add a query, a URL, or URL-encoded form parameters, RestSharp allows doing it with one line of code. + The same applies to sending files and using multipart forms. + + ), + }, +]; + +function Feature({ title, description }: FeatureItem) { + return ( +
+ {/*
*/} + {/* */} + {/*
*/} +
+ {title} +

{description}

+
+
+ ); +} + +export default function HomepageFeatures(): JSX.Element { + return ( +
+
+
+ {FeatureList.map((props, idx) => ( + + ))} +
+
+
+ ); +} diff --git a/docs/src/components/HomepageFeatures/styles.module.css b/docs/src/components/HomepageFeatures/styles.module.css new file mode 100644 index 000000000..b248eb2e5 --- /dev/null +++ b/docs/src/components/HomepageFeatures/styles.module.css @@ -0,0 +1,11 @@ +.features { + display: flex; + align-items: center; + padding: 2rem 0; + width: 100%; +} + +.featureSvg { + height: 200px; + width: 200px; +} diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css new file mode 100644 index 000000000..2bc6a4cfd --- /dev/null +++ b/docs/src/css/custom.css @@ -0,0 +1,30 @@ +/** + * 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: #2e8555; + --ifm-color-primary-dark: #29784c; + --ifm-color-primary-darker: #277148; + --ifm-color-primary-darkest: #205d3b; + --ifm-color-primary-light: #33925d; + --ifm-color-primary-lighter: #359962; + --ifm-color-primary-lightest: #3cad6e; + --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: #25c2a0; + --ifm-color-primary-dark: #21af90; + --ifm-color-primary-darker: #1fa588; + --ifm-color-primary-darkest: #1a8870; + --ifm-color-primary-light: #29d5b0; + --ifm-color-primary-lighter: #32d8b4; + --ifm-color-primary-lightest: #4fddbf; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); +} diff --git a/docs/src/pages/index.module.css b/docs/src/pages/index.module.css new file mode 100644 index 000000000..9f71a5da7 --- /dev/null +++ b/docs/src/pages/index.module.css @@ -0,0 +1,23 @@ +/** + * CSS files with the .module.css suffix will be treated as CSS modules + * and scoped locally. + */ + +.heroBanner { + padding: 4rem 0; + text-align: center; + position: relative; + overflow: hidden; +} + +@media screen and (max-width: 996px) { + .heroBanner { + padding: 2rem; + } +} + +.buttons { + display: flex; + align-items: center; + justify-content: center; +} diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx new file mode 100644 index 000000000..0374fc9ac --- /dev/null +++ b/docs/src/pages/index.tsx @@ -0,0 +1,43 @@ +import clsx from 'clsx'; +import Link from '@docusaurus/Link'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import Layout from '@theme/Layout'; +import HomepageFeatures from '@site/src/components/HomepageFeatures'; +import Heading from '@theme/Heading'; + +import styles from './index.module.css'; + +function HomepageHeader() { + const {siteConfig} = useDocusaurusContext(); + return ( +
+
+ RestSharp logo + + {siteConfig.title} + +

{siteConfig.tagline}

+
+ + Get Started + +
+
+
+ ); +} + +export default function Home(): JSX.Element { + const {siteConfig} = useDocusaurusContext(); + return ( + + +
+ +
+
+ ); +} diff --git a/docs/src/pages/markdown-page.md b/docs/src/pages/markdown-page.md new file mode 100644 index 000000000..9756c5b66 --- /dev/null +++ b/docs/src/pages/markdown-page.md @@ -0,0 +1,7 @@ +--- +title: Markdown page example +--- + +# Markdown page example + +You don't need React to write simple standalone pages. diff --git a/docs/support/README.md b/docs/src/pages/support.md similarity index 95% rename from docs/support/README.md rename to docs/src/pages/support.md index fa166e29b..922293894 100644 --- a/docs/support/README.md +++ b/docs/src/pages/support.md @@ -1,12 +1,16 @@ --- -title: Support +id: "support" --- -## Get Help +# Get help Got issues, questions, suggestions? Please read this page carefully to understand how you can get help working with RestSharp. -### Questions +:::tip +You can also support maintainers and motivate them by contributing via [GitHub Sponsors](https://github.com/sponsors/restsharp). +::: + +## Questions The most effective way to resolve questions about using RestSharp is StackOverflow. @@ -14,11 +18,11 @@ RestSharp has a large user base. Tens of thousands of projects and hundreds of t use RestSharp on a daily basis. So, asking questions on **StackOverflow** with [restsharp](https://stackoverflow.com/questions/tagged/restsharp) tag would most definitely lead you to a solution. -::: warning +:::warning Please do not use GitHub issues to ask question about using RestSharp. ::: -### Discussions +## Discussions We have a [mail list](http://groups.google.com/group/restsharp) at Google Groups dedicated to discussions about using RestSharp, feature proposals and similar topics. It is perfectly fine to @@ -27,13 +31,13 @@ ask questions about using RestSharp at that group too. Please check the group and engage with the community if you feel a need to discuss things that you struggle with or want to improve. -### Bugs and issues +## Bugs and issues The last resort to get help when you experience some unexpected behaviour, a crash or anything else that you consider a bug, is submitting an issue at our GitHub repository. -::: warning +:::warning **Do not ignore our contribution guidelines**, otherwise you risk your issue to be closed without being considered. Respect the maintainers, be specific and provide as many details about the issue as you can. @@ -46,7 +50,7 @@ Ensure you provide the following in the issue: - How the issue can be reproduced: a repository or at least a code snippet - If RestSharp unexpectedly throws an exception, provide the stack trace -### Contributing +## Contributing Although issues are considered as contributions, we strongly suggest helping the community by solving issues that you experienced by submitting a pull request. @@ -64,10 +68,6 @@ Here are contribution guidelines: - Test must run on .NET 6. - Use `autocrlf=true` (`git config --global core.autocrlf true`) -### Sponsor - -You can also support maintainers and motivate them by contributing -financially at [Open Collective](https://opencollective.com/restsharp). ## Common issues diff --git a/docs/v107/README.md b/docs/src/pages/v107.md similarity index 99% rename from docs/v107/README.md rename to docs/src/pages/v107.md index c50813041..43c22854c 100644 --- a/docs/v107/README.md +++ b/docs/src/pages/v107.md @@ -49,7 +49,7 @@ If you use a dependency-injection container, register your API client as a singl Beware that most of the code generators, like Postman C# code gen, generate code for RestSharp before v107, and that code is broken. Such code worked mostly due to obscurity of previous RestSharp versions API. For example, Postman-generated code tells you to add the content-type header, and the accept header, which in many cases is an anti-pattern. It also posts JSON payload as string, where RestSharp provides you with serialization and deserialization of JSON out of the box. -Therefore, please read the [Usage](../usage.md) page and follow our guidelines when using RestSharp v107+. +Therefore, please read the [Usage](/docs/usage) page and follow our guidelines when using RestSharp v107+. Some of the points to be aware of: - `AddParameter("application/json", ..., ParameterType.RequestBody)` won't work, use `AddBody` instead, or better, `AddJsonBody`. @@ -170,7 +170,7 @@ public class GitHubClient { Do not use one instance of `RestClient` across different API clients. -This documentation contains the complete example of a [Twitter API client](../usage.md), which you can use as a reference. +This documentation contains the complete example of a [Twitter API client](/docs/usage), which you can use as a reference. ## Presumably solved issues diff --git a/docs/static/.nojekyll b/docs/static/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/docs/.vuepress/public/android-chrome-192x192.png b/docs/static/img/android-chrome-192x192.png similarity index 100% rename from docs/.vuepress/public/android-chrome-192x192.png rename to docs/static/img/android-chrome-192x192.png diff --git a/docs/.vuepress/public/android-chrome-512x512.png b/docs/static/img/android-chrome-512x512.png similarity index 100% rename from docs/.vuepress/public/android-chrome-512x512.png rename to docs/static/img/android-chrome-512x512.png diff --git a/docs/.vuepress/public/apple-touch-icon.png b/docs/static/img/apple-touch-icon.png similarity index 100% rename from docs/.vuepress/public/apple-touch-icon.png rename to docs/static/img/apple-touch-icon.png diff --git a/docs/.vuepress/public/aws_logo.png b/docs/static/img/aws_logo.png similarity index 100% rename from docs/.vuepress/public/aws_logo.png rename to docs/static/img/aws_logo.png diff --git a/docs/.vuepress/public/favicon-16x16.png b/docs/static/img/favicon-16x16.png similarity index 100% rename from docs/.vuepress/public/favicon-16x16.png rename to docs/static/img/favicon-16x16.png diff --git a/docs/.vuepress/public/favicon-32x32.png b/docs/static/img/favicon-32x32.png similarity index 100% rename from docs/.vuepress/public/favicon-32x32.png rename to docs/static/img/favicon-32x32.png diff --git a/docs/.vuepress/public/favicon.ico b/docs/static/img/favicon.ico similarity index 100% rename from docs/.vuepress/public/favicon.ico rename to docs/static/img/favicon.ico diff --git a/docs/.vuepress/public/restsharp.png b/docs/static/img/restsharp.png similarity index 100% rename from docs/.vuepress/public/restsharp.png rename to docs/static/img/restsharp.png diff --git a/docs/.vuepress/public/site.webmanifest b/docs/static/img/site.webmanifest similarity index 100% rename from docs/.vuepress/public/site.webmanifest rename to docs/static/img/site.webmanifest diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 000000000..314eab8a4 --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,7 @@ +{ + // This file is not used in compilation. It is here just for a nice editor experience. + "extends": "@docusaurus/tsconfig", + "compilerOptions": { + "baseUrl": "." + } +} diff --git a/docs/v107/interfaces.md b/docs/v107/interfaces.md deleted file mode 100644 index 62991fff5..000000000 --- a/docs/v107/interfaces.md +++ /dev/null @@ -1,112 +0,0 @@ -| `IRestClient` member | Where is it now? | -|:------------------------------------------------------------------------------------------------|:-------------------------------------------| -| `CookieContainer` | Not supported, use `RestRequest.AddCookie` | -| `AutomaticDecompression` | `RestClientOptions`, changed type | -| `MaxRedirects` | `RestClientOptions` | -| `UserAgent` | `RestClientOptions` | -| `Timeout` | `RestClientOptions`, `RestRequest` | -| `Authenticator` | `RestClient` | -| `BaseUrl` | `RestClientOptions` | -| `Encoding` | `RestClientOptions` | -| `ThrowOnDeserializationError` | `RestClientOptions` | -| `FailOnDeserializationError` | `RestClientOptions` | -| `ThrowOnAnyError` | `RestClientOptions` | -| `PreAuthenticate` | `RestClientOptions` | -| `BaseHost` | `RestClientOptions` | -| `AllowMultipleDefaultParametersWithSameName` | `RestClientOptions` | -| `ClientCertificates` | `RestClientOptions` | -| `Proxy` | `RestClientOptions` | -| `CachePolicy` | `RestClientOptions`, changed type | -| `FollowRedirects` | `RestClientOptions` | -| `RemoteCertificateValidationCallback` | `RestClientOptions` | -| `Pipelined` | Not supported | -| `UnsafeAuthenticatedConnectionSharing` | Not supported | -| `ConnectionGroupName` | Not supported | -| `ReadWriteTimeout` | Not supported | -| `UseSynchronizationContext` | Not supported | -| `DefaultParameters` | `RestClient` | -| `UseSerializer(Func serializerFactory)` | `RestClient` | -| `UseSerializer()` | `RestClient` | -| `Deserialize(IRestResponse response)` | `RestClient` | -| `UseUrlEncoder(Func encoder)` | `RestClientOptions.Encode` | -| `UseQueryEncoder(Func queryEncoder)` | `RestClientOptions.EncodeQuery` | -| `ExecuteAsync(IRestRequest request, CancellationToken cancellationToken)` | `RestClient` | -| `ExecuteAsync(IRestRequest request, Method httpMethod, CancellationToken cancellationToken)` | Extension | -| `ExecuteAsync(IRestRequest request, Method httpMethod, CancellationToken cancellationToken)` | Extension | -| `ExecuteAsync(IRestRequest request, CancellationToken cancellationToken)` | Extension | -| `ExecuteGetAsync(IRestRequest request, CancellationToken cancellationToken)` | Extension | -| `ExecutePostAsync(IRestRequest request, CancellationToken cancellationToken)` | Extension | -| `ExecuteGetAsync(IRestRequest request, CancellationToken cancellationToken)` | Extension | -| `ExecutePostAsync(IRestRequest request, CancellationToken cancellationToken)` | Extension | -| `Execute(IRestRequest request)` | Extension | -| `Execute(IRestRequest request, Method httpMethod)` | Extension | -| `Execute(IRestRequest request)` | Extension | -| `Execute(IRestRequest request, Method httpMethod)` | Extension | -| `DownloadData(IRestRequest request)` | Extension | -| `ExecuteAsGet(IRestRequest request, string httpMethod)` | Extension | -| `ExecuteAsPost(IRestRequest request, string httpMethod)` | Extension | -| `ExecuteAsGet(IRestRequest request, string httpMethod)` | Extension | -| `ExecuteAsPost(IRestRequest request, string httpMethod)` | Extension | -| `BuildUriWithoutQueryParameters(IRestRequest request)` | Removed | -| `ConfigureWebRequest(Action configurator)` | Removed | -| `AddHandler(string contentType, Func deserializerFactory)` | Removed | -| `RemoveHandler(string contentType)` | Removed | -| `ClearHandlers()` | Removed | - -| `IRestRequest` member | Where is it now? | -|:-------------------------------------------------------------------------------------------------------|:---------------------------------| -| `AlwaysMultipartFormData` | `RestRequest` | -| `JsonSerializer` | Deprecated | -| `XmlSerializer` | Deprecated | -| `AdvancedResponseWriter` | `RestRequest`, changed signature | -| `ResponseWriter` | `RestRequest`, changed signature | -| `Parameters` | `RestRequest` | -| `Files` | `RestRequest` | -| `Method` | `RestRequest` | -| `Resource` | `RestRequest` | -| `RequestFormat` | `RestRequest` | -| `RootElement` | `RestRequest` | -| `DateFormat` | `XmlRequest` | -| `XmlNamespace` | `XmlRequest` | -| `Credentials` | Removed, use `RestClientOptions` | -| `Timeout` | `RestRequest` | -| `ReadWriteTimeout` | Not supported | -| `Attempts` | `RestRequest` | -| `UseDefaultCredentials` | Removed, use `RestClientOptions` | -| `AllowedDecompressionMethods` | Removed, use `RestClientOptions` | -| `OnBeforeDeserialization` | `RestRequest` | -| `OnBeforeRequest` | `RestRequest`, changed signature | -| `Body` | Removed, use `Parameters` | -| `AddParameter(Parameter p)` | `RestRequest` | -| `AddFile(string name, string path, string contentType)` | Extension | -| `AddFile(string name, byte[] bytes, string fileName, string contentType)` | Extension | -| `AddFile(string name, Action writer, string fileName, long contentLength, string contentType)` | Extension | -| `AddFileBytes(string name, byte[] bytes, string filename, string contentType)` | Extension `AddFile` | -| `AddBody(object obj, string xmlNamespace)` | Deprecated | -| `AddBody(object obj)` | Extension | -| `AddJsonBody(object obj)` | Extension | -| `AddJsonBody(object obj, string contentType)` | Extension | -| `AddXmlBody(object obj)` | Extension | -| `AddXmlBody(object obj, string xmlNamespace)` | Extension | -| `AddObject(object obj, params string[] includedProperties)` | Extension | -| `AddObject(object obj)` | Extension | -| `AddParameter(string name, object value)` | Extension | -| `AddParameter(string name, object value, ParameterType type)` | Extension | -| `AddParameter(string name, object value, string contentType, ParameterType type)` | Extension | -| `AddOrUpdateParameter(Parameter parameter)` | Extension | -| `AddOrUpdateParameters(IEnumerable parameters)` | Extension | -| `AddOrUpdateParameter(string name, object value)` | Extension | -| `AddOrUpdateParameter(string name, object value, ParameterType type)` | Extension | -| `AddOrUpdateParameter(string name, object value, string contentType, ParameterType type)` | Extension | -| `AddHeader(string name, string value)` | Extension | -| `AddOrUpdateHeader(string name, string value)` | Extension | -| `AddHeaders(ICollection> headers)` | Extension | -| `AddOrUpdateHeaders(ICollection> headers)` | Extension | -| `AddCookie(string name, string value)` | Extension | -| `AddUrlSegment(string name, string value)` | Extension | -| `AddUrlSegment(string name, string value, bool encode)` | Extension | -| `AddUrlSegment(string name, object value)` | Extension | -| `AddQueryParameter(string name, string value)` | Extension | -| `AddQueryParameter(string name, string value, bool encode)` | Extension | -| `AddDecompressionMethod(DecompressionMethods decompressionMethod)` | Not supported | -| `IncreaseNumAttempts()` | Made internal | \ No newline at end of file diff --git a/docs/yarn.lock b/docs/yarn.lock new file mode 100644 index 000000000..206e378d1 --- /dev/null +++ b/docs/yarn.lock @@ -0,0 +1,8391 @@ +# 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.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.2.tgz" + integrity sha512-PvRQdCmtiU22dw9ZcTJkrVKgNBVAxKgD0/cfiqyxhA5+PHzA2WDt6jOmZ9QASkeM2BpyzClJb/Wr1yt2/t78Kw== + dependencies: + "@algolia/cache-common" "4.23.2" + +"@algolia/cache-common@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.23.2.tgz" + integrity sha512-OUK/6mqr6CQWxzl/QY0/mwhlGvS6fMtvEPyn/7AHUx96NjqDA4X4+Ju7aXFQKh+m3jW9VPB0B9xvEQgyAnRPNw== + +"@algolia/cache-in-memory@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.23.2.tgz" + integrity sha512-rfbi/SnhEa3MmlqQvgYz/9NNJ156NkU6xFxjbxBtLWnHbpj+qnlMoKd+amoiacHRITpajg6zYbLM9dnaD3Bczw== + dependencies: + "@algolia/cache-common" "4.23.2" + +"@algolia/client-account@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.23.2.tgz" + integrity sha512-VbrOCLIN/5I7iIdskSoSw3uOUPF516k4SjDD4Qz3BFwa3of7D9A0lzBMAvQEJJEPHWdVraBJlGgdJq/ttmquJQ== + dependencies: + "@algolia/client-common" "4.23.2" + "@algolia/client-search" "4.23.2" + "@algolia/transporter" "4.23.2" + +"@algolia/client-analytics@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.23.2.tgz" + integrity sha512-lLj7irsAztGhMoEx/SwKd1cwLY6Daf1Q5f2AOsZacpppSvuFvuBrmkzT7pap1OD/OePjLKxicJS8wNA0+zKtuw== + dependencies: + "@algolia/client-common" "4.23.2" + "@algolia/client-search" "4.23.2" + "@algolia/requester-common" "4.23.2" + "@algolia/transporter" "4.23.2" + +"@algolia/client-common@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.23.2.tgz" + integrity sha512-Q2K1FRJBern8kIfZ0EqPvUr3V29ICxCm/q42zInV+VJRjldAD9oTsMGwqUQ26GFMdFYmqkEfCbY4VGAiQhh22g== + dependencies: + "@algolia/requester-common" "4.23.2" + "@algolia/transporter" "4.23.2" + +"@algolia/client-personalization@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.23.2.tgz" + integrity sha512-vwPsgnCGhUcHhhQG5IM27z8q7dWrN9itjdvgA6uKf2e9r7vB+WXt4OocK0CeoYQt3OGEAExryzsB8DWqdMK5wg== + dependencies: + "@algolia/client-common" "4.23.2" + "@algolia/requester-common" "4.23.2" + "@algolia/transporter" "4.23.2" + +"@algolia/client-search@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.23.2.tgz" + integrity sha512-CxSB29OVGSE7l/iyoHvamMonzq7Ev8lnk/OkzleODZ1iBcCs3JC/XgTIKzN/4RSTrJ9QybsnlrN/bYCGufo7qw== + dependencies: + "@algolia/client-common" "4.23.2" + "@algolia/requester-common" "4.23.2" + "@algolia/transporter" "4.23.2" + +"@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.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.23.2.tgz" + integrity sha512-jGM49Q7626cXZ7qRAWXn0jDlzvoA1FvN4rKTi1g0hxKsTTSReyYk0i1ADWjChDPl3Q+nSDhJuosM2bBUAay7xw== + +"@algolia/logger-console@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.23.2.tgz" + integrity sha512-oo+lnxxEmlhTBTFZ3fGz1O8PJ+G+8FiAoMY2Qo3Q4w23xocQev6KqDTA1JQAGPDxAewNA2VBwWOsVXeXFjrI/Q== + dependencies: + "@algolia/logger-common" "4.23.2" + +"@algolia/recommend@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.23.2.tgz" + integrity sha512-Q75CjnzRCDzgIlgWfPnkLtrfF4t82JCirhalXkSSwe/c1GH5pWh4xUyDOR3KTMo+YxxX3zTlrL/FjHmUJEWEcg== + dependencies: + "@algolia/cache-browser-local-storage" "4.23.2" + "@algolia/cache-common" "4.23.2" + "@algolia/cache-in-memory" "4.23.2" + "@algolia/client-common" "4.23.2" + "@algolia/client-search" "4.23.2" + "@algolia/logger-common" "4.23.2" + "@algolia/logger-console" "4.23.2" + "@algolia/requester-browser-xhr" "4.23.2" + "@algolia/requester-common" "4.23.2" + "@algolia/requester-node-http" "4.23.2" + "@algolia/transporter" "4.23.2" + +"@algolia/requester-browser-xhr@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.2.tgz" + integrity sha512-TO9wLlp8+rvW9LnIfyHsu8mNAMYrqNdQ0oLF6eTWFxXfxG3k8F/Bh7nFYGk2rFAYty4Fw4XUtrv/YjeNDtM5og== + dependencies: + "@algolia/requester-common" "4.23.2" + +"@algolia/requester-common@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.23.2.tgz" + integrity sha512-3EfpBS0Hri0lGDB5H/BocLt7Vkop0bTTLVUBB844HH6tVycwShmsV6bDR7yXbQvFP1uNpgePRD3cdBCjeHmk6Q== + +"@algolia/requester-node-http@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.23.2.tgz" + integrity sha512-SVzgkZM/malo+2SB0NWDXpnT7nO5IZwuDTaaH6SjLeOHcya1o56LSWXk+3F3rNLz2GVH+I/rpYKiqmHhSOjerw== + dependencies: + "@algolia/requester-common" "4.23.2" + +"@algolia/transporter@4.23.2": + version "4.23.2" + resolved "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.23.2.tgz" + integrity sha512-GY3aGKBy+8AK4vZh8sfkatDciDVKad5rTY2S10Aefyjh7e7UGBP4zigf42qVXwU8VOPwi7l/L7OACGMOFcjB0Q== + dependencies: + "@algolia/cache-common" "4.23.2" + "@algolia/logger-common" "4.23.2" + "@algolia/requester-common" "4.23.2" + +"@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.19.6", "@babel/core@^7.23.3": + 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@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.5", "@nodelib/fs.stat@^2.0.2": + 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@^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.7" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.7.tgz" + integrity sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA== + 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.12" + resolved "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.12.tgz" + integrity sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw== + +"@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.4" + resolved "https://registry.npmjs.org/@types/node/-/node-20.12.4.tgz" + integrity sha512-E+Fa9z3wSQpzgYQdYmme5X3OTuejnnTx88A6p6vkkJosR3KBz+HpE3kqNm98VE6cfLFcISx7zW7MsJkH6KwbTw== + 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@*": + version "18.2.74" + resolved "https://registry.npmjs.org/@types/react/-/react-18.2.74.tgz" + integrity sha512-9AEqNZZyBx8OdZpxzQlaFEVCSFUM2YXJH46yPOiOpm078k6ZLOCcuAzGum/zK8YBwY+dbahVNbHrbgrAwIRlqw== + 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@^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, 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: + 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.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: + version "4.23.2" + resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.23.2.tgz" + integrity sha512-8aCl055IsokLuPU8BzLjwzXjb7ty9TPcUFFOk0pYOwsE5DMVhE3kwCMFtsCFKcnoPZK7oObm+H5mbnSO/9ioxQ== + dependencies: + "@algolia/cache-browser-local-storage" "4.23.2" + "@algolia/cache-common" "4.23.2" + "@algolia/cache-in-memory" "4.23.2" + "@algolia/client-account" "4.23.2" + "@algolia/client-analytics" "4.23.2" + "@algolia/client-common" "4.23.2" + "@algolia/client-personalization" "4.23.2" + "@algolia/client-search" "4.23.2" + "@algolia/logger-common" "4.23.2" + "@algolia/logger-console" "4.23.2" + "@algolia/recommend" "4.23.2" + "@algolia/requester-browser-xhr" "4.23.2" + "@algolia/requester-common" "4.23.2" + "@algolia/requester-node-http" "4.23.2" + "@algolia/transporter" "4.23.2" + +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: + 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.30001606" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001606.tgz" + integrity sha512-LPbwnW4vfpJId225pwjZJOgX1m9sGfbw/RKJvw/t0QhYOOaTXHvkjVGFGPpvwEzufrjvTlsULnVTxdy4/6cqkg== + +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.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +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== + +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.9, 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, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + 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" + +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@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== + +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== + +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.728" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.728.tgz" + integrity sha512-Ud1v7hJJYIqehlUJGqR6PF1Ek8l80zWwxA6nGxigBsGJ9f9M2fciHyrIiNMerSHSH3p+0/Ia7jIlnDkt41h5cw== + +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.0" + resolved "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.1.0.tgz" + integrity sha512-608Ljjzmf3uOy19YczqzdX7keOJfC72CRKebDYxdPTZn2I+och7MOxh8F1fw9nwkgvNMrHNuGpYUsOTCoO5r2A== + 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@^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.2.10: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +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== + +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@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-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-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, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + 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@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +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== + +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@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== + +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== + +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-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +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@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== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +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.6.0" + resolved "https://registry.npmjs.org/memfs/-/memfs-3.6.0.tgz" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + 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.52.0, "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-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.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, 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.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1: + 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@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-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-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@^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.0: + version "1.2.0" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" + integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== + +range-parser@^1.2.1, 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== + +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@^18.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, react-fast-compare@^3.2.2: + 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@*: + version "2.0.4" + resolved "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-2.0.4.tgz" + integrity sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ== + dependencies: + invariant "^2.2.4" + react-fast-compare "^3.2.2" + shallowequal "^1.1.0" + +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@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.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@^18.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.2, 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.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"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@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" + +schema-utils@^3.0.0, schema-utils@^3.1.1, 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" + +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, source-map@^0.6.1, 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.7.0: + version "0.7.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +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@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"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== + +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-width@^4.1.0, 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" + +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" + +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@~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.1" + resolved "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz" + integrity sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ== + 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" + is-plain-object "^5.0.0" + 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@^5.88.1: + 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.5.1, websocket-driver@^0.7.4: + 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== diff --git a/src/RestSharp.Serializers.CsvHelper/CsvHelperSerializer.cs b/src/RestSharp.Serializers.CsvHelper/CsvHelperSerializer.cs index ac4c852c0..719e92248 100644 --- a/src/RestSharp.Serializers.CsvHelper/CsvHelperSerializer.cs +++ b/src/RestSharp.Serializers.CsvHelper/CsvHelperSerializer.cs @@ -3,7 +3,7 @@ using System.Collections; using System.Globalization; -namespace RestSharp.Serializers.CsvHelper; +namespace RestSharp.Serializers.CsvHelper; public class CsvHelperSerializer(CsvConfiguration configuration) : IDeserializer, IRestSerializer, ISerializer { public ISerializer Serializer => this; @@ -26,14 +26,12 @@ public CsvHelperSerializer() : this(new CsvConfiguration(CultureInfo.InvariantCu throw new InvalidOperationException(message: "Response content is null"); using var stringReader = new StringReader(response.Content); - - using var csvReader = new CsvReader(stringReader, configuration); + using var csvReader = new CsvReader(stringReader, configuration); var @interface = typeof(T).GetInterface("IEnumerable`1"); if (@interface == null) { csvReader.Read(); - return csvReader.GetRecord(); } @@ -74,8 +72,7 @@ public CsvHelperSerializer() : this(new CsvConfiguration(CultureInfo.InvariantCu } using var stringWriter = new StringWriter(); - - using var csvWriter = new CsvWriter(stringWriter, configuration); + using var csvWriter = new CsvWriter(stringWriter, configuration); if (obj is IEnumerable records) { csvWriter.WriteRecords(records); @@ -89,4 +86,4 @@ public CsvHelperSerializer() : this(new CsvConfiguration(CultureInfo.InvariantCu return stringWriter.ToString(); } -} +} \ No newline at end of file diff --git a/src/RestSharp/Authenticators/HttpBasicAuthenticator.cs b/src/RestSharp/Authenticators/HttpBasicAuth.cs similarity index 87% rename from src/RestSharp/Authenticators/HttpBasicAuthenticator.cs rename to src/RestSharp/Authenticators/HttpBasicAuth.cs index 07d775664..89691c690 100644 --- a/src/RestSharp/Authenticators/HttpBasicAuthenticator.cs +++ b/src/RestSharp/Authenticators/HttpBasicAuth.cs @@ -24,9 +24,9 @@ namespace RestSharp.Authenticators; /// UTF-8 is used by default but some servers might expect ISO-8859-1 encoding. /// [PublicAPI] -public class HttpBasicAuthenticator(string username, string password, Encoding encoding) +public class HttpBasicAuth(string username, string password, Encoding encoding) : AuthenticatorBase(GetHeader(username, password, encoding)) { - public HttpBasicAuthenticator(string username, string password) : this(username, password, Encoding.UTF8) { } + public HttpBasicAuth(string username, string password) : this(username, password, Encoding.UTF8) { } static string GetHeader(string username, string password, Encoding encoding) => Convert.ToBase64String(encoding.GetBytes($"{username}:{password}")); diff --git a/src/RestSharp/Authenticators/OAuth/OAuth1Authenticator.cs b/src/RestSharp/Authenticators/OAuth/OAuth1Auth.cs similarity index 94% rename from src/RestSharp/Authenticators/OAuth/OAuth1Authenticator.cs rename to src/RestSharp/Authenticators/OAuth/OAuth1Auth.cs index b3637db42..f61877ec7 100644 --- a/src/RestSharp/Authenticators/OAuth/OAuth1Authenticator.cs +++ b/src/RestSharp/Authenticators/OAuth/OAuth1Auth.cs @@ -22,7 +22,7 @@ namespace RestSharp.Authenticators; /// RFC: The OAuth 1.0 Protocol -public class OAuth1Authenticator : IAuthenticator { +public class OAuth1Auth : IAuthenticator { public virtual string? Realm { get; set; } public virtual OAuthParameterHandling ParameterHandling { get; set; } public virtual OAuthSignatureMethod SignatureMethod { get; set; } @@ -61,7 +61,7 @@ public ValueTask Authenticate(IRestClient client, RestRequest request) { } [PublicAPI] - public static OAuth1Authenticator ForRequestToken( + public static OAuth1Auth ForRequestToken( string consumerKey, string? consumerSecret, OAuthSignatureMethod signatureMethod = OAuthSignatureMethod.HmacSha1 @@ -76,7 +76,7 @@ public static OAuth1Authenticator ForRequestToken( }; [PublicAPI] - public static OAuth1Authenticator ForRequestToken(string consumerKey, string? consumerSecret, string callbackUrl) { + public static OAuth1Auth ForRequestToken(string consumerKey, string? consumerSecret, string callbackUrl) { var authenticator = ForRequestToken(consumerKey, consumerSecret); authenticator.CallbackUrl = callbackUrl; @@ -85,7 +85,7 @@ public static OAuth1Authenticator ForRequestToken(string consumerKey, string? co } [PublicAPI] - public static OAuth1Authenticator ForAccessToken( + public static OAuth1Auth ForAccessToken( string consumerKey, string? consumerSecret, string token, @@ -104,7 +104,7 @@ public static OAuth1Authenticator ForAccessToken( }; [PublicAPI] - public static OAuth1Authenticator ForAccessToken( + public static OAuth1Auth ForAccessToken( string consumerKey, string? consumerSecret, string token, @@ -119,7 +119,7 @@ string verifier } [PublicAPI] - public static OAuth1Authenticator ForAccessTokenRefresh( + public static OAuth1Auth ForAccessTokenRefresh( string consumerKey, string? consumerSecret, string token, @@ -134,7 +134,7 @@ string sessionHandle } [PublicAPI] - public static OAuth1Authenticator ForAccessTokenRefresh( + public static OAuth1Auth ForAccessTokenRefresh( string consumerKey, string? consumerSecret, string token, @@ -151,7 +151,7 @@ string sessionHandle } [PublicAPI] - public static OAuth1Authenticator ForClientAuthentication( + public static OAuth1Auth ForClientAuthentication( string consumerKey, string? consumerSecret, string username, @@ -170,7 +170,7 @@ public static OAuth1Authenticator ForClientAuthentication( }; [PublicAPI] - public static OAuth1Authenticator ForProtectedResource( + public static OAuth1Auth ForProtectedResource( string consumerKey, string? consumerSecret, string accessToken, diff --git a/src/RestSharp/ContentType.cs b/src/RestSharp/ContentType.cs index 3a277de69..c2250548e 100644 --- a/src/RestSharp/ContentType.cs +++ b/src/RestSharp/ContentType.cs @@ -60,11 +60,11 @@ public class ContentType : IEquatable { }; public static readonly string[] JsonAccept = { - "application/json", "text/json", "text/x-json", "text/javascript" + Json, "text/json", "text/x-json", "text/javascript" }; public static readonly string[] XmlAccept = { - "application/xml", "text/xml" + Xml, "text/xml" }; readonly string _value; diff --git a/src/RestSharp/KnownHeaders.cs b/src/RestSharp/KnownHeaders.cs index c8909a7be..2cd925710 100644 --- a/src/RestSharp/KnownHeaders.cs +++ b/src/RestSharp/KnownHeaders.cs @@ -21,6 +21,7 @@ namespace RestSharp; public static class KnownHeaders { public const string Authorization = "Authorization"; public const string Accept = "Accept"; + public const string AcceptLanguage = "Accept-Language"; public const string Allow = "Allow"; public const string Expires = "Expires"; public const string ContentDisposition = "Content-Disposition"; @@ -30,6 +31,7 @@ public static class KnownHeaders { public const string ContentLocation = "Content-Location"; public const string ContentRange = "Content-Range"; public const string ContentType = "Content-Type"; + public const string KeepAlive = "Keep-Alive"; public const string LastModified = "Last-Modified"; public const string ContentMD5 = "Content-MD5"; public const string Host = "Host"; diff --git a/src/RestSharp/Request/PropertyCache.Populator.cs b/src/RestSharp/Request/PropertyCache.Populator.cs index 4118b6747..5074122bb 100644 --- a/src/RestSharp/Request/PropertyCache.Populator.cs +++ b/src/RestSharp/Request/PropertyCache.Populator.cs @@ -17,6 +17,7 @@ using System.Linq.Expressions; using System.Reflection; using System.Runtime.CompilerServices; + // ReSharper disable InconsistentNaming namespace RestSharp; @@ -51,7 +52,7 @@ sealed partial class Populator { /// A public instance property from the type /// internal static Populator From(PropertyInfo property) { - var entity = Expression.Parameter(typeof(T)); + var entity = Expression.Parameter(typeof(T)); var callGetter = Expression.Call(entity, property.GetGetMethod()!); Expression convertGetterReturnToObject = @@ -84,30 +85,30 @@ static Action> GetPopulate(Func getCo static Action> GetPopulate(Func> getFormattables, RequestProperty requestProperty) => requestProperty.ArrayQueryType switch { - RequestArrayQueryType.CommaSeparated => (model, parameters) => PopulateCsv(getFormattables(model), requestProperty, parameters), + RequestArrayQueryType.CommaSeparated => (model, parameters) => PopulateCsv(getFormattables(model), requestProperty, parameters), RequestArrayQueryType.ArrayParameters => GetPopulateArray(getFormattables, requestProperty), - _ => (_, _) => { } + _ => (_, _) => { } }; // Here we avoid the cost of checking if the format is CSV or Array every time by caching the result of this evaluation. static Action> GetPopulate(Func> getConvertibles, RequestProperty requestProperty) => requestProperty.ArrayQueryType switch { - RequestArrayQueryType.CommaSeparated => (entity, parameters) => PopulateCsv(getConvertibles(entity), requestProperty, parameters), + RequestArrayQueryType.CommaSeparated => (entity, parameters) => PopulateCsv(getConvertibles(entity), requestProperty, parameters), RequestArrayQueryType.ArrayParameters => GetPopulateArray(getConvertibles, requestProperty), - _ => (_, _) => { } + _ => (_, _) => { } }; // Here we avoid the cost of checking if the format is CSV or Array every time by caching the result of this evaluation. static Action> GetPopulate(Func getEnumerable, RequestProperty requestProperty) => requestProperty.ArrayQueryType switch { - RequestArrayQueryType.CommaSeparated => (entity, parameters) => PopulateCsv(getEnumerable(entity), requestProperty, parameters), + RequestArrayQueryType.CommaSeparated => (entity, parameters) => PopulateCsv(getEnumerable(entity), requestProperty, parameters), RequestArrayQueryType.ArrayParameters => GetPopulateArray(getEnumerable, requestProperty), - _ => (_, _) => { } + _ => (_, _) => { } }; // Here we avoid the cost of checking if the format is CSV or Array every time by caching the result of this evaluation. static Action> GetPopulate(Func getObject, RequestProperty requestProperty) => requestProperty.ArrayQueryType switch { - RequestArrayQueryType.CommaSeparated => (entity, parameters) => PopulateCsv(getObject(entity), requestProperty, parameters), + RequestArrayQueryType.CommaSeparated => (entity, parameters) => PopulateCsv(getObject(entity), requestProperty, parameters), RequestArrayQueryType.ArrayParameters => (entity, parameters) => PopulateArray(getObject(entity), requestProperty, parameters), - _ => (_, _) => { } + _ => (_, _) => { } }; // Here we avoid the cost of checking if the format is CSV or Array every time by caching the result of this evaluation. static Action> GetPopulate(Func getObject, PropertyInfo property) { @@ -118,15 +119,15 @@ static Action> GetPopulate(Func getObject, // Unchecked casts here are safe because we know the return type of `getObject` is boxed if needed. return property.PropertyType switch { var formattableType when typeof(IFormattable).IsAssignableFrom(formattableType) => GetPopulate( - entity => Unsafe.As(getObject(entity))!, + entity => Unsafe.As(getObject(entity)), requestProperty ), var convertibleType when typeof(IConvertible).IsAssignableFrom(convertibleType) => GetPopulate( - entity => Unsafe.As(getObject(entity))!, + entity => Unsafe.As(getObject(entity)), requestProperty ), var enumerableType when typeof(IEnumerable).IsAssignableFrom(enumerableType) => GetPopulateUnknown( - entity => Unsafe.As(getObject(entity))!, + entity => Unsafe.As(getObject(entity)), requestProperty ), // At this point we're not necessarily sure we can just treat this as a bare object @@ -169,7 +170,7 @@ static Action> GetPopulateKnown(Func g parameters ), RequestArrayQueryType.ArrayParameters => GetPopulateArray(getEnumerable, requestProperty), - _ => (_, _) => { } + _ => (_, _) => { } }; // Here we avoid the cost of checking if the format is CSV or Array every time by caching the result of this evaluation. static Action> GetPopulateArray(Func> getFormattables, RequestProperty requestProperty) @@ -180,8 +181,8 @@ static Action> GetPopulateArray(Func> GetPopulateArray( Func> getEnumerable, - Func toString, - RequestProperty requestProperty + Func toString, + RequestProperty requestProperty ) where V : class { // We do this to avoid recreating request property on each iteration. var newRequestProperty = requestProperty with { Name = $"{requestProperty.Name}[]" }; @@ -235,18 +236,18 @@ static void PopulateCsv(IEnumerable enumerable, RequestProperty requestProperty, } static void PopulateCsv( - IEnumerable enumerable, - Func toString, - RequestProperty requestProperty, + IEnumerable enumerable, + Func toString, + RequestProperty requestProperty, ICollection parameters ) where V : class { #if NETCOREAPP2_0_OR_GREATER const char csvSeparator = ','; #else - const string csvSeparator = ","; + const string csvSeparator = ","; #endif var formattedStrings = enumerable.Select(toString); - var csv = string.Join(csvSeparator, formattedStrings); + var csv = string.Join(csvSeparator, formattedStrings); Populate(csv, requestProperty, parameters); } @@ -321,9 +322,9 @@ static void PopulateArray(IEnumerable enumerable, RequestProperty requestPropert } static void PopulateArray( - IEnumerable enumerable, - Func toString, - RequestProperty requestProperty, + IEnumerable enumerable, + Func toString, + RequestProperty requestProperty, ICollection parameters ) where V : class { var values = enumerable.Select(toString); @@ -389,11 +390,11 @@ static void PopulateArrayKnown(IEnumerable enumerable, RequestProperty requestPr => @object switch { IFormattable formattable => GetStringValue(formattable, requestProperty), IConvertible convertible => GetStringValue(convertible), - _ => GetStringValueKnown(@object) + _ => GetStringValueKnown(@object) }; static Func> GetEnumerableOf(Func getEnumerable, Type enumeratedType) where V : class - => enumeratedType.IsValueType ? entity => getEnumerable(entity).Cast() : entity => Unsafe.As>(getEnumerable(entity))!; + => enumeratedType.IsValueType ? entity => getEnumerable(entity).Cast() : entity => Unsafe.As>(getEnumerable(entity)); static Type? GetSingleEnumeratedTypeOrNull(Type enumerableType) { // Get all IEnumerable<> interfaces this type implements. @@ -410,4 +411,4 @@ static Func> GetEnumerableOf(Func getEnumer return enumerableInterfaces.Length == 1 ? enumerableInterfaces[0].GetGenericArguments()[0] : null; } } -} +} \ No newline at end of file diff --git a/src/RestSharp/Request/RestRequestExtensions.Body.cs b/src/RestSharp/Request/RestRequestExtensions.Body.cs new file mode 100644 index 000000000..dad5d006a --- /dev/null +++ b/src/RestSharp/Request/RestRequestExtensions.Body.cs @@ -0,0 +1,120 @@ +// Copyright (c) .NET Foundation and Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +namespace RestSharp; + +public static partial class RestRequestExtensions { + /// + /// Adds a body parameter to the request + /// + /// Request instance + /// Object to be used as the request body, or string for plain content + /// Optional: content type + /// + /// Thrown if request body type cannot be resolved + /// This method will try to figure out the right content type based on the request data format and the provided content type + public static RestRequest AddBody(this RestRequest request, object obj, ContentType? contentType = null) { + if (contentType == null) { + return request.RequestFormat switch { + DataFormat.Json => request.AddJsonBody(obj, contentType), + DataFormat.Xml => request.AddXmlBody(obj, contentType), + DataFormat.Binary => request.AddParameter(new BodyParameter("", obj, ContentType.Binary)), + _ => request.AddParameter(new BodyParameter("", obj.ToString()!, ContentType.Plain)) + }; + } + + return + obj is string str ? request.AddStringBody(str, contentType) : + obj is byte[] bytes ? request.AddParameter(new BodyParameter("", bytes, contentType, DataFormat.Binary)) : + contentType.Value.Contains("xml") ? request.AddXmlBody(obj, contentType) : + contentType.Value.Contains("json") ? request.AddJsonBody(obj, contentType) : + throw new ArgumentException("Non-string body found with unsupported content type", nameof(obj)); + } + + /// + /// Adds a string body and figures out the content type from the data format specified. You can, for example, add a JSON string + /// using this method as request body, using DataFormat.Json/> + /// + /// Request instance + /// String body + /// for the content + /// + public static RestRequest AddStringBody(this RestRequest request, string body, DataFormat dataFormat) { + var contentType = ContentType.FromDataFormat(dataFormat); + request.RequestFormat = dataFormat; + return request.AddParameter(new BodyParameter("", body, contentType)); + } + + /// + /// Adds a string body to the request using the specified content type. + /// + /// Request instance + /// String body + /// Content type of the body + /// + public static RestRequest AddStringBody(this RestRequest request, string body, ContentType contentType) + => request.AddParameter(new BodyParameter(body, Ensure.NotNull(contentType, nameof(contentType)))); + + /// + /// Adds a JSON body parameter to the request from a string + /// + /// Request instance + /// Force serialize the top-level string + /// Optional: content type. Default is ContentType.Json + /// JSON string to be used as a body + /// + public static RestRequest AddJsonBody(this RestRequest request, string jsonString, bool forceSerialize, ContentType? contentType = null) { + request.RequestFormat = DataFormat.Json; + + return !forceSerialize + ? request.AddStringBody(jsonString, DataFormat.Json) + : request.AddParameter(new JsonParameter(jsonString, contentType)); + } + + /// + /// Adds a JSON body parameter to the request + /// + /// Request instance + /// Object that will be serialized to JSON + /// Optional: content type. Default is ContentType.Json + /// + public static RestRequest AddJsonBody(this RestRequest request, T obj, ContentType? contentType = null) where T : class { + request.RequestFormat = DataFormat.Json; + + return obj is string str + ? request.AddStringBody(str, DataFormat.Json) + : request.AddParameter(new JsonParameter(obj, contentType)); + } + + /// + /// Adds an XML body parameter to the request + /// + /// Request instance + /// Object that will be serialized to XML + /// Optional: content type. Default is ContentType.Xml + /// Optional: XML namespace + /// + public static RestRequest AddXmlBody(this RestRequest request, T obj, ContentType? contentType = null, string xmlNamespace = "") + where T : class { + request.RequestFormat = DataFormat.Xml; + + return obj is string str + ? request.AddStringBody(str, DataFormat.Xml) + : request.AddParameter(new XmlParameter(obj, xmlNamespace, contentType)); + } + static RestRequest AddBodyParameter(this RestRequest request, string? name, object value) + => name != null && name.Contains('/') + ? request.AddBody(value, name) + : request.AddParameter(new BodyParameter(name, value, ContentType.Plain)); +} \ No newline at end of file diff --git a/src/RestSharp/Request/RestRequestExtensions.File.cs b/src/RestSharp/Request/RestRequestExtensions.File.cs new file mode 100644 index 000000000..816916adf --- /dev/null +++ b/src/RestSharp/Request/RestRequestExtensions.File.cs @@ -0,0 +1,91 @@ +// Copyright (c) .NET Foundation and Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +namespace RestSharp; + +public static partial class RestRequestExtensions { + /// + /// Adds a file parameter to the request body. The file will be read from disk as a stream. + /// + /// Request instance + /// Parameter name + /// Full path to the file + /// Optional: content type + /// File parameter header options + /// + public static RestRequest AddFile( + this RestRequest request, + string name, + string path, + ContentType? contentType = null, + FileParameterOptions? options = null + ) + => request.AddFile(FileParameter.FromFile(path, name, contentType, options)); + + /// + /// Adds bytes to the request as file attachment + /// + /// Request instance + /// Parameter name + /// File content as bytes + /// File name + /// Optional: content type. Default is "application/octet-stream" + /// File parameter header options + /// + public static RestRequest AddFile( + this RestRequest request, + string name, + byte[] bytes, + string fileName, + ContentType? contentType = null, + FileParameterOptions? options = null + ) + => request.AddFile(FileParameter.Create(name, bytes, fileName, contentType, options)); + + /// + /// Adds a file attachment to the request, where the file content will be retrieved from a given stream + /// + /// Request instance + /// Parameter name + /// Function that returns a stream with the file content + /// File name + /// Optional: content type. Default is "application/octet-stream" + /// File parameter header options + /// + public static RestRequest AddFile( + this RestRequest request, + string name, + Func getFile, + string fileName, + ContentType? contentType = null, + FileParameterOptions? options = null + ) + => request.AddFile(FileParameter.Create(name, getFile, fileName, contentType, options)); + + internal static void ValidateParameters(this RestRequest request) { + if (!request.AlwaysSingleFileAsContent) return; + + var postParametersExists = request.Parameters.GetContentParameters(request.Method).Any(); + var bodyParametersExists = request.Parameters.Any(p => p.Type == ParameterType.RequestBody); + + if (request.AlwaysMultipartFormData) + throw new ArgumentException("Failed to put file as content because flag AlwaysMultipartFormData is enabled"); + + if (postParametersExists) + throw new ArgumentException("Failed to put file as content because POST parameters were added"); + + if (bodyParametersExists) + throw new ArgumentException("Failed to put file as content because body parameters were added"); + } +} \ No newline at end of file diff --git a/src/RestSharp/Request/RestRequestExtensions.Headers.cs b/src/RestSharp/Request/RestRequestExtensions.Headers.cs new file mode 100644 index 000000000..08db84887 --- /dev/null +++ b/src/RestSharp/Request/RestRequestExtensions.Headers.cs @@ -0,0 +1,118 @@ +// Copyright (c) .NET Foundation and Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System.Text.RegularExpressions; + +namespace RestSharp; + +public static partial class RestRequestExtensions { + /// + /// Adds a header to the request. RestSharp will try to separate request and content headers when calling the resource. + /// + /// Request instance + /// Header name + /// Header value + /// + public static RestRequest AddHeader(this RestRequest request, string name, string value) { + CheckAndThrowsForInvalidHost(name, value); + return request.AddParameter(new HeaderParameter(name, value)); + } + + /// + /// Adds a header to the request. RestSharp will try to separate request and content headers when calling the resource. + /// + /// Request instance + /// Header name + /// Header value + /// + public static RestRequest AddHeader(this RestRequest request, string name, T value) where T : struct + => request.AddHeader(name, Ensure.NotNull(value.ToString(), nameof(value))); + + /// + /// Adds or updates the request header. RestSharp will try to separate request and content headers when calling the resource. + /// Existing header with the same name will be replaced. + /// + /// Request instance + /// Header name + /// Header value + /// + public static RestRequest AddOrUpdateHeader(this RestRequest request, string name, string value) { + CheckAndThrowsForInvalidHost(name, value); + return request.AddOrUpdateParameter(new HeaderParameter(name, value)); + } + + /// + /// Adds or updates the request header. RestSharp will try to separate request and content headers when calling the resource. + /// Existing header with the same name will be replaced. + /// + /// Request instance + /// Header name + /// Header value + /// + public static RestRequest AddOrUpdateHeader(this RestRequest request, string name, T value) where T : struct + => request.AddOrUpdateHeader(name, Ensure.NotNull(value.ToString(), nameof(value))); + + /// + /// Adds multiple headers to the request, using the key-value pairs provided. + /// + /// Request instance + /// Collection of key-value pairs, where key will be used as header name, and value as header value + /// + public static RestRequest AddHeaders(this RestRequest request, ICollection> headers) { + CheckAndThrowsDuplicateKeys(headers); + + foreach (var header in headers) { + request.AddHeader(header.Key, header.Value); + } + + return request; + } + + /// + /// Adds or updates multiple headers to the request, using the key-value pairs provided. Existing headers with the same name will be replaced. + /// + /// Request instance + /// Collection of key-value pairs, where key will be used as header name, and value as header value + /// + public static RestRequest AddOrUpdateHeaders(this RestRequest request, ICollection> headers) { + CheckAndThrowsDuplicateKeys(headers); + + foreach (var pair in headers) { + request.AddOrUpdateHeader(pair.Key, pair.Value); + } + + return request; + } + + static void CheckAndThrowsDuplicateKeys(ICollection> headers) { + var duplicateKeys = headers + .GroupBy(pair => pair.Key.ToUpperInvariant()) + .Where(group => group.Count() > 1) + .Select(group => group.Key) + .ToList(); + + if (duplicateKeys.Any()) throw new ArgumentException($"Duplicate header names exist: {string.Join(", ", duplicateKeys)}"); + } + + static readonly Regex PortSplitRegex = new(@":\d+"); + + static void CheckAndThrowsForInvalidHost(string name, string value) { + if (name == KnownHeaders.Host && InvalidHost(value)) + throw new ArgumentException("The specified value is not a valid Host header string.", nameof(value)); + + return; + + static bool InvalidHost(string host) => Uri.CheckHostName(PortSplitRegex.Split(host)[0]) == UriHostNameType.Unknown; + } +} \ No newline at end of file diff --git a/src/RestSharp/Request/RestRequestExtensions.Object.cs b/src/RestSharp/Request/RestRequestExtensions.Object.cs new file mode 100644 index 000000000..173035790 --- /dev/null +++ b/src/RestSharp/Request/RestRequestExtensions.Object.cs @@ -0,0 +1,65 @@ +// Copyright (c) .NET Foundation and Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +namespace RestSharp; + +public static partial class RestRequestExtensions { + /// + /// Gets object properties and adds each property as a form data parameter + /// + /// Request instance + /// Object to add as form data + /// Properties to include, or nothing to include everything. The array will be sorted. + /// + public static RestRequest AddObject(this RestRequest request, T obj, params string[] includedProperties) where T : class { + var props = obj.GetProperties(includedProperties); + + foreach (var prop in props) { + request.AddParameter(prop.Name, prop.Value, prop.Encode); + } + + return request; + } + + /// + /// Gets object properties and adds each property as a form data parameter + /// + /// + /// This method gets public instance properties from the provided type + /// rather than from itself, which allows for caching of properties and + /// other optimizations. If you don't know the type at runtime, or wish to use properties not + /// available from the provided type parameter, consider using + /// + /// Request instance + /// Object to add as form data + /// Properties to include, or nothing to include everything. The array will be sorted. + /// + public static RestRequest AddObjectStatic(this RestRequest request, T obj, params string[] includedProperties) where T : class + => request.AddParameters(PropertyCache.GetParameters(obj, includedProperties)); + + /// + /// Gets object properties and adds each property as a form data parameter + /// + /// + /// This method gets public instance properties from the provided type + /// rather than from itself, which allows for caching of properties and + /// other optimizations. If you don't know the type at runtime, or wish to use properties not + /// available from the provided type parameter, consider using + /// + /// Request instance + /// Object to add as form data + /// + public static RestRequest AddObjectStatic(this RestRequest request, T obj) where T : class + => request.AddParameters(PropertyCache.GetParameters(obj)); +} \ No newline at end of file diff --git a/src/RestSharp/Request/RestRequestExtensions.Query.cs b/src/RestSharp/Request/RestRequestExtensions.Query.cs new file mode 100644 index 000000000..96ffae191 --- /dev/null +++ b/src/RestSharp/Request/RestRequestExtensions.Query.cs @@ -0,0 +1,41 @@ +// Copyright (c) .NET Foundation and Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +namespace RestSharp; + +public static partial class RestRequestExtensions { + /// + /// Adds a query string parameter to the request. The request resource should not contain any placeholders for this parameter. + /// The parameter will be added to the request URL as a query string using name=value format. + /// + /// Request instance + /// Parameter name + /// Parameter value + /// Encode the value or not, default true + /// + public static RestRequest AddQueryParameter(this RestRequest request, string name, string? value, bool encode = true) + => request.AddParameter(new QueryParameter(name, value, encode)); + + /// + /// Adds a query string parameter to the request. The request resource should not contain any placeholders for this parameter. + /// The parameter will be added to the request URL as a query string using name=value format. + /// + /// Request instance + /// Parameter name + /// Parameter value + /// Encode the value or not, default true + /// + public static RestRequest AddQueryParameter(this RestRequest request, string name, T value, bool encode = true) where T : struct + => request.AddQueryParameter(name, value.ToString(), encode); +} \ No newline at end of file diff --git a/src/RestSharp/Request/RestRequestExtensions.Url.cs b/src/RestSharp/Request/RestRequestExtensions.Url.cs new file mode 100644 index 000000000..d464c73e1 --- /dev/null +++ b/src/RestSharp/Request/RestRequestExtensions.Url.cs @@ -0,0 +1,42 @@ +// Copyright (c) .NET Foundation and Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +namespace RestSharp; + +public static partial class RestRequestExtensions { + + /// + /// Adds a URL segment parameter to the request. The resource URL must have a placeholder for the parameter for it to work. + /// For example, if you add a URL segment parameter with the name "id", the resource URL should contain {id} in its path. + /// + /// Request instance + /// Name of the parameter, must be matching a placeholder in the resource URL as {name} + /// Value of the parameter + /// Encode the value or not, default true + /// + public static RestRequest AddUrlSegment(this RestRequest request, string name, string value, bool encode = true) + => request.AddParameter(new UrlSegmentParameter(name, value, encode)); + + /// + /// Adds a URL segment parameter to the request. The resource URL must have a placeholder for the parameter for it to work. + /// For example, if you add a URL segment parameter with the name "id", the resource URL should contain {id} in its path. + /// + /// Request instance + /// Name of the parameter, must be matching a placeholder in the resource URL as {name} + /// Value of the parameter + /// Encode the value or not, default true + /// + public static RestRequest AddUrlSegment(this RestRequest request, string name, T value, bool encode = true) where T : struct + => request.AddUrlSegment(name, Ensure.NotNull(value.ToString(), nameof(value)), encode); +} \ No newline at end of file diff --git a/src/RestSharp/Request/RestRequestExtensions.cs b/src/RestSharp/Request/RestRequestExtensions.cs index b2ff8469e..b25823bda 100644 --- a/src/RestSharp/Request/RestRequestExtensions.cs +++ b/src/RestSharp/Request/RestRequestExtensions.cs @@ -13,14 +13,11 @@ // limitations under the License. using System.Net; -using System.Text.RegularExpressions; namespace RestSharp; [PublicAPI] -public static class RestRequestExtensions { - static readonly Regex PortSplitRegex = new(@":\d+"); - +public static partial class RestRequestExtensions { /// /// Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) /// @@ -33,7 +30,24 @@ public static RestRequest AddParameter(this RestRequest request, string name, st => request.AddParameter(new GetOrPostParameter(name, value, encode)); /// - /// Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + /// Adds a parameter of a given type to the request. It will create a typed parameter instance based on the type argument. + /// It is not recommended to use this overload unless you must, as it doesn't provide any restrictions, and if the name-value-type + /// combination doesn't match, it will throw. + /// + /// Request instance + /// Name of the parameter, must be matching a placeholder in the resource URL as {name} + /// Value of the parameter + /// Enum value specifying what kind of parameter is being added + /// Encode the value or not, default true + /// + public static RestRequest AddParameter(this RestRequest request, string? name, object value, ParameterType type, bool encode = true) + => type == ParameterType.RequestBody + ? request.AddBodyParameter(name, value) + : request.AddParameter(Parameter.CreateParameter(name, value, type, encode)); + + /// + /// Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT). + /// The value will be converted to string. /// /// Request instance /// Name of the parameter @@ -43,11 +57,6 @@ public static RestRequest AddParameter(this RestRequest request, string name, st public static RestRequest AddParameter(this RestRequest request, string name, T value, bool encode = true) where T : struct => request.AddParameter(name, value.ToString(), encode); - static RestRequest AddParameters(this RestRequest request, IEnumerable parameters) { - request.Parameters.AddParameters(parameters); - return request; - } - /// /// Adds or updates a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) /// @@ -70,153 +79,11 @@ public static RestRequest AddOrUpdateParameter(this RestRequest request, string public static RestRequest AddOrUpdateParameter(this RestRequest request, string name, T value, bool encode = true) where T : struct => request.AddOrUpdateParameter(name, value.ToString(), encode); - /// - /// Adds a URL segment parameter to the request. The resource URL must have a placeholder for the parameter for it to work. - /// For example, if you add a URL segment parameter with the name "id", the resource URL should contain {id} in its path. - /// - /// Request instance - /// Name of the parameter, must be matching a placeholder in the resource URL as {name} - /// Value of the parameter - /// Encode the value or not, default true - /// - public static RestRequest AddUrlSegment(this RestRequest request, string name, string value, bool encode = true) - => request.AddParameter(new UrlSegmentParameter(name, value, encode)); - - /// - /// Adds a URL segment parameter to the request. The resource URL must have a placeholder for the parameter for it to work. - /// For example, if you add a URL segment parameter with the name "id", the resource URL should contain {id} in its path. - /// - /// Request instance - /// Name of the parameter, must be matching a placeholder in the resource URL as {name} - /// Value of the parameter - /// Encode the value or not, default true - /// - public static RestRequest AddUrlSegment(this RestRequest request, string name, T value, bool encode = true) where T : struct - => request.AddUrlSegment(name, Ensure.NotNull(value.ToString(), nameof(value)), encode); - - /// - /// Adds a query string parameter to the request. The request resource should not contain any placeholders for this parameter. - /// The parameter will be added to the request URL as a query string using name=value format. - /// - /// Request instance - /// Parameter name - /// Parameter value - /// Encode the value or not, default true - /// - public static RestRequest AddQueryParameter(this RestRequest request, string name, string? value, bool encode = true) - => request.AddParameter(new QueryParameter(name, value, encode)); - - /// - /// Adds a query string parameter to the request. The request resource should not contain any placeholders for this parameter. - /// The parameter will be added to the request URL as a query string using name=value format. - /// - /// Request instance - /// Parameter name - /// Parameter value - /// Encode the value or not, default true - /// - public static RestRequest AddQueryParameter(this RestRequest request, string name, T value, bool encode = true) where T : struct - => request.AddQueryParameter(name, value.ToString(), encode); - - /// - /// Adds a header to the request. RestSharp will try to separate request and content headers when calling the resource. - /// - /// Request instance - /// Header name - /// Header value - /// - public static RestRequest AddHeader(this RestRequest request, string name, string value) { - CheckAndThrowsForInvalidHost(name, value); - return request.AddParameter(new HeaderParameter(name, value)); - } - - /// - /// Adds a header to the request. RestSharp will try to separate request and content headers when calling the resource. - /// - /// Request instance - /// Header name - /// Header value - /// - public static RestRequest AddHeader(this RestRequest request, string name, T value) where T : struct - => request.AddHeader(name, Ensure.NotNull(value.ToString(), nameof(value))); - - /// - /// Adds or updates the request header. RestSharp will try to separate request and content headers when calling the resource. - /// Existing header with the same name will be replaced. - /// - /// Request instance - /// Header name - /// Header value - /// - public static RestRequest AddOrUpdateHeader(this RestRequest request, string name, string value) { - CheckAndThrowsForInvalidHost(name, value); - return request.AddOrUpdateParameter(new HeaderParameter(name, value)); - } - - /// - /// Adds or updates the request header. RestSharp will try to separate request and content headers when calling the resource. - /// Existing header with the same name will be replaced. - /// - /// Request instance - /// Header name - /// Header value - /// - public static RestRequest AddOrUpdateHeader(this RestRequest request, string name, T value) where T : struct - => request.AddOrUpdateHeader(name, Ensure.NotNull(value.ToString(), nameof(value))); - - /// - /// Adds multiple headers to the request, using the key-value pairs provided. - /// - /// Request instance - /// Collection of key-value pairs, where key will be used as header name, and value as header value - /// - public static RestRequest AddHeaders(this RestRequest request, ICollection> headers) { - CheckAndThrowsDuplicateKeys(headers); - - foreach (var header in headers) { - request.AddHeader(header.Key, header.Value); - } - - return request; - } - - /// - /// Adds or updates multiple headers to the request, using the key-value pairs provided. Existing headers with the same name will be replaced. - /// - /// Request instance - /// Collection of key-value pairs, where key will be used as header name, and value as header value - /// - public static RestRequest AddOrUpdateHeaders(this RestRequest request, ICollection> headers) { - CheckAndThrowsDuplicateKeys(headers); - - foreach (var pair in headers) { - request.AddOrUpdateHeader(pair.Key, pair.Value); - } - + static RestRequest AddParameters(this RestRequest request, IEnumerable parameters) { + request.Parameters.AddParameters(parameters); return request; } - /// - /// Adds a parameter of a given type to the request. It will create a typed parameter instance based on the type argument. - /// It is not recommended to use this overload unless you must, as it doesn't provide any restrictions, and if the name-value-type - /// combination doesn't match, it will throw. - /// - /// Request instance - /// Name of the parameter, must be matching a placeholder in the resource URL as {name} - /// Value of the parameter - /// Enum value specifying what kind of parameter is being added - /// Encode the value or not, default true - /// - public static RestRequest AddParameter(this RestRequest request, string? name, object value, ParameterType type, bool encode = true) - => type == ParameterType.RequestBody - ? request.AddBodyParameter(name, value) - : request.AddParameter(Parameter.CreateParameter(name, value, type, encode)); - - static RestRequest AddBodyParameter(this RestRequest request, string? name, object value) - => name != null && name.Contains("/") - ? request.AddBody(value, name) - : request.AddParameter(new BodyParameter(name, value, ContentType.Plain)); - /// /// Adds or updates request parameter of a given type. It will create a typed parameter instance based on the type argument. /// Parameter will be added or updated based on its name. If the request has a parameter with the same name, it will be updated. @@ -247,11 +114,6 @@ public static RestRequest AddOrUpdateParameter(this RestRequest request, string public static RestRequest AddOrUpdateParameter(this RestRequest request, Parameter parameter) => request.RemoveParameter(parameter.Name, parameter.Type).AddParameter(parameter); - static RestRequest RemoveParameter(this RestRequest request, string? name, ParameterType type) { - var p = request.Parameters.FirstOrDefault(x => x.Name == name && x.Type == type); - return p != null ? request.RemoveParameter(p) : request; - } - /// /// Adds or updates multiple request parameters, given the parameter instance, for example /// or . Parameters with the same name will be replaced. @@ -265,211 +127,11 @@ public static RestRequest AddOrUpdateParameters(this RestRequest request, IEnume return request; } - /// - /// Adds a file parameter to the request body. The file will be read from disk as a stream. - /// - /// Request instance - /// Parameter name - /// Full path to the file - /// Optional: content type - /// File parameter header options - /// - public static RestRequest AddFile( - this RestRequest request, - string name, - string path, - ContentType? contentType = null, - FileParameterOptions? options = null - ) - => request.AddFile(FileParameter.FromFile(path, name, contentType, options)); - - /// - /// Adds bytes to the request as file attachment - /// - /// Request instance - /// Parameter name - /// File content as bytes - /// File name - /// Optional: content type. Default is "application/octet-stream" - /// File parameter header options - /// - public static RestRequest AddFile( - this RestRequest request, - string name, - byte[] bytes, - string fileName, - ContentType? contentType = null, - FileParameterOptions? options = null - ) - => request.AddFile(FileParameter.Create(name, bytes, fileName, contentType, options)); - - /// - /// Adds a file attachment to the request, where the file content will be retrieved from a given stream - /// - /// Request instance - /// Parameter name - /// Function that returns a stream with the file content - /// File name - /// Optional: content type. Default is "application/octet-stream" - /// File parameter header options - /// - public static RestRequest AddFile( - this RestRequest request, - string name, - Func getFile, - string fileName, - ContentType? contentType = null, - FileParameterOptions? options = null - ) - => request.AddFile(FileParameter.Create(name, getFile, fileName, contentType, options)); - - /// - /// Adds a body parameter to the request - /// - /// Request instance - /// Object to be used as the request body, or string for plain content - /// Optional: content type - /// - /// Thrown if request body type cannot be resolved - /// This method will try to figure out the right content type based on the request data format and the provided content type - public static RestRequest AddBody(this RestRequest request, object obj, ContentType? contentType = null) { - if (contentType == null) { - return request.RequestFormat switch { - DataFormat.Json => request.AddJsonBody(obj, contentType), - DataFormat.Xml => request.AddXmlBody(obj, contentType), - DataFormat.Binary => request.AddParameter(new BodyParameter("", obj, ContentType.Binary)), - _ => request.AddParameter(new BodyParameter("", obj.ToString()!, ContentType.Plain)) - }; - } - - return - obj is string str ? request.AddStringBody(str, contentType) : - obj is byte[] bytes ? request.AddParameter(new BodyParameter("", bytes, contentType, DataFormat.Binary)) : - contentType.Value.Contains("xml") ? request.AddXmlBody(obj, contentType) : - contentType.Value.Contains("json") ? request.AddJsonBody(obj, contentType) : - throw new ArgumentException("Non-string body found with unsupported content type", nameof(obj)); - } - - /// - /// Adds a string body and figures out the content type from the data format specified. You can, for example, add a JSON string - /// using this method as request body, using DataFormat.Json/> - /// - /// Request instance - /// String body - /// for the content - /// - public static RestRequest AddStringBody(this RestRequest request, string body, DataFormat dataFormat) { - var contentType = ContentType.FromDataFormat(dataFormat); - request.RequestFormat = dataFormat; - return request.AddParameter(new BodyParameter("", body, contentType)); - } - - /// - /// Adds a string body to the request using the specified content type. - /// - /// Request instance - /// String body - /// Content type of the body - /// - public static RestRequest AddStringBody(this RestRequest request, string body, ContentType contentType) - => request.AddParameter(new BodyParameter(body, Ensure.NotNull(contentType, nameof(contentType)))); - - /// - /// Adds a JSON body parameter to the request from a string - /// - /// Request instance - /// Force serialize the top-level string - /// Optional: content type. Default is "application/json" - /// JSON string to be used as a body - /// - public static RestRequest AddJsonBody(this RestRequest request, string jsonString, bool forceSerialize, ContentType? contentType = null) { - request.RequestFormat = DataFormat.Json; - - return !forceSerialize - ? request.AddStringBody(jsonString, DataFormat.Json) - : request.AddParameter(new JsonParameter(jsonString, contentType)); - } - - /// - /// Adds a JSON body parameter to the request - /// - /// Request instance - /// Object that will be serialized to JSON - /// Optional: content type. Default is "application/json" - /// - public static RestRequest AddJsonBody(this RestRequest request, T obj, ContentType? contentType = null) where T : class { - request.RequestFormat = DataFormat.Json; - - return obj is string str - ? request.AddStringBody(str, DataFormat.Json) - : request.AddParameter(new JsonParameter(obj, contentType)); - } - - /// - /// Adds an XML body parameter to the request - /// - /// Request instance - /// Object that will be serialized to XML - /// Optional: content type. Default is "application/xml" - /// Optional: XML namespace - /// - public static RestRequest AddXmlBody(this RestRequest request, T obj, ContentType? contentType = null, string xmlNamespace = "") - where T : class { - request.RequestFormat = DataFormat.Xml; - - return obj is string str - ? request.AddStringBody(str, DataFormat.Xml) - : request.AddParameter(new XmlParameter(obj, xmlNamespace, contentType)); - } - - /// - /// Gets object properties and adds each property as a form data parameter - /// - /// Request instance - /// Object to add as form data - /// Properties to include, or nothing to include everything. The array will be sorted. - /// - public static RestRequest AddObject(this RestRequest request, T obj, params string[] includedProperties) where T : class { - var props = obj.GetProperties(includedProperties); - - foreach (var prop in props) { - request.AddParameter(prop.Name, prop.Value, prop.Encode); - } - - return request; + static RestRequest RemoveParameter(this RestRequest request, string? name, ParameterType type) { + var p = request.Parameters.FirstOrDefault(x => x.Name == name && x.Type == type); + return p != null ? request.RemoveParameter(p) : request; } - /// - /// Gets object properties and adds each property as a form data parameter - /// - /// - /// This method gets public instance properties from the provided type - /// rather than from itself, which allows for caching of properties and - /// other optimizations. If you don't know the type at runtime, or wish to use properties not - /// available from the provided type parameter, consider using - /// - /// Request instance - /// Object to add as form data - /// Properties to include, or nothing to include everything. The array will be sorted. - /// - public static RestRequest AddObjectStatic(this RestRequest request, T obj, params string[] includedProperties) where T : class - => request.AddParameters(PropertyCache.GetParameters(obj, includedProperties)); - - /// - /// Gets object properties and adds each property as a form data parameter - /// - /// - /// This method gets public instance properties from the provided type - /// rather than from itself, which allows for caching of properties and - /// other optimizations. If you don't know the type at runtime, or wish to use properties not - /// available from the provided type parameter, consider using - /// - /// Request instance - /// Object to add as form data - /// - public static RestRequest AddObjectStatic(this RestRequest request, T obj) where T : class - => request.AddParameters(PropertyCache.GetParameters(obj)); - /// /// Adds cookie to the cookie container. /// @@ -484,38 +146,4 @@ public static RestRequest AddCookie(this RestRequest request, string name, strin request.CookieContainer.Add(new Cookie(name, value, path, domain)); return request; } - - static void CheckAndThrowsForInvalidHost(string name, string value) { - static bool InvalidHost(string host) => Uri.CheckHostName(PortSplitRegex.Split(host)[0]) == UriHostNameType.Unknown; - - if (name == KnownHeaders.Host && InvalidHost(value)) - throw new ArgumentException("The specified value is not a valid Host header string.", nameof(value)); - } - - static void CheckAndThrowsDuplicateKeys(ICollection> headers) { - var duplicateKeys = headers - .GroupBy(pair => pair.Key.ToUpperInvariant()) - .Where(group => group.Count() > 1) - .Select(group => group.Key) - .ToList(); - - if (duplicateKeys.Any()) throw new ArgumentException($"Duplicate header names exist: {string.Join(", ", duplicateKeys)}"); - } - - public static void ValidateParameters(this RestRequest request) { - - if (request.AlwaysSingleFileAsContent) { - var postParametersExists = request.Parameters.GetContentParameters(request.Method).Any(); - var bodyParametersExists = request.Parameters.Any(p => p.Type == ParameterType.RequestBody); - - if (request.AlwaysMultipartFormData) - throw new ArgumentException("Failed to put file as content because flag AlwaysMultipartFormData enabled"); - - if (postParametersExists) - throw new ArgumentException("Failed to put file as content because added post parameters"); - - if (bodyParametersExists) - throw new ArgumentException("Failed to put file as content because added body parameters"); - } - } -} +} \ No newline at end of file diff --git a/src/RestSharp/RestClient.Async.cs b/src/RestSharp/RestClient.Async.cs index 0e9c80c9e..4655c0780 100644 --- a/src/RestSharp/RestClient.Async.cs +++ b/src/RestSharp/RestClient.Async.cs @@ -199,7 +199,7 @@ CancellationToken TimeoutToken public void Dispose() => ResponseMessage?.Dispose(); } - static HttpMethod AsHttpMethod(Method method) + internal static HttpMethod AsHttpMethod(Method method) => method switch { Method.Get => HttpMethod.Get, Method.Post => HttpMethod.Post, diff --git a/src/RestSharp/RestClient.cs b/src/RestSharp/RestClient.cs index 319b4bd64..c41c41953 100644 --- a/src/RestSharp/RestClient.cs +++ b/src/RestSharp/RestClient.cs @@ -288,10 +288,10 @@ void ConfigureDefaultParameters(RestClientOptions options) { bool _disposed; protected virtual void Dispose(bool disposing) { - if (disposing && !_disposed) { - _disposed = true; - if (_disposeHttpClient) HttpClient.Dispose(); - } + if (!disposing || _disposed) return; + + _disposed = true; + if (_disposeHttpClient) HttpClient.Dispose(); } public void Dispose() { diff --git a/src/RestSharp/RestSharp.csproj b/src/RestSharp/RestSharp.csproj index 89f15d0d3..7a512d80a 100644 --- a/src/RestSharp/RestSharp.csproj +++ b/src/RestSharp/RestSharp.csproj @@ -49,11 +49,26 @@ RestClient.Extensions.cs + + RestRequestExtensions.cs + + + RestRequestExtensions.cs + + + RestRequestExtensions.cs + + + RestRequestExtensions.cs + - + + + + - + diff --git a/src/RestSharp/Serializers/Xml/DotNetXmlSerializer.cs b/src/RestSharp/Serializers/Xml/DotNetXmlSerializer.cs index 021b32633..6e8351f82 100644 --- a/src/RestSharp/Serializers/Xml/DotNetXmlSerializer.cs +++ b/src/RestSharp/Serializers/Xml/DotNetXmlSerializer.cs @@ -50,7 +50,7 @@ public DotNetXmlSerializer() { public string Serialize(object obj) { var ns = new XmlSerializerNamespaces(); - ns.Add(string.Empty, Namespace); + ns.Add(string.Empty, Namespace!); var serializer = GetXmlSerializer(obj.GetType(), RootElement); var writer = new EncodingStringWriter(Encoding); diff --git a/test/RestSharp.InteractiveTests/AuthenticationTests.cs b/test/RestSharp.InteractiveTests/AuthenticationTests.cs index c9f9cd6d9..8c0aea8c0 100644 --- a/test/RestSharp.InteractiveTests/AuthenticationTests.cs +++ b/test/RestSharp.InteractiveTests/AuthenticationTests.cs @@ -15,10 +15,10 @@ public static async Task Can_Authenticate_With_OAuth_Async_With_Callback(Twitter var baseUrl = new Uri("https://api.twitter.com"); - var client = new RestClient( + using var client = new RestClient( baseUrl, options => - options.Authenticator = OAuth1Authenticator.ForRequestToken( + options.Authenticator = OAuth1Auth.ForRequestToken( twitterKeys.ConsumerKey!, twitterKeys.ConsumerSecret, "https://restsharp.dev" @@ -47,7 +47,7 @@ public static async Task Can_Authenticate_With_OAuth_Async_With_Callback(Twitter var verifier = Console.ReadLine(); request = new RestRequest("oauth/access_token") { - Authenticator = OAuth1Authenticator.ForAccessToken( + Authenticator = OAuth1Auth.ForAccessToken( twitterKeys.ConsumerKey!, twitterKeys.ConsumerSecret, oauthToken!, @@ -69,7 +69,7 @@ public static async Task Can_Authenticate_With_OAuth_Async_With_Callback(Twitter Assert.NotNull(oauthTokenSecret); request = new RestRequest("1.1/account/verify_credentials.json") { - Authenticator = OAuth1Authenticator.ForProtectedResource( + Authenticator = OAuth1Auth.ForProtectedResource( twitterKeys.ConsumerKey!, twitterKeys.ConsumerSecret, oauthToken!, diff --git a/test/RestSharp.InteractiveTests/Program.cs b/test/RestSharp.InteractiveTests/Program.cs index 78c36c141..270e9de34 100644 --- a/test/RestSharp.InteractiveTests/Program.cs +++ b/test/RestSharp.InteractiveTests/Program.cs @@ -1,6 +1,6 @@ using RestSharp.InteractiveTests; -var client = new TwitterClient("apikey", "apisecret"); +using var client = new TwitterClient("apikey", "apisecret"); await foreach (var tweet in client.SearchStream()) { Console.WriteLine(tweet); diff --git a/test/RestSharp.InteractiveTests/TwitterClient.cs b/test/RestSharp.InteractiveTests/TwitterClient.cs index 24b95e8c7..6324acf26 100644 --- a/test/RestSharp.InteractiveTests/TwitterClient.cs +++ b/test/RestSharp.InteractiveTests/TwitterClient.cs @@ -93,7 +93,7 @@ protected override async ValueTask GetAuthenticationParameter(string async Task GetToken() { var options = new RestClientOptions(_baseUrl) { - Authenticator = new HttpBasicAuthenticator(_clientId, _clientSecret) + Authenticator = new HttpBasicAuth(_clientId, _clientSecret) }; using var client = new RestClient(options); diff --git a/test/RestSharp.Tests.Integrated/Authentication/AuthenticationTests.cs b/test/RestSharp.Tests.Integrated/Authentication/AuthenticationTests.cs index 0bb8257d3..249818c00 100644 --- a/test/RestSharp.Tests.Integrated/Authentication/AuthenticationTests.cs +++ b/test/RestSharp.Tests.Integrated/Authentication/AuthenticationTests.cs @@ -1,21 +1,18 @@ using System.Text; using System.Web; using RestSharp.Authenticators; -using RestSharp.Tests.Integrated.Server; namespace RestSharp.Tests.Integrated.Authentication; -public class AuthenticationTests : IDisposable { - readonly WireMockServer _server = WireMockTestServer.StartTestServer(); - +public class AuthenticationTests(WireMockTestServer server) : IClassFixture { [Fact] public async Task Can_Authenticate_With_Basic_Http_Auth() { const string userName = "testuser"; const string password = "testpassword"; - var client = new RestClient( - _server.Url!, - o => o.Authenticator = new HttpBasicAuthenticator(userName, password) + using var client = new RestClient( + server.Url!, + o => o.Authenticator = new HttpBasicAuth(userName, password) ); var request = new RestRequest("headers"); var response = await client.GetAsync(request); @@ -28,6 +25,4 @@ public async Task Can_Authenticate_With_Basic_Http_Auth() { parts[0].Should().Be(userName); parts[1].Should().Be(password); } - - public void Dispose() => _server.Dispose(); } \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/Authentication/OAuth2Tests.cs b/test/RestSharp.Tests.Integrated/Authentication/OAuth2Tests.cs index d9195bfd2..1fe318615 100644 --- a/test/RestSharp.Tests.Integrated/Authentication/OAuth2Tests.cs +++ b/test/RestSharp.Tests.Integrated/Authentication/OAuth2Tests.cs @@ -1,15 +1,12 @@ using RestSharp.Authenticators.OAuth2; -using RestSharp.Tests.Integrated.Server; namespace RestSharp.Tests.Integrated.Authentication; -public class OAuth2Tests : IDisposable { - readonly WireMockServer _server = WireMockTestServer.StartTestServer(); - +public class OAuth2Tests(WireMockTestServer server) : IClassFixture { [Fact] public async Task ShouldHaveProperHeader() { - var auth = new OAuth2AuthorizationRequestHeaderAuthenticator("token", "Bearer"); - var client = new RestClient(_server.Url!, o => o.Authenticator = auth); + var auth = new OAuth2AuthorizationRequestHeaderAuthenticator("token", "Bearer"); + using var client = new RestClient(server.Url!, o => o.Authenticator = auth); var response = await client.GetJsonAsync("headers"); var authHeader = response!.FirstOrDefault(x => x.Name == KnownHeaders.Authorization); @@ -17,6 +14,4 @@ public async Task ShouldHaveProperHeader() { authHeader.Should().NotBeNull(); authHeader!.Value.Should().Be("Bearer token"); } - - public void Dispose() => _server.Dispose(); -} +} \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/CompressionTests.cs b/test/RestSharp.Tests.Integrated/CompressionTests.cs index 9aefcd8a0..ef79b2abf 100644 --- a/test/RestSharp.Tests.Integrated/CompressionTests.cs +++ b/test/RestSharp.Tests.Integrated/CompressionTests.cs @@ -8,6 +8,7 @@ public class CompressionTests { static async Task GetBody(Func getStream, string value) { using var memoryStream = new MemoryStream(); + // ReSharper disable once UseAwaitUsing using (var stream = getStream(memoryStream)) { stream.WriteStringUtf8(value); } @@ -30,9 +31,9 @@ public async Task Can_Handle_Deflate_Compressed_Content() { var body = await GetBody(s => new DeflateStream(s, CompressionMode.Compress, true), value); ConfigureServer(server, body, "deflate"); - var client = new RestClient(server.Url!); - var request = new RestRequest(""); - var response = await client.ExecuteAsync(request); + using var client = new RestClient(server.Url!); + var request = new RestRequest(""); + var response = await client.ExecuteAsync(request); response.Content.Should().Be(value); } @@ -41,13 +42,13 @@ public async Task Can_Handle_Deflate_Compressed_Content() { public async Task Can_Handle_Gzip_Compressed_Content() { const string value = "This is some gzipped content"; using var server = WireMockServer.Start(); - + var body = await GetBody(s => new GZipStream(s, CompressionMode.Compress, true), value); ConfigureServer(server, body, "gzip"); - var client = new RestClient(server.Url!); - var request = new RestRequest(""); - var response = await client.ExecuteAsync(request); + using var client = new RestClient(server.Url!); + var request = new RestRequest(""); + var response = await client.ExecuteAsync(request); response.Content.Should().Be(value); } @@ -56,13 +57,14 @@ public async Task Can_Handle_Gzip_Compressed_Content() { public async Task Can_Handle_Uncompressed_Content() { const string value = "This is some sample content"; using var server = WireMockServer.Start(); + server .Given(Request.Create().WithPath("/").UsingGet()) .RespondWith(Response.Create().WithBody(value)); - var client = new RestClient(server.Url!); - var request = new RestRequest(""); - var response = await client.ExecuteAsync(request); + using var client = new RestClient(server.Url!); + var request = new RestRequest(""); + var response = await client.ExecuteAsync(request); response.Content.Should().Be(value); } diff --git a/test/RestSharp.Tests.Integrated/CookieTests.cs b/test/RestSharp.Tests.Integrated/CookieTests.cs index 9c294b237..df0032c0a 100644 --- a/test/RestSharp.Tests.Integrated/CookieTests.cs +++ b/test/RestSharp.Tests.Integrated/CookieTests.cs @@ -2,7 +2,6 @@ using Microsoft.Extensions.Primitives; using Microsoft.Net.Http.Headers; using RestSharp.Tests.Integrated.Fixtures; -using RestSharp.Tests.Integrated.Server; using WireMock.Types; using WireMock.Util; diff --git a/test/RestSharp.Tests.Integrated/DefaultParameterTests.cs b/test/RestSharp.Tests.Integrated/DefaultParameterTests.cs index ec9aaefd2..f61c5a55d 100644 --- a/test/RestSharp.Tests.Integrated/DefaultParameterTests.cs +++ b/test/RestSharp.Tests.Integrated/DefaultParameterTests.cs @@ -1,21 +1,15 @@ -using RestSharp.Tests.Integrated.Fixtures; -using RestSharp.Tests.Integrated.Server; +using RestSharp.Tests.Shared.Extensions; using RestSharp.Tests.Shared.Fixtures; namespace RestSharp.Tests.Integrated; -public sealed class DefaultParameterTests : IDisposable { - readonly WireMockServer _server = WireMockServer.Start(); - readonly RequestBodyCapturer _capturer; - - public DefaultParameterTests() => _capturer = _server.ConfigureBodyCapturer(Method.Get, false); - - public void Dispose() => _server.Dispose(); +public sealed class DefaultParameterTests(WireMockTestServer server) : IClassFixture { + readonly RequestBodyCapturer _capturer = server.ConfigureBodyCapturer(Method.Get, false); [Fact] public async Task Should_add_default_and_request_query_get_parameters() { - var client = new RestClient(_server.Url!).AddDefaultParameter("foo", "bar", ParameterType.QueryString); - var request = new RestRequest().AddParameter("foo1", "bar1", ParameterType.QueryString); + using var client = new RestClient(server.Url!).AddDefaultParameter("foo", "bar", ParameterType.QueryString); + var request = new RestRequest().AddParameter("foo1", "bar1", ParameterType.QueryString); await client.GetAsync(request); @@ -26,8 +20,8 @@ public async Task Should_add_default_and_request_query_get_parameters() { [Fact] public async Task Should_add_default_and_request_url_get_parameters() { - var client = new RestClient($"{_server.Url}/{{foo}}/").AddDefaultParameter("foo", "bar", ParameterType.UrlSegment); - var request = new RestRequest("{foo1}").AddParameter("foo1", "bar1", ParameterType.UrlSegment); + using var client = new RestClient($"{server.Url}/{{foo}}/").AddDefaultParameter("foo", "bar", ParameterType.UrlSegment); + var request = new RestRequest("{foo1}").AddParameter("foo1", "bar1", ParameterType.UrlSegment); await client.GetAsync(request); @@ -36,8 +30,8 @@ public async Task Should_add_default_and_request_url_get_parameters() { [Fact] public async Task Should_not_throw_exception_when_name_is_null() { - var client = new RestClient($"{_server.Url}/request-echo").AddDefaultParameter("foo", "bar", ParameterType.UrlSegment); - var request = new RestRequest("{foo1}").AddParameter(null, "value", ParameterType.RequestBody); + using var client = new RestClient($"{server.Url}/request-echo").AddDefaultParameter("foo", "bar", ParameterType.UrlSegment); + var request = new RestRequest("{foo1}").AddParameter(null, "value", ParameterType.RequestBody); await client.ExecuteAsync(request); } diff --git a/test/RestSharp.Tests.Integrated/DownloadFileTests.cs b/test/RestSharp.Tests.Integrated/DownloadFileTests.cs index 686cc0a0e..d85428ecc 100644 --- a/test/RestSharp.Tests.Integrated/DownloadFileTests.cs +++ b/test/RestSharp.Tests.Integrated/DownloadFileTests.cs @@ -1,4 +1,5 @@ using System.Text; +// ReSharper disable MethodHasAsyncOverload namespace RestSharp.Tests.Integrated; diff --git a/test/RestSharp.Tests.Integrated/Fixtures/CaptureFixture.cs b/test/RestSharp.Tests.Integrated/Fixtures/CaptureFixture.cs index ef8297c4f..2402785a1 100644 --- a/test/RestSharp.Tests.Integrated/Fixtures/CaptureFixture.cs +++ b/test/RestSharp.Tests.Integrated/Fixtures/CaptureFixture.cs @@ -1,5 +1,4 @@ using System.Collections.Specialized; -using System.Net; namespace RestSharp.Tests.Integrated.Fixtures; diff --git a/test/RestSharp.Tests.Integrated/Fixtures/CookieExtensions.cs b/test/RestSharp.Tests.Integrated/Fixtures/CookieExtensions.cs index b6245d7c5..5d508d68b 100644 --- a/test/RestSharp.Tests.Integrated/Fixtures/CookieExtensions.cs +++ b/test/RestSharp.Tests.Integrated/Fixtures/CookieExtensions.cs @@ -1,5 +1,3 @@ -using System.Net; - namespace RestSharp.Tests.Integrated.Fixtures; static class CookieExtensions { diff --git a/test/RestSharp.Tests.Integrated/Fixtures/OutputLogger.cs b/test/RestSharp.Tests.Integrated/Fixtures/OutputLogger.cs index f82dfbe83..b9305601b 100644 --- a/test/RestSharp.Tests.Integrated/Fixtures/OutputLogger.cs +++ b/test/RestSharp.Tests.Integrated/Fixtures/OutputLogger.cs @@ -2,10 +2,6 @@ namespace RestSharp.Tests.Integrated.Fixtures; -public class OutputLogger : ILogger{ - readonly ITestOutputHelper _output; - - public OutputLogger(ITestOutputHelper output) => _output = output; - - public void Log(string message) => _output.WriteLine(message); +public class OutputLogger(ITestOutputHelper output) : ILogger { + public void Log(string message) => output.WriteLine(message); } \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/HttpClientTests.cs b/test/RestSharp.Tests.Integrated/HttpClientTests.cs index 8f1ca4f2b..1acf553c3 100644 --- a/test/RestSharp.Tests.Integrated/HttpClientTests.cs +++ b/test/RestSharp.Tests.Integrated/HttpClientTests.cs @@ -1,15 +1,10 @@ -using System.Net; -using RestSharp.Tests.Integrated.Server; - namespace RestSharp.Tests.Integrated; -public class HttpClientTests : IDisposable { - readonly WireMockServer _server = WireMockTestServer.StartTestServer(); - +public sealed class HttpClientTests(WireMockTestServer server) : IClassFixture { [Fact] public async Task ShouldUseBaseAddress() { using var httpClient = new HttpClient(); - httpClient.BaseAddress = new Uri(_server.Url!); + httpClient.BaseAddress = new Uri(server.Url!); using var client = new RestClient(httpClient); var request = new RestRequest("success"); @@ -18,6 +13,4 @@ public async Task ShouldUseBaseAddress() { response.StatusCode.Should().Be(HttpStatusCode.OK); response.Data!.Message.Should().Be("Works!"); } - - public void Dispose() => _server.Dispose(); -} +} \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/HttpHeadersTests.cs b/test/RestSharp.Tests.Integrated/HttpHeadersTests.cs index c943b4159..778cff395 100644 --- a/test/RestSharp.Tests.Integrated/HttpHeadersTests.cs +++ b/test/RestSharp.Tests.Integrated/HttpHeadersTests.cs @@ -1,14 +1,7 @@ -using System.Net; -using RestSharp.Tests.Integrated.Server; -using WireMock.Util; - namespace RestSharp.Tests.Integrated; -public class HttpHeadersTests : IDisposable { - readonly WireMockServer _server = WireMockTestServer.StartTestServer(); - readonly RestClient _client; - - public HttpHeadersTests() => _client = new RestClient(new RestClientOptions(_server.Url!) { ThrowOnAnyError = true }); +public sealed class HttpHeadersTests(WireMockTestServer server) : IClassFixture, IDisposable { + readonly RestClient _client = new(new RestClientOptions(server.Url!) { ThrowOnAnyError = true }); [Fact] public async Task Ensure_headers_correctly_set_in_the_interceptor() { @@ -83,8 +76,5 @@ public override ValueTask BeforeHttpRequest(HttpRequestMessage requestMessage, C } } - public void Dispose() { - _server.Dispose(); - _client.Dispose(); - } + public void Dispose() => _client.Dispose(); } \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/Interceptor/InterceptorTests.cs b/test/RestSharp.Tests.Integrated/Interceptor/InterceptorTests.cs index 5183f4e09..621c6dc73 100644 --- a/test/RestSharp.Tests.Integrated/Interceptor/InterceptorTests.cs +++ b/test/RestSharp.Tests.Integrated/Interceptor/InterceptorTests.cs @@ -1,11 +1,6 @@ -using RestSharp.Tests.Integrated.Server; - -namespace RestSharp.Tests.Integrated.Interceptor; - -// [Collection(nameof(TestServerCollection))] -public class InterceptorTests : IDisposable { - readonly WireMockServer _server = WireMockTestServer.StartTestServer(); +namespace RestSharp.Tests.Integrated.Interceptor; +public class InterceptorTests(WireMockTestServer server) : IClassFixture { [Fact] public async Task Should_call_client_interceptor() { // Arrange @@ -32,19 +27,16 @@ public async Task Should_call_client_interceptor() { [Fact] public async Task Should_call_request_interceptor() { // Arrange - var request = CreateRequest(); - - var client = new RestClient(_server.Url!); + var request = CreateRequest(); var interceptor = new TestInterceptor(); request.Interceptors = new List { interceptor }; //Act + using var client = new RestClient(server.Url!); await client.ExecutePostAsync(request); //Assert interceptor.ShouldHaveCalledAll(); - - client.Dispose(); } [Fact] @@ -81,7 +73,7 @@ public async Task ThrowExceptionIn_InterceptBeforeRequest() { interceptor.AfterHttpRequestCalled.Should().BeFalse(); interceptor.AfterRequestCalled.Should().BeFalse(); interceptor.BeforeDeserializationCalled.Should().BeFalse(); - + client.Dispose(); } @@ -101,7 +93,7 @@ public async Task ThrowExceptionIn_InterceptBeforeHttpRequest() { interceptor.AfterHttpRequestCalled.Should().BeFalse(); interceptor.AfterRequestCalled.Should().BeFalse(); interceptor.BeforeDeserializationCalled.Should().BeFalse(); - + client.Dispose(); } @@ -121,7 +113,7 @@ public async Task ThrowException_InInterceptAfterHttpRequest() { interceptor.AfterHttpRequestCalled.Should().BeTrue(); interceptor.AfterRequestCalled.Should().BeFalse(); interceptor.BeforeDeserializationCalled.Should().BeFalse(); - + client.Dispose(); } @@ -141,7 +133,7 @@ public async Task ThrowExceptionIn_InterceptAfterRequest() { interceptor.AfterHttpRequestCalled.Should().BeTrue(); interceptor.AfterRequestCalled.Should().BeTrue(); interceptor.BeforeDeserializationCalled.Should().BeFalse(); - + client.Dispose(); } @@ -149,8 +141,8 @@ public async Task ThrowExceptionIn_InterceptAfterRequest() { var interceptor = new TestInterceptor(); configureInterceptor?.Invoke(interceptor); - var options = new RestClientOptions(_server.Url!) { - Interceptors = new List { interceptor } + var options = new RestClientOptions(server.Url!) { + Interceptors = [interceptor] }; return (new RestClient(options), interceptor); } @@ -159,8 +151,6 @@ static RestRequest CreateRequest() { var body = new TestRequest("foo", 100); return new RestRequest("post/json").AddJsonBody(body); } - - public void Dispose() => _server.Dispose(); } static class InterceptorChecks { @@ -171,4 +161,4 @@ public static void ShouldHaveCalledAll(this TestInterceptor interceptor) { interceptor.AfterRequestCalled.Should().BeTrue(); interceptor.BeforeDeserializationCalled.Should().BeTrue(); } -} +} \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/JsonBodyTests.cs b/test/RestSharp.Tests.Integrated/JsonBodyTests.cs index 9e05ba6b8..993702b94 100644 --- a/test/RestSharp.Tests.Integrated/JsonBodyTests.cs +++ b/test/RestSharp.Tests.Integrated/JsonBodyTests.cs @@ -1,10 +1,9 @@ using System.Text.Json; -using RestSharp.Tests.Integrated.Fixtures; +using RestSharp.Tests.Shared.Extensions; using RestSharp.Tests.Shared.Fixtures; namespace RestSharp.Tests.Integrated; -#pragma warning disable xUnit1033 public sealed class JsonBodyTests : IDisposable { readonly WireMockServer _server = WireMockServer.Start(); readonly RestClient _client; @@ -41,16 +40,7 @@ public async Task Add_JSON_body_JSON_string() { [Fact] public async Task Add_JSON_body_string() { - const string payload = @" -""requestBody"": { - ""content"": { - ""application/json"": { - ""schema"": { - ""type"": ""string"" - } - } - } -},"; + var payload = $" \"requestBody\": {{ \"content\": {{ \"{ContentType.Json}\": {{ \"schema\": {{ \"type\": \"string\" }} }} }} }}"; var expected = JsonSerializer.Serialize(payload); var capturer = _server.ConfigureBodyCapturer(Method.Post); diff --git a/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs b/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs index 993c03637..59fd83d5c 100644 --- a/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs +++ b/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs @@ -1,5 +1,6 @@ using HttpTracer; using RestSharp.Tests.Integrated.Fixtures; +using RestSharp.Tests.Shared.Extensions; using RestSharp.Tests.Shared.Fixtures; namespace RestSharp.Tests.Integrated; @@ -110,7 +111,7 @@ public async Task MultipartFormData_HasDefaultContentType() { var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Assets", "TestFile.txt"); request.AddFile("fileName", path); - request.AddParameter(new BodyParameter("controlName", "test", "application/json")); + request.AddParameter(new BodyParameter("controlName", "test", ContentType.Json)); var response = await _client.ExecuteAsync(request); @@ -135,7 +136,7 @@ public async Task MultipartFormData_WithCustomContentType() { const string customContentType = "multipart/vnd.resteasy+form-data"; request.AddHeader(KnownHeaders.ContentType, customContentType); request.AddFile("fileName", path); - request.AddParameter(new BodyParameter("controlName", "test", "application/json")); + request.AddParameter(new BodyParameter("controlName", "test", ContentType.Json)); await _client.ExecuteAsync(request); var boundary = request.FormBoundary; @@ -156,7 +157,7 @@ public async Task MultipartFormData_WithParameterAndFile_Async() { var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Assets", "TestFile.txt"); request.AddFile("fileName", path); - request.AddParameter(new BodyParameter("controlName", "test", "application/json")); + request.AddParameter(new BodyParameter("controlName", "test", ContentType.Json)); await _client.ExecuteAsync(request); var boundary = request.FormBoundary; diff --git a/test/RestSharp.Tests.Integrated/NonProtocolExceptionHandlingTests.cs b/test/RestSharp.Tests.Integrated/NonProtocolExceptionHandlingTests.cs index a05fe1dd7..bac3d052d 100644 --- a/test/RestSharp.Tests.Integrated/NonProtocolExceptionHandlingTests.cs +++ b/test/RestSharp.Tests.Integrated/NonProtocolExceptionHandlingTests.cs @@ -1,6 +1,4 @@ -using RestSharp.Tests.Integrated.Server; - -namespace RestSharp.Tests.Integrated; +namespace RestSharp.Tests.Integrated; public sealed class NonProtocolExceptionHandlingTests : IDisposable { public NonProtocolExceptionHandlingTests() @@ -24,7 +22,8 @@ class StupidClass { /// [Fact] public async Task Handles_Non_Existent_Domain() { - var client = new RestClient("http://nonexistantdomainimguessing.org"); + using var client = new RestClient("http://nonexistantdomainimguessing.org"); + var request = new RestRequest("foo"); var response = await client.ExecuteAsync(request); @@ -33,7 +32,7 @@ public async Task Handles_Non_Existent_Domain() { [Fact] public async Task Handles_HttpClient_Timeout_Error() { - var client = new RestClient(new HttpClient { Timeout = TimeSpan.FromMilliseconds(500) }); + using var client = new RestClient(new HttpClient { Timeout = TimeSpan.FromMilliseconds(500) }); var request = new RestRequest($"{_server.Url}/timeout"); var response = await client.ExecuteAsync(request); @@ -44,7 +43,8 @@ public async Task Handles_HttpClient_Timeout_Error() { [Fact] public async Task Handles_Server_Timeout_Error() { - var client = new RestClient(_server.Url!); + using var client = new RestClient(_server.Url!); + var request = new RestRequest("timeout") { Timeout = 500 }; var response = await client.ExecuteAsync(request); @@ -54,7 +54,8 @@ public async Task Handles_Server_Timeout_Error() { [Fact] public async Task Handles_Server_Timeout_Error_With_Deserializer() { - var client = new RestClient(_server.Url!); + using var client = new RestClient(_server.Url!); + var request = new RestRequest("timeout") { Timeout = 500 }; var response = await client.ExecuteAsync(request); @@ -65,7 +66,7 @@ public async Task Handles_Server_Timeout_Error_With_Deserializer() { [Fact] public async Task Task_Handles_Non_Existent_Domain() { - var client = new RestClient("http://this.cannot.exist:8001"); + using var client = new RestClient("http://this.cannot.exist:8001"); var request = new RestRequest("/") { RequestFormat = DataFormat.Json, diff --git a/test/RestSharp.Tests.Integrated/NtlmTests.cs b/test/RestSharp.Tests.Integrated/NtlmTests.cs index f1a4a1b87..3edb1c140 100644 --- a/test/RestSharp.Tests.Integrated/NtlmTests.cs +++ b/test/RestSharp.Tests.Integrated/NtlmTests.cs @@ -1,5 +1,4 @@ -using System.Net; -using System.Runtime.InteropServices; +using System.Runtime.InteropServices; using RestSharp.Tests.Integrated.Fixtures; using RestSharp.Tests.Shared.Fixtures; @@ -14,8 +13,8 @@ public async Task Does_Not_Pass_Default_Credentials_When_Server_Does_Not_Negotia if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) return; using var server = SimpleServer.Create(Handlers.Generic()); + using var client = new RestClient(new RestClientOptions(server.Url) { UseDefaultCredentials = true }); - var client = new RestClient(new RestClientOptions(server.Url) { UseDefaultCredentials = true }); var request = new RestRequest(RequestHeadCapturer.Resource); await client.ExecuteAsync(request); @@ -33,8 +32,8 @@ public async Task Does_Not_Pass_Default_Credentials_When_UseDefaultCredentials_I if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) return; using var server = SimpleServer.Create(Handlers.Generic(), AuthenticationSchemes.Negotiate); + using var client = new RestClient(new RestClientOptions(server.Url) { UseDefaultCredentials = false }); - var client = new RestClient(new RestClientOptions(server.Url) { UseDefaultCredentials = false }); var request = new RestRequest(RequestHeadCapturer.Resource); var response = await client.ExecuteAsync(request); @@ -47,8 +46,8 @@ public async Task Passes_Default_Credentials_When_UseDefaultCredentials_Is_True( if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) return; using var server = SimpleServer.Create(Handlers.Generic(), AuthenticationSchemes.Negotiate); + using var client = new RestClient(new RestClientOptions(server.Url) { UseDefaultCredentials = true }); - var client = new RestClient(new RestClientOptions(server.Url) { UseDefaultCredentials = true }); var request = new RestRequest(RequestHeadCapturer.Resource); var response = await client.ExecuteAsync(request); diff --git a/test/RestSharp.Tests.Integrated/PostTests.cs b/test/RestSharp.Tests.Integrated/PostTests.cs index b695c80a5..68b2777f0 100644 --- a/test/RestSharp.Tests.Integrated/PostTests.cs +++ b/test/RestSharp.Tests.Integrated/PostTests.cs @@ -1,13 +1,7 @@ -using System.Net; -using RestSharp.Tests.Integrated.Server; - namespace RestSharp.Tests.Integrated; -public class PostTests { - readonly WireMockServer _server = WireMockTestServer.StartTestServer(); - readonly RestClient _client; - - public PostTests() => _client = new RestClient(_server.Url!); +public sealed class PostTests(WireMockTestServer server) : IClassFixture, IDisposable { + readonly RestClient _client = new(server.Url!); [Fact] public async Task Should_post_json() { @@ -62,6 +56,7 @@ public async Task Should_post_both_default_and_request_parameters() { CheckResponse(defParam); CheckResponse(reqParam); + return; void CheckResponse(PostParameter parameter) { var p = response.Data!.FirstOrDefault(x => x.Name == parameter.Name); @@ -75,4 +70,6 @@ class Response { } record PostParameter(string Name, string Value); + + public void Dispose() => _client.Dispose(); } \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/PutTests.cs b/test/RestSharp.Tests.Integrated/PutTests.cs index 2bd2c9bd0..ac26c9144 100644 --- a/test/RestSharp.Tests.Integrated/PutTests.cs +++ b/test/RestSharp.Tests.Integrated/PutTests.cs @@ -1,15 +1,9 @@ using System.Text.Json; -using RestSharp.Tests.Integrated.Server; - -// using static RestSharp.Tests.Integrated.Server.HttpServer; namespace RestSharp.Tests.Integrated; -public class PutTests : IDisposable { - readonly WireMockServer _server = WireMockTestServer.StartTestServer(); - readonly RestClient _client; - - public PutTests() => _client = new(_server.Url!); +public sealed class PutTests(WireMockTestServer server) : IClassFixture, IDisposable { + readonly RestClient _client = new(server.Url!); static readonly JsonSerializerOptions Options = new(JsonSerializerDefaults.Web); @@ -44,10 +38,7 @@ public async Task Can_Timeout_PUT_Async() { Assert.Equal(ResponseStatus.TimedOut, response.ResponseStatus); } - public void Dispose() { - _server.Dispose(); - _client.Dispose(); - } + public void Dispose() => _client.Dispose(); } public record TestRequest(string Data, int Number); \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/RedirectTests.cs b/test/RestSharp.Tests.Integrated/RedirectTests.cs index 7b00bb4a7..557a7db71 100644 --- a/test/RestSharp.Tests.Integrated/RedirectTests.cs +++ b/test/RestSharp.Tests.Integrated/RedirectTests.cs @@ -1,41 +1,20 @@ -// Copyright (c) .NET Foundation and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - namespace RestSharp.Tests.Integrated; using Server; -public class RedirectTests : IDisposable { - readonly WireMockServer _server = WireMockTestServer.StartTestServer(); - readonly RestClient _client; - - public RedirectTests() => _client = new RestClient(new RestClientOptions(_server.Url!) { FollowRedirects = true }); +public sealed class RedirectTests(WireMockTestServer server) : IClassFixture, IDisposable { + readonly RestClient _client = new(new RestClientOptions(server.Url!) { FollowRedirects = true }); [Fact] public async Task Can_Perform_GET_Async_With_Redirect() { const string val = "Works!"; - var request = new RestRequest("redirect"); - + var request = new RestRequest("redirect"); var response = await _client.ExecuteAsync(request); + response.StatusCode.Should().Be(HttpStatusCode.OK); response.Data!.Message.Should().Be(val); } - public void Dispose() { - _server.Dispose(); - _client.Dispose(); - } + public void Dispose() => _client.Dispose(); } \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/RequestBodyTests.cs b/test/RestSharp.Tests.Integrated/RequestBodyTests.cs index 3897d9321..d20d07c95 100644 --- a/test/RestSharp.Tests.Integrated/RequestBodyTests.cs +++ b/test/RestSharp.Tests.Integrated/RequestBodyTests.cs @@ -1,9 +1,9 @@ -using RestSharp.Tests.Integrated.Fixtures; +using RestSharp.Tests.Shared.Extensions; using RestSharp.Tests.Shared.Fixtures; namespace RestSharp.Tests.Integrated; -public class RequestBodyTests : IDisposable { +public sealed class RequestBodyTests : IDisposable { // const string NewLine = "\r\n"; static readonly string ExpectedTextContentType = $"{ContentType.Plain}; charset=utf-8"; @@ -12,10 +12,10 @@ public class RequestBodyTests : IDisposable { readonly WireMockServer _server = WireMockServer.Start(s => s.AllowBodyForAllHttpMethods = true); async Task AssertBody(Method method, bool disableCharset = false) { - var options = new RestClientOptions(_server.Url!) { DisableCharset = disableCharset }; + var options = new RestClientOptions(_server.Url!) { DisableCharset = disableCharset }; using var client = new RestClient(options); - var request = new RestRequest(RequestBodyCapturer.Resource, method); - var capturer = _server.ConfigureBodyCapturer(method); + var request = new RestRequest(RequestBodyCapturer.Resource, method); + var capturer = _server.ConfigureBodyCapturer(method); const string bodyData = "abc123 foo bar baz BING!"; @@ -56,8 +56,8 @@ public async Task Can_Have_No_Body_Added_To_POST_Request() { const Method httpMethod = Method.Post; using var client = new RestClient(_server.Url!); - var request = new RestRequest(RequestBodyCapturer.Resource, httpMethod); - var capturer = _server.ConfigureBodyCapturer(httpMethod); + var request = new RestRequest(RequestBodyCapturer.Resource, httpMethod); + var capturer = _server.ConfigureBodyCapturer(httpMethod); await client.ExecuteAsync(request); @@ -70,7 +70,6 @@ public async Task Can_Have_No_Body_Added_To_POST_Request() { [Fact] public Task Can_Be_Added_To_HEAD_Request() => AssertBody(Method.Head); - static void AssertHasNoRequestBody(RequestBodyCapturer capturer) { capturer.ContentType.Should().BeNull(); capturer.HasBody.Should().BeFalse(); diff --git a/test/RestSharp.Tests.Integrated/RequestFailureTests.cs b/test/RestSharp.Tests.Integrated/RequestFailureTests.cs index 1ff517fdc..7037670c0 100644 --- a/test/RestSharp.Tests.Integrated/RequestFailureTests.cs +++ b/test/RestSharp.Tests.Integrated/RequestFailureTests.cs @@ -4,11 +4,8 @@ namespace RestSharp.Tests.Integrated; using Server; -public class RequestFailureTests : IDisposable { - readonly WireMockServer _server = WireMockTestServer.StartTestServer(); - readonly RestClient _client; - - public RequestFailureTests() => _client = new RestClient(_server.Url!); +public sealed class RequestFailureTests(WireMockTestServer server) : IClassFixture, IDisposable { + readonly RestClient _client = new(server.Url!); [Fact] public async Task Handles_GET_Request_Errors() { @@ -29,8 +26,8 @@ public async Task Handles_GET_Request_Errors_With_Response_Type() { [Fact] public async Task Throws_on_unsuccessful_call() { - using var client = new RestClient(new RestClientOptions(_server.Url!) { ThrowOnAnyError = true }); - var request = new RestRequest("status?code=500"); + using var client = new RestClient(new RestClientOptions(server.Url!) { ThrowOnAnyError = true }); + var request = new RestRequest("status?code=500"); var task = () => client.ExecuteAsync(request); await task.Should().ThrowExactlyAsync(); @@ -69,8 +66,5 @@ public async Task GetAsync_returns_null_on_404() { response.Should().BeNull(); } - public void Dispose() { - _server.Dispose(); - _client.Dispose(); - } + public void Dispose() => _client.Dispose(); } \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/RequestTests.cs b/test/RestSharp.Tests.Integrated/RequestTests.cs index d80a52684..81aafbb53 100644 --- a/test/RestSharp.Tests.Integrated/RequestTests.cs +++ b/test/RestSharp.Tests.Integrated/RequestTests.cs @@ -1,13 +1,7 @@ -using System.Net; -using RestSharp.Tests.Integrated.Server; +namespace RestSharp.Tests.Integrated; -namespace RestSharp.Tests.Integrated; - -public class AsyncTests : IDisposable { - readonly WireMockServer _server = WireMockTestServer.StartTestServer(); - readonly RestClient _client; - - public AsyncTests() => _client = new RestClient(_server.Url!); +public sealed class AsyncTests(WireMockTestServer server) : IClassFixture, IDisposable { + readonly RestClient _client = new(server.Url!); [Fact] public async Task Can_Handle_Exception_Thrown_By_Interceptor_BeforeDeserialization() { @@ -90,8 +84,5 @@ public override ValueTask BeforeDeserialization(RestResponse response, Cancellat => throw new Exception(errorMessage); } - public void Dispose() { - _server.Dispose(); - _client.Dispose(); - } + public void Dispose() => _client.Dispose(); } \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/RestSharp.Tests.Integrated.csproj b/test/RestSharp.Tests.Integrated/RestSharp.Tests.Integrated.csproj index c1e098fe1..3ce6655bd 100644 --- a/test/RestSharp.Tests.Integrated/RestSharp.Tests.Integrated.csproj +++ b/test/RestSharp.Tests.Integrated/RestSharp.Tests.Integrated.csproj @@ -1,7 +1,6 @@ enable - @@ -17,14 +16,9 @@ - - - - - - + @@ -32,5 +26,6 @@ + \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/RootElementTests.cs b/test/RestSharp.Tests.Integrated/RootElementTests.cs index 0285558f5..81da44392 100644 --- a/test/RestSharp.Tests.Integrated/RootElementTests.cs +++ b/test/RestSharp.Tests.Integrated/RootElementTests.cs @@ -1,5 +1,4 @@ using RestSharp.Serializers.Xml; -using RestSharp.Tests.Integrated.Server; namespace RestSharp.Tests.Integrated; diff --git a/test/RestSharp.Tests.Integrated/Server/Handlers/CookieHandlers.cs b/test/RestSharp.Tests.Integrated/Server/Handlers/CookieHandlers.cs deleted file mode 100644 index 40cfc3f25..000000000 --- a/test/RestSharp.Tests.Integrated/Server/Handlers/CookieHandlers.cs +++ /dev/null @@ -1,70 +0,0 @@ -using Microsoft.AspNetCore.Http; - -namespace RestSharp.Tests.Integrated.Server.Handlers; - -public static class CookieHandlers { - // public static IResult HandleCookies(HttpContext ctx) { - // var results = new List(); - // - // foreach (var (key, value) in ctx.Request.Cookies) { - // results.Add($"{key}={value}"); - // } - // - // return Results.Ok(results); - // } - - public static void HandleSetCookies(HttpContext ctx) { - ctx.Response.Cookies.Append("cookie1", "value1"); - - ctx.Response.Cookies.Append( - "cookie2", - "value2", - new CookieOptions { - Path = "/path_extra" - } - ); - - ctx.Response.Cookies.Append( - "cookie3", - "value3", - new CookieOptions { - Expires = DateTimeOffset.Now.AddDays(2) - } - ); - - ctx.Response.Cookies.Append( - "cookie4", - "value4", - new CookieOptions { - MaxAge = TimeSpan.FromSeconds(100) - } - ); - - ctx.Response.Cookies.Append( - "cookie5", - "value5", - new CookieOptions { - Secure = true - } - ); - - ctx.Response.Cookies.Append( - "cookie6", - "value6", - new CookieOptions { - HttpOnly = true - } - ); - - ctx.Response.Cookies.Append( - "cookie_empty_domain", - "value_empty_domain", - new CookieOptions { - HttpOnly = true, - Domain = string.Empty - } - ); - - // return Results.Content("success"); - } -} diff --git a/test/RestSharp.Tests.Integrated/Server/Handlers/FileHandlers.cs b/test/RestSharp.Tests.Integrated/Server/Handlers/FileHandlers.cs deleted file mode 100644 index 88ec8fb02..000000000 --- a/test/RestSharp.Tests.Integrated/Server/Handlers/FileHandlers.cs +++ /dev/null @@ -1,39 +0,0 @@ -// using System.Diagnostics.CodeAnalysis; -// using Microsoft.AspNetCore.Http; -// using Microsoft.AspNetCore.Mvc; -// using RestSharp.Extensions; -// -// namespace RestSharp.Tests.Integrated.Server.Handlers; -// -// [ApiController] -// public class UploadController : ControllerBase { -// [HttpPost] -// [Route("upload")] -// [SuppressMessage("Performance", "CA1822:Mark members as static")] -// public async Task Upload([FromForm] FormFile formFile, [FromQuery] bool checkFile = true) { -// var file = formFile.File; -// -// if (!checkFile) { -// return Ok(new UploadResponse(file.FileName, file.Length, true)); -// } -// -// var assetPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Assets"); -// -// await using var stream = file.OpenReadStream(); -// -// var received = await stream.ReadAsBytes(default); -// -// try { -// var expected = await System.IO.File.ReadAllBytesAsync(Path.Combine(assetPath, file.FileName)); -// var response = new UploadResponse(file.FileName, file.Length, received.SequenceEqual(expected)); -// return Ok(response); -// } -// catch (Exception e) { -// return BadRequest(new { Message = e.Message, Filename = file.FileName }); -// } -// } -// } -// -// public class FormFile { -// public IFormFile File { get; set; } = null!; -// } diff --git a/test/RestSharp.Tests.Integrated/Server/Handlers/FormRequest.cs b/test/RestSharp.Tests.Integrated/Server/Handlers/FormRequest.cs deleted file mode 100644 index 889151cc9..000000000 --- a/test/RestSharp.Tests.Integrated/Server/Handlers/FormRequest.cs +++ /dev/null @@ -1,12 +0,0 @@ -// using Microsoft.AspNetCore.Http; -// -// namespace RestSharp.Tests.Integrated.Server.Handlers; -// -// public static class FormRequestHandler { -// public static IResult HandleForm(HttpContext ctx) { -// var response = ctx.Request.Form.Select( -// x => new TestServerResponse(x.Key, x.Value!) -// ); -// return Results.Ok(response); -// } -// } diff --git a/test/RestSharp.Tests.Integrated/Server/Handlers/HeaderHandlers.cs b/test/RestSharp.Tests.Integrated/Server/Handlers/HeaderHandlers.cs deleted file mode 100644 index 4df2a1f24..000000000 --- a/test/RestSharp.Tests.Integrated/Server/Handlers/HeaderHandlers.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Microsoft.AspNetCore.Http; - -namespace RestSharp.Tests.Integrated.Server.Handlers; - -// public static class HeaderHandlers { -// public static IResult HandleHeaders(HttpContext ctx) { -// var response = ctx.Request.Headers.Select(x => new TestServerResponse(x.Key, x.Value!)); -// return Results.Ok(response); -// } -// } diff --git a/test/RestSharp.Tests.Integrated/Server/Handlers/RequestHandlers.cs b/test/RestSharp.Tests.Integrated/Server/Handlers/RequestHandlers.cs deleted file mode 100644 index 7ee727e03..000000000 --- a/test/RestSharp.Tests.Integrated/Server/Handlers/RequestHandlers.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.AspNetCore.Http; - -namespace RestSharp.Tests.Integrated.Server.Handlers; - -public class ParsedRequest { - public ParsedRequest(HttpRequest request) { - Method = request.Method; - Path = request.Path; - QueryString = request.QueryString; - - QueryParameters = request.Query - .SelectMany(x => x.Value.Select(y => new KeyValuePair(x.Key, y!))) - .ToArray(); - } - - public string Method { get; set; } - public string Path { get; set; } - public QueryString QueryString { get; set; } - public KeyValuePair[] QueryParameters { get; set; } -} diff --git a/test/RestSharp.Tests.Integrated/Server/TestServer.cs b/test/RestSharp.Tests.Integrated/Server/TestServer.cs deleted file mode 100644 index 464bbbcd1..000000000 --- a/test/RestSharp.Tests.Integrated/Server/TestServer.cs +++ /dev/null @@ -1,77 +0,0 @@ -// using Microsoft.AspNetCore.Builder; -// using Microsoft.AspNetCore.Hosting; -// using Microsoft.AspNetCore.Http; -// using Microsoft.Extensions.DependencyInjection; -// using Microsoft.Extensions.Logging; -// using RestSharp.Tests.Integrated.Server.Handlers; -// using RestSharp.Tests.Shared.Extensions; -// // ReSharper disable ConvertClosureToMethodGroup -// -// namespace RestSharp.Tests.Integrated.Server; -// -// public sealed class HttpServer1 { -// readonly WebApplication _app; -// -// const string Address = "http://localhost:5151"; -// -// public const string ContentResource = "content"; -// public const string TimeoutResource = "timeout"; -// -// public HttpServer(ITestOutputHelper? output = null) { -// var builder = WebApplication.CreateBuilder(); -// -// if (output != null) builder.Logging.AddXunit(output, LogLevel.Debug); -// -// builder.Services.AddControllers().AddApplicationPart(typeof(UploadController).Assembly); -// builder.WebHost.UseUrls(Address); -// _app = builder.Build(); -// -// _app.MapControllers(); -// -// _app.MapGet("success", () => new TestResponse { Message = "Works!" }); -// _app.MapGet("echo", (string msg) => msg); -// _app.MapGet(TimeoutResource, async () => await Task.Delay(2000)); -// _app.MapPut(TimeoutResource, async () => await Task.Delay(2000)); -// _app.MapGet("status", (int code) => Results.StatusCode(code)); -// _app.MapGet("headers", HeaderHandlers.HandleHeaders); -// _app.MapGet("request-echo", async context => await context.Request.BodyReader.AsStream().CopyToAsync(context.Response.BodyWriter.AsStream())); -// _app.MapDelete("delete", () => new TestResponse { Message = "Works!" }); -// -// // Cookies -// _app.MapGet("get-cookies", CookieHandlers.HandleCookies); -// _app.MapGet("set-cookies", CookieHandlers.HandleSetCookies); -// _app.MapGet("redirect", () => Results.Redirect("/success", false, true)); -// -// // PUT -// _app.MapPut( -// ContentResource, -// async context => { -// var content = await context.Request.Body.StreamToStringAsync(); -// await context.Response.WriteAsync(content); -// } -// ); -// -// // Upload file -// // var assetPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Assets"); -// // _app.MapPost("/upload", ctx => FileHandlers.HandleUpload(assetPath, ctx.Request)); -// -// // POST -// _app.MapPost("/post/json", (TestRequest request) => new TestResponse { Message = request.Data }); -// -// _app.MapPost( -// "/post/form", -// (HttpContext context) => new TestResponse { Message = $"Works! Length: {context.Request.Form["big_string"].ToString().Length}" } -// ); -// -// _app.MapPost("/post/data", FormRequestHandler.HandleForm); -// } -// -// public Uri Url => new(Address); -// -// public Task Start() => _app.StartAsync(); -// -// public async Task Stop() { -// await _app.StopAsync(); -// await _app.DisposeAsync(); -// } -// } diff --git a/test/RestSharp.Tests.Integrated/Server/TestServerFixture.cs b/test/RestSharp.Tests.Integrated/Server/TestServerFixture.cs deleted file mode 100644 index 84eb6d46c..000000000 --- a/test/RestSharp.Tests.Integrated/Server/TestServerFixture.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace RestSharp.Tests.Integrated.Server; - -// public class TestServerFixture1 : IAsyncLifetime { - // public HttpServer Server { get; } = new(); - - // public Task InitializeAsync() => Server.Start(); - - // public Task DisposeAsync() => Server.Stop(); -// } - -// [CollectionDefinition(nameof(TestServerCollection))] -// public class TestServerCollection : ICollectionFixture { } - diff --git a/test/RestSharp.Tests.Integrated/Server/WireMockTestServer.cs b/test/RestSharp.Tests.Integrated/Server/WireMockTestServer.cs index 59218df32..55dc7faee 100644 --- a/test/RestSharp.Tests.Integrated/Server/WireMockTestServer.cs +++ b/test/RestSharp.Tests.Integrated/Server/WireMockTestServer.cs @@ -1,60 +1,45 @@ using System.Text.Json; -using Microsoft.AspNetCore.WebUtilities; -using Microsoft.Net.Http.Headers; +using WireMock.Settings; using WireMock.Types; using WireMock.Util; namespace RestSharp.Tests.Integrated.Server; -static class WireMockTestServer { - public static WireMockServer StartTestServer() { - var server = WireMockServer.Start(); - - server - .Given(Request.Create().WithPath("/echo")) +// ReSharper disable once ClassNeverInstantiated.Global +public class WireMockTestServer : WireMockServer { + public WireMockTestServer() : base(new WireMockServerSettings { Port = 0, UseHttp2 = false, UseSSL = false }) { + Given(Request.Create().WithPath("/echo")) .RespondWith(Response.Create().WithCallback(EchoQuery)); - server - .Given(Request.Create().WithPath("/success").UsingGet()) + Given(Request.Create().WithPath("/success").UsingGet()) .RespondWith(Response.Create().WithBodyAsJson(new SuccessResponse("Works!"))); - server - .Given(Request.Create().WithPath("/delete").UsingDelete()) + Given(Request.Create().WithPath("/delete").UsingDelete()) .RespondWith(Response.Create().WithBodyAsJson(new SuccessResponse("Works!"))); - server - .Given(Request.Create().WithPath("/content")) + Given(Request.Create().WithPath("/content")) .RespondWith(Response.Create().WithCallback(EchoJsonBody)); - server - .Given(Request.Create().WithPath("/post/json").UsingPost()) + Given(Request.Create().WithPath("/post/json").UsingPost()) .RespondWith(Response.Create().WithCallback(WrapBody)); - server - .Given(Request.Create().WithPath("/post/data").UsingPost()) + Given(Request.Create().WithPath("/post/data").UsingPost()) .RespondWith(Response.Create().WithCallback(HandleForm)); - server - .Given(Request.Create().WithPath("/post/form").UsingPost()) + Given(Request.Create().WithPath("/post/form").UsingPost()) .RespondWith(Response.Create().WithCallback(WrapForm)); - server - .Given(Request.Create().WithPath("/timeout")) + Given(Request.Create().WithPath("/timeout")) .RespondWith(Response.Create().WithDelay(1000)); - server - .Given(Request.Create().WithPath("/redirect")) + Given(Request.Create().WithPath("/redirect")) .RespondWith(Response.Create().WithStatusCode(HttpStatusCode.Redirect).WithHeader("Location", "/success")); - server - .Given(Request.Create().WithPath("/status").UsingGet()) + Given(Request.Create().WithPath("/status").UsingGet()) .RespondWith(Response.Create().WithCallback(StatusCode)); - server - .Given(Request.Create().WithPath("/headers")) + Given(Request.Create().WithPath("/headers")) .RespondWith(Response.Create().WithCallback(EchoHeaders)); - - return server; } static ResponseMessage WrapForm(IRequestMessage request) { @@ -112,25 +97,5 @@ public static ResponseMessage CreateJson(object response) DetectedBodyType = BodyType.Json } }; - - public static async Task GetFileSection(this IRequestMessage request, string name) { - var headerValue = request.Headers![KnownHeaders.ContentType][0]; - var mediaType = MediaTypeHeaderValue.Parse(headerValue); - var boundary = mediaType.Boundary; - - using var stream = new MemoryStream(request.BodyAsBytes!); - var reader = new MultipartReader(boundary.Value!, stream); - reader.HeadersLengthLimit = int.MaxValue; - - FileMultipartSection? fileSection = null; - while (true) { - var section = await reader.ReadNextSectionAsync(); - if (section == null) break; - fileSection = section.AsFileSection(); - if (fileSection == null) continue; - if (fileSection.Name == name) break; - } - - return fileSection; - } + } \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/StatusCodeTests.cs b/test/RestSharp.Tests.Integrated/StatusCodeTests.cs index cd9fccadd..cfcee8362 100644 --- a/test/RestSharp.Tests.Integrated/StatusCodeTests.cs +++ b/test/RestSharp.Tests.Integrated/StatusCodeTests.cs @@ -1,6 +1,4 @@ -using System.Net; -using RestSharp.Serializers.Xml; -using WireMock; +using RestSharp.Serializers.Xml; // ReSharper disable UnusedMember.Local // ReSharper disable InconsistentNaming diff --git a/test/RestSharp.Tests.Integrated/StructuredSyntaxSuffixTests.cs b/test/RestSharp.Tests.Integrated/StructuredSyntaxSuffixTests.cs index 50c996598..255ce7058 100644 --- a/test/RestSharp.Tests.Integrated/StructuredSyntaxSuffixTests.cs +++ b/test/RestSharp.Tests.Integrated/StructuredSyntaxSuffixTests.cs @@ -47,7 +47,7 @@ public async Task By_default_application_json_content_type_should_deserialize_as using var client = new RestClient(_server.Url!); var request = new RestRequest() - .AddParameter("ct", "application/json") + .AddParameter("ct", ContentType.Json) .AddParameter("c", JsonContent); var response = await client.ExecuteAsync(request); diff --git a/test/RestSharp.Tests.Integrated/TestResponse.cs b/test/RestSharp.Tests.Integrated/TestResponse.cs deleted file mode 100644 index b3b422c94..000000000 --- a/test/RestSharp.Tests.Integrated/TestResponse.cs +++ /dev/null @@ -1 +0,0 @@ -namespace RestSharp.Tests.Integrated; diff --git a/test/RestSharp.Tests.Integrated/UploadFileTests.cs b/test/RestSharp.Tests.Integrated/UploadFileTests.cs index ad84e1ad2..83b2b5965 100644 --- a/test/RestSharp.Tests.Integrated/UploadFileTests.cs +++ b/test/RestSharp.Tests.Integrated/UploadFileTests.cs @@ -1,15 +1,12 @@ // ReSharper disable MethodHasAsyncOverload using HttpMultipartParser; -using Microsoft.AspNetCore.WebUtilities; -using Microsoft.Net.Http.Headers; using RestSharp.Extensions; +using RestSharp.Tests.Shared.Fixtures; namespace RestSharp.Tests.Integrated; -using Server; - -public class UploadFileTests { +public sealed class UploadFileTests : IDisposable { readonly ITestOutputHelper _output; readonly RestClient _client; readonly string _basePath = AppDomain.CurrentDomain.BaseDirectory; @@ -61,7 +58,6 @@ public async Task Should_upload_from_stream() { response.Data.Should().BeEquivalentTo(_expected); } -#if !NET6_0 // This test fails because MultipartFormDataParser doesn't understand filename* [Fact] public async Task Should_upload_from_stream_non_ascii() { @@ -77,7 +73,6 @@ public async Task Should_upload_from_stream_non_ascii() { _output.WriteLine(response.Content); response.Data.Should().BeEquivalentTo(new UploadResponse(nonAsciiFilename, new FileInfo(_path).Length, true)); } -#endif static async Task HandleUpload(IRequestMessage request) { var response = new ResponseMessage(); @@ -92,14 +87,7 @@ static async Task HandleUpload(IRequestMessage request) { var fileSection = form.Files[0]; var fileLength = fileSection.Data.Length; - -#if !NET6_0 - // Doing this because MultipartFormDataParser doesn't understand filename* - var section = await request.GetFileSection("file"); - var fileName = section!.FileName; -#else var fileName = fileSection.FileName; -#endif // ReSharper disable once InvertIf if (checkFile) { @@ -119,4 +107,9 @@ static async Task HandleUpload(IRequestMessage request) { return WireMockTestServer.CreateJson(new UploadResponse(fileName, fileLength, true)); } + + public void Dispose() { + _client.Dispose(); + _server.Dispose(); + } } \ No newline at end of file diff --git a/test/RestSharp.Tests.Integrated/XmlResponseTests.cs b/test/RestSharp.Tests.Integrated/XmlResponseTests.cs index 45cb687fc..7cb9946ab 100644 --- a/test/RestSharp.Tests.Integrated/XmlResponseTests.cs +++ b/test/RestSharp.Tests.Integrated/XmlResponseTests.cs @@ -1,8 +1,5 @@ -using System.Net; using RestSharp.Interceptors; using RestSharp.Serializers.Xml; -using RestSharp.Tests.Integrated.Server; -using WireMock; namespace RestSharp.Tests.Integrated; diff --git a/test/RestSharp.Tests.Integrated/xunit.runner.json b/test/RestSharp.Tests.Integrated/xunit.runner.json deleted file mode 100644 index 3ad9c00e1..000000000 --- a/test/RestSharp.Tests.Integrated/xunit.runner.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "parallelizeAssembly": false, - "parallelizeTestCollections": false -} \ No newline at end of file diff --git a/test/RestSharp.Tests.Serializers.Csv/CsvHelperTests.cs b/test/RestSharp.Tests.Serializers.Csv/CsvHelperTests.cs index 4f3202b97..a7659fe75 100644 --- a/test/RestSharp.Tests.Serializers.Csv/CsvHelperTests.cs +++ b/test/RestSharp.Tests.Serializers.Csv/CsvHelperTests.cs @@ -1,17 +1,15 @@ using CsvHelper.Configuration; using RestSharp.Serializers.CsvHelper; using RestSharp.Serializers.Json; -using RestSharp.Tests.Shared.Extensions; -using RestSharp.Tests.Shared.Fixtures; using System.Globalization; -using System.Net; -using System.Text; namespace RestSharp.Tests.Serializers.Csv; public sealed class CsvHelperTests : IDisposable { static readonly Fixture Fixture = new(); + static CsvHelperTests() => Fixture.Customize(new TestObjectCustomization()); + readonly WireMockServer _server = WireMockServer.Start(); void ConfigureResponse(object expected) { @@ -22,73 +20,48 @@ void ConfigureResponse(object expected) { .RespondWith(Response.Create().WithBody(serializer.Serialize(expected)!).WithHeader(KnownHeaders.ContentType, ContentType.Csv)); } - TestObject CreateTestObject() { - var expected = Fixture.Create(); - - expected.DateTimeValue = new DateTime( - expected.DateTimeValue.Year, - expected.DateTimeValue.Month, - expected.DateTimeValue.Day, - expected.DateTimeValue.Hour, - expected.DateTimeValue.Minute, - expected.DateTimeValue.Second - ); - - return expected; - } - [Fact] public async Task Use_CsvHelper_For_Response() { - var expected = CreateTestObject(); - + var expected = Fixture.Create(); ConfigureResponse(expected); + using var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseCsvHelper()); - var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseCsvHelper()); var actual = await client.GetAsync(new RestRequest()); - actual.Should().BeEquivalentTo(expected); } [Fact] public async Task Use_CsvHelper_For_Collection_Response() { - var count = Fixture.Create(); - var expected = new List(count); - - for (var i = 0; i < count; i++) { - var item = CreateTestObject(); - expected.Add(item); - } + var expected = Fixture.CreateMany(); ConfigureResponse(expected); + using var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseCsvHelper()); - var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseCsvHelper()); var actual = await client.GetAsync>(new RestRequest()); - actual.Should().BeEquivalentTo(expected); } [Fact] - public async Task DeserilizationFails_IsSuccessful_Should_BeFalse() { + public async Task Invalid_csv_request_body_should_fail() { _server .Given(Request.Create().WithPath("/").UsingGet()) .RespondWith(Response.Create().WithBody("invalid csv").WithHeader(KnownHeaders.ContentType, ContentType.Csv)); - var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseCsvHelper()); + using var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseCsvHelper()); var response = await client.ExecuteAsync(new RestRequest()); - response.IsSuccessStatusCode.Should().BeTrue(); response.IsSuccessful.Should().BeFalse(); } [Fact] - public async Task DeserilizationSucceeds_IsSuccessful_Should_BeTrue() { - var item = CreateTestObject(); + public async Task Valid_csv_response_should_succeed() { + var item = Fixture.Create(); ConfigureResponse(item); - var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseSystemTextJson()); - var response = await client.ExecuteAsync(new RestRequest()); + using var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseSystemTextJson()); + var response = await client.ExecuteAsync(new RestRequest()); response.IsSuccessStatusCode.Should().BeTrue(); response.IsSuccessful.Should().BeTrue(); } @@ -101,18 +74,9 @@ public void SerializedObject_Should_Be() { } ); - var item = new TestObject { - Int32Value = 32, - SingleValue = 16.5f, - StringValue = "hello", - TimeSpanValue = TimeSpan.FromMinutes(10), - DateTimeValue = new DateTime(2024, 1, 20) - }; - - var actual = serializer.Serialize(item); - - const string expected = - "StringValue,Int32Value,DecimalValue,DoubleValue,SingleValue,DateTimeValue,TimeSpanValue;hello,32,0,0,16.5,01/20/2024 00:00:00,00:10:00;"; + var item = Fixture.Create(); + var actual = serializer.Serialize(item); + var expected = $"{TestObject.Titles};{item.ToString(CultureInfo.InvariantCulture)};"; actual.Should().Be(expected); } @@ -145,13 +109,28 @@ public void SerializedCollection_Should_Be() { StringValue = "String, with comma" } }; + string[] strings = [TestObject.Titles, .. items.Select(i => i.ToString(CultureInfo.InvariantCulture))]; + + var expected = $"{string.Join(";", strings)};"; + var actual = serializer.Serialize(items); - serializer.Serialize(items) - .Should() - .Be( - "StringValue,Int32Value,DecimalValue,DoubleValue,SingleValue,DateTimeValue,TimeSpanValue;hello,32,0,0,16.5,01/20/2024 00:00:00,00:10:00;,65,89.555,0,0,08/19/2022 05:15:21,00:01:01;\"String, with comma\",0,0,20.00001,80000,01/01/0001 00:00:00,00:00:00;" - ); + actual.Should().Be(expected); } public void Dispose() => _server?.Dispose(); +} + +class TestObjectCustomization : ICustomization { + public void Customize(IFixture fixture) + => fixture.Customize( + o => o + .WithAutoProperties() + .With( + p => p.DateTimeValue, + () => { + var dt = fixture.Create(); + return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second); + } + ) + ); } \ No newline at end of file diff --git a/test/RestSharp.Tests.Serializers.Csv/TestObject.cs b/test/RestSharp.Tests.Serializers.Csv/TestObject.cs index d79736287..6844f7040 100644 --- a/test/RestSharp.Tests.Serializers.Csv/TestObject.cs +++ b/test/RestSharp.Tests.Serializers.Csv/TestObject.cs @@ -1,4 +1,6 @@ -namespace RestSharp.Tests.Serializers.Csv; +using System.Globalization; + +namespace RestSharp.Tests.Serializers.Csv; class TestObject { public string StringValue { get; set; } @@ -8,4 +10,12 @@ class TestObject { public float SingleValue { get; set; } public DateTime DateTimeValue { get; set; } public TimeSpan TimeSpanValue { get; set; } -} + + public const string Titles = + $"{nameof(StringValue)},{nameof(Int32Value)},{nameof(DecimalValue)},{nameof(DoubleValue)},{nameof(SingleValue)},{nameof(DateTimeValue)},{nameof(TimeSpanValue)}"; + + public string ToString(CultureInfo c) { + var str = StringValue?.Contains(',') == true ? $"\"{StringValue}\"" : StringValue; + return $"{str},{Int32Value},{DecimalValue.ToString(c)},{DoubleValue.ToString(c)},{SingleValue.ToString(c)},{DateTimeValue.ToString(c)},{TimeSpanValue.ToString()}"; + } +} \ No newline at end of file diff --git a/test/RestSharp.Tests.Serializers.Json/NewtonsoftJson/IntegratedSimpleTests.cs b/test/RestSharp.Tests.Serializers.Json/NewtonsoftJson/IntegratedSimpleTests.cs index 573a04f52..a19e9b612 100644 --- a/test/RestSharp.Tests.Serializers.Json/NewtonsoftJson/IntegratedSimpleTests.cs +++ b/test/RestSharp.Tests.Serializers.Json/NewtonsoftJson/IntegratedSimpleTests.cs @@ -1,4 +1,5 @@ using RestSharp.Serializers.NewtonsoftJson; +using RestSharp.Tests.Shared.Extensions; using RestSharp.Tests.Shared.Fixtures; namespace RestSharp.Tests.Serializers.Json.NewtonsoftJson; @@ -7,63 +8,62 @@ public sealed class IntegratedSimpleTests : IDisposable { static readonly Fixture Fixture = new(); readonly WireMockServer _server = WireMockServer.Start(); + readonly RestClient _client; + + public IntegratedSimpleTests() => _client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseNewtonsoftJson()); [Fact] - public async Task Use_JsonNet_For_Requests() { + public async Task Should_serialize_request() { var capturer = _server.ConfigureBodyCapturer(Method.Post, false); var serializer = new JsonNetSerializer(); var testData = Fixture.Create(); - var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseNewtonsoftJson()); var request = new RestRequest().AddJsonBody(testData); - await client.PostAsync(request); - + await _client.PostAsync(request); var actual = serializer.Deserialize(new RestResponse(request) { Content = capturer.Body! }); actual.Should().BeEquivalentTo(testData); } [Fact] - public async Task Use_JsonNet_For_Response() { + public async Task Should_deserialize_response() { var expected = Fixture.Create(); + _server .Given(Request.Create().WithPath("/").UsingGet()) .RespondWith(Response.Create().WithBodyAsJson(expected)); - var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseNewtonsoftJson()); - var actual = await client.GetAsync(new RestRequest()); - + var actual = await _client.GetAsync(new RestRequest()); actual.Should().BeEquivalentTo(expected); } [Fact] - public async Task DeserilizationFails_IsSuccessful_Should_BeFalse() { + public async Task Invalid_json_body_request_should_fail() { _server .Given(Request.Create().WithPath("/").UsingGet()) .RespondWith(Response.Create().WithBody("invalid json").WithHeader(KnownHeaders.ContentType, ContentType.Json)); - var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseNewtonsoftJson()); - - var response = await client.ExecuteAsync(new RestRequest()); + var response = await _client.ExecuteAsync(new RestRequest()); response.IsSuccessStatusCode.Should().BeTrue(); response.IsSuccessful.Should().BeFalse(); } [Fact] - public async Task DeserilizationSucceeds_IsSuccessful_Should_BeTrue() { + public async Task Valid_json_response_should_succeed() { var item = Fixture.Create(); + _server .Given(Request.Create().WithPath("/").UsingGet()) .RespondWith(Response.Create().WithBodyAsJson(item)); - var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseNewtonsoftJson()); - - var response = await client.ExecuteAsync(new RestRequest()); - + var response = await _client.ExecuteAsync(new RestRequest()); response.IsSuccessStatusCode.Should().BeTrue(); response.IsSuccessful.Should().BeTrue(); } - public void Dispose() => _server?.Dispose(); + public void Dispose() { + _server?.Dispose(); + _client.Dispose(); + } } \ No newline at end of file diff --git a/test/RestSharp.Tests.Serializers.Json/NewtonsoftJson/SerializationTests.cs b/test/RestSharp.Tests.Serializers.Json/NewtonsoftJson/SerializationTests.cs index 6423f107a..f996b6a3b 100644 --- a/test/RestSharp.Tests.Serializers.Json/NewtonsoftJson/SerializationTests.cs +++ b/test/RestSharp.Tests.Serializers.Json/NewtonsoftJson/SerializationTests.cs @@ -17,21 +17,12 @@ public class SerializationTests { [Fact] public void Serialize_multiple_objects_within_one_thread() { var serializer = new JsonNetSerializer(); - var dummy1 = Fixture.Create(); - var dummy2 = Fixture.Create(); - var dummy3 = Fixture.Create(); - - var expectedSerialization1 = JsonConvert.SerializeObject(dummy1, _jsonSerializerSettings); - var expectedSerialization2 = JsonConvert.SerializeObject(dummy2, _jsonSerializerSettings); - var expectedSerialization3 = JsonConvert.SerializeObject(dummy3, _jsonSerializerSettings); - - var actualSerialization1 = serializer.Serialize(dummy1); - var actualSerialization2 = serializer.Serialize(dummy2); - var actualSerialization3 = serializer.Serialize(dummy3); - - actualSerialization1.Should().Be(expectedSerialization1); - actualSerialization2.Should().Be(expectedSerialization2); - actualSerialization3.Should().Be(expectedSerialization3); + var dummy = Fixture.CreateMany().ToArray(); + var expectedSerializations = dummy.Select( + d => JsonConvert.SerializeObject(d, _jsonSerializerSettings) + ).ToList(); + var actualSerializations = dummy.Select(serializer.Serialize).ToList(); + actualSerializations.Should().BeEquivalentTo(expectedSerializations); } [Fact] @@ -42,7 +33,8 @@ public void Serialize_within_multiple_threads() { 0, 100, _ => { - var dummy = Fixture.Create(); + var dummy = Fixture.Create(); + var expectedSerialization = JsonConvert.SerializeObject(dummy, _jsonSerializerSettings); var actualSerialization = serializer.Serialize(dummy); @@ -50,5 +42,4 @@ public void Serialize_within_multiple_threads() { } ); } - -} +} \ No newline at end of file diff --git a/test/RestSharp.Tests.Serializers.Json/SystemTextJson/SystemTextJsonTests.cs b/test/RestSharp.Tests.Serializers.Json/SystemTextJson/SystemTextJsonTests.cs index 5cfd6ac5d..62c4a6c6d 100644 --- a/test/RestSharp.Tests.Serializers.Json/SystemTextJson/SystemTextJsonTests.cs +++ b/test/RestSharp.Tests.Serializers.Json/SystemTextJson/SystemTextJsonTests.cs @@ -1,4 +1,5 @@ using RestSharp.Serializers.Json; +using RestSharp.Tests.Shared.Extensions; using RestSharp.Tests.Shared.Fixtures; namespace RestSharp.Tests.Serializers.Json.SystemTextJson; @@ -7,65 +8,62 @@ public sealed class SystemTextJsonTests : IDisposable { static readonly Fixture Fixture = new(); readonly WireMockServer _server = WireMockServer.Start(); - + readonly RestClient _client; + + public SystemTextJsonTests() => _client = new RestClient(_server.Url!); + [Fact] - public async Task Use_JsonNet_For_Requests() { + public async Task Should_serialize_request() { var serializer = new SystemTextJsonSerializer(); var capturer = _server.ConfigureBodyCapturer(Method.Post, false); var testData = Fixture.Create(); - var client = new RestClient(_server.Url!); - var request = new RestRequest().AddJsonBody(testData); + var request = new RestRequest().AddJsonBody(testData); - await client.PostAsync(request); + await _client.PostAsync(request); var actual = serializer.Deserialize(new RestResponse(request) { Content = capturer.Body }); - actual.Should().BeEquivalentTo(testData); } [Fact] - public async Task Use_JsonNet_For_Response() { + public async Task Should_deserialize_response_with_GenericGet() { var expected = Fixture.Create(); + _server .Given(Request.Create().WithPath("/").UsingGet()) .RespondWith(Response.Create().WithBodyAsJson(expected)); - var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseSystemTextJson()); - - var actual = await client.GetAsync(new RestRequest()); - + var actual = await _client.GetAsync(new RestRequest()); actual.Should().BeEquivalentTo(expected); } [Fact] - public async Task DeserilizationFails_IsSuccessful_Should_BeFalse() { + public async Task Posting_invalid_json_should_fail() { _server .Given(Request.Create().WithPath("/").UsingGet()) .RespondWith(Response.Create().WithBody("invalid json").WithHeader(KnownHeaders.ContentType, ContentType.Json)); - var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseSystemTextJson()); - - var response = await client.ExecuteAsync(new RestRequest()); - + var response = await _client.ExecuteAsync(new RestRequest()); response.IsSuccessStatusCode.Should().BeTrue(); response.IsSuccessful.Should().BeFalse(); } [Fact] - public async Task DeserilizationSucceeds_IsSuccessful_Should_BeTrue() { + public async Task Receiving_valid_json_should_succeed() { var item = Fixture.Create(); + _server .Given(Request.Create().WithPath("/").UsingGet()) .RespondWith(Response.Create().WithBodyAsJson(item)); - var client = new RestClient(_server.Url!, configureSerialization: cfg => cfg.UseSystemTextJson()); - - var response = await client.ExecuteAsync(new RestRequest()); - + var response = await _client.ExecuteAsync(new RestRequest()); response.IsSuccessStatusCode.Should().BeTrue(); response.IsSuccessful.Should().BeTrue(); } - public void Dispose() => _server?.Dispose(); -} + public void Dispose() { + _server?.Dispose(); + _client.Dispose(); + } +} \ No newline at end of file diff --git a/test/RestSharp.Tests.Shared/Fixtures/WireMockExtensions.cs b/test/RestSharp.Tests.Shared/Extensions/WireMockExtensions.cs similarity index 89% rename from test/RestSharp.Tests.Shared/Fixtures/WireMockExtensions.cs rename to test/RestSharp.Tests.Shared/Extensions/WireMockExtensions.cs index 2cabf015c..10751dcc4 100644 --- a/test/RestSharp.Tests.Shared/Fixtures/WireMockExtensions.cs +++ b/test/RestSharp.Tests.Shared/Extensions/WireMockExtensions.cs @@ -1,8 +1,9 @@ +using RestSharp.Tests.Shared.Fixtures; using WireMock.RequestBuilders; using WireMock.ResponseBuilders; using WireMock.Server; -namespace RestSharp.Tests.Shared.Fixtures; +namespace RestSharp.Tests.Shared.Extensions; public static class WireMockExtensions { public static RequestBodyCapturer ConfigureBodyCapturer(this WireMockServer server, Method method, bool usePath = true) { diff --git a/test/RestSharp.Tests/AddRangeTests.cs b/test/RestSharp.Tests/AddRangeTests.cs index 0b39babe4..1f2dbbd19 100644 --- a/test/RestSharp.Tests/AddRangeTests.cs +++ b/test/RestSharp.Tests/AddRangeTests.cs @@ -3,10 +3,10 @@ public class AddRangeTests { [Fact] public async Task ShouldParseOutLongRangeSpecifier() { - var restClient = new RestClient("http://localhost"); - var req = new RestRequest("bob"); - const long start = (long)int.MaxValue + 1; - const long end = start + 1; + using var restClient = new RestClient("http://localhost"); + var req = new RestRequest("bob"); + const long start = (long)int.MaxValue + 1; + const long end = start + 1; req.AddHeader("Range", $"pages={start}-{end}"); await restClient.ExecuteAsync(req); @@ -14,8 +14,8 @@ public async Task ShouldParseOutLongRangeSpecifier() { [Fact] public async Task ShouldParseOutRangeSpecifier() { - var restClient = new RestClient("http://localhost"); - var req = new RestRequest("bob"); + using var restClient = new RestClient("http://localhost"); + var req = new RestRequest("bob"); req.AddHeader("Range", "pages=1-2"); await restClient.ExecuteAsync(req); diff --git a/test/RestSharp.Tests/Auth/AuthenticatorTests.cs b/test/RestSharp.Tests/Auth/AuthenticatorTests.cs new file mode 100644 index 000000000..4129a76a6 --- /dev/null +++ b/test/RestSharp.Tests/Auth/AuthenticatorTests.cs @@ -0,0 +1,42 @@ +using System.Net; +using RestSharp.Authenticators; +using RestSharp.Tests.Fixtures; +using RichardSzalay.MockHttp; + +namespace RestSharp.Tests.Auth; + +public class AuthenticatorTests { + [Fact] + public async Task Should_add_authorization_header() { + const string auth = "LetMeIn"; + + using var client = MockHttpClient.Create( + Method.Get, + request => request.WithHeaders(KnownHeaders.Authorization, auth).Respond(HttpStatusCode.OK), + opt => opt.Authenticator = new TestAuthenticator(ParameterType.HttpHeader, KnownHeaders.Authorization, auth) + ); + var response = await client.ExecuteGetAsync(new RestRequest()); + response.StatusCode.Should().Be(HttpStatusCode.OK); + } + + [Fact] + public async Task Should_add_authorization_form_parameter() { + const string auth = "LetMeIn"; + const string formField = "token"; + + using var client = MockHttpClient.Create( + Method.Post, + request => request.WithFormData(formField, auth).Respond(HttpStatusCode.OK), + opt => opt.Authenticator = new TestAuthenticator(ParameterType.GetOrPost, formField, auth) + ); + var response = await client.ExecutePostAsync(new RestRequest()); + response.StatusCode.Should().Be(HttpStatusCode.OK); + } + + class TestAuthenticator(ParameterType type, string name, string value) : IAuthenticator { + public ValueTask Authenticate(IRestClient client, RestRequest request) { + request.AddParameter(name, value, type); + return default; + } + } +} \ No newline at end of file diff --git a/test/RestSharp.Tests/Auth/HttpBasicAuthTests.cs b/test/RestSharp.Tests/Auth/HttpBasicAuthTests.cs new file mode 100644 index 000000000..fd2d16746 --- /dev/null +++ b/test/RestSharp.Tests/Auth/HttpBasicAuthTests.cs @@ -0,0 +1,27 @@ +using System.Text; +using RestSharp.Authenticators; + +namespace RestSharp.Tests.Auth; + +public class HttpBasicAuthTests { + const string Username = "username"; + const string Password = "password"; + + readonly HttpBasicAuth _auth = new(Username, Password); + + [Fact] + public async Task Authenticate_ShouldAddAuthorizationParameter_IfPreviouslyUnassigned() { + // Arrange + using var client = new RestClient(); + + var request = new RestRequest(); + request.AddQueryParameter("NotMatching", "", default); + var expectedToken = $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{Username}:{Password}"))}"; + + // Act + await _auth.Authenticate(client, request); + + // Assert + request.Parameters.Single(x => x.Name == KnownHeaders.Authorization).Value.Should().Be(expectedToken); + } +} \ No newline at end of file diff --git a/test/RestSharp.Tests/JwtAuthTests.cs b/test/RestSharp.Tests/Auth/JwtAuthTests.cs similarity index 71% rename from test/RestSharp.Tests/JwtAuthTests.cs rename to test/RestSharp.Tests/Auth/JwtAuthTests.cs index f2c68ebdc..484d841ed 100644 --- a/test/RestSharp.Tests/JwtAuthTests.cs +++ b/test/RestSharp.Tests/Auth/JwtAuthTests.cs @@ -1,7 +1,7 @@ using System.Globalization; using RestSharp.Authenticators; -namespace RestSharp.Tests; +namespace RestSharp.Tests.Auth; public class JwtAuthTests { readonly string _testJwt; @@ -12,10 +12,10 @@ public JwtAuthTests() { Thread.CurrentThread.CurrentUICulture = CultureInfo.InstalledUICulture; _testJwt = "eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9" + - "." + + "." + "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQo" + "gImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ" + - "." + + "." + "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"; _expectedAuthHeaderContent = $"Bearer {_testJwt}"; @@ -23,44 +23,44 @@ public JwtAuthTests() { [Fact] public async Task Can_Set_ValidFormat_Auth_Header() { - var client = new RestClient(new RestClientOptions { Authenticator = new JwtAuthenticator(_testJwt) }); - var request = new RestRequest(); + using var client = new RestClient(new RestClientOptions { Authenticator = new JwtAuthenticator(_testJwt) }); + var request = new RestRequest(); //In real case client.Execute(request) will invoke Authenticate method await client.Options.Authenticator!.Authenticate(client, request); - var authParam = request.Parameters.Single(p => p.Name.Equals(KnownHeaders.Authorization, StringComparison.OrdinalIgnoreCase)); + var authParam = request.Parameters.Single(p => p.Name!.Equals(KnownHeaders.Authorization, StringComparison.OrdinalIgnoreCase)); - Assert.True(authParam.Type == ParameterType.HttpHeader); + Assert.Equal(ParameterType.HttpHeader, authParam.Type); Assert.Equal(_expectedAuthHeaderContent, authParam.Value); } [Fact] public async Task Can_Set_ValidFormat_Auth_Header_With_Bearer_Prefix() { - var client = new RestClient(new RestClientOptions { Authenticator = new JwtAuthenticator($"Bearer {_testJwt}") }); - var request = new RestRequest(); + using var client = new RestClient(new RestClientOptions { Authenticator = new JwtAuthenticator($"Bearer {_testJwt}") }); + var request = new RestRequest(); //In real case client.Execute(request) will invoke Authenticate method await client.Options.Authenticator!.Authenticate(client, request); - var authParam = request.Parameters.Single(p => p.Name.Equals(KnownHeaders.Authorization, StringComparison.OrdinalIgnoreCase)); + var authParam = request.Parameters.Single(p => p.Name!.Equals(KnownHeaders.Authorization, StringComparison.OrdinalIgnoreCase)); - Assert.True(authParam.Type == ParameterType.HttpHeader); + Assert.Equal(ParameterType.HttpHeader, authParam.Type); Assert.Equal(_expectedAuthHeaderContent, authParam.Value); } [Fact] public async Task Check_Only_Header_Authorization() { - var client = new RestClient(new RestClientOptions { Authenticator = new JwtAuthenticator(_testJwt) }); - var request = new RestRequest(); + using var client = new RestClient(new RestClientOptions { Authenticator = new JwtAuthenticator(_testJwt) }); - // Paranoid server needs "two-factor authentication": jwt header and query param key for example + var request = new RestRequest(); + // Paranoid server needs "two-factor authentication": JWT header and query param key for example request.AddParameter(KnownHeaders.Authorization, "manualAuth", ParameterType.QueryString); // In real case client.Execute(request) will invoke Authenticate method await client.Options.Authenticator!.Authenticate(client, request); - var paramList = request.Parameters.Where(p => p.Name.Equals(KnownHeaders.Authorization)).ToList(); + var paramList = request.Parameters.Where(p => p.Name!.Equals(KnownHeaders.Authorization)).ToList(); Assert.Equal(2, paramList.Count); @@ -73,9 +73,9 @@ public async Task Check_Only_Header_Authorization() { [Fact] public async Task Set_Auth_Header_Only_Once() { - var client = new RestClient(new RestClientOptions { Authenticator = new JwtAuthenticator(_testJwt) }); - var request = new RestRequest(); + using var client = new RestClient(new RestClientOptions { Authenticator = new JwtAuthenticator(_testJwt) }); + var request = new RestRequest(); request.AddHeader(KnownHeaders.Authorization, "second_header_auth_token"); //In real case client.Execute(...) will invoke Authenticate method @@ -87,7 +87,7 @@ public async Task Set_Auth_Header_Only_Once() { var authParam = paramList[0]; - Assert.True(authParam.Type == ParameterType.HttpHeader); + Assert.Equal(ParameterType.HttpHeader, authParam.Type); Assert.Equal(_expectedAuthHeaderContent, authParam.Value); Assert.NotEqual("Bearer second_header_auth_token", authParam.Value); } @@ -98,7 +98,7 @@ public async Task Updates_Auth_Header() { var authenticator = new JwtAuthenticator(_expectedAuthHeaderContent); - var client = new RestClient(new RestClientOptions { Authenticator = authenticator }); + using var client = new RestClient(new RestClientOptions { Authenticator = authenticator }); await client.Options.Authenticator!.Authenticate(client, request); authenticator.SetBearerToken("second_header_auth_token"); @@ -110,15 +110,15 @@ public async Task Updates_Auth_Header() { var authParam = paramList[0]; - Assert.True(authParam.Type == ParameterType.HttpHeader); + Assert.Equal(ParameterType.HttpHeader, authParam.Type); Assert.NotEqual(_expectedAuthHeaderContent, authParam.Value); Assert.Equal("Bearer second_header_auth_token", authParam.Value); } [Fact] public void Throw_Argument_Null_Exception() { - var exception = Assert.Throws(() => new JwtAuthenticator(null)); + var exception = Assert.Throws(() => new JwtAuthenticator(null!)); Assert.Equal("accessToken", exception.ParamName); } -} +} \ No newline at end of file diff --git a/test/RestSharp.Tests/OAuth1AuthenticatorTests.cs b/test/RestSharp.Tests/Auth/OAuth1AuthTests.cs similarity index 71% rename from test/RestSharp.Tests/OAuth1AuthenticatorTests.cs rename to test/RestSharp.Tests/Auth/OAuth1AuthTests.cs index f6832c666..c820fe21a 100644 --- a/test/RestSharp.Tests/OAuth1AuthenticatorTests.cs +++ b/test/RestSharp.Tests/Auth/OAuth1AuthTests.cs @@ -1,41 +1,38 @@ using RestSharp.Authenticators; using RestSharp.Authenticators.OAuth; -namespace RestSharp.Tests; - -public class OAuth1AuthenticatorTests { - public OAuth1AuthenticatorTests() - => _authenticator = new OAuth1Authenticator { - CallbackUrl = "CallbackUrl", - ClientPassword = "ClientPassword", - Type = OAuthType.ClientAuthentication, - ClientUsername = "ClientUsername", - ConsumerKey = "ConsumerKey", - ConsumerSecret = "ConsumerSecret", - Realm = "Realm", - SessionHandle = "SessionHandle", - SignatureMethod = OAuthSignatureMethod.PlainText, - SignatureTreatment = OAuthSignatureTreatment.Escaped, - Token = "Token", - TokenSecret = "TokenSecret", - Verifier = "Verifier", - Version = "Version" - }; - - readonly OAuth1Authenticator _authenticator; +namespace RestSharp.Tests.Auth; + +public class OAuth1AuthTests { + readonly OAuth1Auth _auth = new() { + CallbackUrl = "CallbackUrl", + ClientPassword = "ClientPassword", + Type = OAuthType.ClientAuthentication, + ClientUsername = "ClientUsername", + ConsumerKey = "ConsumerKey", + ConsumerSecret = "ConsumerSecret", + Realm = "Realm", + SessionHandle = "SessionHandle", + SignatureMethod = OAuthSignatureMethod.PlainText, + SignatureTreatment = OAuthSignatureTreatment.Escaped, + Token = "Token", + TokenSecret = "TokenSecret", + Verifier = "Verifier", + Version = "Version" + }; [Fact] public void Authenticate_ShouldAddAuthorizationAsTextValueToRequest_OnHttpAuthorizationHeaderHandling() { // Arrange const string url = "https://no-query.string"; - var client = new RestClient(url); + using var client = new RestClient(url); var request = new RestRequest(); - _authenticator.ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader; + _auth.ParameterHandling = OAuthParameterHandling.HttpAuthorizationHeader; // Act - _authenticator.Authenticate(client, request); + _auth.Authenticate(client, request); // Assert var authParameter = request.Parameters.Single(x => x.Name == KnownHeaders.Authorization); @@ -59,14 +56,14 @@ public void Authenticate_ShouldAddSignatureToRequestAsSeparateParameters_OnUrlOr // Arrange const string url = "https://no-query.string"; - var client = new RestClient(url); + using var client = new RestClient(url); var request = new RestRequest(); request.AddQueryParameter("queryparameter", "foobartemp"); - _authenticator.ParameterHandling = OAuthParameterHandling.UrlOrPostParameters; + _auth.ParameterHandling = OAuthParameterHandling.UrlOrPostParameters; // Act - _authenticator.Authenticate(client, request); + _auth.Authenticate(client, request); // Assert var parameters = request.Parameters; @@ -100,13 +97,13 @@ public void Authenticate_ShouldEncodeOAuthTokenParameter(OAuthType type, string // Arrange const string url = "https://no-query.string"; - var client = new RestClient(url); + using var client = new RestClient(url); var request = new RestRequest(); - _authenticator.Type = type; - _authenticator.Token = value; + _auth.Type = type; + _auth.Token = value; // Act - _authenticator.Authenticate(client, request); + _auth.Authenticate(client, request); // Assert var authParameter = request.Parameters.Single(x => x.Name == KnownHeaders.Authorization); @@ -117,7 +114,7 @@ public void Authenticate_ShouldEncodeOAuthTokenParameter(OAuthType type, string } /// - /// According the specifications of OAuth 1.0a, the customer secret is not required. + /// According to the specifications of OAuth 1.0a, the customer secret is not required. /// For more information, check the section 4 on https://oauth.net/core/1.0a/. /// [Theory] @@ -127,13 +124,13 @@ public void Authenticate_ShouldAllowEmptyConsumerSecret_OnHttpAuthorizationHeade // Arrange const string url = "https://no-query.string"; - var client = new RestClient(url); + using var client = new RestClient(url); var request = new RestRequest(); - _authenticator.Type = type; - _authenticator.ConsumerSecret = null; + _auth.Type = type; + _auth.ConsumerSecret = null; // Act - _authenticator.Authenticate(client, request); + _auth.Authenticate(client, request); // Assert var authParameter = request.Parameters.Single(x => x.Name == KnownHeaders.Authorization); diff --git a/test/RestSharp.Tests/OAuth1Tests.cs b/test/RestSharp.Tests/Auth/OAuth1Tests.cs similarity index 81% rename from test/RestSharp.Tests/OAuth1Tests.cs rename to test/RestSharp.Tests/Auth/OAuth1Tests.cs index d8fad50d6..14b76c168 100644 --- a/test/RestSharp.Tests/OAuth1Tests.cs +++ b/test/RestSharp.Tests/Auth/OAuth1Tests.cs @@ -5,7 +5,7 @@ #pragma warning disable CS8618 -namespace RestSharp.Tests; +namespace RestSharp.Tests.Auth; public class OAuth1Tests { [XmlRoot("queue")] @@ -40,9 +40,9 @@ public async Task Can_Authenticate_OAuth1_With_Querystring_Parameters() { "oauth_signature" }; - var client = new RestClient(baseUrl); - var request = new RestRequest(); - var authenticator = OAuth1Authenticator.ForRequestToken(consumerKey, consumerSecret); + using var client = new RestClient(baseUrl); + var request = new RestRequest(); + var authenticator = OAuth1Auth.ForRequestToken(consumerKey, consumerSecret); authenticator.ParameterHandling = OAuthParameterHandling.UrlOrPostParameters; await authenticator.Authenticate(client, request); @@ -62,18 +62,16 @@ public void Properly_Encodes_Parameter_Names(IList<(string, string)> parameters, sortedParams.First().Should().Be(expected); } - public static IEnumerable EncodeParametersTestData => - new List - { - new object[] { - new List<(string, string)> { ("name[first]", "Chuck"), ("name[last]", "Testa") }, - "name%5Bfirst%5D=Chuck" - }, - new object[] { - new List<(string, string)> { ("country", "España") }, - "country=Espa%C3%B1a" - } - }; + public static IEnumerable EncodeParametersTestData => new List { + new object[] { + new List<(string, string)> { ("name[first]", "Chuck"), ("name[last]", "Testa") }, + "name%5Bfirst%5D=Chuck" + }, + new object[] { + new List<(string, string)> { ("country", "España") }, + "country=Espa%C3%B1a" + } + }; [Fact] public void Use_RFC_3986_Encoding_For_Auth_Signature_Base() { @@ -94,4 +92,4 @@ public void Use_RFC_3986_Encoding_For_Auth_Signature_Base() { // assert Assert.Equal("%3B%2F%3F%3A%40%26%3D%2B%24%2C%2521%252A%2527%2528%2529", escapedString); } -} +} \ No newline at end of file diff --git a/test/RestSharp.Tests/OAuthTests.cs b/test/RestSharp.Tests/Auth/OAuthTests.cs similarity index 97% rename from test/RestSharp.Tests/OAuthTests.cs rename to test/RestSharp.Tests/Auth/OAuthTests.cs index 4f2f94051..374760e6a 100644 --- a/test/RestSharp.Tests/OAuthTests.cs +++ b/test/RestSharp.Tests/Auth/OAuthTests.cs @@ -3,7 +3,7 @@ using RestSharp.Authenticators.OAuth; using RestSharp.Authenticators.OAuth.Extensions; -namespace RestSharp.Tests; +namespace RestSharp.Tests.Auth; public class OAuthTests { public OAuthTests() { @@ -60,7 +60,8 @@ public void RsaSha1_Signs_Correctly(string value, int keySize) { var hasher = SHA1.Create(); var hash = hasher.ComputeHash(value.GetBytes()); - using var crypto = new RSACryptoServiceProvider(keySize) { PersistKeyInCsp = false }; + using var crypto = new RSACryptoServiceProvider(keySize); + crypto.PersistKeyInCsp = false; var privateKey = crypto.ToXmlString(true); diff --git a/test/RestSharp.Tests/AuthenticatorTests.cs b/test/RestSharp.Tests/AuthenticatorTests.cs deleted file mode 100644 index a646c1071..000000000 --- a/test/RestSharp.Tests/AuthenticatorTests.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System.Net; -using RestSharp.Authenticators; -using RichardSzalay.MockHttp; - -namespace RestSharp.Tests; - -public class AuthenticatorTests { - [Fact] - public async Task Should_add_authorization_header() { - const string auth = "LetMeIn"; - const string url = "https://dummy.org"; - - var mockHttp = new MockHttpMessageHandler(); - - mockHttp - .When(HttpMethod.Get, url) - .WithHeaders(KnownHeaders.Authorization, auth) - .Respond(HttpStatusCode.OK); - - var options = new RestClientOptions(url) { - ConfigureMessageHandler = _ => mockHttp, - Authenticator = new TestAuthenticator(ParameterType.HttpHeader, KnownHeaders.Authorization, auth) - }; - var client = new RestClient(options); - var response = await client.ExecuteGetAsync(new RestRequest()); - response.StatusCode.Should().Be(HttpStatusCode.OK); - } - - [Fact] - public async Task Should_add_authorization_form_parameter() { - const string auth = "LetMeIn"; - const string url = "https://dummy.org"; - - var mockHttp = new MockHttpMessageHandler(); - - mockHttp - .When(HttpMethod.Post, url) - .WithFormData("token", auth) - .Respond(HttpStatusCode.OK); - - var options = new RestClientOptions(url) { - ConfigureMessageHandler = _ => mockHttp, - Authenticator = new TestAuthenticator(ParameterType.GetOrPost, "token", auth) - }; - var client = new RestClient(options); - var response = await client.ExecutePostAsync(new RestRequest()); - response.StatusCode.Should().Be(HttpStatusCode.OK); - } - - class TestAuthenticator : IAuthenticator { - readonly ParameterType _type; - readonly string _name; - readonly string _value; - - public TestAuthenticator(ParameterType type, string name, string value) { - _type = type; - _name = name; - _value = value; - } - - public ValueTask Authenticate(IRestClient client, RestRequest request) { - request.AddParameter(_name, _value, _type); - return default; - } - } -} diff --git a/test/RestSharp.Tests/Fixtures/MockHttpClient.cs b/test/RestSharp.Tests/Fixtures/MockHttpClient.cs new file mode 100644 index 000000000..4de8c1a24 --- /dev/null +++ b/test/RestSharp.Tests/Fixtures/MockHttpClient.cs @@ -0,0 +1,18 @@ +using RichardSzalay.MockHttp; + +namespace RestSharp.Tests.Fixtures; + +public static class MockHttpClient { + const string Url = "https://dummy.org"; + + public static RestClient Create(Method method, Func configureHandler, ConfigureRestClient configure = null) { + var mockHttp = new MockHttpMessageHandler(); + configureHandler(mockHttp.When(RestClient.AsHttpMethod(method), Url)); + + var options = new RestClientOptions(Url) { + ConfigureMessageHandler = _ => mockHttp + }; + configure?.Invoke(options); + return new RestClient(options); + } +} \ No newline at end of file diff --git a/test/RestSharp.Tests/HttpBasicAuthenticatorTests.cs b/test/RestSharp.Tests/HttpBasicAuthenticatorTests.cs deleted file mode 100644 index c5a736574..000000000 --- a/test/RestSharp.Tests/HttpBasicAuthenticatorTests.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Text; -using RestSharp.Authenticators; - -namespace RestSharp.Tests; - -public class HttpBasicAuthenticatorTests { - public HttpBasicAuthenticatorTests() { - _username = "username"; - _password = "password"; - - _authenticator = new HttpBasicAuthenticator(_username, _password); - } - - readonly string _username; - readonly string _password; - - readonly HttpBasicAuthenticator _authenticator; - - [Fact] - public void Authenticate_ShouldAddAuthorizationParameter_IfPreviouslyUnassigned() { - // Arrange - var client = new RestClient(); - var request = new RestRequest(); - - request.AddQueryParameter("NotMatching", "", default); - - var expectedToken = - $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{_username}:{_password}"))}"; - - // Act - _authenticator.Authenticate(client, request); - - // Assert - request.Parameters.Single(x => x.Name == KnownHeaders.Authorization).Value.Should().Be(expectedToken); - } -} \ No newline at end of file diff --git a/test/RestSharp.Tests/MultipartFormTests.cs b/test/RestSharp.Tests/MultipartFormTests.cs index d31f99f84..3e6d555ec 100644 --- a/test/RestSharp.Tests/MultipartFormTests.cs +++ b/test/RestSharp.Tests/MultipartFormTests.cs @@ -1,4 +1,5 @@ using System.Net; +using RestSharp.Tests.Fixtures; using RichardSzalay.MockHttp; namespace RestSharp.Tests; @@ -6,25 +7,13 @@ namespace RestSharp.Tests; public class MultipartFormTests { [Fact] public async Task ShouldHaveJsonContentType() { - const string url = "https://dummy.org"; - var jsonData = new { Company = "Microsoft", ZipCode = "LS339", Country = "USA" }; - var mockHttp = new MockHttpMessageHandler(); - - mockHttp - .When(HttpMethod.Post, url) - .With(CheckRequest) - .Respond(HttpStatusCode.OK); - - var options = new RestClientOptions(url) { - ConfigureMessageHandler = h => mockHttp - }; - var client = new RestClient(options); + using var client = MockHttpClient.Create(Method.Post, req => req.With(CheckRequest).Respond(HttpStatusCode.OK)); var request = new RestRequest { Method = Method.Post, @@ -34,11 +23,12 @@ public async Task ShouldHaveJsonContentType() { var response = await client.ExecuteAsync(request); response.StatusCode.Should().Be(HttpStatusCode.OK); + return; bool CheckRequest(HttpRequestMessage msg) { if (msg.Content is not MultipartFormDataContent formDataContent) return false; - return formDataContent.First().Headers.ContentType!.MediaType == "application/json"; + return formDataContent.First().Headers.ContentType!.MediaType == ContentType.Json; } } } diff --git a/test/RestSharp.Tests/ObjectParserTests.cs b/test/RestSharp.Tests/ObjectParserTests.cs index 414c6d149..74835f454 100644 --- a/test/RestSharp.Tests/ObjectParserTests.cs +++ b/test/RestSharp.Tests/ObjectParserTests.cs @@ -26,7 +26,7 @@ public void ShouldUseRequestProperty() { [Fact] public void ShouldProduceMultipleParametersForArray() { var request = new AnotherTestObject { - SomeIds = new[] { 1, 2, 3 } + SomeIds = [1, 2, 3] }; var expected = request.SomeIds.Select(x => ("ids[]", x.ToString())); var parsed = request.GetProperties().Select(x => (x.Name, x.Value)); diff --git a/test/RestSharp.Tests/OptionsTests.cs b/test/RestSharp.Tests/OptionsTests.cs index e1270a792..d1d8aa372 100644 --- a/test/RestSharp.Tests/OptionsTests.cs +++ b/test/RestSharp.Tests/OptionsTests.cs @@ -3,14 +3,15 @@ namespace RestSharp.Tests; public class OptionsTests { [Fact] public void Ensure_follow_redirect() { - var value = false; - var options = new RestClientOptions { FollowRedirects = true, ConfigureMessageHandler = Configure}; - var _ = new RestClient(options); + var value = false; + var options = new RestClientOptions { FollowRedirects = true, ConfigureMessageHandler = Configure }; + using var _ = new RestClient(options); value.Should().BeTrue(); + return; HttpMessageHandler Configure(HttpMessageHandler handler) { value = (handler as HttpClientHandler)!.AllowAutoRedirect; return handler; } } -} +} \ No newline at end of file diff --git a/test/RestSharp.Tests/ParameterValidationTests.cs b/test/RestSharp.Tests/ParameterValidationTests.cs new file mode 100644 index 000000000..7a39c7ac5 --- /dev/null +++ b/test/RestSharp.Tests/ParameterValidationTests.cs @@ -0,0 +1,42 @@ +namespace RestSharp.Tests; + +public class ParameterValidationTests { + [Fact] + public void RestRequest_AlwaysMultipartFormData_IsAllowed() { + var request = new RestRequest { AlwaysMultipartFormData = true }; + request.ValidateParameters(); + } + + [Fact] + public void RestRequest_AlwaysSingleFileAsContent_IsAllowed() { + var request = new RestRequest { AlwaysSingleFileAsContent = true }; + request.ValidateParameters(); + } + + [Fact] + public void RestRequest_AlwaysSingleFileAsContent_And_AlwaysMultipartFormData_IsNotAllowed() { + var request = new RestRequest { + AlwaysSingleFileAsContent = true, + AlwaysMultipartFormData = true + }; + Assert.Throws(() => request.ValidateParameters()); + } + + [Fact] + public void RestRequest_AlwaysSingleFileAsContent_And_PostParameters_IsNotAllowed() { + var request = new RestRequest { + Method = Method.Post, + AlwaysSingleFileAsContent = true, + }; + + request.AddParameter("name", "value", ParameterType.GetOrPost); + Assert.Throws(() => request.ValidateParameters()); + } + + [Fact] + public void RestRequest_AlwaysSingleFileAsContent_And_BodyParameters_IsNotAllowed() { + var request = new RestRequest { AlwaysSingleFileAsContent = true, }; + request.AddParameter("name", "value", ParameterType.RequestBody); + Assert.Throws(() => request.ValidateParameters()); + } +} \ No newline at end of file diff --git a/test/RestSharp.Tests/ParametersTests.cs b/test/RestSharp.Tests/ParametersTests.cs index 760ecee5b..e9c702fbc 100644 --- a/test/RestSharp.Tests/ParametersTests.cs +++ b/test/RestSharp.Tests/ParametersTests.cs @@ -6,14 +6,14 @@ public class ParametersTests { [Fact] public void AddDefaultHeadersUsingDictionary() { var headers = new Dictionary { - { KnownHeaders.ContentType, "application/json" }, - { KnownHeaders.Accept, "application/json" }, + { KnownHeaders.ContentType, ContentType.Json }, + { KnownHeaders.Accept, ContentType.Json }, { KnownHeaders.ContentEncoding, "gzip, deflate" } }; var expected = headers.Select(x => new HeaderParameter(x.Key, x.Value)); - var client = new RestClient(BaseUrl); + using var client = new RestClient(BaseUrl); client.AddDefaultHeaders(headers); var actual = client.DefaultParameters.Select(x => x as HeaderParameter); @@ -37,15 +37,12 @@ public void AddUrlSegmentModifiesUrlSegmentWithInt() { const string pathTemplate = "/{0}/resource"; const int urlSegmentValue = 1; - var path = string.Format(pathTemplate, $"{{{name}}}"); - - var request = new RestRequest(path).AddUrlSegment(name, urlSegmentValue); - + var path = string.Format(pathTemplate, $"{{{name}}}"); + var request = new RestRequest(path).AddUrlSegment(name, urlSegmentValue); var expected = string.Format(pathTemplate, urlSegmentValue); - var client = new RestClient(BaseUrl); - - var actual = client.BuildUri(request).AbsolutePath; + using var client = new RestClient(BaseUrl); + var actual = client.BuildUri(request).AbsolutePath; expected.Should().BeEquivalentTo(actual); } @@ -56,15 +53,14 @@ public void AddUrlSegmentModifiesUrlSegmentWithString() { const string pathTemplate = "/{0}/resource"; const string urlSegmentValue = "bar"; - var path = string.Format(pathTemplate, $"{{{name}}}"); - var request = new RestRequest(path).AddUrlSegment(name, urlSegmentValue); - + var path = string.Format(pathTemplate, $"{{{name}}}"); + var request = new RestRequest(path).AddUrlSegment(name, urlSegmentValue); var expected = string.Format(pathTemplate, urlSegmentValue); - var client = new RestClient(BaseUrl); + using var client = new RestClient(BaseUrl); var actual = client.BuildUri(request).AbsolutePath; expected.Should().BeEquivalentTo(actual); } -} +} \ No newline at end of file diff --git a/test/RestSharp.Tests/RequestHeaderTests.cs b/test/RestSharp.Tests/RequestHeaderTests.cs index 0a5235deb..45548b6b1 100644 --- a/test/RestSharp.Tests/RequestHeaderTests.cs +++ b/test/RestSharp.Tests/RequestHeaderTests.cs @@ -1,14 +1,16 @@ -namespace RestSharp.Tests; +namespace RestSharp.Tests; public class RequestHeaderTests { + static readonly KeyValuePair AcceptHeader = new(KnownHeaders.Accept, ContentType.Json); + static readonly KeyValuePair AcceptLanguageHeader = new(KnownHeaders.AcceptLanguage, "en-us,en;q=0.5"); + static readonly KeyValuePair KeepAliveHeader = new(KnownHeaders.KeepAlive, "300"); + + readonly List> _headers = [AcceptHeader, AcceptLanguageHeader, KeepAliveHeader]; + [Fact] public void AddHeaders_SameCaseDuplicatesExist_ThrowsException() { - var headers = new List> { - new("Accept", "application/json"), - new("Accept-Language", "en-us,en;q=0.5"), - new("Keep-Alive", "300"), - new("Accept", "application/json") - }; + var headers = _headers; + _headers.Add(AcceptHeader); var request = new RestRequest(); @@ -18,12 +20,8 @@ public void AddHeaders_SameCaseDuplicatesExist_ThrowsException() { [Fact] public void AddHeaders_DifferentCaseDuplicatesExist_ThrowsException() { - var headers = new List> { - new("Accept", "application/json"), - new("Accept-Language", "en-us,en;q=0.5"), - new("Keep-Alive", "300"), - new("acCEpt", "application/json") - }; + var headers = _headers; + headers.Add(new KeyValuePair(KnownHeaders.Accept, ContentType.Json)); var request = new RestRequest(); @@ -33,33 +31,25 @@ public void AddHeaders_DifferentCaseDuplicatesExist_ThrowsException() { [Fact] public void AddHeaders_NoDuplicatesExist_Has3Headers() { - var headers = new List> { - new("Accept", "application/json"), - new("Accept-Language", "en-us,en;q=0.5"), - new("Keep-Alive", "300") - }; - var request = new RestRequest(); - request.AddHeaders(headers); - - var httpParameters = request.Parameters.Where(parameter => parameter.Type == ParameterType.HttpHeader); + request.AddHeaders(_headers); + var httpParameters = GetHeaders(request); Assert.Equal(3, httpParameters.Count()); } [Fact] public void AddHeaders_NoDuplicatesExistUsingDictionary_Has3Headers() { var headers = new Dictionary { - { "Accept", "application/json" }, - { "Accept-Language", "en-us,en;q=0.5" }, - { "Keep-Alive", "300" } + { KnownHeaders.Accept, ContentType.Json }, + { KnownHeaders.AcceptLanguage, "en-us,en;q=0.5" }, + { KnownHeaders.KeepAlive, "300" } }; var request = new RestRequest(); request.AddHeaders(headers); - var httpParameters = request.Parameters.Where(parameter => parameter.Type == ParameterType.HttpHeader); - + var httpParameters = GetHeaders(request); Assert.Equal(3, httpParameters.Count()); } @@ -67,16 +57,14 @@ public void AddHeaders_NoDuplicatesExistUsingDictionary_Has3Headers() { public void AddOrUpdateHeader_ShouldUpdateExistingHeader_WhenHeaderExist() { // Arrange var request = new RestRequest(); - request.AddHeader("Accept", "application/xml"); + request.AddHeader(KnownHeaders.Accept, ContentType.Xml); // Act - request.AddOrUpdateHeader("Accept", "application/json"); + request.AddOrUpdateHeader(KnownHeaders.Accept, ContentType.Json); // Assert - var headers = request.Parameters.Where(parameter => parameter.Type == ParameterType.HttpHeader).ToArray(); - - Assert.Equal("application/json", headers.First(parameter => parameter.Name == "Accept").Value); - Assert.Single(headers); + var headers = GetHeaders(request); + GetHeader(request, KnownHeaders.Accept).Should().Be(ContentType.Json); } [Fact] @@ -85,22 +73,19 @@ public void AddOrUpdateHeader_ShouldUpdateExistingHeader_WhenHeaderDoesNotExist( var request = new RestRequest(); // Act - request.AddOrUpdateHeader("Accept", "application/json"); + request.AddOrUpdateHeader(KnownHeaders.Accept, ContentType.Json); // Assert - var headers = request.Parameters.Where(parameter => parameter.Type == ParameterType.HttpHeader).ToArray(); - - Assert.Equal("application/json", headers.First(parameter => parameter.Name == "Accept").Value); - Assert.Single(headers); + GetHeader(request, KnownHeaders.Accept).Should().Be(ContentType.Json); } [Fact] public void AddOrUpdateHeaders_ShouldAddHeaders_WhenNoneExists() { // Arrange var headers = new Dictionary { - { "Accept", "application/json" }, - { "Accept-Language", "en-us,en;q=0.5" }, - { "Keep-Alive", "300" } + { KnownHeaders.Accept, ContentType.Json }, + { KnownHeaders.AcceptLanguage, "en-us,en;q=0.5" }, + { KnownHeaders.KeepAlive, "300" } }; var request = new RestRequest(); @@ -109,25 +94,23 @@ public void AddOrUpdateHeaders_ShouldAddHeaders_WhenNoneExists() { request.AddOrUpdateHeaders(headers); // Assert - var requestHeaders = request.Parameters.Where(parameter => parameter.Type == ParameterType.HttpHeader).ToArray(); + var requestHeaders = GetHeaders(request); - Assert.Equal("application/json", requestHeaders.First(parameter => parameter.Name == "Accept").Value); - Assert.Equal("en-us,en;q=0.5", requestHeaders.First(parameter => parameter.Name == "Accept-Language").Value); - Assert.Equal("300", requestHeaders.First(parameter => parameter.Name == "Keep-Alive").Value); - Assert.Equal(3, requestHeaders.Length); + var expected = headers.Select(x => new HeaderParameter(x.Key, x.Value)); + expected.Should().BeEquivalentTo(requestHeaders); } [Fact] public void AddOrUpdateHeaders_ShouldUpdateHeaders_WhenAllExists() { // Arrange var headers = new Dictionary { - { "Accept", "application/json" }, - { "Keep-Alive", "300" } + { KnownHeaders.Accept, ContentType.Json }, + { KnownHeaders.KeepAlive, "300" } }; var updatedHeaders = new Dictionary { - { "Accept", "application/xml" }, - { "Keep-Alive", "400" } + { KnownHeaders.Accept, ContentType.Xml }, + { KnownHeaders.KeepAlive, "400" } }; var request = new RestRequest(); @@ -137,24 +120,25 @@ public void AddOrUpdateHeaders_ShouldUpdateHeaders_WhenAllExists() { request.AddOrUpdateHeaders(updatedHeaders); // Assert - var requestHeaders = request.Parameters.Where(parameter => parameter.Type == ParameterType.HttpHeader).ToArray(); - - Assert.Equal("application/xml", requestHeaders.First(parameter => parameter.Name == "Accept").Value); - Assert.Equal("400", requestHeaders.First(parameter => parameter.Name == "Keep-Alive").Value); - Assert.Equal(2, requestHeaders.Length); + var requestHeaders = GetHeaders(request); + HeaderParameter[] expected = [ + new HeaderParameter(KnownHeaders.Accept, ContentType.Xml), + new HeaderParameter(KnownHeaders.KeepAlive, "400") + ]; + requestHeaders.Should().BeEquivalentTo(expected); } [Fact] public void AddOrUpdateHeaders_ShouldAddAndUpdateHeaders_WhenSomeExists() { // Arrange var headers = new Dictionary { - { "Accept", "application/json" }, - { "Keep-Alive", "300" } + { KnownHeaders.Accept, ContentType.Json }, + { KnownHeaders.KeepAlive, "300" } }; var updatedHeaders = new Dictionary { - { "Accept", "application/xml" }, - { "Accept-Language", "en-us,en;q=0.5" } + { KnownHeaders.Accept, ContentType.Xml }, + { KnownHeaders.AcceptLanguage, "en-us,en;q=0.5" } }; var request = new RestRequest(); @@ -164,11 +148,17 @@ public void AddOrUpdateHeaders_ShouldAddAndUpdateHeaders_WhenSomeExists() { request.AddOrUpdateHeaders(updatedHeaders); // Assert - var requestHeaders = request.Parameters.Where(parameter => parameter.Type == ParameterType.HttpHeader).ToArray(); - - Assert.Equal("application/xml", requestHeaders.First(parameter => parameter.Name == "Accept").Value); - Assert.Equal("en-us,en;q=0.5", requestHeaders.First(parameter => parameter.Name == "Accept-Language").Value); - Assert.Equal("300", requestHeaders.First(parameter => parameter.Name == "Keep-Alive").Value); - Assert.Equal(3, requestHeaders.Length); + var requestHeaders = GetHeaders(request); + + HeaderParameter[] expected = [ + new HeaderParameter(KnownHeaders.Accept, ContentType.Xml), + new HeaderParameter(KnownHeaders.AcceptLanguage, "en-us,en;q=0.5"), + new HeaderParameter(KnownHeaders.KeepAlive, "300") + ]; + requestHeaders.Should().BeEquivalentTo(expected); } + + static Parameter[] GetHeaders(RestRequest request) => request.Parameters.Where(x => x.Type == ParameterType.HttpHeader).ToArray(); + + static string GetHeader(RestRequest request, string name) => request.Parameters.FirstOrDefault(x => x.Name == name)?.Value?.ToString(); } \ No newline at end of file diff --git a/test/RestSharp.Tests/RestClientTests.cs b/test/RestSharp.Tests/RestClientTests.cs index 0bd5dd073..2824ef4cd 100644 --- a/test/RestSharp.Tests/RestClientTests.cs +++ b/test/RestSharp.Tests/RestClientTests.cs @@ -16,9 +16,9 @@ public class RestClientTests { [InlineData(Method.Post, Method.Put)] [InlineData(Method.Get, Method.Delete)] public async Task Execute_with_RestRequest_and_Method_overrides_previous_request_method(Method reqMethod, Method overrideMethod) { - var req = new RestRequest("", reqMethod); - var client = new RestClient(BaseUrl); + var req = new RestRequest("", reqMethod); + using var client = new RestClient(BaseUrl); await client.ExecuteAsync(req, overrideMethod); req.Method.Should().Be(overrideMethod); @@ -26,9 +26,9 @@ public async Task Execute_with_RestRequest_and_Method_overrides_previous_request [Fact] public async Task ConfigureHttp_will_set_proxy_to_null_with_no_exceptions_When_no_proxy_can_be_found() { - var req = new RestRequest(); - var client = new RestClient(new RestClientOptions(BaseUrl) { Proxy = null }); + var req = new RestRequest(); + using var client = new RestClient(new RestClientOptions(BaseUrl) { Proxy = null }); await client.ExecuteAsync(req); } @@ -40,7 +40,8 @@ public void BuildUri_should_build_with_passing_link_as_Uri() { var req = new RestRequest(absoluteUri); // act - var client = new RestClient(); + using var client = new RestClient(); + var builtUri = client.BuildUri(req); // assert @@ -55,7 +56,8 @@ public void BuildUri_should_build_with_passing_link_as_Uri_with_set_BaseUrl() { var req = new RestRequest(relative); // act - var client = new RestClient(baseUrl); + using var client = new RestClient(baseUrl); + var builtUri = client.BuildUri(req); // assert @@ -68,7 +70,7 @@ public void UseJson_leaves_only_json_serializer() { var baseUrl = new Uri(BaseUrl); // act - var client = new RestClient(baseUrl, configureSerialization: cfg => cfg.UseJson()); + using var client = new RestClient(baseUrl, configureSerialization: cfg => cfg.UseJson()); // assert client.Serializers.Serializers.Should().HaveCount(1); @@ -81,7 +83,7 @@ public void UseXml_leaves_only_json_serializer() { var baseUrl = new Uri(BaseUrl); // act - var client = new RestClient(baseUrl, configureSerialization: cfg => cfg.UseXml()); + using var client = new RestClient(baseUrl, configureSerialization: cfg => cfg.UseXml()); // assert client.Serializers.Serializers.Should().HaveCount(1); @@ -94,7 +96,7 @@ public void UseOnlySerializer_leaves_only_custom_serializer() { var baseUrl = new Uri(BaseUrl); // act - var client = new RestClient(baseUrl, configureSerialization: cfg => cfg.UseOnlySerializer(() => new SystemTextJsonSerializer())); + using var client = new RestClient(baseUrl, configureSerialization: cfg => cfg.UseOnlySerializer(() => new SystemTextJsonSerializer())); // assert client.Serializers.Serializers.Should().HaveCount(1); @@ -103,16 +105,16 @@ public void UseOnlySerializer_leaves_only_custom_serializer() { [Fact] public void Should_reuse_httpClient_instance() { - var client1 = new RestClient(new Uri("https://fake.api"), useClientFactory: true); - var client2 = new RestClient(new Uri("https://fake.api"), useClientFactory: true); + using var client1 = new RestClient(new Uri("https://fake.api"), useClientFactory: true); + using var client2 = new RestClient(new Uri("https://fake.api"), useClientFactory: true); client1.HttpClient.Should().BeSameAs(client2.HttpClient); } [Fact] public void Should_use_new_httpClient_instance() { - var client1 = new RestClient(new Uri("https://fake.api")); - var client2 = new RestClient(new Uri("https://fake.api")); + using var client1 = new RestClient(new Uri("https://fake.api")); + using var client2 = new RestClient(new Uri("https://fake.api")); client1.HttpClient.Should().NotBeSameAs(client2.HttpClient); } @@ -123,7 +125,7 @@ public void ConfigureDefaultParameters_sets_user_agent_new_httpClient_instance() var clientOptions = new RestClientOptions(); // act - var restClient = new RestClient(clientOptions); + using var restClient = new RestClient(clientOptions); //assert Assert.Single( @@ -131,7 +133,8 @@ public void ConfigureDefaultParameters_sets_user_agent_new_httpClient_instance() parameter => parameter.Type == ParameterType.HttpHeader && parameter.Name == KnownHeaders.UserAgent && parameter.Value is string valueAsString && - valueAsString == clientOptions.UserAgent); + valueAsString == clientOptions.UserAgent + ); Assert.Empty(restClient.HttpClient.DefaultRequestHeaders.UserAgent); } @@ -143,7 +146,7 @@ public void ConfigureDefaultParameters_sets_user_agent_given_httpClient_instance var clientOptions = new RestClientOptions(); // act - var restClient = new RestClient(httpClient, clientOptions); + using var restClient = new RestClient(httpClient, clientOptions); //assert Assert.Single( @@ -151,8 +154,9 @@ public void ConfigureDefaultParameters_sets_user_agent_given_httpClient_instance parameter => parameter.Type == ParameterType.HttpHeader && parameter.Name == KnownHeaders.UserAgent && parameter.Value is string valueAsString && - valueAsString == clientOptions.UserAgent); + valueAsString == clientOptions.UserAgent + ); Assert.Empty(httpClient.DefaultRequestHeaders.UserAgent); } -} +} \ No newline at end of file diff --git a/test/RestSharp.Tests/RestContentTests.cs b/test/RestSharp.Tests/RestContentTests.cs index 49aea4453..8f1a97343 100644 --- a/test/RestSharp.Tests/RestContentTests.cs +++ b/test/RestSharp.Tests/RestContentTests.cs @@ -15,7 +15,7 @@ public void RestContent_CaseInsensitiveHeaders() { [Fact] public void RestContent_supports_manual_json_body() { - const string myContentType = "application/json"; + string myContentType = ContentType.Json; const string myJsonString = "[]"; var request = new RestRequest("resource").AddParameter(myContentType, myJsonString, ParameterType.RequestBody); diff --git a/test/RestSharp.Tests/RestRequestParametersTests.cs b/test/RestSharp.Tests/RestRequestParametersTests.cs deleted file mode 100644 index 7370644d3..000000000 --- a/test/RestSharp.Tests/RestRequestParametersTests.cs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) .NET Foundation and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -namespace RestSharp.Tests; - -public class RestRequestValidateParametersTests { - [Fact] - public void RestRequest_AlwaysMultipartFormData_IsAllowed() { - var request = new RestRequest { - AlwaysMultipartFormData = true - }; - - request.ValidateParameters(); - } - - [Fact] - public void RestRequest_AlwaysSingleFileAsContent_IsAllowed() { - var request = new RestRequest { - AlwaysSingleFileAsContent = true - }; - - request.ValidateParameters(); - } - - [Fact] - public void RestRequest_AlwaysSingleFileAsContent_And_AlwaysMultipartFormData_IsNotAllowed() { - var request = new RestRequest { - AlwaysSingleFileAsContent = true, - AlwaysMultipartFormData = true - }; - - Assert.Throws( - () => { request.ValidateParameters(); } - ); - } - - [Fact] - public void RestRequest_AlwaysSingleFileAsContent_And_PostParameters_IsNotAllowed() { - var request = new RestRequest { - Method = Method.Post, - AlwaysSingleFileAsContent = true, - }; - - request.AddParameter("name", "value", ParameterType.GetOrPost); - - Assert.Throws( - () => { request.ValidateParameters(); } - ); - } - - [Fact] - public void RestRequest_AlwaysSingleFileAsContent_And_BodyParameters_IsNotAllowed() { - var request = new RestRequest { - AlwaysSingleFileAsContent = true, - }; - - request.AddParameter("name", "value", ParameterType.RequestBody); - - Assert.Throws( - () => { request.ValidateParameters(); } - ); - } -} \ No newline at end of file diff --git a/test/RestSharp.Tests/RestRequestTests.cs b/test/RestSharp.Tests/RestRequestTests.cs index d291a5db8..c7e28c702 100644 --- a/test/RestSharp.Tests/RestRequestTests.cs +++ b/test/RestSharp.Tests/RestRequestTests.cs @@ -4,8 +4,7 @@ public class RestRequestTests { [Fact] public void RestRequest_Request_Property() { var request = new RestRequest("resource"); - - Assert.Equal("resource", request.Resource); + request.Resource.Should().Be("resource"); } [Fact] @@ -13,22 +12,21 @@ public void RestRequest_Test_Already_Encoded() { var request = new RestRequest("/api/get?query=Id%3d198&another=notencoded"); var parameters = request.Parameters.ToArray(); - Assert.Equal("/api/get", request.Resource); - Assert.Equal(2, request.Parameters.Count); - Assert.Equal("query", parameters[0].Name); - Assert.Equal("Id%3d198", parameters[0].Value); - Assert.Equal(ParameterType.QueryString, parameters[0].Type); - Assert.False(parameters[0].Encode); - Assert.Equal("another", parameters[1].Name); - Assert.Equal("notencoded", parameters[1].Value); - Assert.Equal(ParameterType.QueryString, parameters[1].Type); - Assert.False(parameters[1].Encode); + request.Resource.Should().Be("/api/get"); + parameters.Length.Should().Be(2); + + var expected = new[] { + new { Name = "query", Value = "Id%3d198", Type = ParameterType.QueryString, Encode = false }, + new { Name = "another", Value = "notencoded", Type = ParameterType.QueryString, Encode = false } + }; + parameters.Should().BeEquivalentTo(expected, options => options.ExcludingMissingMembers()); } [Fact] public async Task RestRequest_Fail_On_Exception() { - var req = new RestRequest("nonexisting"); - var client = new RestClient(new RestClientOptions("http://localhost:12345") { ThrowOnAnyError = true }); + var req = new RestRequest("nonexisting"); + + using var client = new RestClient(new RestClientOptions("http://localhost:12345") { ThrowOnAnyError = true }); await Assert.ThrowsAsync(() => client.ExecuteAsync(req)); } } \ No newline at end of file diff --git a/test/RestSharp.Tests/RestSharp.Tests.csproj b/test/RestSharp.Tests/RestSharp.Tests.csproj index 6c8d9fd1c..5806b6700 100644 --- a/test/RestSharp.Tests/RestSharp.Tests.csproj +++ b/test/RestSharp.Tests/RestSharp.Tests.csproj @@ -28,4 +28,18 @@ + + + ObjectParameterTests.cs + + + ObjectParameterTests.cs + + + ObjectParameterTests.cs + + + ObjectParameterTests.cs + + \ No newline at end of file diff --git a/test/RestSharp.Tests/UrlBuilderTests.cs b/test/RestSharp.Tests/UrlBuilderTests.cs index 97b8b4af9..0373919a5 100644 --- a/test/RestSharp.Tests/UrlBuilderTests.cs +++ b/test/RestSharp.Tests/UrlBuilderTests.cs @@ -10,21 +10,21 @@ public class UrlBuilderTests { public void GET_with_empty_base_and_query_parameters_without_encoding() { var request = new RestRequest("http://example.com/resource?param1=value1") .AddQueryParameter("foo", "bar,baz", false); - - var client = new RestClient(); var expected = new Uri("http://example.com/resource?param1=value1&foo=bar,baz"); - var output = client.BuildUri(request); + using var client = new RestClient(); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void GET_with_empty_base_and_resource_containing_tokens() { var request = new RestRequest("http://example.com/resource/{foo}"); - request.AddUrlSegment("foo", "bar"); - var client = new RestClient(); + using var client = new RestClient(); + var expected = new Uri("http://example.com/resource/bar"); var output = client.BuildUri(request); @@ -34,33 +34,34 @@ public void GET_with_empty_base_and_resource_containing_tokens() { [Fact] public void GET_with_empty_request() { var request = new RestRequest(); - var client = new RestClient(new Uri("http://example.com")); var expected = new Uri("http://example.com/"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void GET_with_empty_request_and_bare_hostname() { var request = new RestRequest(); - var client = new RestClient(new Uri("http://example.com")); var expected = new Uri("http://example.com/"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void GET_with_empty_request_and_query_parameters_without_encoding() { var request = new RestRequest(); - request.AddQueryParameter("foo", "bar,baz", false); - - var client = new RestClient("http://example.com/resource?param1=value1"); var expected = new Uri("http://example.com/resource?param1=value1&foo=bar,baz"); - var output = client.BuildUri(request); + using var client = new RestClient("http://example.com/resource?param1=value1"); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } @@ -75,41 +76,38 @@ public void GET_with_Invalid_Url_string_throws_exception() [Fact] public void GET_with_leading_slash() { var request = new RestRequest("/resource"); - var client = new RestClient(new Uri("http://example.com")); var expected = new Uri("http://example.com/resource"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void GET_with_leading_slash_and_baseurl_trailing_slash() { var request = new RestRequest("/resource"); - request.AddParameter("foo", "bar"); - - var client = new RestClient(new Uri("http://example.com")); var expected = new Uri("http://example.com/resource?foo=bar"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void GET_with_multiple_instances_of_same_key() { var request = new RestRequest("v1/people/~/network/updates"); - request.AddParameter("type", "STAT"); request.AddParameter("type", "PICT"); request.AddParameter("count", "50"); request.AddParameter("start", "50"); + var expected = new Uri("https://api.linkedin.com/v1/people/~/network/updates?type=STAT&type=PICT&count=50&start=50"); - var client = new RestClient("https://api.linkedin.com"); + using var client = new RestClient("https://api.linkedin.com"); - var expected = - new Uri("https://api.linkedin.com/v1/people/~/network/updates?type=STAT&type=PICT&count=50&start=50"); var output = client.BuildUri(request); - Assert.Equal(expected, output); } @@ -122,160 +120,155 @@ public void GET_with_resource_containing_null_token() { [Fact] public void GET_with_resource_containing_slashes() { var request = new RestRequest("resource/foo"); - var client = new RestClient(new Uri("http://example.com")); var expected = new Uri("http://example.com/resource/foo"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void GET_with_resource_containing_tokens() { var request = new RestRequest("resource/{foo}"); - request.AddUrlSegment("foo", "bar"); - - var client = new RestClient(new Uri("http://example.com")); var expected = new Uri("http://example.com/resource/bar"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void GET_with_Uri_and_resource_containing_tokens() { var request = new RestRequest("resource/{baz}"); - request.AddUrlSegment("foo", "bar"); request.AddUrlSegment("baz", "bat"); - - var client = new RestClient(new Uri("http://example.com/{foo}")); var expected = new Uri("http://example.com/bar/resource/bat"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com/{foo}")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void GET_with_Uri_containing_tokens() { var request = new RestRequest(); - request.AddUrlSegment("foo", "bar"); - - var client = new RestClient(new Uri("http://example.com/{foo}")); var expected = new Uri("http://example.com/bar"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com/{foo}")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void GET_with_Url_string_and_resource_containing_tokens() { var request = new RestRequest("resource/{baz}"); - request.AddUrlSegment("foo", "bar"); request.AddUrlSegment("baz", "bat"); - - var client = new RestClient("http://example.com/{foo}"); var expected = new Uri("http://example.com/bar/resource/bat"); - var output = client.BuildUri(request); + using var client = new RestClient("http://example.com/{foo}"); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void GET_with_Url_string_containing_tokens() { var request = new RestRequest(); - request.AddUrlSegment("foo", "bar"); - - var client = new RestClient("http://example.com/{foo}"); var expected = new Uri("http://example.com/bar"); - var output = client.BuildUri(request); + using var client = new RestClient("http://example.com/{foo}"); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void GET_wth_trailing_slash_and_query_parameters() { var request = new RestRequest("/resource/"); - var client = new RestClient("http://example.com"); - request.AddParameter("foo", "bar"); - var expected = new Uri("http://example.com/resource/?foo=bar"); - var output = client.BuildUri(request); + using var client = new RestClient("http://example.com"); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void POST_with_leading_slash() { var request = new RestRequest("/resource", Method.Post); - var client = new RestClient(new Uri("http://example.com")); var expected = new Uri("http://example.com/resource"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void POST_with_leading_slash_and_baseurl_trailing_slash() { var request = new RestRequest("/resource", Method.Post); - var client = new RestClient(new Uri("http://example.com")); var expected = new Uri("http://example.com/resource"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void POST_with_querystring_containing_tokens() { var request = new RestRequest("resource", Method.Post); - request.AddParameter("foo", "bar", ParameterType.QueryString); - - var client = new RestClient("http://example.com"); var expected = new Uri("http://example.com/resource?foo=bar"); - var output = client.BuildUri(request); + using var client = new RestClient("http://example.com"); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void POST_with_resource_containing_slashes() { var request = new RestRequest("resource/foo", Method.Post); - var client = new RestClient(new Uri("http://example.com")); var expected = new Uri("http://example.com/resource/foo"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void POST_with_resource_containing_tokens() { var request = new RestRequest("resource/{foo}", Method.Post); - request.AddUrlSegment("foo", "bar"); - - var client = new RestClient(new Uri("http://example.com")); var expected = new Uri("http://example.com/resource/bar"); - var output = client.BuildUri(request); + using var client = new RestClient(new Uri("http://example.com")); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void Should_add_parameter_if_it_is_new() { var request = new RestRequest(); - request.AddOrUpdateParameter("param2", "value2"); request.AddOrUpdateParameter("param3", "value3"); - - var client = new RestClient("http://example.com/resource?param1=value1"); var expected = new Uri("http://example.com/resource?param1=value1¶m2=value2¶m3=value3"); - var output = client.BuildUri(request); + using var client = new RestClient("http://example.com/resource?param1=value1"); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } @@ -285,24 +278,24 @@ public void Should_build_uri_using_selected_encoding() { // adding parameter with o-slash character which is encoded differently between // utf-8 and iso-8859-1 request.AddOrUpdateParameter("town", "Hillerød"); + var expectedDefaultEncoding = new Uri("http://example.com/resource?town=Hiller%C3%B8d"); + var expectedIso89591Encoding = new Uri("http://example.com/resource?town=Hiller%f8d"); - var client = new RestClient(new RestClientOptions("http://example.com/resource")); - var expectedDefaultEncoding = new Uri("http://example.com/resource?town=Hiller%C3%B8d"); - Assert.Equal(expectedDefaultEncoding, client.BuildUri(request)); + using var client1 = new RestClient(new RestClientOptions("http://example.com/resource")); + Assert.Equal(expectedDefaultEncoding, client1.BuildUri(request)); - client = new RestClient(new RestClientOptions("http://example.com/resource") { Encoding = Encoding.GetEncoding("ISO-8859-1") }); - var expectedIso89591Encoding = new Uri("http://example.com/resource?town=Hiller%f8d"); - Assert.Equal(expectedIso89591Encoding, client.BuildUri(request)); + using var client2 = new RestClient(new RestClientOptions("http://example.com/resource") { Encoding = Encoding.GetEncoding("ISO-8859-1") }); + Assert.Equal(expectedIso89591Encoding, client2.BuildUri(request)); } [Fact] public void Should_build_uri_with_resource_full_uri() { - var request = new RestRequest("https://www.example1.com/connect/authorize"); - - var client = new RestClient("https://www.example1.com/"); + var request = new RestRequest("https://www.example1.com/connect/authorize"); var expected = new Uri("https://www.example1.com/connect/authorize"); - var output = client.BuildUri(request); + using var client = new RestClient("https://www.example1.com/"); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } @@ -313,7 +306,7 @@ public void Should_encode_colon() { // utf-8 and iso-8859-1 request.AddOrUpdateParameter("parameter", "some:value"); - var client = new RestClient("http://example.com/resource"); + using var client = new RestClient("http://example.com/resource"); var expectedDefaultEncoding = new Uri("http://example.com/resource?parameter=some%3avalue"); Assert.Equal(expectedDefaultEncoding, client.BuildUri(request)); @@ -322,13 +315,12 @@ public void Should_encode_colon() { [Fact] public void Should_not_duplicate_question_mark() { var request = new RestRequest(); - request.AddParameter("param2", "value2"); - - var client = new RestClient("http://example.com/resource?param1=value1"); var expected = new Uri("http://example.com/resource?param1=value1¶m2=value2"); - var output = client.BuildUri(request); + using var client = new RestClient("http://example.com/resource?param1=value1"); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } @@ -337,35 +329,36 @@ public void Should_not_touch_request_url() { const string baseUrl = "http://rs.test.org"; const string requestUrl = "reportserver?/Prod/Report"; - var client = new RestClient(baseUrl); - var req = new RestRequest(requestUrl, Method.Post); - var resultUrl = client.BuildUri(req).ToString(); + var req = new RestRequest(requestUrl, Method.Post); + + using var client = new RestClient(baseUrl); + var resultUrl = client.BuildUri(req).ToString(); resultUrl.Should().Be($"{baseUrl}/{requestUrl}"); } [Fact] public void Should_update_parameter_if_it_already_exists() { var request = new RestRequest(); - request.AddOrUpdateParameter("param2", "value2"); request.AddOrUpdateParameter("param2", "value2-1"); - - var client = new RestClient("http://example.com/resource?param1=value1"); var expected = new Uri("http://example.com/resource?param1=value1¶m2=value2-1"); - var output = client.BuildUri(request); + using var client = new RestClient("http://example.com/resource?param1=value1"); + + var output = client.BuildUri(request); Assert.Equal(expected, output); } [Fact] public void Should_use_ipv6_address() { var baseUrl = new Uri("https://[fe80::290:e8ff:fe8b:2537%en10]:8443"); - var client = new RestClient(baseUrl); var request = new RestRequest("api/v1/auth"); - var actual = client.BuildUri(request); + using var client = new RestClient(baseUrl); + + var actual = client.BuildUri(request); actual.HostNameType.Should().Be(UriHostNameType.IPv6); actual.AbsoluteUri.Should().Be("https://[fe80::290:e8ff:fe8b:2537]:8443/api/v1/auth"); } -} +} \ No newline at end of file

^#mt7!ZtnZu|%o7*?vGxQh3qYx~9Euzm0R*{DfMsP5OY;`pkTxa;Il)NY$ z?`I5>ELtvptXV5zYkRkJE}orCFZFb$b)4UFRCCh=*Z|7?4S1&B1rvJE+H8}sa~Tb9 zo`Q9>dF|gql{_bjljk_+j4MQry_a%sgLlCkd@;&@+2)%|y;3H{P~Py2JW0ZhcD7{w59FL`}oj=z#c!h!YUjzMmQp$u__KJn`cr zHig20bLV+C=;sAW{jG9>6m`b#rNPeiEPTOZw$fmDp1X&Oc?0K8)bnmT4L95B-1@Z} zX+BH2lXFfyetCP=l#^++Q@IVjQgA46;J4#1wG4g6UPL_!vRRuS3n$R-y$-0QSuEy1 zdF=UXa`^X1TO7`HkBY4yzO$mJZ~>NC%B<*zLTRcQT5wga1Xf} z{*X<%guP@N5MhddeIarkw`f{OJtaivce1U^%eU!jkliBC`;VqBUBPETRpZ+#qA}~+ zK1!6kL0!rWRY#*&qAc@cUZ3Dc@DrCNpEsb2Rde<8_DSj@zkf5p2CKU34zydOc@DI| z_7o%<8B9%k-4lhE85Yw&xXaLL-uA&KS#ddzwoS8yGS5rcu(>Q$8^N7wC!9^Rq)M&X ztHE)Xt0X4%ibx7!Z{t1vFFlUY3gOr9>RYEx2m<)+%<|4GF2kzn-p1~w+Q(6hGBlxV zFyV%x(@dw_6PjUhhpG{poJP|!q(FL?30d&YuU8l@FTxRaL(iWzu>dlR3 z-(lQW3xx0`{Ez`N^kHi7W(zGw@9{43$SK8!y>`T7bu|CwehJX zC(f}1&eyOnaEC+uU&r&l{t}wn`03An-ob?t`7bfrKC~h^CQl)^7Ok32`+2<3{+m`> z_*GD*zRHx=@C|m^8NT7tOQ)`j^@rYVzZ|Nlv^sy*kUQu*tw`4X%x2eI4N&lVTFE!HgWzNkGr$E(e0=dWKpv>1HIe89s*0O zu(_}rR$tn=4n@1)sYlU)ghv~T)8zsy)71tA959hn>pBTS?!RyjHO)0H*HJ&$PF-`A z&st=wam@~w?VG5CWa0wp+-78~p;5?cg_?d&e{jT=Udj;e?467zXt6lI^!DJyyb9;T zW5Uy5fyYT#$HK92va@5bKRehOzw%knLjKJ7# zlb!zMY|}_JXn?mPm43+MO=kRjUhlOGCHMWm=~1@WKwgZ6f3o>Cc&j3ETaO;V-r8a@(n;MOClD{S=^q>#JLHG99E|HDD}e2|$0o^mpM+8$O4j~l39ybeaC+dXQ{iWBs;!90}RZ+yc^8nJpBXk;TL<)uDVeYFqZX|;cbdTKH!txIQAISoM~V2! znegv>wO7$J;em-@Sn=;mV__V`Jq>@+s{qr+681+3BjqqLmuSl|`UyTTV{9$RaC0={ ztRECAyemsCis#yZv6A}zwfH3DF1CIdjy{8(X!RcUNR9e9V@vSBFYeuP)Od3bZ7}&o z6#-7LKbdjYUqcI`*{8TzGT&?NKj}-d9)`}oYw>jn2$xxWccJOx&JU*sd=&FS_Puwz zFbm`X0ZKnxhdqB@ayrdM>Up&7!GGwdLFRDq#JB*GfCTIQ`whgz8<-T^_yM4OD=IJ;EO^{m7u$# z4L^@0!W{IcU2kE%g0=&#PdXW;y+QCT0Pj>2v-xRnZ2E4S+C%>bFg&2&fa8CR3@!j- zAqg!B*PC_WnR-)go>E8d&#m>tX@cpYg=Ohue{e0|CfmH)y|mv%da3`W_*CF<{K0W4 zf(1aJia8BNGeU zuYkMm%2}T9*r{stx+!Qx%Hmba?A8zI1^QT1Nm>Qowj{UDX#?xM`?kNZFG5O#w#Cxa L=1SQwH)H+_hl^KI diff --git a/docs/CI-CD_DOCUMENTATION/Dependabot_alerts_page.png b/docs/CI-CD_DOCUMENTATION/Dependabot_alerts_page.png deleted file mode 100644 index 9d5a9e9e1e972620dd583a86134c7c65ae4f1b38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25137 zcmeFZXH-+&_bv*GA{J1h0!oz-R6v^2As{F%fWnKRBcTb>A@l?V6r)J*U8Gm3p+}Hj zrFW3tI{_gixf|Z!`JZ#o9pl_D=ZyR1G6sX4y%%e*HP>9TJo8z>yiixXcKOa_3JQvA z%1R2F6ckht3JOY@OBaDVFK^$l1O8AtYbrjaDClNh0X|S!%BjgwP!t7UIWf5ae5P?w z(sibwp#63FOW9(dWkx|^(yXi?_m8{L#v~bgt0{4tu*BAy7db(Q35Ycblz)BV`(5nD z6TwdZ)~@TYPtQ5do2@jxxnwHv+~FQIr&ubtstGG2vyPC0vXpZH`_-!kG|M*{nEVVD z1v;LgcaC@#vDKRz$Th9WK|^iBNv~w*gXqoLX=u%mcy)DERh6gP*0Hy%+ZOpCwg+uQ z2@H{fV*fmb=Ir9PC>WR?@FP1N5_5Jzfs#j@JGsGSR*Fz|5kj`q#$2$=cF+anuV>F^Uu21(YShU3^^@|i$`sG6XWTgcTl{0hB)_9VtIY4K_B8n$llP?~M*2QOyvY9X)yzDjhS>wRZ@{=;-{=QK$B+YBhu^B_r|~Y)q2v9_#Vbx~8pUZ!5}_%NUxQ6UEDR zdz8D0gPuQX97~RF8)S^9`G@>@UdI&u9$6uEF}{X>ognX<<4{LaYQx0h@L{i4{6HtL zEB9VUYjKgsGVjWgfCt#mMOkNLzEC=8LP(^IA=g=lNaR0=Y5Wy{tF|UZgPRg6_ll2p z$?`sXS+U&aX?Z7GLxMK*QGq%QCK9Vo`Yo^?x8=km(P@(~I+2-&1Q>~77Y8;=PlyP$ zjPvg}&uDi(G$uqY>FQ>~iqLimcfFOqNUG7~p=!$~J$jzus9V-^b;AQWABsHirnqa- zX@2|pU~aQ2FXbez^J`XI+~tYgb%Vvt<9?yg;EM2?2Vl4S0+CP11qp6Z^F|koWCU z9K0#xG-?lewyxh8MQCN_Zt96VS~JortlO`M+k!bm{Z5X)4CF+s z94IOiiH|20{M5`E7b_QeCsPlS;xxnI{XOZq!vnp&3%$jLPuyz9kOy%Rd(Dt1+#)^~ z$2>9=cr+FBHjQ{Bqx2r!z`4I9^ z(G95mx#hBEZpi%k%=LK-4c~q>^%%M+fg9hbmxamOZ(bpu(qG$LXtA3fBSn$9gddSL zc(x-N8=HPvr=x0*f5g3!6c>Dlp(!C|4la(=#1*}d@GiL<&&Fxa<#FpuO?&GOcE^h4 zx&}}7?>y5yEi<2y_r{E^?V_8hiN)z)!5P{iiHOH>Px^yK!C$;uHV#9;DBD@l0Z+Cj z-#D|e+?k>mW5!*V1Ho3?SPgQX0C6j6nn_JZX*3Fhsnj2chl7~})0^kN{Sypcg+xm?mUE6DdqU^uzT4So~3P`)}xd-Mry#|)25?8B> zgn}dtp1efzMrPmPJU({hEj7yYW_1;!*t#t#6M~MSs#xb{;{3Q^7S|arr83N)&^p*H^YH3We=hTL-`CtC0vcDJBWAz;+G3p9FQ*4tIi1XRH|-pu%H+SU zly~hrt3Qei=3)w5&>tv=8*BH}xX9L46(SL-w9%8%EUH2fjI>Tsq97uuvC(EE_rau@ zzc;C4M87T}#A6pHiT;7ThOIm2>`M69NcEffs~QZpbUu?fuTag6OEW+#>oQ(H+EW~o zHo6qoi4oGTOFD0}Qc_G=HmJ^|0TwJe8p*UmJiTb5WxcgpyxXq?OY7JeM0WgqTzyYI zqeHgm(vUgz`|Kj3U0;g!xI$lD9vW-A@<%jRe{8Odi{HMSC*CMI?V0X%t}RL?_f}!W z29MN-e;Tw{g_EV4?jVE>MmJ`QW)+b&M?z$5OmT)3 zI$Q-kIYj?nni8t7+1F7yuqTG0oYdFd5r|P4q-J;75?wCx%Dp|Pqz0eQOsNDXTwAG< zCwd^hhqr5qUnjSmwK8J*;%;xnSW0HcQk)NoHtgz(WkaJr^vwXXRxo^)^!E#$a ziS1Al+0SpaE^jK*dYF2qw6Q^Q69Zu~F!pi^mNC-fhNL~hZlXW2sJeP{PY6!AG=IYU zbu4a_F04pqs$U8+EMTPSa5U=}?P2sn7q4Ayk1>5Dc4*!|S&XMC;F@8_c2r;wEqdbm ze9WP(krl2!t+#G#zKWv3t$z|s#u?#0&Jt&X8PW<>kDquN1#U!-95)ch0tIDWD1L>( zMkw_OY+^?N|BO-ya&X6O&x2GntT$;i)!)=pelP$M+u8pZ`M|YQ<@k}L72wWVBm#49_U2*@kUgY$T+#{K+^WIv3K8}ehdQx^ezWrxJgn7Ij^;rx-O%m{ z8GeDUU(fPwv6guLoGs5ao|x-NV%U%pU#eVc%_&ZAK!u<=llM)>6sKgYw@#KfOx=Dj z=JQV|R!w^P#Cv40bUV$wt@SA;6FN5zf9HWf^#mD7bQ-i6eKqK-5}RemvMKwxs4a^1 zAS$6>GAZWox>T9<;e{vJ9e~pWjO;;{-U|5sX5W%WtlMHfpY>5O-kOm8wrb)6zWs76 z?$w3_e@B}wyZ%59wMh1cB5kgkXQe9$6b-FRJCO0zD(akQS}icI9(?J6vc~Ea+f?eM zjhAhPfD8Du4K0Ws(u&5sMmrqP#5<}&6@cIdW-N7nnYIP3tyij(qUZf3Ck^ZL)+go@ zd}`)6@8FuQPM&wQ!jbFmubvH4=8HjA@N&8hvwN=$&h6h{R zG~H}V z$uSOu-zYjsasY9;wwxf}-XasdI+#gz-Ng1%HP#vv-f|{9GB=NP@a)9XZM>jXPlx9k zR;C!~a^enl9Kzfk3ZE+#{tzqKGQr1Y2F0f}wY^-r{P~}145n>|Z&c`m(1+o%&wi_c zNv;+>Dtlwzv_|3uB3)(3`HSL$9LYSpW7oVl#P}1YlKyz#7AMcQ=xLU3$EMz*pPdo! zlytkW#@orC#JPZEG#h^Ag~6EdzV5N#;D+SQ8!Vt$6_0ff{5G($5Qxg5YA#W4u7@*a z^NtUXqGTJ5emS06d*1Bk=fsfGbudFB8!hAH`#No0cnpD3DTZU@O``fp4V0v+_>6eG#s^Z~U(TwTY;u%kkxpW|C?Q`kEtWl)=eer#--pWY%f{>8pYmr4&>(J_+b@`$3+DJ~bW06Vp zo{#6|;XmsEPjSz?znBx!@#wO`aMyvAy-Qiu@7@2JYdfV9(-iJ`HaLFZPL4>J?`-21 znTC~|mlB^DeEWlelkHCaae1Q91(Yfbe7>nq7CQ7O+~$q2ActRP-^Ok%Wv-~$HF{92 z*$X{j17C}1kn?BOcV(x)jFWr7z;x--q5DJe1A1)?=I@{Gf#_=rV@fccshtVq4ZLjw z-`hiTos5(`y1*enYaU7H#g6%Y&YYpi-P#u~?Sr*9zN>>FHpY2|^p z6jCd~WX5b`#M3aku$%77_9w;{!>nc^Z)iTx2%z~gw3waGy)QnN5Z%uM>1O?hCz?+b ztEJ;MDWZW|6h8|5H2u8j=+l6soGp$sQN-xI;&jxy6gX+`L=hrNofW=cV?(EnMAR-8Z2RH!BX$ydRCXl{8O9(7c0% zxwleVucYwuK&u=5liyrQ^J|o%d0pu6V`2PlJhZjcMK?3isQOowXS$w}#_JgR;M(I!%BMRcYwN-gU-nL>tWM+1^Eex$G@InsqTx+h!-9+-=YJM( zLG+T?{LE`SzO`1Ct}}tEl4@9rT=BvCdpTQB6IR-_Fu6)KSSxwPTQ?&gWk!%xGvFvwHXFl*ZTNo*12Cg0He3jG5_4zp-FXhC|rZer1?} zRDlRoFh>Mx)xouvSd+RID7D|0b5i;H)V^hq4BilY_nyyBL{pa>k8H~X?DpK*a&Ae; zoS5rl&E;D9WfOZ6gFpYqkYtsq7AkV^g;@FG2pRFrjjyfS(L~&d(;=XLC*Tr2Jx+VWCk`PhLo4Q@5XR1)>2Zu#~ylWoau;xZZi93o^ew z<>>af_jMUy^d%6;!#HLT9*D17qNJC^7IL6&`#U#@+Cimxmw>ppl280LvB=cD^Dvqy z^m_qqHE4~#{<&~?1aV>~@lTHg) zy(In$0cR`wo@nN&p+L{-r%>=Igg1I2BRYMGsJ#s zfz?A<;S{kctFyeB$Uc2;jH=gVU&=AU@SuH=ewnw@P#*0eUy59N{(S*^AxV68%C2t= z76wA9s65s}U#b6LG_*BU*Sl$Z7vF-uPz6kvg5u}9aD5>?Y3HX(u~idwloX7tXL#C2 ze=y7Z5|m-eG1%jF003#-p`oFW#r=N)u>lYofaoE9+IYHBU%%yrqmbo4@!^-ja4>io zQ&7AnV(;Fb$Po}jP(ENsY%x$Qf6z(!JVSr>%&`fWA@H+&mmYL>kz%g|JG*#S$07JH zl6VZ{p=Y=L|3?37Ic1n55Sz(US$0($>d5iL!<=yjpIfrmT6gZZq%$WM&D}ngVqEHD z!JW!A(g>A|am|V=a*_=#N335WDV8$7n+l(M8Kf#Mvmh2Z_v97rY4g>B$Ab0PB3a>) z+&IME>7A6#R16J`%Y6LEh!h2$vxNtvaC%$qCgAX}g-)^VHmvWCL+2uMPf_1@L-SW^ zZdObpRaIl$1u2lV+u{oMRrd!pv!PtOmPl2xZ$4ln?W%6Od_3p|uf zs6@?`H}(Exn&d_qBlW268Zz1-!tnDYtS#Q;$+xviZyQB#bojO1a!QJKbzwzLygJXf z{%PU?L*7yLR?oQx+zJ09xVZY{i3cgc)0s?Lwp#8HY97FV!HAsgO2em!R5GC5@+oXU zo)KJlRFFY)c`i<((kHx%N3Uhu$_X(W_2j$t7Djcovrf0XHZsX>T%`6U6Sd3mbghxCjEkIFoKSL(GK*PQ!W&mas;RAgdgk~mq6|<` z@cYoHKn7s$kFtjJprM2(0fS6hn{ju>%f<98VnSlxoWb?9*dGOnL&egk{PQv?ty4?o9^|EDs2=yqzpD0g~+8oOs{e`|N*FT$= z9frnn_{vfk5BDS1S3I110W|+LccJ*k#vO9y^GWjWJ7ve2S+`C6SYH}kG}W|F*)Sw}Jh5E4UAESkeiC~do;lElRUB-;(6m4= znjOjCzDL!!JNy00Y8S(B&f2eHI|nJZ%CR3y2@=j+hQRtE7aQfuNIdmIQGE90;v976 zC-L9YZ`BjkR_nN3b47d9J$jY}I;1NNx^~*Fjkb*@3i=i_oulktj8E64K-NVtJbgaZ zgH`FI^QyM-rems_ofhN19wqKL19Fy8_d#!{kJ>a&kmOahEz=L-H+tcfJbRfP*q9a~ z7>t{%ME~utS@Jl-KSVk1_xQ^NT#Vgd|PV^D1y&Z|a<;o2=Kig@=JdUY0s&x{%X2JE|vBB74x0M$8 zMPKGhklPw^b>UuzL7iB^Pypa~dJ5?Jjy6SNseVRC92+Sk5aTOmOtEeU2}X;h5;^CO z%*LKPIWV|RRlOk@W&;_9ydoyK?WnCY4j_}_ka#fOcRK{V8PJvM*93&A(% z%SH$jPKBFUO!oRQF)>Yqg;>;Tny&Hc2rdiWDY8to%2*-B+x3rxqO1+8ywN&!`-)q)eM`_)n$xa0~f7CnXp{|HzpI;H(;&!W& zD=SITsvdOWw{i^E!*csDzTwD1*%>5G7@rK0kJ-L*Z-`ZE@Hu8!ZuAocj(Q!-9#pi? zJgPOIe_^ay{YtDO{|Du9gy-Jqw)KU~ukfJUYjXM)-aIWZET0mr^Mojr-tFz6rpAmh zRMW!C80D4Yxc3UOi!AMTm-uvYMWlM4YXYWVK!qCwTB9}mN_AA2>wVsy4oU2pRhgoxElfpU&5NM|=30km(BloPg8wlfCYE_zCyLh!?+|&m`9O$&c3*y3AIlp8Z~ZqF{fA6 z|NUaF7vdgt6PqR4CA!Zra4^DmgNGLK9(lbK@;(F1=*z>LC;5EvWq*OQ^%~1cskxN^ z>E--oYTIt%7BvAG@j9;LBreG8Mzy)+9Wa|?H!$gg4up90my=r@%Km0`_ITKADOrzDrF-gTT;^1hhJd0 zp4g;ZPqsp!@B>-%HrExSqo8>F5)c?v`p%WVY%i;)hsnmZIYDfm+WDewl!h|3h}n0Q z5AUg2pR{DJ$KJH?2oF3H6zfTgvT)te_CSRvDWKy!UE4|XqH(s{6fTEEEH*M~mIyUd zsK(ITP*v{)Kj1iyj!~kHCA}75+1?S5O8LGT7o&rJPCvkk;via(F+20|9xUG7H0_XC zx!h}yTauhRs!sFxw9Y5UKNzz(wR;g42i(@x=`U{{wO(wQ!5$68&7O$!CkU^_dcV~w z^3IW{h_)15f1&Rd%#FS8?cL>3Ag8>ICZ*_Ys=JMf)L|vnW=CWO>uc4<6grErMit5o zwyqcqlTCblOw0nI30K^tjhAsPcqi_qWBYgQPYzJj{Vm3#3Y$naSa3M_$+=j@Fwd`7 zFhnL+crN_{Q~};kZPrW=QrBcpin*WtwtjMTimfh(mKm2vGQ_S8Kq0oRQu{rt1Kc=x zi<@-n?Umsj9?6X8nCo^#6%)&iL(n}N;-;*$ylQ8#qUWa7K7kszh zL>Y6j7tcTQv@4=Ssunf+ALiHo>UN7NT6;j}+u=tLe|wM}4*8*OIQX8>bY=C;!Fqs* z@8OGYUsq%Z?gsgE9aZa2x=%R;`x_M$%WccIqMsZ+HvV$B0|&P1K`aL#yRyT|)?b>G z6tbM15WyMZ!{JH+-R?*E&Lh);b|Hfx*n%~U1eK{3YkNX zrq$x$I8t?C&IjZ1R9a;eixTXTvQj4mSm*ESCVf zpW5MzoYc8%?L$^e9_NkjZr==tSiD=~g=bM`z1M?4);DhLPMnkElir-5e$c!?ckgDu z3M>t-ZAOV7)gcCny3WHD8+}cq6WNquX7CRRX10!g1W6a;I0}@?*ROV(haNq0Kd_+2 zZmU}xpmLb2_Oq%Umw5OGb3@lk(D$i9n%;73U$*Vq7$H6Ja7U_azGxo)EbZDysp0SI za9tpxvh9KhhJHOynk$w-zpk#D_Gp%8od*nSqO{BI;p)01f3Ce!EEBLRk;L^k5^99Q z=_E~PHPl{lw)#l^iO=C(vOQsMX~CRp_X|6cmms|K#Ra8#SA%S8cgaP+j-=d(vR?;y1c4lP%y5^7u3P)& z4)wEUuJ;)-Kl!a9HMbWDgL_#(e~$Jv_Id$;FrjKP=)L2Om${Mf<9&=j2yj3&)+@&+RbGBwCc+ zSN2t6X_EjPJjADqLNW`K^~DnmvD5rghm&V<=O#7l~6|>?#1qwB-?}G_BX@8x&6k4pZ1dv zoxd&7U0nJ{t=mgzYv9d__MHnQqauY{mV4-I71#($B%N03PWO0<2(H3tlD^KkE=-1Z zPz?=)<OLH{g|X0J2cZ7`k= zG3}!YC1_;Axm)FLhMU_+hby{fRVSDS7A_x*$^Jc!AOG2f`F>xr_1e>i1_B$yUk+6P zWhLtl=Ao8?GdGl{=c?={kz8xI45;M9JOc&A8{hHG8qqtv-`&jE8V|lMBM?tjsbkUS z*ojdOncd@fZtSy*GiJq^Jp~`VjsQa*t`)CE3eBX9n6D;jf^;Rr!EFlKsZ`6~(O}5a zaJDsytyYsVkFMFUWLK9~(MhlQCC)?%7`wZHtqvMK`0+FtL zozBh|8YlC{aS4i^y6oYC<#$HZhw*He(U+Y*VrT^aTg<*B!1V{^HQ?Q0-wpND<0v|c zR3iz635=8|Pn!2cYS&j+&i*n?w&}0m^$&3+%1aIyxuN3rr$>@nZ*c`xqv!W4je1Tw z5>82@Ht~{%oqvh58i$>zk$vM=(~5H|@_O(bHG;XJda>H^!9c~>ojL%fkma24CKy_i zy1t}R3Rh_y8y(2mOn=&hKmrlhLAY7=2MqDiR|Qz?oH*i2KMgN%LDt`5jS36WXhpLT zV=tq?l*f5)7!2tR&+k*P;@%=@dOQ8TGo zA9wRwLa%h+k~V;You;1bXOKq(VFKx6bI$DOAZc8ps%N6^8$s{b;8>og=xTwKtE-JX(!gofidMyCteHW?zrC6yc{8x@l5%&qmAlb$2 zPVtq;H~xEu{N~<&&x(I5oc2}kcm-&af&oT;-uDbZkOiG}dX|a5gWMCOym~1}A814I zzkb2~Y(*sUwAoKsBjT#u|1g%U$AXT(eDx_GU;58L8*lwrYW}}@5dY!;|C?v&=`lgt zaxQ@H+102`0yL=-qtj_RDCY@mHA6*<&L7&N{{+P<;~-m}D_l?};F`U6Ox z{mj$Ge?oO;p0fxmt+NX%@Rt8L6?Q5^OTL-pLZj1M@-&n5(P^u9st9TfM@~Tkpe0v7 z88Ks>9z>Z*n{qRsKKvA#o4@dCTPKjCDj`NE_rU1nA45`OoTeANr5)K%`y^vnx|~m> z@bJ|crD>y;jC0q?zuHbA-1`MUS0pM?=YdXsx+q=cC{o~UzHSJEDbSzGrOT~FXg=|!ReEP~4=?{%oj1UL_9NB5JDiaqeEL4J>>D=iN z_us;LP+{MvVWn(j4zlA$a6=E4xbKAhBs)~)!8BF{Hw4W)g{ALnhmx0?u~TkH2N#6h;dhWMocwpvt^v5ytvUX@MzS}-E@ z-1UD+jRV?b5a>Dm3vT5P^W>AL4+&Hg+HfitPQe+j3t*ZT#hb-xA4=N>jKf|yjvK_q z+}9PE$%BvS>CyfQJOee~Rplrn8tB?fUd!A!{fBDBP#Gp>{&0K{FcQEcl%@w=qb?W8e~ixs1DToo}P0(jHMS= zg}s3&r}&ZDb8m#XR^ka8%0mnJ(2?%GMg_Ccc_vUBxh;~u3U#aP%2m-bqeQWq1I5tX zZIo=VKUNFbjM@o1SHG+KGwI^?%6^e8I`tb8(V%N@h8l!(rmc*3WonI-7`e$wZ*8AC^+XnAoqgO z?Sd2v@Bhg176$Whk?H!3Ey(;hBu0R)DMDY;y__ls*gj_(1sEg_+5fB>aPOmRKM3UJ zgO|bg;AE_MYvz*PFr7B+I<<7?)HGnso&-bu%vQmju!K*Mr^EUUJMH54d}AY)P48_I zepfX3*d+#+j+r=CzB759=o=92OIQi&rnSUZL+G5jE+I9=2l&i_9T|w2)&&5 zx6%_i&94Q88wW@3crsV{dNy9g5in-0h)_BV9tY_WHONw zx$P2`79&NBJGL;3{kEI_)jEE!9=qK;If%KSB?CLROxI`GXAT$(3JO@i-)f7eH-7F` z_hacry}7z1k?ay^8&G}zdHszwqQQt`2fr}gmQe|RQDLs{rTf+RNargK;0}uEM#i|S zu$&|saO@-F`snp68!@sHuDYP4ieM{P*zc1asQxwmGY0bGS8Mz}CxTi6o60T5LabpP zP@`~znYhTUo#^Lhn$pTE4fDzYfqZtpOhejy6~F9V z?#RGkls!m|q^(%Zg_8l0{kW-N4^{K<<8p z^fQuChAE-8vXh|)DEu#JwwSa}o%{vWdp4R+NzIEbYW#vPYpU)w0OSI;VmreOT1n`M z>+2@J6|!>m?!t+yCo*PXU&0R$EdOH_&uW`>4`XG`hD27dP+w69G$XeTF)NwN_N1e+ zwPr+UaL?gNG`NzlnC`=EGDC-~7N{p$n@3~43+FBRDT+~|Z@EXJ^ z7tc&a45ob_SIU5`nDVj@EHAV8IT%&rsGBPoEh^0bfF2?bH~^iMPqD(#c$J-!-`X)hBslTsIx53X);f-E-MCcXjPo|Ks|sn8pF!UWf!u@=w}`HZQ* z0lcSXNI)!XM^mW$fwDlwTrm>_;vb)|tf2W60O>!0z-H>Ccp|z4>-*ysh+>( z^Ce%<51*Hpq{EfMVJDu>Mw|7<7TC9DaF`VNUDXzPSO{-fWrGEQb|)?!{d5Qim8hzK zKU1QBopP7Wfe#8^@Dq6z0MKB#!MZPXx<7MiP0-o9NdV4Ac)@tPu~{ZAu*AZn$)Ae` zqt3+zSb4xyJP_n)yGTR&W#%_gwFB6OsC)2f=MxMKb)j9&M z5dC+I<_U?e?bhu{b=W7~8#|3!EXpd3^&2-A<$pYW5YmmM@wcfW{R{*s17S7}po>Pt zDjTCdbHC?`*u3T#eRv}Rae7jwh}#&9I^YKYeFI1;sdDJ| zoCyqoYYHnaQg~i@;7f+;@5SB0g@8E&dDwE@4#jch9P9baxT#!P^|XZobRKQ6REV_m z?8g8LS-! zeXA<&CE}h4i!AC1mmmkO6tM4YC*=VmZ9>I1dEEuTt^>O2ymPjsTxTC%|2@?+ivMzl zfUEj1_XjNeS)~Ywp8jWF_kZLcSdV_KEuB@|u548(PNJ7;7j?pLyLuTNCnHXY|AVWo zg3;4Lm^d(>Zl@WD(%;l{v+?9^lR$8v`P(ebTZO=|Eml5Wz{Z(cRGC%kpoF=Q%^7ZC zd7Q3crxJMgP_DA~1KqAQPG z9y%|uuSB@;O+&&g zni~Jptj2jDPsi2a6N@({E;{Y}(96#3$fp6yjuHzee|#2550FPAGcLNZNdu;1CShE1 ziG3eSH}ll{3*0rE2DS!f?31S#F~oqq^2q!a*cEz4Imt<+|C$>iwPM3H&WlH}*jOdH zXK_$4`yV!KtfTi)*&&i__yYGgcOJisVp|#B%8mAQDo~&3=D;^*xM}haoi51h?SGo+ zCsEA`w_hvzP6+%xJa-8G>E^fCCDCdxDL8ZS$jZ>efelP~xzKd&hl`=aHn#0TNkNWC z#~w>@)h~R-hSSom@oI4*bW{Y(Z(dnr<2c@LrHg3b-^v%QX)upBDkQR9z)pJnI}%HhQ>D1{r`_q8KVE1w}UxcLN>jfjjxip*fsp- zM+Prs9~8tm6kfl7@z~^EDq{^{Pqnh%n{nhW+R$jccGs>F;mdi$PO-t(%W>S#Dij@g zWMP;gZEGhA;Lh%!|Bb|FUfojNhX|TfP`d5o9b8P1G&!X!@le^Mf!9+sRuY{9%$cD#EsYMhNzD@^*d(rC;4^nWl4%Ngc8teS6!p`)R> zQPiRPU-pCdwQNW*?IwEZ+Q{!y_mrtpo-SyE`hR0`x%>xi#ZM{M>QDo#@SBg`rbC_1*c;i zo^+8fy$WEACs=IKbj(s~YI1j=Nsl$`>e)-fk^PJk* z&WMwn87Hd>Hc3yEFc_pgEW3j(IQQD_aj)O%ykhh~0h5fz%VV`;ei3_#vydnrEJ z-GgEKpt>RrmM8dhy5_`c16xl*SX@mUuc(KsK|Y(B9d(CKn?;fyslgGotFad4(eivS ztaMY1@K!2wa0npcb?vPb17v|-qFshp`dBF$AOtjJ69!BGGJq@kxI>nqW$@9Yx>mE4 zWahK@eOKGxc=fdLL06xV1whNK)$J5Rk{biNN-jPSoDmG>k2(6QcAO8wI-mM`Ss*t` zjwiG%wqNq7^RF>FY0$(+!f_^m=!Gk-5tHA*pJXbX9Yr>x7<#zgbc%5kW8!LS%>+1(Hx8xd&1<7O3H@AsEUY_td&swT`Wi2F_Kz+OXQyUlHEm}Ka<%~V^rPQD)>^PA1ON6fZl+{xA06X{pb zLinj9!)QLO)IvgUcSS>gxo~~Hf%Vt-;WIXP`q!bEli92SV7)+D(Ug%rTK(4k= zO{>S_L%AE7`)k3?gA#__-nx-N;X^p2ni|@hkL3!)w4}(Eq|+bRBr`Nuc471QRSvv+ zRdD3)-2wbD9&Z7I&|u~-|G~)Lg^BN7h-Yen7>AAWCol4{Xe$<`(R_I!3#$%&9vrhfA)pd*j+%q;*+URevo8Sx+o#dA@#Smj$s$dxyK*3 zCNZPOo%t_m)bpz8f1(gw zwVp@FtT+(wY4fH) zz^Gg!I1)H=!?SBHKhaK^VymVK8_DG=s9yPK6F1RpV!v?R$7Sh+$?!?2w+@(leBS!f zp_3R&Gn$>)&V^sxd|8Ii##^_&amrORN8E$SrY+X|;eX4klRXqH(c>bPY-GMO9N)>u z7;8D42}ee7LCRz3u6a20dJ;X&;}l}V90C0^3D6_|yp8;+UjP>5P#H7B;+L15%FJ|M zw;{qi&sdLfcAj)N7zoszU#|>!?`^te@>2WB+tr^UECZ?@d(TF!%259VOD5`r4Tjeo z{~X9Ogz?;+no3=aX;eU8`P5?YL^A!LAQV61Xfp;8)kUa@3Vw^753pNnpRDQ{9jtVe zI-!>xkBf*2G4nT|nSpS$D=|G-g9zxUoq?QnVNy~b*qYe7xT4md?4vG#L7oj6z2(478@v*3)4@Dd@&QeJsjA2o}H!-S? zmL3#oTg-F<`koHuK7(8zPwt~1xfGF%gQFYt#k<*HEjn%a4Zv}cbZk|-*hXC3?^KLm zr&^nYi*(0^{CE%Bt2Mj+Iot)F!H-zl4AZL9Q*+5V;gDYGudN~A*Af)F(crRp#q@p4OCm`V7pHlmN_V(0j7NIS}Uy@n+47!T)$)`sz?4PMiBQAH4W}B8VM2!xqn7^BP@$v8==6^+Mw)!2cm|mGdlxSE|e2R-SNm{v*OS> zDSQd}j{JSL{CGE)qny0#a2%cxNBT2HFeCkJ7oVQWZ(gs-Jv|}0eBcg$*$4vhji*7~ zvB|AI7qw*=OXwt|lTRaWMylO>@)%yD-22j^gAzUHgYk7oC8)9wa@LyWv`%zRO&Qi2 zNk^x?_dW_Zc@R6K4YC5L@yq6-BLRxtkKP1NWSj<>LHgyh9L{eWUT|~Yp2&@Ya$&C; zw-2L+_HR2QNUJaZCUomXm`m<0Q_Qc5}k?gF-^2ANc$^P{h zZYJ#WQ-CuC4jzf(q0F&cV>DY73C`8Bwpses%fFpwoaQ4D8vzsn0FM*V=zr4JjGZ!m zYu6P+tNT3a>)^`R_G-l#;UGPV&LsiUH3t-aF^+r8A2$dZxxy9T-y8W%drLoXqlahdnt~ z2fO4O=a4kWPM0H9W%)%|GD!eIdHvn-zl`gYg41B^-M?8;)#}3voTX-@tk7I|JE!2U;m-e zcB))!vU)%M!-^aF=&kj9y5WbFH?*ULKIE~r)jy&q;~;ukiWhDMLzCzQ)NvX z>c>0+c=}>2T|0em$!SRwCpDwdk46iHG)M(r>-OI}PL~M#?`RbY21Qpm9^9?YIfsW3 z)ah@S_YX@Sq#Y&C13D&q#(<^3U<^h@SAZ`T0COXd-|7HUG4B%()CLHhmJHe2{0lTW zp~x@y%#Te;Rl{Kiym#BihS7K7Szif8TDiB!$ch7DZ^TE@`gRbDYVXE|mcdrl;M}7k z4@2!ijeK(gj}ZUNCct9<2pkDG1#()IDH!M!=F;+bLGi;3iI=<6Sh=%MgEWCrQiiPa z&;59_*H&(kNMhxLS-I`2Fet-_8^YtA!Vv#jPY5r=L46pKcHs2VJudm+^UY4z1$(^5k7{C8eF}u8 zLj2`0?)`gKzrP?|o-&4%^Spu^cS?xG8-)x4!2_6;L`YccB0JkxyqrAjqP}8oV2;m#wN-2UiIL- zJ|r}Me0At$@6gw^Fb@xXWUa1#A5siiJsz>|Tr`!|rYfwPfUn80(qoIb;<5`^aY3<#RK!=cLnqMmNYM1V!70RM&@zTyqQ48 zvEPR=wo2%MZ`cSmTnn+So?z$Uv@J${#7h>2o5RK4M}yXp?@$*0wIAe3?Q1#I2JJFY zLPZ{GBa~(S8o#J4oUlWDC1W zokBgmH1t1}1@6Q%XfaiIK0HTtG))r{Cd=uuaWOUQ6C>tg2yICos8k$zB&Wuh069tN zz4#XWdJWrl&7HW*>Q+7Zv)v<+Hy+zoZpOOaT6jnY3KIjgS9Uu$lNF zO5dB!k{H?Lw)$jTYiDZMcGqv;e^gOdy3N~1x?y^%#=G4n97h*so4d+wDP2$6UR-mH z=DwP6+_l3DHqRN-UCs@wJ5Q0an1eVa`tx=HxG_>loCDt!w4}b;Bq1T^`*jmwtWo+> z-9T?IQn}~~eD7HM`K-WSpr1#pLs3R>G`v5v+?DN@g{#_sTGbM7v`G~ zyVqum6aTN;t~?&f^=~WUh$xau8e3F$oueX4+Q`~sYqDmP!j~PX_8DkvGOk>P=pX!|V{p>7Y%=MtkL)0=(V(tQW$WkFr31vS)@-SNV#pY~od4_MolUi?| zSJb_76zUg()5@H$BWgieloyLlo944G&W1LN!S4ZAtF15a17TbfoGp>Hs1FnEjJXf_ z$Q`c3duDgRo*=gg3<~|6*Y5kirHh|-^?q{=i!^tso@q=Ct4^|c)*e|dC5?F{(WHMl zPq7^>k>N?$|2(gMSKCtH3&N%Cve*`=+x|(5MzfU{nDI@BaKt~)qq0pA-=K)EQT&wt z%;#rPujAp-#jcd_&kg1}O=JoW7Hz$9pU9r)<@zC5nxPF-JDDm4_&3|`shrxyy^&rI zo800d8&S)fh~86NGb)CVR%Z{6=QRCNjRf{D;-z+jH8}d4+1-%`&sK{hc?OnPdrbS{ zy;_qN`cuTUD`U3HfnQmBX?+xSku8sIjcI>31!E&d48#cOpLYnD_JdH2i?!96sMTvo zPHNk?h8wcSpt2yJ*&c0+JD5EWyp^zuETN1a$RdgHTusg!eoDJ@f%<5~$mOcz(*0!+ z{Cy+6@jT- zhag-KyeOw2i_w&YomnN8`O+39&k*DN^}CTQ5=jT!*K^a>k2-HXc!m zo%PH%jx5~69|mq)*d4Y>Hb$u2Ng$!UO$vz2aF1J0)K$F>VCnG*Zo;%0#RB{YkTfb8Hw9c!Xm707R| zRN7K*?A*oMcCHxC2D6U0|0|_mujR{!e?p2 z9K(0Av;`qiv*y%{w@_ZEt8hpU zI>Dotd>zDakAS6gkiwUcyLr(l*E&_e2v2_R@%Ew@Ea)4kA&wW}6faA0VVN zME2I-lk1koZ`hL2<o-_bCC>T~nU!J8=EvL)Mij1ohn zaaP$u#Nc&uq9}Wxl2%X$j(@4 zoaJpi0hHF@F+n0N4 zoOipv$he~x@GPB8t+27`S^cPwR*`QxZ)I@+-TGMh7NMDD%Vz_b=5ttdMisHI##!#l z!(VWEo)OqjHz{dKkmzT1Tw$`RYRfk>dv~`N8E=28lpwd3~2n|dSup8w$J`@O(lOO}>iJjr!!Q$Kqz)DFJgOZzR0;3zWq z{K2G!z6#PX8sBQ5XniQoVh=vT3tHe`j5FiK!=I{&>v?!~eumgu#nD(@q!|XpC3o%2 z(~hPqcAR^!-+=}on>UYwVeNynV09tLNOupuUcoM`ImTMzJ6>r|Yj3*?j`}!G;fqa* z$YNmF#+s|1l7-3`2a>aC{rBUS^N-Ruc`0O`3JDHvqySEhUqvA>Qk2NB2+U8l0GogK zb(sF!Jf8*P&Bs8yuHZ%Bo#)-LpCd9WkLCVvVK?>K_IvLEeJ3t~4ni$QD-B;J5I ziNi?rPo*L9r-<)YE%X;D@mG%WivtK|g5Z7rAs_xKp8g^n{#P4Zf0^-Uhp_-S@0U?>y;e0|!#KaYz3(~GQxXc9UEi&a0c89Hk%&oj3Q3b3>B%s+g2 z3QD%0>O7xEMNJgrUg!)_RJt=7>iI>M*GvR16TeEKsg7G z)(}59Wf8vGUPY{24A$@|w!JV|xhw!6Y^(6GvniO1F{+hr#NY}`^dH1*SPajTtG=X0 zO!%tbMM)i~^E8rSj0A5C`j$5L`?S)AIg5c`asAwJ%sKuC>RR#vyh$myqN>cH-j>Yv z#wD5h@d%S_vnt6m%lg7x<%!6U(@{noZoigv1=iDL$71!%7pODNZWzhq8~v;VfNwVS zqP}Yx5`x21Z0gEaQHM?^0mgIZJ>-3WN&ZUu8n$~1(ZxHIT}fk8N?(RVcoBJ#$8q@g znD4Vsm_FXn)!@#g>c#qYXRV?OZC){rOQQnV$>91G(@4UDliItKWT|;4nzI$MSv#<} z#|lHj&!rlgn9X!i!5jGU_D!d(orLQnYhx=-nMSsnqo^<$S7`8|ZXNLv&I9zJ0b%JXmL%>vZ-7*>FVGrRQ=j+7I^ zHPi<9;gzo7aV6-vKMAV+y<~T~y7=|j_A+hABN@`XYEMyu+Gu{wWQQmL`E`4b-TnlTSU1C! zek!_Vv1YNQtaTB$Dm;*R*RItJ0bRxWBojqAm_<^N4fd1cg6Yjs$4L`^yf<%pS5GX= zirmgGIi4$u?V3Wwv+vp^V^QTBgMFab@-vMQPQ(<);=~CFOjxBdmjcD)Gh$%s?01fp zImNLsE?x~&K28hT3IlS~jgtCUP2At#scFlVsgWTbkoZ|L8@Xwu+yNubm_#71GqdWt z#=UDJSWP9GK2fK+eHwD>^L{|OCIpwF zoN(p%rp|)(JQmO&`qN|r78|)nB2t3m5`}=`kH)`o&rDTR;Zr&M@cfbRUb^5~PLHb^ z{1f1C)6Ed&)S67kTxZ9^OS!JVuHW8?qUa`pf_Bp%yi8w_56;A-1V#|@oz*iMsY7w1(?<%{<+oI zovaq7b&o{4h>r(oqt4^$=H%rXmpf1Q_`;fczn}7v=t}oYUcj(rA zdSbsMrWghh-dweD(cE|qgVvHf+)kdem6Fa%MwMtqO`pOj->A?8x#fwrHl_X5q1K+5 zTcBoJK9dAaUfX_uNM8CwrPofnZ9yW}HANzZw$;8peClCr!*ql-RZC9jl5j;KvfyKS zoQta7N_}76mELqo*Z$36Od|9Bl>M~v-(dfCo#z7nEgMn^gvvmCr zgn8h=dL{|ufST7*hmo1kfmLTYWjeNG)GfnJ1%QoS;p7aqz>ig^ML-(3+J+M62DpmS z@XBV~KAuBU#4wABIgcTem$m9NBOtOHMk6d;N2g0T`bXMySPlEZ3%YCwaMhK^k6>h2 zlV(P;dPg;pnLd1jRpXDvp*y=@01_cwZ_2}~)e3}XrdBv3$=UX_*2jw1WHK%kS*z1T47F8Od|CPV30oxX(7N=J|rLhlnyze={$<5 z76tj9W3N9bB|hr!_I~cPKdtjTq+efGF|jC-=lf=D(ByqU;We)>=s=O%{0G{4cb^C) zCzeFNSrK{H#kt|7ldX=y+g$=;drX@s-&_~RFh}|}E>GMBJcTJ|GpV?vKIpn*P*t)- zx1X_`|f%_dZt z0Dd_L-_H+gIlli%}z8fb&x^H0o7rA-6Dmn~0R{8o5 zY3rY!lv8Z^5mDpQ;rVH#1kH`Jds(qS(lo2TU{~Q~!5gB~$I%5c!fCF9vSNKo#14a- z@d`D1x_h?tDP^^F)+2yy$t2~@AieHgL2}{1aGuc}1R<}<&qSEGhWt=hE&nwVxffVi zMvoa^E*g)_W`*~XF=G+eqHsp#8&!1FWIp5urrwlVF`>;I?)u4%^OW80Bqd#Y(bH3B z*CkK0)aV@UE}LHYS6#vpl(upmyV{uOLT5+UfzPxu!%(`!fETAE+9lx2K}@}loj$w= zZ85r7=Yp^V>p}Rx4&OKUBy#jK<1V0tnoC!&JF$Oo--OJfSS=(-A;mhCm**Dlm~no> zaV+XUt32K~vI_HMMeMdr`vz@A3MmLel6uvlC@!F5w z5bbX{9^kb>ELUS0uacCx?@ec$YEo1f6G~|@y5c{G9{s=sTB;y0><*HN=`qt;5E&|J!OEYll68*au;Op{A)2(X zt&wDpQ0s}*`jeTt>>-KcZ=x;EL;sxI5qyt1Sxj_`f0 zo0Y&+6@BK%DR}_YeSGJebpin_wn*I05uH{hrUqNTYXv3^$ielerzU%!`@J924}rc1 z&TP`HdL1TrO8F&cnI8oqhZ_HEpJuCETBz(6f~oEAb{j?xPOV!&zqYXY?ZjZpwu<)$ zZtfF~aOMOl*zbSq+!YPeduF3DwLBl&;AO;;{lhQw@wR;L^yf7`;bQRmSaKas#heMG zjd+{_fm2Dp=ECx2{WOsR52&AE$_8N~Q*!uyFlX(r4grS^!-ZOR!}FXr!-dkGK>zT^ zXHAW@eM{MtVK{T*+T>g>+sXqK+1Oy7yPuCy#m7A(&C_%BH*_W)Lpjr|G5zrxZk>0TuE2+VKF>`*6UXeNCRqc(tR#HivRsA;X ztjpIH`9EuUQ$lk#!|qIvdQu;eaEO3a9K~!RComdc5Vvul%_iWUL)fE1V_jRFOadjl zAmmkFJ9=zQDjeVs1ke#x}%C5c4 zle&8}XM~ojIm<8hSC{H}WiHrDcYUE`AGY-tYGF1e#;1`ei+#y;uSbGEP_<{#NHC28 z^a?a(=#MpSrKk)UU(yCi+tkar*W$QYA*#E3Y)I1SJTPF-tH)7#uQU|4^~8Q%h`_pv zuFsal+4-2MyaUocQsH~P$c_#rbjD#{jpUQPL$T!0@fNpi{%3B>(xay3(uC z!vg>J$(|VK2_Xwnq5lL~{4!tq?o%OD~(%MG9>bHzTJN@qpuHIdVr2r z8ZR>%7BPk+$f)n}9YF$2mG06**y_+9-`U+B0x4}KtyfTg7Xf0R<5Vi>xG~>kqf(9b?iC9b5<`P=k&JE35SvcZ}$Futoz-e z%Id%$m)V6Bg3}^WPF->|wU{rsU~>9!;}0hdfi{IZng9GL!a~xg(k+NBLe&&8q?_}j OmBj^{^A%?9G5-UMqn^6} diff --git a/docs/CI-CD_DOCUMENTATION/Dependabot_dependency_graph.png b/docs/CI-CD_DOCUMENTATION/Dependabot_dependency_graph.png deleted file mode 100644 index b3a122b9800d142ac4c8a8ff4ad67d0535ea6e96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53551 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