From 0aa3b5f97a973967b5121f0e26e4ffdc8fb9b5bc Mon Sep 17 00:00:00 2001 From: Tom Biddulph Date: Sat, 24 Jan 2026 18:10:44 +0000 Subject: [PATCH 1/5] v2 with administration support --- .github/workflows/build-push-container.yaml | 60 - .github/workflows/ci.yml | 116 + .github/workflows/release.yml | 117 + .gitignore | 2 +- Components/App.razor | 23 - Components/Layout/MainLayout.razor | 137 - Components/Layout/NavMenu.razor | 42 - Components/Pages/Error.razor | 36 - Components/Pages/Home.razor | 80 - Components/Pages/Queue.razor | 344 - Components/Routes.razor | 6 - Components/_Imports.razor | 18 - Config/ServiceBusConfig.cs | 16 - Dockerfile | 23 - GitVersion.yml | 33 + Helpers/CacheKeyHelper.cs | 10 - Helpers/ConfigParser.cs | 331 - LICENSE | 21 - Program.cs | 88 - Properties/launchSettings.json | 38 - README.md | 55 - SbExplorer.Mud.csproj | 20 - SbExplorer.Mud.sln | 25 - Services/CachingServiceBusClient.cs | 62 - Services/ServiceBusAdmin.cs | 49 - Services/ServiceBusUpdater.cs | 94 - app/sb-explorer-ui/.gitignore | 24 + app/sb-explorer-ui/README.md | 73 + app/sb-explorer-ui/eslint.config.js | 23 + app/sb-explorer-ui/index.html | 13 + app/sb-explorer-ui/package-lock.json | 5881 +++++++++++++++++ app/sb-explorer-ui/package.json | 45 + app/sb-explorer-ui/public/vite.svg | 1 + app/sb-explorer-ui/src/App.css | 42 + app/sb-explorer-ui/src/App.tsx | 65 + app/sb-explorer-ui/src/api/client.ts | 346 + app/sb-explorer-ui/src/api/hooks.ts | 165 + app/sb-explorer-ui/src/api/types.ts | 60 + app/sb-explorer-ui/src/assets/react.svg | 1 + .../src/components/AppError.tsx | 21 + .../src/components/EntityHeader.tsx | 78 + .../src/components/EntityOverviewCard.tsx | 28 + .../src/components/EntityTable.tsx | 139 + .../src/components/MessageDetailPanel.tsx | 44 + .../src/components/MessageGrid.tsx | 155 + .../src/components/MessagePropertiesTable.tsx | 53 + .../src/components/MessageTabs.tsx | 22 + .../src/components/MockBanner.tsx | 27 + app/sb-explorer-ui/src/components/NavTree.tsx | 182 + .../src/components/SideDrawer.tsx | 48 + .../src/components/StatusPill.tsx | 19 + .../dialogs/ConfirmActionDialog.tsx | 27 + .../components/dialogs/CreateQueueDialog.tsx | 98 + .../dialogs/CreateSubscriptionDialog.tsx | 60 + .../components/dialogs/CreateTopicDialog.tsx | 39 + .../components/dialogs/SendMessageDialog.tsx | 116 + app/sb-explorer-ui/src/index.css | 75 + app/sb-explorer-ui/src/main.tsx | 26 + app/sb-explorer-ui/src/routes/AppShell.tsx | 227 + app/sb-explorer-ui/src/routes/QueueDetail.tsx | 192 + app/sb-explorer-ui/src/routes/Queues.tsx | 81 + app/sb-explorer-ui/src/routes/TopicDetail.tsx | 292 + app/sb-explorer-ui/src/routes/Topics.tsx | 71 + app/sb-explorer-ui/src/theme.ts | 99 + app/sb-explorer-ui/src/vite-env.d.ts | 1 + app/sb-explorer-ui/tsconfig.app.json | 28 + app/sb-explorer-ui/tsconfig.json | 7 + app/sb-explorer-ui/tsconfig.node.json | 26 + app/sb-explorer-ui/vite.config.ts | 40 + compose.yaml | 47 +- image.png | Bin 735547 -> 0 bytes sb-explorer.slnx | 11 + service-bus-config.json | 149 - .../AppJsonContext.cs | 18 + src/ServiceBusEmulatorExplorer/Dockerfile | 43 + .../Endpoints/DeadLetterEndpoints.cs | 79 + .../Endpoints/QueueEndpoints.cs | 174 + .../Endpoints/SubscriptionEndpoints.cs | 161 + .../Endpoints/TopicEndpoints.cs | 109 + .../Extensions/BuilderExtensions.cs | 88 + src/ServiceBusEmulatorExplorer/Helpers.cs | 22 + src/ServiceBusEmulatorExplorer/Models.cs | 104 + src/ServiceBusEmulatorExplorer/OtlpConfig.cs | 8 + src/ServiceBusEmulatorExplorer/Program.cs | 137 + .../Properties/launchSettings.json | 25 + .../ServiceBusConfig.cs | 9 + .../ServiceBusEmulatorExplorer.csproj | 84 + .../ServiceBusEndpointCache.cs | 37 + .../ServiceBusExceptionHandler.cs | 135 + .../appsettings.Development.json | 0 .../appsettings.json | 9 +- .../sb-explorer.http | 6 + .../GlobalSetup.cs | 22 + .../ServiceBusEmulatorExplorer.Tests.csproj | 19 + .../TestServiceBusClient.cs | 318 + .../ServiceBusEmulatorExplorer.Tests/Tests.cs | 61 + .../WebApplicationFactory.cs | 22 + wwwroot/favicon.ico | Bin 15086 -> 0 bytes 98 files changed, 11039 insertions(+), 1764 deletions(-) delete mode 100644 .github/workflows/build-push-container.yaml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/release.yml delete mode 100644 Components/App.razor delete mode 100644 Components/Layout/MainLayout.razor delete mode 100644 Components/Layout/NavMenu.razor delete mode 100644 Components/Pages/Error.razor delete mode 100644 Components/Pages/Home.razor delete mode 100644 Components/Pages/Queue.razor delete mode 100644 Components/Routes.razor delete mode 100644 Components/_Imports.razor delete mode 100644 Config/ServiceBusConfig.cs delete mode 100644 Dockerfile create mode 100644 GitVersion.yml delete mode 100644 Helpers/CacheKeyHelper.cs delete mode 100644 Helpers/ConfigParser.cs delete mode 100644 LICENSE delete mode 100644 Program.cs delete mode 100644 Properties/launchSettings.json delete mode 100644 README.md delete mode 100644 SbExplorer.Mud.csproj delete mode 100644 SbExplorer.Mud.sln delete mode 100644 Services/CachingServiceBusClient.cs delete mode 100644 Services/ServiceBusAdmin.cs delete mode 100644 Services/ServiceBusUpdater.cs create mode 100644 app/sb-explorer-ui/.gitignore create mode 100644 app/sb-explorer-ui/README.md create mode 100644 app/sb-explorer-ui/eslint.config.js create mode 100644 app/sb-explorer-ui/index.html create mode 100644 app/sb-explorer-ui/package-lock.json create mode 100644 app/sb-explorer-ui/package.json create mode 100644 app/sb-explorer-ui/public/vite.svg create mode 100644 app/sb-explorer-ui/src/App.css create mode 100644 app/sb-explorer-ui/src/App.tsx create mode 100644 app/sb-explorer-ui/src/api/client.ts create mode 100644 app/sb-explorer-ui/src/api/hooks.ts create mode 100644 app/sb-explorer-ui/src/api/types.ts create mode 100644 app/sb-explorer-ui/src/assets/react.svg create mode 100644 app/sb-explorer-ui/src/components/AppError.tsx create mode 100644 app/sb-explorer-ui/src/components/EntityHeader.tsx create mode 100644 app/sb-explorer-ui/src/components/EntityOverviewCard.tsx create mode 100644 app/sb-explorer-ui/src/components/EntityTable.tsx create mode 100644 app/sb-explorer-ui/src/components/MessageDetailPanel.tsx create mode 100644 app/sb-explorer-ui/src/components/MessageGrid.tsx create mode 100644 app/sb-explorer-ui/src/components/MessagePropertiesTable.tsx create mode 100644 app/sb-explorer-ui/src/components/MessageTabs.tsx create mode 100644 app/sb-explorer-ui/src/components/MockBanner.tsx create mode 100644 app/sb-explorer-ui/src/components/NavTree.tsx create mode 100644 app/sb-explorer-ui/src/components/SideDrawer.tsx create mode 100644 app/sb-explorer-ui/src/components/StatusPill.tsx create mode 100644 app/sb-explorer-ui/src/components/dialogs/ConfirmActionDialog.tsx create mode 100644 app/sb-explorer-ui/src/components/dialogs/CreateQueueDialog.tsx create mode 100644 app/sb-explorer-ui/src/components/dialogs/CreateSubscriptionDialog.tsx create mode 100644 app/sb-explorer-ui/src/components/dialogs/CreateTopicDialog.tsx create mode 100644 app/sb-explorer-ui/src/components/dialogs/SendMessageDialog.tsx create mode 100644 app/sb-explorer-ui/src/index.css create mode 100644 app/sb-explorer-ui/src/main.tsx create mode 100644 app/sb-explorer-ui/src/routes/AppShell.tsx create mode 100644 app/sb-explorer-ui/src/routes/QueueDetail.tsx create mode 100644 app/sb-explorer-ui/src/routes/Queues.tsx create mode 100644 app/sb-explorer-ui/src/routes/TopicDetail.tsx create mode 100644 app/sb-explorer-ui/src/routes/Topics.tsx create mode 100644 app/sb-explorer-ui/src/theme.ts create mode 100644 app/sb-explorer-ui/src/vite-env.d.ts create mode 100644 app/sb-explorer-ui/tsconfig.app.json create mode 100644 app/sb-explorer-ui/tsconfig.json create mode 100644 app/sb-explorer-ui/tsconfig.node.json create mode 100644 app/sb-explorer-ui/vite.config.ts delete mode 100644 image.png create mode 100644 sb-explorer.slnx delete mode 100644 service-bus-config.json create mode 100644 src/ServiceBusEmulatorExplorer/AppJsonContext.cs create mode 100644 src/ServiceBusEmulatorExplorer/Dockerfile create mode 100644 src/ServiceBusEmulatorExplorer/Endpoints/DeadLetterEndpoints.cs create mode 100644 src/ServiceBusEmulatorExplorer/Endpoints/QueueEndpoints.cs create mode 100644 src/ServiceBusEmulatorExplorer/Endpoints/SubscriptionEndpoints.cs create mode 100644 src/ServiceBusEmulatorExplorer/Endpoints/TopicEndpoints.cs create mode 100644 src/ServiceBusEmulatorExplorer/Extensions/BuilderExtensions.cs create mode 100644 src/ServiceBusEmulatorExplorer/Helpers.cs create mode 100644 src/ServiceBusEmulatorExplorer/Models.cs create mode 100644 src/ServiceBusEmulatorExplorer/OtlpConfig.cs create mode 100644 src/ServiceBusEmulatorExplorer/Program.cs create mode 100644 src/ServiceBusEmulatorExplorer/Properties/launchSettings.json create mode 100644 src/ServiceBusEmulatorExplorer/ServiceBusConfig.cs create mode 100644 src/ServiceBusEmulatorExplorer/ServiceBusEmulatorExplorer.csproj create mode 100644 src/ServiceBusEmulatorExplorer/ServiceBusEndpointCache.cs create mode 100644 src/ServiceBusEmulatorExplorer/ServiceBusExceptionHandler.cs rename appsettings.Development.json => src/ServiceBusEmulatorExplorer/appsettings.Development.json (100%) rename appsettings.json => src/ServiceBusEmulatorExplorer/appsettings.json (61%) create mode 100644 src/ServiceBusEmulatorExplorer/sb-explorer.http create mode 100644 test/ServiceBusEmulatorExplorer.Tests/GlobalSetup.cs create mode 100644 test/ServiceBusEmulatorExplorer.Tests/ServiceBusEmulatorExplorer.Tests.csproj create mode 100644 test/ServiceBusEmulatorExplorer.Tests/TestServiceBusClient.cs create mode 100644 test/ServiceBusEmulatorExplorer.Tests/Tests.cs create mode 100644 test/ServiceBusEmulatorExplorer.Tests/WebApplicationFactory.cs delete mode 100644 wwwroot/favicon.ico diff --git a/.github/workflows/build-push-container.yaml b/.github/workflows/build-push-container.yaml deleted file mode 100644 index dd6f400..0000000 --- a/.github/workflows/build-push-container.yaml +++ /dev/null @@ -1,60 +0,0 @@ -# -name: Create and publish a Docker image - -# Configures this workflow to run every time a change is pushed to the branch called `release`. -on: - push: - branches: ["release"] - workflow_dispatch: - -# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds. -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - -# There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu. -jobs: - build-and-push-image: - runs-on: self-hosted - # Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job. - permissions: - contents: read - packages: write - attestations: write - id-token: write - # - steps: - - name: Checkout repository - uses: actions/checkout@v4 - # Uses the `docker/login-action` action to log in to the Container registry registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here. - - name: Log in to the Container registry - uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - # This step uses [docker/metadata-action](https://github.com/docker/metadata-action#about) to extract tags and labels that will be applied to the specified image. The `id` "meta" allows the output of this step to be referenced in a subsequent step. The `images` value provides the base name for the tags and labels. - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - # This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages. - # It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository. - # It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step. - - name: Build and push Docker image - id: push - uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - - # This step generates an artifact attestation for the image, which is an unforgeable statement about where and how it was built. It increases supply chain security for people who consume the image. For more information, see "[AUTOTITLE](/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds)." - - name: Generate artifact attestation - uses: actions/attest-build-provenance@v2 - with: - subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}} - subject-digest: ${{ steps.push.outputs.digest }} - push-to-registry: true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..550823e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,116 @@ +name: CI + +on: + push: + branches: + - '**' + pull_request: + branches: + - main + +jobs: + version: + runs-on: ubuntu-latest + outputs: + semVer: ${{ steps.gitversion.outputs.semVer }} + majorMinorPatch: ${{ steps.gitversion.outputs.majorMinorPatch }} + preReleaseTag: ${{ steps.gitversion.outputs.preReleaseTag }} + fullSemVer: ${{ steps.gitversion.outputs.fullSemVer }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Full history needed for GitVersion + + - name: Install GitVersion + uses: gittools/actions/gitversion/setup@v3.1.1 + with: + versionSpec: '5.x' + + - name: Determine Version + id: gitversion + uses: gittools/actions/gitversion/execute@v3.1.1 + with: + useConfigFile: true + + - name: Display Version + run: | + echo "SemVer: ${{ steps.gitversion.outputs.semVer }}" + echo "FullSemVer: ${{ steps.gitversion.outputs.fullSemVer }}" + + build-and-test: + runs-on: ubuntu-latest + needs: version + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '10.0.x' + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + cache-dependency-path: app/sb-explorer-ui/package-lock.json + + - name: Install frontend dependencies + working-directory: app/sb-explorer-ui + run: npm ci + + - name: Build frontend + working-directory: app/sb-explorer-ui + run: npm run build + + - name: Restore .NET dependencies + run: dotnet restore -r linux-musl-x64 + + - name: Build .NET solution + run: dotnet build --no-restore --configuration Release -p:Version=${{ needs.version.outputs.semVer }} + + - name: Run tests + run: dotnet run --project test/ServiceBusEmulatorExplorer.Tests/ServiceBusEmulatorExplorer.Tests.csproj --configuration Release + + docker: + runs-on: ubuntu-latest + needs: [version, build-and-test] + # Only run on main branch pushes, not on tags (release.yml handles tags) + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + permissions: + contents: read + packages: write + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v6 + with: + context: . + file: src/ServiceBusEmulatorExplorer/Dockerfile + push: true + build-args: | + VERSION=${{ needs.version.outputs.semVer }} + tags: | + ghcr.io/${{ github.repository }}:${{ needs.version.outputs.semVer }} + ghcr.io/${{ github.repository }}:latest + labels: | + org.opencontainers.image.version=${{ needs.version.outputs.semVer }} + org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }} + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..d5936a7 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,117 @@ +name: Release + +on: + push: + tags: + - 'v*' + +jobs: + version: + runs-on: ubuntu-latest + outputs: + semVer: ${{ steps.gitversion.outputs.semVer }} + majorMinorPatch: ${{ steps.gitversion.outputs.majorMinorPatch }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install GitVersion + uses: gittools/actions/gitversion/setup@v3.1.1 + with: + versionSpec: '5.x' + + - name: Determine Version + id: gitversion + uses: gittools/actions/gitversion/execute@v3.1.1 + with: + useConfigFile: true + + build-and-test: + runs-on: ubuntu-latest + needs: version + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '10.0.x' + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + cache-dependency-path: app/sb-explorer-ui/package-lock.json + + - name: Install frontend dependencies + working-directory: app/sb-explorer-ui + run: npm ci + + - name: Build frontend + working-directory: app/sb-explorer-ui + run: npm run build + + - name: Restore .NET dependencies + run: dotnet restore -r linux-musl-x64 + + - name: Build .NET solution + run: dotnet build --no-restore --configuration Release -p:Version=${{ needs.version.outputs.semVer }} + + - name: Run tests + run: dotnet run --project test/ServiceBusEmulatorExplorer.Tests/ServiceBusEmulatorExplorer.Tests.csproj --configuration Release + + release: + runs-on: ubuntu-latest + needs: [version, build-and-test] + permissions: + contents: write + packages: write + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v6 + with: + context: . + file: src/ServiceBusEmulatorExplorer/Dockerfile + push: true + build-args: | + VERSION=${{ needs.version.outputs.semVer }} + tags: | + ghcr.io/${{ github.repository }}:${{ needs.version.outputs.semVer }} + ghcr.io/${{ github.repository }}:${{ needs.version.outputs.majorMinorPatch }} + ghcr.io/${{ github.repository }}:latest + labels: | + org.opencontainers.image.version=${{ needs.version.outputs.semVer }} + org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }} + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + generate_release_notes: true + name: v${{ needs.version.outputs.semVer }} + body: | + ## Docker Image + + ```bash + docker pull ghcr.io/${{ github.repository }}:${{ needs.version.outputs.semVer }} + ``` diff --git a/.gitignore b/.gitignore index 08f54b0..bc78471 100644 --- a/.gitignore +++ b/.gitignore @@ -421,7 +421,7 @@ autom4te.cache/ *.tar.gz tarballs/ test-results/ -data/ + # Mac bundle stuff *.dmg *.app diff --git a/Components/App.razor b/Components/App.razor deleted file mode 100644 index 09a2087..0000000 --- a/Components/App.razor +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Components/Layout/MainLayout.razor b/Components/Layout/MainLayout.razor deleted file mode 100644 index b3dac99..0000000 --- a/Components/Layout/MainLayout.razor +++ /dev/null @@ -1,137 +0,0 @@ -@using Microsoft.Extensions.Caching.Distributed -@using Microsoft.Extensions.Options -@using SbExplorer.Mud.Helpers -@inherits LayoutComponentBase - - - - - - - - - Service Bus Explorer - - - - Clear cache - - - - - - @Body - - - - -
- An unhandled error has occurred. - Reload - 🗙 -
- -@code { - private bool _drawerOpen = true; - private bool _isDarkMode = false; - private MudTheme? _theme = null; - [Inject] private IDistributedCache DistributedCache { get; set; } = null!; - [Inject] IOptions EmulatorConfig { get; set; } = null!; - [Inject] NavigationManager NavigationManager { get; set; } = null!; - protected override void OnInitialized() - { - base.OnInitialized(); - - _theme = new() - { - PaletteLight = _lightPalette, - PaletteDark = _darkPalette, - LayoutProperties = new LayoutProperties - { - DefaultBorderRadius = 50.ToString() - }, - Typography = new Typography() - { - Default = new Default() - { - FontFamily = new[] { "Poppins", "Helvetica", "Arial", "sans-serif" } - } - } - }; - } - - - private async Task ClearCache() - { - foreach (var emulatorNamespace in EmulatorConfig.Value.UserConfig.Namespaces) - { - foreach (var emulatorNamespaceQueue in emulatorNamespace.Queues) - { - await DistributedCache.RemoveAsync(CacheKeyHelper.QueueKey(emulatorNamespace.Name, emulatorNamespaceQueue.Name)); - await DistributedCache.RemoveAsync(CacheKeyHelper.DeadLetterQueueKey(emulatorNamespace.Name, emulatorNamespaceQueue.Name)); - await DistributedCache.RemoveAsync(CacheKeyHelper.Queues); - await DistributedCache.RemoveAsync(CacheKeyHelper.Topics); - } - } - - NavigationManager.NavigateTo(NavigationManager.Uri, true); - - } - - private void DrawerToggle() - { - _drawerOpen = !_drawerOpen; - } - - private void DarkModeToggle() - { - _isDarkMode = !_isDarkMode; - } - - private readonly PaletteLight _lightPalette = new() - { - Black = "#110e2d", - AppbarText = "#424242", - AppbarBackground = "rgba(255,255,255,0.8)", - DrawerBackground = "#ffffff", - GrayLight = "#e8e8e8", - GrayLighter = "#f9f9f9", - }; - - private readonly PaletteDark _darkPalette = new() - { - Primary = "#7e6fff", - Surface = "#1e1e2d", - Background = "#1a1a27", - BackgroundGray = "#151521", - AppbarText = "#92929f", - AppbarBackground = "rgba(26,26,39,0.8)", - DrawerBackground = "#1a1a27", - ActionDefault = "#74718e", - ActionDisabled = "#9999994d", - ActionDisabledBackground = "#605f6d4d", - TextPrimary = "#b2b0bf", - TextSecondary = "#92929f", - TextDisabled = "#ffffff33", - DrawerIcon = "#92929f", - DrawerText = "#92929f", - GrayLight = "#2a2833", - GrayLighter = "#1e1e2d", - Info = "#4a86ff", - Success = "#3dcb6c", - Warning = "#ffb545", - Error = "#ff3f5f", - LinesDefault = "#33323e", - TableLines = "#33323e", - Divider = "#292838", - OverlayLight = "#1e1e2d80", - }; - - public string DarkLightModeButtonIcon => _isDarkMode switch - { - true => Icons.Material.Rounded.AutoMode, - false => Icons.Material.Outlined.DarkMode, - }; -} - - diff --git a/Components/Layout/NavMenu.razor b/Components/Layout/NavMenu.razor deleted file mode 100644 index e162846..0000000 --- a/Components/Layout/NavMenu.razor +++ /dev/null @@ -1,42 +0,0 @@ -@using Microsoft.Extensions.Options - - Emulator Overview - - - @foreach (var queue in _queues) - { - @queue - } - - - @foreach (var topic in _topics) - { - @topic - } - - - - - -@code - - - -{ - [Inject] private IOptions EmulatorConfig { get; set; } = null!; - - private List _queues = []; - private List _topics = []; - private string EmulatorNamespace { get; set; } = string.Empty; - - protected override void OnInitialized() - { - - var emulatorNamespace = EmulatorConfig.Value.UserConfig.Namespaces.Single(); - EmulatorNamespace = emulatorNamespace.Name; - _queues.AddRange(emulatorNamespace.Queues.Select(q => q.Name)); - _topics.AddRange(emulatorNamespace.Topics.Select(t => t.Name)); - base.OnInitialized(); - } - -} diff --git a/Components/Pages/Error.razor b/Components/Pages/Error.razor deleted file mode 100644 index 576cc2d..0000000 --- a/Components/Pages/Error.razor +++ /dev/null @@ -1,36 +0,0 @@ -@page "/Error" -@using System.Diagnostics - -Error - -

Error.

-

An error occurred while processing your request.

- -@if (ShowRequestId) -{ -

- Request ID: @RequestId -

-} - -

Development Mode

-

- Swapping to Development environment will display more detailed information about the error that occurred. -

-

- The Development environment shouldn't be enabled for deployed applications. - It can result in displaying sensitive information from exceptions to end users. - For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development - and restarting the app. -

- -@code{ - [CascadingParameter] - private HttpContext? HttpContext { get; set; } - - private string? RequestId { get; set; } - private bool ShowRequestId => !string.IsNullOrEmpty(RequestId); - - protected override void OnInitialized() => - RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier; -} diff --git a/Components/Pages/Home.razor b/Components/Pages/Home.razor deleted file mode 100644 index 5e648cd..0000000 --- a/Components/Pages/Home.razor +++ /dev/null @@ -1,80 +0,0 @@ -@page "/" -@using SbExplorer.Mud.Services - - - - - Queues - - - - - - - - - - - - Topics - - - - - - - - - - - - Subscriptions - - - - - - - - - - -@code { - - [Inject] private NavigationManager NavigationManager { get; set; } = null!; - [Inject] private ServiceBusAdmin ServiceBusAdmin { get; set; } = null!; - [Inject] private ISnackbar Snackbar { get; set; } = null!; - [Inject] private ILogger Logger { get; set; } = null!; - private List Queues { get; set; } = []; - private List Topics { get; set; } = []; - private List Subscriptions { get; set; } = []; - - - protected override async Task OnInitializedAsync() - { - try - { - var queues = ServiceBusAdmin.GetQueues(); - - await foreach (var queue in queues) - { - Queues.Add(queue); - } - - var topics = ServiceBusAdmin.GetTopics(); - - await foreach (var topic in topics) - { - Topics.Add(topic); - } - - Subscriptions.AddRange(ServiceBusAdmin.GetSubscriptions()); - } - catch (Exception) - { - Logger.LogError("Error loading data"); - Snackbar.Add("Error loading data", Severity.Error); - } - } - -} \ No newline at end of file diff --git a/Components/Pages/Queue.razor b/Components/Pages/Queue.razor deleted file mode 100644 index 5aa2032..0000000 --- a/Components/Pages/Queue.razor +++ /dev/null @@ -1,344 +0,0 @@ -@page "/{serviceBusNameSpace}/{queueName}" - -@using System.Text -@using System.Text.Json -@using System.Text.Json.Nodes -@using Azure.Messaging.ServiceBus -@using Microsoft.Extensions.Caching.Distributed -@using SbExplorer.Mud.Helpers -@using SbExplorer.Mud.Services -@($"{ServiceBusNameSpace}/{QueueName}") - - - - - - - - - - - - - - - - - - Message Body - -
-                        @context.Item.Body
-                    
-
- - - - Key - Value - - - @RtContext.Key - @RtContext.Value - - - - -
- - - -
- -
- - - - - - - - - - - - - - - Message Body - @context.Item.Body - - - - - Key - Value - - - @RtContext.Key - @RtContext.Value - - - - - - - - - - - - @* *@ - - - - - Broker Properties - - - - - - - - - - - - - - - - - - Custom Properties - - - - @if (CustomProperties.Any()) - { - - @foreach (var kvp in CustomProperties) - { - @kvp.Key: @kvp.Value - } - - - } - - - Add - - - - Validate - Send - - -
- -@code { - [Parameter] public string QueueName { get; set; } = string.Empty; - [Parameter] public string ServiceBusNameSpace { get; set; } = string.Empty; - [Inject] ServiceBusClient Client { get; set; } = null!; - [Inject] private IDistributedCache Cache { get; set; } = null!; - private string MessageText { get; set; } = null!; - private List Messages { get; set; } = []; - private List DeadLetterMessages { get; set; } = []; - private readonly PeriodicTimer _timer = new(TimeSpan.FromSeconds(5)); - private StandaloneCodeEditor Editor { get; set; } = null!; - private MudTabs Tabs { get; set; } = null!; - private bool IsValidJson { get; set; } - private BrokerProperties BrokerPropertiesModel { get; set; } = new(); - private Dictionary CustomProperties { get; set; } = new(); - private string NewKey { get; set; } - private string NewValue { get; set; } - private bool _brokerPropertiesExpanded; - private bool _customPropertiesExpanded; - - - private StandaloneEditorConstructionOptions EditorConstructionOptions(StandaloneCodeEditor editor) - { - return new StandaloneEditorConstructionOptions - { - AutomaticLayout = true, - Language = "json", - Value = MessageText - }; - } - - protected override async Task OnParametersSetAsync() - { - await LoadMessages(); - - if(Messages.Count is 0 && DeadLetterMessages.Count is 0) - { - Tabs.ActivatePanel(2); - } - } - - protected override async Task OnInitializedAsync() - { - await LoadMessages(); - - if (DeadLetterMessages.Count is 0 || Messages.Count is 0) - { - if(Messages.Count is 0 && DeadLetterMessages.Count is 0) - { - Tabs.ActivatePanel(2); - } - _ = RunTimer(); - } - - StateHasChanged(); - } - - - private async Task RunTimer() - { - while (await _timer.WaitForNextTickAsync()) - { - await LoadMessages(); - if (DeadLetterMessages.Count is not 0 || Messages.Count is not 0) - { - await InvokeAsync(StateHasChanged); - break; - } - } - } - - private async Task LoadMessages() - { - if (await Cache.GetAsync(CacheKeyHelper.QueueKey(ServiceBusNameSpace, QueueName)) is { } activeMessageBytes) - { - var messages = JsonSerializer.Deserialize>(activeMessageBytes); - Messages.Clear(); - Messages.AddRange(messages ?? []); - } - - if (await Cache.GetAsync(CacheKeyHelper.DeadLetterQueueKey(ServiceBusNameSpace, QueueName)) is { } deadLetterMessageBytes) - { - var messages = JsonSerializer.Deserialize>(deadLetterMessageBytes); - DeadLetterMessages.Clear(); - DeadLetterMessages.AddRange(messages ?? []); - } - } - - private async Task SendMessage(MouseEventArgs obj) - { - var sender = Client.CreateSender(QueueName); - var message = new ServiceBusMessage(Encoding.UTF8.GetBytes(MessageText)); - - if (BrokerPropertiesModel.LabelSubject is not null) - { - message.Subject = BrokerPropertiesModel.LabelSubject; - } - - if (BrokerPropertiesModel.CorrelationId is not null) - { - message.CorrelationId = BrokerPropertiesModel.CorrelationId; - } - - if (BrokerPropertiesModel.MessageId is not null) - { - message.MessageId = BrokerPropertiesModel.MessageId; - } - - if (BrokerPropertiesModel.ReplyTo is not null) - { - message.ReplyTo = BrokerPropertiesModel.ReplyTo; - } - - - foreach (var customProperty in CustomProperties) - { - message.ApplicationProperties.TryAdd(customProperty.Key, customProperty.Value); - } - - - await sender.SendMessageAsync(message); - BrokerPropertiesModel.Clear(); - CustomProperties.Clear(); - MessageText = "{}"; - IsValidJson = false; - await Editor.SetValue(MessageText); - _brokerPropertiesExpanded = false; - _customPropertiesExpanded = false; - - Console.WriteLine("Message sent"); - } - - private async Task Validate() - { - var text = await Editor.GetValue(); - try - { - var json = JsonNode.Parse(text); - if (json != null) - { - IsValidJson = true; - MessageText = json.ToJsonString(); - } - } - catch (Exception e) - { - Console.WriteLine(e); - } - } - - private void OnBrokerPropertiesCollapseClick() => _brokerPropertiesExpanded = !_brokerPropertiesExpanded; - private void OnCustomPropertiesCollapseClick() => _customPropertiesExpanded = !_customPropertiesExpanded; - - - public class BrokerProperties - { - public string? CorrelationId { get; set; } - public string? MessageId { get; set; } - public string? ReplyTo { get; set; } - public string? LabelSubject { get; set; } - - public void Clear() - { - CorrelationId = null; - MessageId = null; - ReplyTo = null; - LabelSubject = null; - } - } - - private void AddTableRow() - { - if (!string.IsNullOrEmpty(NewKey) && !string.IsNullOrEmpty(NewValue)) - { - CustomProperties[NewKey] = NewValue; - NewKey = string.Empty; - NewValue = string.Empty; - } - } - -} - - \ No newline at end of file diff --git a/Components/Routes.razor b/Components/Routes.razor deleted file mode 100644 index f756e19..0000000 --- a/Components/Routes.razor +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Components/_Imports.razor b/Components/_Imports.razor deleted file mode 100644 index 98c7cd9..0000000 --- a/Components/_Imports.razor +++ /dev/null @@ -1,18 +0,0 @@ -@using System.Net.Http -@using System.Net.Http.Json -@using Microsoft.AspNetCore.Components.Forms -@using Microsoft.AspNetCore.Components.Routing -@using Microsoft.AspNetCore.Components.Web -@using static Microsoft.AspNetCore.Components.Web.RenderMode -@using Microsoft.AspNetCore.Components.Web.Virtualization -@using Microsoft.JSInterop -@using MudBlazor -@using MudBlazor.Services -@using MudBlazor.Extensions -@using MudBlazor.Extensions.Components -@using MudBlazor.Extensions.Components.ObjectEdit -@using SbExplorer.Mud -@using SbExplorer.Mud.Components -@using BlazorMonaco -@using BlazorMonaco.Editor -@using BlazorMonaco.Languages diff --git a/Config/ServiceBusConfig.cs b/Config/ServiceBusConfig.cs deleted file mode 100644 index de2ede8..0000000 --- a/Config/ServiceBusConfig.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace SbExplorer.Mud.Config; - -public class ServiceBusConfig -{ - public const string SectionName = "ServiceBus"; - public string ConnectionString { get; set; } = null!; - public int RefreshIntervalMs { get; set; } - public string EmulatorConfigFilePath { get; set; } = null!; -} - -public class RedisConfig -{ - public const string SectionName = "Redis"; - public string ConnectionString { get; set; } = null!; - public string InstanceName { get; set; } = null!; -} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 3503306..0000000 --- a/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base -USER $APP_UID -WORKDIR /app -EXPOSE 80 -EXPOSE 443 - -FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build -ARG BUILD_CONFIGURATION=Release -WORKDIR /src -COPY ["SbExplorer.Mud.csproj", "./"] -RUN dotnet restore "SbExplorer.Mud.csproj" -COPY . . -WORKDIR "/src/" -RUN dotnet build "SbExplorer.Mud.csproj" -c $BUILD_CONFIGURATION -o /app/build - -FROM build AS publish -ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "SbExplorer.Mud.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "SbExplorer.Mud.dll"] diff --git a/GitVersion.yml b/GitVersion.yml new file mode 100644 index 0000000..55e9e62 --- /dev/null +++ b/GitVersion.yml @@ -0,0 +1,33 @@ +mode: ContinuousDeployment +branches: + main: + regex: ^main$ + mode: ContinuousDeployment + tag: '' + increment: Patch + prevent-increment-of-merged-branch-version: true + track-merge-target: false + is-release-branch: true + feature: + regex: ^feature[/-] + mode: ContinuousDeployment + tag: alpha + increment: Inherit + pull-request: + regex: ^(pull|pull\-requests|pr)[/-] + mode: ContinuousDeployment + tag: PullRequest + increment: Inherit + hotfix: + regex: ^hotfix[/-] + mode: ContinuousDeployment + tag: beta + increment: Patch + release: + regex: ^release[/-] + mode: ContinuousDeployment + tag: rc + increment: None + is-release-branch: true +ignore: + sha: [] diff --git a/Helpers/CacheKeyHelper.cs b/Helpers/CacheKeyHelper.cs deleted file mode 100644 index f801a66..0000000 --- a/Helpers/CacheKeyHelper.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace SbExplorer.Mud.Helpers; - -public static class CacheKeyHelper -{ - public static string QueueKey(string nameSpace, string queueName) => $"{nameSpace}/{queueName}/active"; - public static string DeadLetterQueueKey(string nameSpace, string queueName) => $"{nameSpace}/{queueName}/deadletter"; - - public static string Queues = "queues"; - public static string Topics = "topics"; -} \ No newline at end of file diff --git a/Helpers/ConfigParser.cs b/Helpers/ConfigParser.cs deleted file mode 100644 index d77b16c..0000000 --- a/Helpers/ConfigParser.cs +++ /dev/null @@ -1,331 +0,0 @@ -// -// -// To parse this JSON data, add NuGet 'System.Text.Json' then do: -// -// using SbExplorer.Mud; -// -// var welcome = Welcome.FromJson(jsonString); -#nullable enable -#pragma warning disable CS8618 -#pragma warning disable CS8601 -#pragma warning disable CS8603 - -namespace SbExplorer.Mud -{ - using System; - using System.Collections.Generic; - - using System.Text.Json; - using System.Text.Json.Serialization; - using System.Globalization; - - public partial class EmulatorConfig - { - [JsonPropertyName("UserConfig")] - public UserConfig UserConfig { get; set; } - } - - public partial class UserConfig - { - [JsonPropertyName("Namespaces")] - public List Namespaces { get; set; } - - [JsonPropertyName("Logging")] - public Logging Logging { get; set; } - } - - public partial class Logging - { - [JsonPropertyName("Type")] - public string Type { get; set; } - } - - public partial class Namespace - { - [JsonPropertyName("Name")] - public string Name { get; set; } - - [JsonPropertyName("Queues")] - public List Queues { get; set; } - - [JsonPropertyName("Topics")] - public List Topics { get; set; } - } - - public partial class Queue - { - [JsonPropertyName("Name")] - public string Name { get; set; } - - [JsonPropertyName("Properties")] - public QueueProperties Properties { get; set; } - } - - public partial class QueueProperties - { - [JsonPropertyName("DeadLetteringOnMessageExpiration")] - public bool DeadLetteringOnMessageExpiration { get; set; } - - [JsonPropertyName("DefaultMessageTimeToLive")] - public string DefaultMessageTimeToLive { get; set; } - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("DuplicateDetectionHistoryTimeWindow")] - public string DuplicateDetectionHistoryTimeWindow { get; set; } - - [JsonPropertyName("ForwardDeadLetteredMessagesTo")] - public string ForwardDeadLetteredMessagesTo { get; set; } - - [JsonPropertyName("ForwardTo")] - public string ForwardTo { get; set; } - - [JsonPropertyName("LockDuration")] - public string LockDuration { get; set; } - - [JsonPropertyName("MaxDeliveryCount")] - public long MaxDeliveryCount { get; set; } - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("RequiresDuplicateDetection")] - public bool? RequiresDuplicateDetection { get; set; } - - [JsonPropertyName("RequiresSession")] - public bool RequiresSession { get; set; } - } - - public partial class Topic - { - [JsonPropertyName("Name")] - public string Name { get; set; } - - [JsonPropertyName("Properties")] - public TopicProperties Properties { get; set; } - - [JsonPropertyName("Subscriptions")] - public List Subscriptions { get; set; } - } - - public partial class TopicProperties - { - [JsonPropertyName("DefaultMessageTimeToLive")] - public string DefaultMessageTimeToLive { get; set; } - - [JsonPropertyName("DuplicateDetectionHistoryTimeWindow")] - public string DuplicateDetectionHistoryTimeWindow { get; set; } - - [JsonPropertyName("RequiresDuplicateDetection")] - public bool RequiresDuplicateDetection { get; set; } - } - - public partial class Subscription - { - [JsonPropertyName("Name")] - public string Name { get; set; } - - [JsonPropertyName("Properties")] - public QueueProperties Properties { get; set; } - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("Rules")] - public List Rules { get; set; } - } - - public partial class Rule - { - [JsonPropertyName("Name")] - public string Name { get; set; } - - [JsonPropertyName("Properties")] - public RuleProperties Properties { get; set; } - } - - public partial class RuleProperties - { - [JsonPropertyName("FilterType")] - public string FilterType { get; set; } - - [JsonPropertyName("CorrelationFilter")] - public CorrelationFilter CorrelationFilter { get; set; } - } - - public partial class CorrelationFilter - { - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("ContentType")] - public string ContentType { get; set; } - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("CorrelationId")] - public string CorrelationId { get; set; } - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("Label")] - public string Label { get; set; } - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("MessageId")] - public string MessageId { get; set; } - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("ReplyTo")] - public string ReplyTo { get; set; } - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("ReplyToSessionId")] - public string ReplyToSessionId { get; set; } - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("SessionId")] - public string SessionId { get; set; } - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("To")] - public string To { get; set; } - - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - [JsonPropertyName("Properties")] - public CorrelationFilterProperties Properties { get; set; } - } - - public partial class CorrelationFilterProperties - { - [JsonPropertyName("prop3")] - public string Prop3 { get; set; } - } - - public partial class EmulatorConfig - { - public static EmulatorConfig FromJson(string json) => JsonSerializer.Deserialize(json, SbExplorer.Mud.Converter.Settings); - } - - public static class Serialize - { - public static string ToJson(this EmulatorConfig self) => JsonSerializer.Serialize(self, SbExplorer.Mud.Converter.Settings); - } - - internal static class Converter - { - public static readonly JsonSerializerOptions Settings = new(JsonSerializerDefaults.General) - { - Converters = - { - new DateOnlyConverter(), - new TimeOnlyConverter(), - IsoDateTimeOffsetConverter.Singleton - }, - }; - } - - public class DateOnlyConverter : JsonConverter - { - private readonly string serializationFormat; - public DateOnlyConverter() : this(null) { } - - public DateOnlyConverter(string? serializationFormat) - { - this.serializationFormat = serializationFormat ?? "yyyy-MM-dd"; - } - - public override DateOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - var value = reader.GetString(); - return DateOnly.Parse(value!); - } - - public override void Write(Utf8JsonWriter writer, DateOnly value, JsonSerializerOptions options) - => writer.WriteStringValue(value.ToString(serializationFormat)); - } - - public class TimeOnlyConverter : JsonConverter - { - private readonly string serializationFormat; - - public TimeOnlyConverter() : this(null) { } - - public TimeOnlyConverter(string? serializationFormat) - { - this.serializationFormat = serializationFormat ?? "HH:mm:ss.fff"; - } - - public override TimeOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - var value = reader.GetString(); - return TimeOnly.Parse(value!); - } - - public override void Write(Utf8JsonWriter writer, TimeOnly value, JsonSerializerOptions options) - => writer.WriteStringValue(value.ToString(serializationFormat)); - } - - internal class IsoDateTimeOffsetConverter : JsonConverter - { - public override bool CanConvert(Type t) => t == typeof(DateTimeOffset); - - private const string DefaultDateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK"; - - private DateTimeStyles _dateTimeStyles = DateTimeStyles.RoundtripKind; - private string? _dateTimeFormat; - private CultureInfo? _culture; - - public DateTimeStyles DateTimeStyles - { - get => _dateTimeStyles; - set => _dateTimeStyles = value; - } - - public string? DateTimeFormat - { - get => _dateTimeFormat ?? string.Empty; - set => _dateTimeFormat = (string.IsNullOrEmpty(value)) ? null : value; - } - - public CultureInfo Culture - { - get => _culture ?? CultureInfo.CurrentCulture; - set => _culture = value; - } - - public override void Write(Utf8JsonWriter writer, DateTimeOffset value, JsonSerializerOptions options) - { - string text; - - - if ((_dateTimeStyles & DateTimeStyles.AdjustToUniversal) == DateTimeStyles.AdjustToUniversal - || (_dateTimeStyles & DateTimeStyles.AssumeUniversal) == DateTimeStyles.AssumeUniversal) - { - value = value.ToUniversalTime(); - } - - text = value.ToString(_dateTimeFormat ?? DefaultDateTimeFormat, Culture); - - writer.WriteStringValue(text); - } - - public override DateTimeOffset Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? dateText = reader.GetString(); - - if (string.IsNullOrEmpty(dateText) == false) - { - if (!string.IsNullOrEmpty(_dateTimeFormat)) - { - return DateTimeOffset.ParseExact(dateText, _dateTimeFormat, Culture, _dateTimeStyles); - } - else - { - return DateTimeOffset.Parse(dateText, Culture, _dateTimeStyles); - } - } - else - { - return default(DateTimeOffset); - } - } - - - public static readonly IsoDateTimeOffsetConverter Singleton = new IsoDateTimeOffsetConverter(); - } -} -#pragma warning restore CS8618 -#pragma warning restore CS8601 -#pragma warning restore CS8603 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 21c0678..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Tom Biddulph - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/Program.cs b/Program.cs deleted file mode 100644 index 8912a34..0000000 --- a/Program.cs +++ /dev/null @@ -1,88 +0,0 @@ -using Azure.Messaging.ServiceBus; -using Microsoft.Extensions.Azure; -using Microsoft.Extensions.Options; -using MudBlazor.Extensions; -using MudBlazor.Services; -using SbExplorer.Mud; -using SbExplorer.Mud.Components; -using SbExplorer.Mud.Config; -using SbExplorer.Mud.Services; - -var builder = WebApplication.CreateBuilder(args); -// const string connectionString = -// "Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"; -// -// -// const string configPath = "service-bus-config.json"; - - -var redisConfig = new RedisConfig(); -builder.Configuration.GetSection(RedisConfig.SectionName).Bind(redisConfig); - -var serviceBusConfig = new ServiceBusConfig(); -builder.Configuration.GetSection(ServiceBusConfig.SectionName).Bind(serviceBusConfig); -builder.Services.AddSingleton(Options.Create(serviceBusConfig)); - -if (!File.Exists(serviceBusConfig.EmulatorConfigFilePath)) -{ - throw new FileNotFoundException("Service bus config file not found", serviceBusConfig.EmulatorConfigFilePath); -} - -builder.Logging.AddConsole(); -builder.Services.AddOptions(); -builder.Services.AddMemoryCache(); - - -builder.Services.AddStackExchangeRedisCache(opts => -{ - opts.Configuration = redisConfig.ConnectionString; - opts.InstanceName = redisConfig.InstanceName; -}); - -builder.Services.AddHostedService(); -builder.Services.AddSingleton(); - -try -{ - builder.Services.AddSingleton(Options.Create(EmulatorConfig.FromJson(File.ReadAllText(serviceBusConfig.EmulatorConfigFilePath)))); -} -catch (Exception e) -{ - Console.Error.WriteLine("Error reading config file"); - Console.Error.WriteLine(e); - throw; -} - -builder.Services.AddMudServices(); -builder.Services.AddMudExtensions(); -builder.Services.AddAzureClients(opts => -{ - opts.AddClient((options, _, _) => - { - return new CachingServiceBusClient(serviceBusConfig.ConnectionString, options); - }); -}); -// Add services to the container. -builder.Services.AddRazorComponents() - .AddInteractiveServerComponents(); - -var app = builder.Build(); - -// Configure the HTTP request pipeline. -if (!app.Environment.IsDevelopment()) -{ - app.UseExceptionHandler("/Error", createScopeForErrors: true); - // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. - app.UseHsts(); -} - -app.UseHttpsRedirection(); -app.Use(MudExWebApp.MudExMiddleware); -app.UseStaticFiles(); -app.UseAntiforgery(); - - -app.MapRazorComponents() - .AddInteractiveServerRenderMode(); - -app.Run(); \ No newline at end of file diff --git a/Properties/launchSettings.json b/Properties/launchSettings.json deleted file mode 100644 index d2e4540..0000000 --- a/Properties/launchSettings.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/launchsettings.json", - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:12594", - "sslPort": 44319 - } - }, - "profiles": { - "http": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "applicationUrl": "http://localhost:5261", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "https": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "applicationUrl": "https://localhost:7051;http://localhost:5261", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } - } diff --git a/README.md b/README.md deleted file mode 100644 index 4b38fd3..0000000 --- a/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# Service Bus Emulator Explorer - -This is a Blazor UI for the [service bus emulator](https://github.com/Azure/azure-service-bus-emulator-installer). - -![queue overview](image.png) - -## Features - -- [x] View active & deadlettered messages -- [x] Send messages to a queue (including Broker Properties & Custom Properties) - -## Roadmap -- [ ] View subscriptions -- [ ] View topics - -## Getting Started - -The UI can be run locally or in a container. - -### Running Locally - -#### Prerequisites - -The .NET 9.0 SDK is required to build and run the ui. - -1. Clone the repository -2. Create a `.env` file in the repository root with the following content: - ``` - ACCEPT_EULA=Y - SQL_PASSWORD=your_password - CONFIG_PATH=./service-bus-config.json - ``` -3. run `docker compose -f compose-services.yaml up -d` -4. run `dotnet run` -5. Navigate to `https://localhost:5261` - -### Running in a container - -#### Prerequisites - -Ensure you've [configured the https certificate](https://learn.microsoft.com/en-us/aspnet/core/security/docker-compose-https?view=aspnetcore-9.0) for the ui. This may require editing the `docker-compose.yaml` file to point to the correct certificate. - -1. Clone the repository -2. run `docker compose up -d` -3. Navigate to `https://localhost` - -## Notes - -- The emulator doesn't implement the Service Bus Administration apis so the UI will not be able to create topics or subscriptions. The ui is driven by `service-bus-config.json` to determine the topics and subscriptions to display. -- Messages are periodically refreshed, but the UI does not automatically update when new messages are added. Refresh the page to see new messages. -- The message cache can be cleared by clicking the "Clear Cache" button. - -## Contributing - -Contributions are welcome! Please open an issue or PR to discuss changes. diff --git a/SbExplorer.Mud.csproj b/SbExplorer.Mud.csproj deleted file mode 100644 index fdd81d1..0000000 --- a/SbExplorer.Mud.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - - net9.0 - enable - enable - Linux - - - - - - - - - - - - - diff --git a/SbExplorer.Mud.sln b/SbExplorer.Mud.sln deleted file mode 100644 index 4ba22dc..0000000 --- a/SbExplorer.Mud.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.5.002.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SbExplorer.Mud", "SbExplorer.Mud.csproj", "{D2DE19E2-3DB1-4459-ABFD-A6DBFABD1937}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D2DE19E2-3DB1-4459-ABFD-A6DBFABD1937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D2DE19E2-3DB1-4459-ABFD-A6DBFABD1937}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2DE19E2-3DB1-4459-ABFD-A6DBFABD1937}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D2DE19E2-3DB1-4459-ABFD-A6DBFABD1937}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {556E02E5-47C9-43FC-8B25-5596B813EA18} - EndGlobalSection -EndGlobal diff --git a/Services/CachingServiceBusClient.cs b/Services/CachingServiceBusClient.cs deleted file mode 100644 index 10f812d..0000000 --- a/Services/CachingServiceBusClient.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System.Collections.Concurrent; -using Azure.Core; -using Azure.Messaging.ServiceBus; - -namespace SbExplorer.Mud.Services; - -public class CachingServiceBusClient : ServiceBusClient -{ - - public CachingServiceBusClient(string connectionString) : base(connectionString) - { - - } - - public CachingServiceBusClient(string connectionString, ServiceBusClientOptions options) : base(connectionString, options) - { - - } - - public CachingServiceBusClient(string fullyQualifiedNamespace, TokenCredential credential) : base(fullyQualifiedNamespace, credential) - { - throw new NotImplementedException("This constructor is not supported"); - } - - public CachingServiceBusClient(string fullyQualifiedNamespace, TokenCredential credential, ServiceBusClientOptions options) : base(fullyQualifiedNamespace, credential, options) - { - throw new NotImplementedException("This constructor is not supported"); - } - - private readonly ConcurrentDictionary _processors = new(); - private readonly ConcurrentDictionary _senders = new(); - private readonly ConcurrentDictionary _receivers = new(); - - - public override ServiceBusProcessor CreateProcessor(string topicName, string subscriptionName) => _processors.GetOrAdd($"{topicName}/{subscriptionName}", base.CreateProcessor(topicName, subscriptionName)); - - public override ServiceBusProcessor CreateProcessor(string queueName, ServiceBusProcessorOptions options) => _processors.GetOrAdd(queueName, base.CreateProcessor(queueName, options)); - - public override ServiceBusProcessor CreateProcessor(string queueName) => _processors.GetOrAdd(queueName, base.CreateProcessor(queueName)); - - public override ServiceBusProcessor CreateProcessor(string topicName, string subscriptionName, ServiceBusProcessorOptions options) => _processors.GetOrAdd($"{topicName}/{subscriptionName}", base.CreateProcessor(topicName, subscriptionName, options)); - - public override ServiceBusReceiver CreateReceiver(string queueName, ServiceBusReceiverOptions options) => _receivers.GetOrAdd(options.SubQueue switch - { - SubQueue.DeadLetter => $"{queueName}/deadletter", - SubQueue.TransferDeadLetter => $"{queueName}/transferdeadletter", - SubQueue.None => queueName, - _ => throw new ArgumentOutOfRangeException() - }, base.CreateReceiver(queueName, options)); - - public override ServiceBusReceiver CreateReceiver(string topicName, string subscriptionName) => _receivers.GetOrAdd($"{topicName}/{subscriptionName}", base.CreateReceiver(topicName, subscriptionName)); - - public override ServiceBusReceiver CreateReceiver(string topicName, string subscriptionName, ServiceBusReceiverOptions options) => _receivers.GetOrAdd($"{topicName}/{subscriptionName}", base.CreateReceiver(topicName, subscriptionName, options)); - - public override ServiceBusReceiver CreateReceiver(string queueName) => _receivers.GetOrAdd(queueName, base.CreateReceiver(queueName)); - - public override ServiceBusSender CreateSender(string queueName) => _senders.GetOrAdd(queueName, base.CreateSender(queueName)); - - public override ServiceBusSender CreateSender(string queueOrTopicName, ServiceBusSenderOptions options) => _senders.GetOrAdd(queueOrTopicName, base.CreateSender(queueOrTopicName, options)); - - -} \ No newline at end of file diff --git a/Services/ServiceBusAdmin.cs b/Services/ServiceBusAdmin.cs deleted file mode 100644 index dc3a781..0000000 --- a/Services/ServiceBusAdmin.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System.Text.Json; -using Microsoft.Extensions.Caching.Distributed; -using Microsoft.Extensions.Options; -using SbExplorer.Mud.Helpers; - -namespace SbExplorer.Mud.Services; - -public class ServiceBusAdmin( - IOptions emulatorConfig, - IDistributedCache cache) -{ - public async IAsyncEnumerable GetQueues() - { - if (await cache.GetAsync(CacheKeyHelper.Queues) is { } queueBytes) - { - var queues = JsonSerializer.Deserialize>(queueBytes); - foreach (var queue in queues!) - { - yield return queue; - } - } - } - - public async IAsyncEnumerable GetTopics() - { - if (await cache.GetAsync(CacheKeyHelper.Topics) is { } bytes) - { - var topics = JsonSerializer.Deserialize>(bytes); - foreach (var topic in topics!) - { - yield return topic; - } - } - } - - public IEnumerable GetSubscriptions() => - from emulatorNamespace in emulatorConfig.Value.UserConfig.Namespaces - from queue in emulatorNamespace.Topics - from subscription in queue.Subscriptions - select new EmulatorSubscription(subscription.Name, queue.Name); -} - -public record EmulatorQueue(string Namespace, string Name, int ActiveMessageCount, int DeadLetterCount); - -public record EmulatorTopic(string Name, int ActiveMessageCount, int DeadLetterCount); - -public record EmulatorSubscription(string Name, string TopicName); - -public record ServiceBusMessageViewModel(long SequenceNumber, string MessageId, DateTimeOffset EnqueuedTime, string State, string BodySize, string LabelSubject, Dictionary Properties, string Body); \ No newline at end of file diff --git a/Services/ServiceBusUpdater.cs b/Services/ServiceBusUpdater.cs deleted file mode 100644 index ec857d1..0000000 --- a/Services/ServiceBusUpdater.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System.Text; -using System.Text.Json; -using Azure.Messaging.ServiceBus; -using Microsoft.Extensions.Caching.Distributed; -using Microsoft.Extensions.Options; -using SbExplorer.Mud.Config; -using SbExplorer.Mud.Helpers; - -namespace SbExplorer.Mud.Services; - -public class ServiceBusUpdater( - ServiceBusClient client, - IOptions emulatorConfig, - IOptions serviceBusConfig, - IDistributedCache cache, - ILogger logger) : BackgroundService -{ - protected override async Task ExecuteAsync(CancellationToken stoppingToken) - { - while (!stoppingToken.IsCancellationRequested) - { - try - { - logger.LogInformation("Updating queues and topics"); - await Task.WhenAll(UpdateQueues(), UpdateTopics()); - await Task.Delay(TimeSpan.FromMilliseconds(serviceBusConfig.Value.RefreshIntervalMs), stoppingToken); - } - catch (Exception e) - { - logger.LogError(e, "Error updating queues and topics"); - } - } - } - - - private async Task UpdateTopics() - { - List result = []; - foreach (var emulatorNamespace in emulatorConfig.Value.UserConfig.Namespaces) - { - foreach (var topic in emulatorNamespace.Topics) - { - var receiver = client.CreateReceiver(topic.Name, - new ServiceBusReceiverOptions { ReceiveMode = ServiceBusReceiveMode.PeekLock }); - var deadLetterReceiver = client.CreateReceiver(topic.Name, - new ServiceBusReceiverOptions - { ReceiveMode = ServiceBusReceiveMode.PeekLock, SubQueue = SubQueue.DeadLetter }); - var activeMessages = await receiver.PeekMessagesAsync(1000, long.MinValue); - var deadLetterMessages = (await deadLetterReceiver.PeekMessagesAsync(1000, long.MinValue)); - var emulatorTopic = new EmulatorTopic(topic.Name, activeMessages.Count, deadLetterMessages.Count); - result.Add(emulatorTopic); - } - } - - await cache.SetAsync(CacheKeyHelper.Topics, JsonSerializer.SerializeToUtf8Bytes(result)); - } - - private async Task UpdateQueues() - { - List result = []; - foreach (var emulatorNamespace in emulatorConfig.Value.UserConfig.Namespaces) - { - foreach (var queue in emulatorNamespace.Queues) - { - var receiver = client.CreateReceiver(queue.Name, - new ServiceBusReceiverOptions - { ReceiveMode = ServiceBusReceiveMode.PeekLock, SubQueue = SubQueue.None }); - var deadLetterReceiver = client.CreateReceiver(queue.Name, - new ServiceBusReceiverOptions - { ReceiveMode = ServiceBusReceiveMode.PeekLock, SubQueue = SubQueue.DeadLetter }); - - var activeMessages = await receiver.PeekMessagesAsync(1000, long.MinValue); - var deadLetterMessages = (await deadLetterReceiver.PeekMessagesAsync(1000, long.MinValue)); - - - await cache.SetAsync(CacheKeyHelper.QueueKey(emulatorNamespace.Name, queue.Name), - JsonSerializer.SerializeToUtf8Bytes(activeMessages.Select(CreateViewModel))); - - await cache.SetAsync(CacheKeyHelper.DeadLetterQueueKey(emulatorNamespace.Name, queue.Name), - JsonSerializer.SerializeToUtf8Bytes(deadLetterMessages.Select(CreateViewModel))); - var emulatorQueue = new EmulatorQueue(emulatorNamespace.Name, queue.Name, activeMessages.Count, - deadLetterMessages.Count); - result.Add(emulatorQueue); - } - } - - await cache.SetAsync(CacheKeyHelper.Queues, JsonSerializer.SerializeToUtf8Bytes(result)); - } - - private static ServiceBusMessageViewModel CreateViewModel(ServiceBusReceivedMessage m) => - new(m.SequenceNumber, m.MessageId, m.EnqueuedTime, m.State.ToString(), - Encoding.Default.GetByteCount(m.Body.ToString()).ToString(), m.Subject, - m.ApplicationProperties.ToDictionary(), m.Body.ToString()); -} \ No newline at end of file diff --git a/app/sb-explorer-ui/.gitignore b/app/sb-explorer-ui/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/app/sb-explorer-ui/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/app/sb-explorer-ui/README.md b/app/sb-explorer-ui/README.md new file mode 100644 index 0000000..d2e7761 --- /dev/null +++ b/app/sb-explorer-ui/README.md @@ -0,0 +1,73 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## React Compiler + +The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: + +```js +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + // Other configs... + + // Remove tseslint.configs.recommended and replace with this + tseslint.configs.recommendedTypeChecked, + // Alternatively, use this for stricter rules + tseslint.configs.strictTypeChecked, + // Optionally, add this for stylistic rules + tseslint.configs.stylisticTypeChecked, + + // Other configs... + ], + languageOptions: { + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]) +``` + +You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: + +```js +// eslint.config.js +import reactX from 'eslint-plugin-react-x' +import reactDom from 'eslint-plugin-react-dom' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + // Other configs... + // Enable lint rules for React + reactX.configs['recommended-typescript'], + // Enable lint rules for React DOM + reactDom.configs.recommended, + ], + languageOptions: { + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]) +``` diff --git a/app/sb-explorer-ui/eslint.config.js b/app/sb-explorer-ui/eslint.config.js new file mode 100644 index 0000000..5e6b472 --- /dev/null +++ b/app/sb-explorer-ui/eslint.config.js @@ -0,0 +1,23 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + js.configs.recommended, + tseslint.configs.recommended, + reactHooks.configs.flat.recommended, + reactRefresh.configs.vite, + ], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + }, +]) diff --git a/app/sb-explorer-ui/index.html b/app/sb-explorer-ui/index.html new file mode 100644 index 0000000..4e37640 --- /dev/null +++ b/app/sb-explorer-ui/index.html @@ -0,0 +1,13 @@ + + + + + + + sb-explorer-ui + + +
+ + + diff --git a/app/sb-explorer-ui/package-lock.json b/app/sb-explorer-ui/package-lock.json new file mode 100644 index 0000000..3224da8 --- /dev/null +++ b/app/sb-explorer-ui/package-lock.json @@ -0,0 +1,5881 @@ +{ + "name": "sb-explorer-ui", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sb-explorer-ui", + "version": "0.0.0", + "dependencies": { + "@fluentui/react-components": "^9.72.9", + "@fluentui/react-icons": "^2.0.316", + "@mantine/core": "^8.3.12", + "@mantine/hooks": "^8.3.12", + "@mantine/notifications": "^8.3.12", + "@monaco-editor/react": "^4.7.0", + "@tabler/icons-react": "^3.36.1", + "@tanstack/react-query": "^5.90.18", + "@tanstack/react-query-devtools": "^5.91.2", + "axios": "^1.13.2", + "monaco-editor": "^0.55.1", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "react-router-dom": "^7.12.0" + }, + "devDependencies": { + "@eslint/js": "^9.39.1", + "@types/node": "^24.10.1", + "@types/react": "^19.2.5", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^5.1.1", + "cross-env": "^10.1.0", + "eslint": "^9.39.1", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.4.24", + "globals": "^16.5.0", + "typescript": "~5.9.3", + "typescript-eslint": "^8.46.4", + "vite": "^7.2.4" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", + "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", + "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", + "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6", + "@jridgewell/remapping": "^2.3.5", + "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/generator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", + "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", + "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", + "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", + "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@epic-web/invariant": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz", + "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/devtools": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@floating-ui/devtools/-/devtools-0.2.3.tgz", + "integrity": "sha512-ZTcxTvgo9CRlP7vJV62yCxdqmahHTGpSTi5QaTDgGoyQq0OyjaVZhUhXv/qdkQFOI3Sxlfmz0XGG4HaZMsDf8Q==", + "license": "MIT", + "peerDependencies": { + "@floating-ui/dom": "^1.0.0" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.27.16", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.16.tgz", + "integrity": "sha512-9O8N4SeG2z++TSM8QA/KTeKFBVCNEz/AGS7gWPJf6KFRzmRWixFRnCnkPHRDwSVZW6QPDO6uT0P2SpWNKCc9/g==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.6", + "@floating-ui/utils": "^0.2.10", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", + "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.4" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "node_modules/@fluentui/keyboard-keys": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-keys/-/keyboard-keys-9.0.8.tgz", + "integrity": "sha512-iUSJUUHAyTosnXK8O2Ilbfxma+ZyZPMua5vB028Ys96z80v+LFwntoehlFsdH3rMuPsA8GaC1RE7LMezwPBPdw==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/priority-overflow": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@fluentui/priority-overflow/-/priority-overflow-9.2.1.tgz", + "integrity": "sha512-WH5dv54aEqWo/kKQuADAwjv66W6OUMFllQMjpdkrktQp7pu4JXtmF60iYcp9+iuIX9iCeW01j8gNTU08MQlfIQ==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/react-accordion": { + "version": "9.8.15", + "resolved": "https://registry.npmjs.org/@fluentui/react-accordion/-/react-accordion-9.8.15.tgz", + "integrity": "sha512-/KMZKD97C6hvRUF4S/GiMaguFh2VWHAm0z58y++Si9drmgTvpAUHxXKHELxnZFYKLS76Gc0gMXnKrPMlp0wDkw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-motion": "^9.11.5", + "@fluentui/react-motion-components-preview": "^0.14.2", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-alert": { + "version": "9.0.0-beta.131", + "resolved": "https://registry.npmjs.org/@fluentui/react-alert/-/react-alert-9.0.0-beta.131.tgz", + "integrity": "sha512-mpt5uMuAjUG/J6T0yq/r54pwhVl/D/lk/OLF3ovhYzWuiNhEOinwx2b81fK02Rm/K3i4sl25QX4h19Aie5NLKg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-avatar": "^9.9.13", + "@fluentui/react-button": "^9.7.1", + "@fluentui/react-icons": "^2.0.239", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-aria": { + "version": "9.17.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-aria/-/react-aria-9.17.7.tgz", + "integrity": "sha512-OsPKp6BmE+W73UNMM7JX6WNQa5H4/oFKgt/BAQxp9mhM6lYw4Skmf9ZLn0vBccFuc0wh2hYDuMgKQ2/2uTUfow==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-utilities": "^9.26.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-avatar": { + "version": "9.9.13", + "resolved": "https://registry.npmjs.org/@fluentui/react-avatar/-/react-avatar-9.9.13.tgz", + "integrity": "sha512-a8eVQ2WYiGQvV7BVzcMXGkpZHfNzduC8S74ux5cMbeDuFG8JH8XKBIgOErAxQwFt0wATqyISelo5vn176sQwmw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-badge": "^9.4.12", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-popover": "^9.12.13", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-tooltip": "^9.8.12", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-badge": { + "version": "9.4.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-badge/-/react-badge-9.4.12.tgz", + "integrity": "sha512-N7B3l3PGH1HKzjvXBmnElyTpd7JIIimuxEWSu6v+4Jas3UCbbEjv6DfhmEOLeBFle09q3ILTJ/Hf7t9jhEAyyg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-breadcrumb": { + "version": "9.3.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-breadcrumb/-/react-breadcrumb-9.3.14.tgz", + "integrity": "sha512-KfMXejIEWA5VWPkp0lJIN18qqlf/3TpwnkBafRCxeeVx5dVuT6z2PW5bxJiDQ1jRSpmYiGzs3MkJOnlWuMdLhw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-button": "^9.7.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-link": "^9.7.1", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-button": { + "version": "9.7.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-button/-/react-button-9.7.1.tgz", + "integrity": "sha512-nPrsnORTrf4Hy4uZTxULgUmqd1hQK3ZorDfIYhzcbnBnn78+9zl9NyKQI0SqKxM8jG16FuK8jgrpHLiYq/8PSA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-card": { + "version": "9.5.8", + "resolved": "https://registry.npmjs.org/@fluentui/react-card/-/react-card-9.5.8.tgz", + "integrity": "sha512-nS/q3Vw2AqAOhKTOxgwU0xgE4neFB9OT+9fK/OuwmvgFLvkV5in/oszod+QlqJzarn3hTp1avWlSOItswPoyOw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-text": "^9.6.12", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-carousel": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-carousel/-/react-carousel-9.9.0.tgz", + "integrity": "sha512-EaiEe1oT9lFrIZfBfgF046h+2qcwKQZUJcc0Rv7yFDyWkNXrdM1YKG+q89V+D7P3z8tJYXKsNy4+tpFc/xgrKg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-button": "^9.7.1", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-tooltip": "^9.8.12", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1", + "embla-carousel": "^8.5.1", + "embla-carousel-autoplay": "^8.5.1", + "embla-carousel-fade": "^8.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-checkbox": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-checkbox/-/react-checkbox-9.5.12.tgz", + "integrity": "sha512-km1itgOZJ/Io1/F9wLMp9yHgfgyM1HnYBKJjUD4+H+wkdVoF7ZsjWls2s8tB2EMvsbWRBqgPH80yCMNsGyipjw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-label": "^9.3.12", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-color-picker": { + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-color-picker/-/react-color-picker-9.2.12.tgz", + "integrity": "sha512-fToyincQFiuYxzfIMii9M4A55taEFtQ0DzDZPlyIi45j/39eSmlwGzBDfFq7KKvVqGHvZKCKcSymUlxA+PPEcQ==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.3.4", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-combobox": { + "version": "9.16.13", + "resolved": "https://registry.npmjs.org/@fluentui/react-combobox/-/react-combobox-9.16.13.tgz", + "integrity": "sha512-FavYGlTKOBED44h6d587Ic1AVi9/eqEh+B2Xph7EujCvq9ZFtjYPtZVDcgEuAZd/C6QY5vrFoZ5+abjLqal1bg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-portal": "^9.8.9", + "@fluentui/react-positioning": "^9.20.11", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-components": { + "version": "9.72.9", + "resolved": "https://registry.npmjs.org/@fluentui/react-components/-/react-components-9.72.9.tgz", + "integrity": "sha512-yiNzCjPixUhYokf8kgl0ItXQ/smPceFvz9XP73z0Tp0dRNzRQG20dK0Oz3w+7vnOt9VmnAH9KGNRXqNAY+CPdg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-accordion": "^9.8.15", + "@fluentui/react-alert": "9.0.0-beta.131", + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-avatar": "^9.9.13", + "@fluentui/react-badge": "^9.4.12", + "@fluentui/react-breadcrumb": "^9.3.14", + "@fluentui/react-button": "^9.7.1", + "@fluentui/react-card": "^9.5.8", + "@fluentui/react-carousel": "^9.9.0", + "@fluentui/react-checkbox": "^9.5.12", + "@fluentui/react-color-picker": "^9.2.12", + "@fluentui/react-combobox": "^9.16.13", + "@fluentui/react-dialog": "^9.16.5", + "@fluentui/react-divider": "^9.5.1", + "@fluentui/react-drawer": "^9.11.1", + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-image": "^9.3.12", + "@fluentui/react-infobutton": "9.0.0-beta.108", + "@fluentui/react-infolabel": "^9.4.13", + "@fluentui/react-input": "^9.7.12", + "@fluentui/react-label": "^9.3.12", + "@fluentui/react-link": "^9.7.1", + "@fluentui/react-list": "^9.6.7", + "@fluentui/react-menu": "^9.20.6", + "@fluentui/react-message-bar": "^9.6.16", + "@fluentui/react-motion": "^9.11.5", + "@fluentui/react-nav": "^9.3.16", + "@fluentui/react-overflow": "^9.6.6", + "@fluentui/react-persona": "^9.5.13", + "@fluentui/react-popover": "^9.12.13", + "@fluentui/react-portal": "^9.8.9", + "@fluentui/react-positioning": "^9.20.11", + "@fluentui/react-progress": "^9.4.12", + "@fluentui/react-provider": "^9.22.12", + "@fluentui/react-radio": "^9.5.12", + "@fluentui/react-rating": "^9.3.12", + "@fluentui/react-search": "^9.3.12", + "@fluentui/react-select": "^9.4.12", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-skeleton": "^9.4.12", + "@fluentui/react-slider": "^9.5.12", + "@fluentui/react-spinbutton": "^9.5.12", + "@fluentui/react-spinner": "^9.7.12", + "@fluentui/react-swatch-picker": "^9.4.12", + "@fluentui/react-switch": "^9.5.1", + "@fluentui/react-table": "^9.19.6", + "@fluentui/react-tabs": "^9.10.8", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-tag-picker": "^9.7.14", + "@fluentui/react-tags": "^9.7.13", + "@fluentui/react-teaching-popover": "^9.6.14", + "@fluentui/react-text": "^9.6.12", + "@fluentui/react-textarea": "^9.6.12", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-toast": "^9.7.10", + "@fluentui/react-toolbar": "^9.6.14", + "@fluentui/react-tooltip": "^9.8.12", + "@fluentui/react-tree": "^9.15.8", + "@fluentui/react-utilities": "^9.26.0", + "@fluentui/react-virtualizer": "9.0.0-alpha.108", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-context-selector": { + "version": "9.2.13", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.13.tgz", + "integrity": "sha512-Jzo4aDzGHh131wub7XqDaaZB2V+kd90HgpvFHdtBenL8LjDVxuSYpuHlqVF+Lu1mQBDu4V8JQS6KiYLv9xFp8g==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.26.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0", + "scheduler": ">=0.19.0" + } + }, + "node_modules/@fluentui/react-dialog": { + "version": "9.16.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-dialog/-/react-dialog-9.16.5.tgz", + "integrity": "sha512-5MogBImDZ/qXY2ShXAJBbC9XFRwgxDU7lbe31DcD1RLJYV+zXbXIXbMNvTCtSFc3qKRORZgWiYJidR9zb4MiwA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-motion": "^9.11.5", + "@fluentui/react-motion-components-preview": "^0.14.2", + "@fluentui/react-portal": "^9.8.9", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-divider": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-divider/-/react-divider-9.5.1.tgz", + "integrity": "sha512-bWc1gbHYqT3werzx+Suw0rBJfn6+bMtmZ8PDy4UIg/Fn06oPum4IqgHn3r9HpQtmphhspBGrI/q2BD/YWEHAyg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-drawer": { + "version": "9.11.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-drawer/-/react-drawer-9.11.1.tgz", + "integrity": "sha512-xGbiGCc0j7smvet+ZbGCl9yrnk9WDVxD1RN7egO6CXZ6qRurE76AX/9dtnw22/Md+HPkzOmNAw95A0LOYUg04g==", + "license": "MIT", + "dependencies": { + "@fluentui/react-dialog": "^9.16.5", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-motion": "^9.11.5", + "@fluentui/react-motion-components-preview": "^0.14.2", + "@fluentui/react-portal": "^9.8.9", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-field": { + "version": "9.4.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-field/-/react-field-9.4.12.tgz", + "integrity": "sha512-GJq/SbXXAduKUJK8XpIphfGLNgBZm2fizxZt0pKttE4HkBjFbHaBbEkjlNZc8S+2d8ec0adkqx9hwC9OnqZMUw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-label": "^9.3.12", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-icons": { + "version": "2.0.316", + "resolved": "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-2.0.316.tgz", + "integrity": "sha512-tZPOtsUmoOrgLeM/rLjkzLlWOEmIghXNh/DYQzm5RD/Q4epklOzjnsFvc/Mn2tuXiVxi+vvXxsQp21E1aLpmWg==", + "license": "MIT", + "dependencies": { + "@griffel/react": "^1.0.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-image": { + "version": "9.3.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-image/-/react-image-9.3.12.tgz", + "integrity": "sha512-S02tX0s5UrWY0MyVfkq8P/3vyyAZ6LPdFAwjy2dWIWoEpYA2XH+fCDDsnPSThSZs6IUKUqgN/BpXW0/lsPcCuA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-infobutton": { + "version": "9.0.0-beta.108", + "resolved": "https://registry.npmjs.org/@fluentui/react-infobutton/-/react-infobutton-9.0.0-beta.108.tgz", + "integrity": "sha512-mXwi5LuVNJK66HxOid4mzZaV571E3ZmyKDK8BG0Bd+nErTixc0H6D3kPIxgBbN4RaZjurPkovg5vluAYAzMgxg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.237", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-label": "^9.3.12", + "@fluentui/react-popover": "^9.12.13", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-infolabel": { + "version": "9.4.13", + "resolved": "https://registry.npmjs.org/@fluentui/react-infolabel/-/react-infolabel-9.4.13.tgz", + "integrity": "sha512-szas/IPeg3XETtxily/9muYM9/czky+CVuntdbhHaCGyg1YZ1xMbRhXgaGUpJtBnOuCaLQV4wcX+r6bCYkN95A==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-label": "^9.3.12", + "@fluentui/react-popover": "^9.12.13", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-input": { + "version": "9.7.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-input/-/react-input-9.7.12.tgz", + "integrity": "sha512-91h/J6xsH4hRrtclPL0sEU2zdAfs2t2IpDz+AWwJ7LTWn+DfxNjr4ItncbBC8DCB69IoKOmNma/Hup/4LaCsMA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-jsx-runtime": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-jsx-runtime/-/react-jsx-runtime-9.3.4.tgz", + "integrity": "sha512-socz8H63f7CBYECzBkeeZGUAGgPDvsr4kZRHQoQw5eXBKlSb+08p7F7Zdq0hYAPQhTgXoxH1DZ4JlXzCCmweVg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.26.0", + "@swc/helpers": "^0.5.1", + "react-is": "^17.0.2" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "react": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-label": { + "version": "9.3.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-label/-/react-label-9.3.12.tgz", + "integrity": "sha512-drVHXtiK/uhWF83lbeGm+z4r2IBVA8Zp6+VXD5lsR0nJ6o9v2TubJDTgOpgpWMaFDPDSHUO7jCAqwNdzQ3lpsw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-link": { + "version": "9.7.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-link/-/react-link-9.7.1.tgz", + "integrity": "sha512-OkFR95N8D1KQPmz4eZPu+mei79JNYjURLythuNfgvLG3SgNpOKfT7b5hzhUCafzEB1e6Oviw/nGF99t65pfdMA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-list": { + "version": "9.6.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-list/-/react-list-9.6.7.tgz", + "integrity": "sha512-/vUcP6QeUrVuVVZGab+W/a66O/7RxbqErt9S3teC90X8e5Bq0Nb7Q1aeiC4gyQr1XvwzKGKhqe/3srU8X+54Qw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-checkbox": "^9.5.12", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-menu": { + "version": "9.20.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-menu/-/react-menu-9.20.6.tgz", + "integrity": "sha512-AsbtrJigDeMlVJbIZMHDjNrW2DFe0hzgEN4/Dc/fYaHqOFIe1OazNAWZl4dsXyEHZxkCo791X5jhR12gvBDbcA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-portal": "^9.8.9", + "@fluentui/react-positioning": "^9.20.11", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-message-bar": { + "version": "9.6.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-message-bar/-/react-message-bar-9.6.16.tgz", + "integrity": "sha512-yg1vSYLDaTKwDeia2t1ivngBy7sinx4McBjyX8l8pUaAdrT+OqDcDeevXpFNZ0/0eA2a3BVJ6qbu4iab1d9FPQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-button": "^9.7.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-link": "^9.7.1", + "@fluentui/react-motion": "^9.11.5", + "@fluentui/react-motion-components-preview": "^0.14.2", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-motion": { + "version": "9.11.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion/-/react-motion-9.11.5.tgz", + "integrity": "sha512-o4rTgeQbxER4tZ47eZ+ej/uy9iUNvQtB5fF55+8G00beBSX2acwmslb/GJOOw/mnkcB14Hoa6f8LU2JabYNXSw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-utilities": "^9.26.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-motion-components-preview": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion-components-preview/-/react-motion-components-preview-0.14.2.tgz", + "integrity": "sha512-QbdbgzcM02AvYCN4PbBMZCw10vMh9AvPK8kK2kbMdNWXolbRau2ndNVfXpXvZxY9KZFc2lJlYUBLWJTLDINQXA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-motion": "*", + "@fluentui/react-utilities": "*", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-nav": { + "version": "9.3.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-nav/-/react-nav-9.3.16.tgz", + "integrity": "sha512-qoPfC/pAYDZQxAhfFhzP6a5QH/1lafmOWNXLrZxX5DadGl9mg9Tr6/t6rcP/ZuJSTHGzVX1IUmxboc+z62gcww==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-button": "^9.7.1", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-divider": "^9.5.1", + "@fluentui/react-drawer": "^9.11.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-motion": "^9.11.5", + "@fluentui/react-motion-components-preview": "^0.14.2", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-tooltip": "^9.8.12", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-overflow": { + "version": "9.6.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-overflow/-/react-overflow-9.6.6.tgz", + "integrity": "sha512-iXXEQCSNn6xfzzUrEURplq7uc+OrxTvU6EbWVeFxCQnwmbnEJlmxtFzWTS4XHR1Z00Z+lZ4pCUxD1q7DH9926Q==", + "license": "MIT", + "dependencies": { + "@fluentui/priority-overflow": "^9.2.1", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-persona": { + "version": "9.5.13", + "resolved": "https://registry.npmjs.org/@fluentui/react-persona/-/react-persona-9.5.13.tgz", + "integrity": "sha512-H2gUXRp3U28szgjMskKRM0OI1TvEaZ9LJwvCo2aEf03ijvWVeJYSg8Q3XLmglrAbjENRWIR7/kZg2r8Hd0vlvw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-avatar": "^9.9.13", + "@fluentui/react-badge": "^9.4.12", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-popover": { + "version": "9.12.13", + "resolved": "https://registry.npmjs.org/@fluentui/react-popover/-/react-popover-9.12.13.tgz", + "integrity": "sha512-hb1G/zLCfoD4fUHwPLZ7Qqwaoqm5nk8dyV8s491J3tpKhifce+cVgqA2/5MYMcZeo07QRIzn5oZ10t7QZCBOKw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-portal": "^9.8.9", + "@fluentui/react-positioning": "^9.20.11", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-portal": { + "version": "9.8.9", + "resolved": "https://registry.npmjs.org/@fluentui/react-portal/-/react-portal-9.8.9.tgz", + "integrity": "sha512-zmaEPXwSLMmCzRlKQUZ+ZZqNjGe+h6K+Gz4NIFuz+jVbCRpOPEfumaoE6oy9wRITQFHq3DQrkPSRQxrZ7oUHRQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-positioning": { + "version": "9.20.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-positioning/-/react-positioning-9.20.11.tgz", + "integrity": "sha512-LjLQiIZw9wM7OSSi1CesrV6yvmJTsLFOMA8jypglm4GoPCXf4BzD7bEk55fgJYBGfa1YQNGMbv2LlFqmNOGrQQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/devtools": "^0.2.3", + "@floating-ui/dom": "^1.6.12", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-progress": { + "version": "9.4.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-progress/-/react-progress-9.4.12.tgz", + "integrity": "sha512-CGlk1yXhT6hBDbjgYyk+qgKbuU089iwYeueiYit5TLFb0LUUjfWjdcex7s73Qa+Obyss5MeHun8DQwX9Ve/FoQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-provider": { + "version": "9.22.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.22.12.tgz", + "integrity": "sha512-GhNd18zORZ/7m37TjF3UTKAJCfRgCXZi3PcdoI5SvseR3SPWl93R8mYi0SDCe6tIw7TNgzCn6fS7X6O+hAV+rA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/core": "^1.16.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-radio": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-radio/-/react-radio-9.5.12.tgz", + "integrity": "sha512-T0UdYn8comjc05SyZc37Cx8QT6ZhdGr/0az+ygK15uutRrj6ZQJV+xYAOo8rEwu5P51tD077nV8A9k1asf0TAQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-label": "^9.3.12", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-rating": { + "version": "9.3.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-rating/-/react-rating-9.3.12.tgz", + "integrity": "sha512-q8P0sQ5b5EPNLJZH6jN37avhZkm5aHPmaE4btOHMsAYivh5CMtQfgsBZ5vO/z6acXTdWV+r5DoF1gKIMdwEtrA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-search": { + "version": "9.3.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-search/-/react-search-9.3.12.tgz", + "integrity": "sha512-F1qvEaoeLh4aYTbRXI5gOb63EFjBTVBeb084RKAYAzFBaiv7w4nUdPAuyK6+mevtO+wSdUHvb9HFwrxkLpY05w==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-input": "^9.7.12", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-select": { + "version": "9.4.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-select/-/react-select-9.4.12.tgz", + "integrity": "sha512-IwIc9qGNTmgMC/zP05mempBSaZWoSG3JknOoQjoFVpi6sOL4pw/1L2f2fH7DvnNQtWymFuXt9jEpJdI2xKPVTA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-shared-contexts": { + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-shared-contexts/-/react-shared-contexts-9.26.0.tgz", + "integrity": "sha512-r52B+LUevs930pe45pFsppM9XNvY+ojgRgnDE+T/6aiwR/Mo4YoGrtjhLEzlQBeTGuySICTeaAiXfuH6Keo5Dg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-theme": "^9.2.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "react": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-skeleton": { + "version": "9.4.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-skeleton/-/react-skeleton-9.4.12.tgz", + "integrity": "sha512-aOaoOn4L3SMqGW83GmvGrRrv6TnT0uuxsDk6/mSfPW7P9QwhaZZQRiBiymH01RYSMBF9J3DFgZzKsKqVihts0w==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-slider": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-slider/-/react-slider-9.5.12.tgz", + "integrity": "sha512-zfMyC0+ytNMtZEtqVXg+8l8dRrXAfRccPxofngZzHiVgLknMlc7L9jjWBYOGiB4VbO1XR/+D7/KrsjBf0xvXyA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-spinbutton": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinbutton/-/react-spinbutton-9.5.12.tgz", + "integrity": "sha512-+t7GOyJkaevduT6CYEX9PLlsdPnJKWeXP6Va1Ml2wFnDz8RtJTTqzbedSqmk8CLpwbZ8+/Ix40pIbp+9Q5v2Ow==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-spinner": { + "version": "9.7.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinner/-/react-spinner-9.7.12.tgz", + "integrity": "sha512-8jTG1DTKipkpkaNwl9uxDs8yMKMK8ogzYrMMbNR1pfYVtpiDSfwxwZIXTqh9r1vS4SU3WnFQ0irRu1tIIumAnQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-label": "^9.3.12", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-swatch-picker": { + "version": "9.4.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-swatch-picker/-/react-swatch-picker-9.4.12.tgz", + "integrity": "sha512-c3OHBbPNneQLm+A9rzVaU757FPTBog+tYQU7nnmHlM0LZSTIhJf1XRBsLGNSnqmlAzLc94PjW/867SstQ+vuaQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-switch": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-switch/-/react-switch-9.5.1.tgz", + "integrity": "sha512-fa9EKNyssYwrkbWQn3CQ4IfnsVy+ttiRWom+s9eJDtM9NTtLZMJpei0Ve6vCD27SIbwBJhngWLe7j5/HeAg0uQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-label": "^9.3.12", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-table": { + "version": "9.19.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-table/-/react-table-9.19.6.tgz", + "integrity": "sha512-LKGuFnYfknmaFCH35T0VjgbeaQIfg5SCVPgnNGKHDmNd85QvOR5AG7CMBm0LSltjZW6NFHblkRmnOkF2AkPucQ==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-avatar": "^9.9.13", + "@fluentui/react-checkbox": "^9.5.12", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-radio": "^9.5.12", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tabs": { + "version": "9.10.8", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabs/-/react-tabs-9.10.8.tgz", + "integrity": "sha512-Msxd4Ajhu+YZW7Iv5WQZBr2yynsOkwQjXkSH28ObjAZ/rFkb2Iq9uXvSAFJHba++Ecz1i2tchAsELWqT9oyLxA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tabster": { + "version": "9.26.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabster/-/react-tabster-9.26.11.tgz", + "integrity": "sha512-x2UjXowknK4gHJT14ezIeaLAKozZrpqsvWj8Mqa6p+TiOdHyo8YO6mecpCV1QWyz86qYsOPYhK/i0MSapwaELA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1", + "keyborg": "^2.6.0", + "tabster": "^8.5.5" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tag-picker": { + "version": "9.7.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-tag-picker/-/react-tag-picker-9.7.14.tgz", + "integrity": "sha512-SMrLFkuVdZ/UPLHhumodQcM/V4uxkS3GayCBykddn1OWtWGVLjN4idCes56XGdZyNq79u4BEu7Vtxwucjv3oXg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-combobox": "^9.16.13", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-portal": "^9.8.9", + "@fluentui/react-positioning": "^9.20.11", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-tags": "^9.7.13", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tags": { + "version": "9.7.13", + "resolved": "https://registry.npmjs.org/@fluentui/react-tags/-/react-tags-9.7.13.tgz", + "integrity": "sha512-lg6C4b0RZKroQROSyezrLusR8/p/W6poQyKrJSEigiYhGZUm32Z+oi7qS7FDahVV/DA2vpRnuY/IfclIDszvTQ==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-avatar": "^9.9.13", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-teaching-popover": { + "version": "9.6.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-teaching-popover/-/react-teaching-popover-9.6.14.tgz", + "integrity": "sha512-3FRyaoRSO/XJGiOJxRe1E7bdDPr8KZEX/Dp/IYRn45Y2War308sscaUUPz0N3ut9iRQlT2edsHSlBMNprLEXRQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-button": "^9.7.1", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-popover": "^9.12.13", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-text": { + "version": "9.6.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-text/-/react-text-9.6.12.tgz", + "integrity": "sha512-IYiyYflw3ozS2Kil93vIqgu4JAJvFLswldJ5oBgBVOAM+MGG7G7He7Dp9tVRYxqHxkA54Um5Mv3HcUUgJ5sqww==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-textarea": { + "version": "9.6.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-textarea/-/react-textarea-9.6.12.tgz", + "integrity": "sha512-xoRYQpc76qc0WsAlOKhygnhZActTbbPvNdQU12R6bk6P4fUPBgX6rNMsNv6cVSr3ZvPuWn3bQq80PjPO10iezA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.12", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-theme": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-theme/-/react-theme-9.2.0.tgz", + "integrity": "sha512-Q0zp/MY1m5RjlkcwMcjn/PQRT2T+q3bgxuxWbhgaD07V+tLzBhGROvuqbsdg4YWF/IK21zPfLhmGyifhEu0DnQ==", + "license": "MIT", + "dependencies": { + "@fluentui/tokens": "1.0.0-alpha.22", + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/react-toast": { + "version": "9.7.10", + "resolved": "https://registry.npmjs.org/@fluentui/react-toast/-/react-toast-9.7.10.tgz", + "integrity": "sha512-Zvh/19VpFXft7VFvlHEyURg766RyKBE6eekrmtgE416ow07pfn1a7X7VqTyfp90uEaJsowB//twJNjCc3r3oAw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-motion": "^9.11.5", + "@fluentui/react-motion-components-preview": "^0.14.2", + "@fluentui/react-portal": "^9.8.9", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-toolbar": { + "version": "9.6.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-toolbar/-/react-toolbar-9.6.14.tgz", + "integrity": "sha512-wjUqbfNSGlmgpMsJvpd8C7qzXUav3pb88ctyzziweURZskOMAIx8wv0PHUih9h9haMB5ayTiLuJL4Lcpv6jNlA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-button": "^9.7.1", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-divider": "^9.5.1", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-radio": "^9.5.12", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tooltip": { + "version": "9.8.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-tooltip/-/react-tooltip-9.8.12.tgz", + "integrity": "sha512-ZA36KqmGWhK1HmNd1HO5p3Fz3cM06p/1kSKEB6b+F2opY+Db8IQGa6ER8wVtxLnUs/WFrcjJPcy7DuD2oyeSFQ==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-portal": "^9.8.9", + "@fluentui/react-positioning": "^9.20.11", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tree": { + "version": "9.15.8", + "resolved": "https://registry.npmjs.org/@fluentui/react-tree/-/react-tree-9.15.8.tgz", + "integrity": "sha512-T2USjFQ2tPb0TzX3FagifQzJKYGq0T8IQYHdfHO7LP7sThI13Mnt6ke7mGC3SOPi8WKUCMRaoXAksbggUMXFUQ==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.7", + "@fluentui/react-avatar": "^9.9.13", + "@fluentui/react-button": "^9.7.1", + "@fluentui/react-checkbox": "^9.5.12", + "@fluentui/react-context-selector": "^9.2.13", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-motion": "^9.11.5", + "@fluentui/react-motion-components-preview": "^0.14.2", + "@fluentui/react-radio": "^9.5.12", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-tabster": "^9.26.11", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-utilities": { + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-utilities/-/react-utilities-9.26.0.tgz", + "integrity": "sha512-3i/Vdt9UzDs/vuQvdR6HJFMhkOqB22lOGJ+v6VpkjGO81ywnQwP4LKkaKK534q+qiVbcKumCkHOeRhtMAUJXPQ==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-shared-contexts": "^9.26.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "react": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-virtualizer": { + "version": "9.0.0-alpha.108", + "resolved": "https://registry.npmjs.org/@fluentui/react-virtualizer/-/react-virtualizer-9.0.0-alpha.108.tgz", + "integrity": "sha512-2uaGDhGbVZqBd/INh2tiSefVUwdAPK/PDJ8e0pJ34+N77A1Mcq9eSbyaBp5GLZ/GcycHAWnnyDCall9Avpqo6g==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.26.0", + "@fluentui/react-utilities": "^9.26.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/tokens": { + "version": "1.0.0-alpha.22", + "resolved": "https://registry.npmjs.org/@fluentui/tokens/-/tokens-1.0.0-alpha.22.tgz", + "integrity": "sha512-i9fgYyyCWFRdUi+vQwnV6hp7wpLGK4p09B+O/f2u71GBXzPuniubPYvrIJYtl444DD6shLjYToJhQ1S6XTFwLg==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@griffel/core": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@griffel/core/-/core-1.19.2.tgz", + "integrity": "sha512-WkB/QQkjy9dE4vrNYGhQvRRUHFkYVOuaznVOMNTDT4pS9aTJ9XPrMTXXlkpcwaf0D3vNKoerj4zAwnU2lBzbOg==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@griffel/style-types": "^1.3.0", + "csstype": "^3.1.3", + "rtl-css-js": "^1.16.1", + "stylis": "^4.2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@griffel/react": { + "version": "1.5.32", + "resolved": "https://registry.npmjs.org/@griffel/react/-/react-1.5.32.tgz", + "integrity": "sha512-jN3SmSwAUcWFUQuQ9jlhqZ5ELtKY21foaUR0q1mJtiAeSErVgjkpKJyMLRYpvaFGWrDql0Uz23nXUogXbsS2wQ==", + "license": "MIT", + "dependencies": { + "@griffel/core": "^1.19.2", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@griffel/style-types": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@griffel/style-types/-/style-types-1.3.0.tgz", + "integrity": "sha512-bHwD3sUE84Xwv4dH011gOKe1jul77M1S6ZFN9Tnq8pvZ48UMdY//vtES6fv7GRS5wXYT4iqxQPBluAiYAfkpmw==", + "license": "MIT", + "dependencies": { + "csstype": "^3.1.3" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mantine/core": { + "version": "8.3.12", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-8.3.12.tgz", + "integrity": "sha512-bDEoUl4SneltfI1GeEaBk6BVDbLuB/w15YwseAmUvc8ldAbNcsVhxKxY/BdhwqUo6O3L2vhdlb3WwxR1y8741g==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.27.16", + "clsx": "^2.1.1", + "react-number-format": "^5.4.4", + "react-remove-scroll": "^2.7.1", + "react-textarea-autosize": "8.5.9", + "type-fest": "^4.41.0" + }, + "peerDependencies": { + "@mantine/hooks": "8.3.12", + "react": "^18.x || ^19.x", + "react-dom": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/hooks": { + "version": "8.3.12", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-8.3.12.tgz", + "integrity": "sha512-lMMDzDewd3lUNtJCAHDj3g8On9X5aBl4q6EBwgOixKQSby9RG9ASEpK8oYHundHTm9tzo3MDeXWV/z32oSQWuw==", + "license": "MIT", + "peerDependencies": { + "react": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/notifications": { + "version": "8.3.12", + "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-8.3.12.tgz", + "integrity": "sha512-lqPPa11XdcndG8ywMao8yVkMA4jg/pBNbS85bR7OwHQa1yUftmfVlqJl9PZZCiWLX2AgKY3+xM5dHo4LidL+DA==", + "license": "MIT", + "dependencies": { + "@mantine/store": "8.3.12", + "react-transition-group": "4.4.5" + }, + "peerDependencies": { + "@mantine/core": "8.3.12", + "@mantine/hooks": "8.3.12", + "react": "^18.x || ^19.x", + "react-dom": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/store": { + "version": "8.3.12", + "resolved": "https://registry.npmjs.org/@mantine/store/-/store-8.3.12.tgz", + "integrity": "sha512-EC4eIKpm5s7neMbBrWsP6jGKLqrzHf63Ao3penYr7fn25dFXdbXZYw+IG8GYzxOC4yG61b2zTS+bpy5+vwzXpw==", + "license": "MIT", + "peerDependencies": { + "react": "^18.x || ^19.x" + } + }, + "node_modules/@monaco-editor/loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.7.0.tgz", + "integrity": "sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==", + "license": "MIT", + "dependencies": { + "state-local": "^1.0.6" + } + }, + "node_modules/@monaco-editor/react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.7.0.tgz", + "integrity": "sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==", + "license": "MIT", + "dependencies": { + "@monaco-editor/loader": "^1.5.0" + }, + "peerDependencies": { + "monaco-editor": ">= 0.25.0 < 1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", + "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/helpers": { + "version": "0.5.18", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.18.tgz", + "integrity": "sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tabler/icons": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.36.1.tgz", + "integrity": "sha512-f4Jg3Fof/Vru5ioix/UO4GX+sdDsF9wQo47FbtvG+utIYYVQ/QVAC0QYgcBbAjQGfbdOh2CCf0BgiFOF9Ixtjw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" + } + }, + "node_modules/@tabler/icons-react": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.36.1.tgz", + "integrity": "sha512-/8nOXeNeMoze9xY/QyEKG65wuvRhkT3q9aytaur6Gj8bYU2A98YVJyLc9MRmc5nVvpy+bRlrrwK/Ykr8WGyUWg==", + "license": "MIT", + "dependencies": { + "@tabler/icons": "" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" + }, + "peerDependencies": { + "react": ">= 16" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.90.18", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.18.tgz", + "integrity": "sha512-rbGx6bHgPNVzutP7BEr+53UPKohpckqlMAad+To9UxTbeaQ+kC/1SDRj+QzkwbQ7qhLT/1IKp34yS6thda6fzA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/query-devtools": { + "version": "5.92.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.92.0.tgz", + "integrity": "sha512-N8D27KH1vEpVacvZgJL27xC6yPFUy0Zkezn5gnB3L3gRCxlDeSuiya7fKge8Y91uMTnC8aSxBQhcK6ocY7alpQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.90.18", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.18.tgz", + "integrity": "sha512-KqNZX0C5IFz4639zR1ilnQ288tQdJrMNLtzmlzyJ14xauBkhtLEy3mPU/V4KiHsr41eL1ILZbDP36TB12lYfCQ==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.90.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@tanstack/react-query-devtools": { + "version": "5.91.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.91.2.tgz", + "integrity": "sha512-ZJ1503ay5fFeEYFUdo7LMNFzZryi6B0Cacrgr2h1JRkvikK1khgIq6Nq2EcblqEdIlgB/r7XDW8f8DQ89RuUgg==", + "license": "MIT", + "dependencies": { + "@tanstack/query-devtools": "5.92.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@tanstack/react-query": "^5.90.14", + "react": "^18 || ^19" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.10.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.9.tgz", + "integrity": "sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/react": { + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.8.tgz", + "integrity": "sha512-3MbSL37jEchWZz2p2mjntRZtPt837ij10ApxKfgmXCTuHWagYg7iA5bqPw6C8BMPfwidlvfPI/fxOc42HLhcyg==", + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz", + "integrity": "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/type-utils": "8.53.0", + "@typescript-eslint/utils": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.53.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.0.tgz", + "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.0.tgz", + "integrity": "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.53.0", + "@typescript-eslint/types": "^8.53.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", + "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.0.tgz", + "integrity": "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.0.tgz", + "integrity": "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0", + "@typescript-eslint/utils": "8.53.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", + "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", + "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.53.0", + "@typescript-eslint/tsconfig-utils": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", + "debug": "^4.4.3", + "minimatch": "^9.0.5", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", + "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", + "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.53.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.2.tgz", + "integrity": "sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.5", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.53", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.18.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "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/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.15", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.15.tgz", + "integrity": "sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "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": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001764", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz", + "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==", + "dev": true, + "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/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cross-env": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz", + "integrity": "sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@epic-web/invariant": "^1.0.0", + "cross-spawn": "^7.0.6" + }, + "bin": { + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dompurify": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.7.tgz", + "integrity": "sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" + }, + "node_modules/embla-carousel": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", + "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", + "license": "MIT" + }, + "node_modules/embla-carousel-autoplay": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-autoplay/-/embla-carousel-autoplay-8.6.0.tgz", + "integrity": "sha512-OBu5G3nwaSXkZCo1A6LTaFMZ8EpkYbwIaH+bPqdBnDGQ2fh4+NbzjXjs2SktoPNKCtflfVMc75njaDHOYXcrsA==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.6.0" + } + }, + "node_modules/embla-carousel-fade": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-fade/-/embla-carousel-fade-8.6.0.tgz", + "integrity": "sha512-qaYsx5mwCz72ZrjlsXgs1nKejSrW+UhkbOMwLgfRT7w2LtdEB03nPRI06GHuHv5ac2USvbEiX2/nAHctcDwvpg==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.6.0" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "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-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.2", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", + "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.26", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz", + "integrity": "sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "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==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.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==", + "dev": true, + "license": "BSD-2-Clause", + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "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==", + "dev": true, + "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-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.25.1" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "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/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "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.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyborg": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/keyborg/-/keyborg-2.6.0.tgz", + "integrity": "sha512-o5kvLbuTF+o326CMVYpjlaykxqYP9DphFQZ2ZpgrvBouyvOxyEB7oqe8nOLFpiV5VCtz0D3pt8gXQYWpLpBnmA==", + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.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==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "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/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==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/marked": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", + "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.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/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/monaco-editor": { + "version": "0.55.1", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.55.1.tgz", + "integrity": "sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==", + "license": "MIT", + "dependencies": { + "dompurify": "3.2.7", + "marked": "14.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "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/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "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.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "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/prop-types/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/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.3" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, + "node_modules/react-number-format": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.4.tgz", + "integrity": "sha512-wOmoNZoOpvMminhifQYiYSTCLUDOiUbBunrMrMjA+dV52sY+vck1S4UhR6PkgnoCquvvMSeJjErXZ4qSaWCliA==", + "license": "MIT", + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-refresh": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", + "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-router": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.12.0.tgz", + "integrity": "sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.12.0.tgz", + "integrity": "sha512-pfO9fiBcpEfX4Tx+iTYKDtPbrSLLCbwJ5EqP+SPYQu1VYCXdy79GSj0wttR0U4cikVdlImZuEZ/9ZNCgoaxwBA==", + "license": "MIT", + "dependencies": { + "react-router": "7.12.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-textarea-autosize": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.9.tgz", + "integrity": "sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.13", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rollup": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/rtl-css-js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz", + "integrity": "sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/state-local": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", + "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==", + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tabbable": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", + "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", + "license": "MIT" + }, + "node_modules/tabster": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/tabster/-/tabster-8.7.0.tgz", + "integrity": "sha512-AKYquti8AdWzuqJdQo4LUMQDZrHoYQy6V+8yUq2PmgLZV10EaB+8BD0nWOfC/3TBp4mPNg4fbHkz6SFtkr0PpA==", + "license": "MIT", + "dependencies": { + "keyborg": "2.6.0", + "tslib": "^2.8.1" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.53.3" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/ts-api-utils": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.0.tgz", + "integrity": "sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.53.0", + "@typescript-eslint/parser": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0", + "@typescript-eslint/utils": "8.53.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "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.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-composed-ref": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.4.0.tgz", + "integrity": "sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.1.tgz", + "integrity": "sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-latest": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.3.0.tgz", + "integrity": "sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==", + "license": "MIT", + "dependencies": { + "use-isomorphic-layout-effect": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/vite": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", + "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", + "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + } + } +} diff --git a/app/sb-explorer-ui/package.json b/app/sb-explorer-ui/package.json new file mode 100644 index 0000000..4e8273d --- /dev/null +++ b/app/sb-explorer-ui/package.json @@ -0,0 +1,45 @@ +{ + "name": "sb-explorer-ui", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "cross-env VITE_API_BASE_URL=http://localhost:5123/api VITE_USE_MOCK=false VITE_USE_MOCK_QUEUES=false VITE_USE_MOCK_TOPICS=false VITE_USE_MOCK_SUBSCRIPTIONS=false VITE_USE_MOCK_MESSAGES=false VITE_USE_MOCK_DLQ=false vite", + "dev:mock": "cross-env VITE_API_BASE_URL=/api VITE_USE_MOCK=false vite", + "dev:partial": "cross-env VITE_API_BASE_URL=http://localhost:5123/api VITE_USE_MOCK=false VITE_USE_MOCK_QUEUES=false VITE_USE_MOCK_TOPICS=false VITE_USE_MOCK_SUBSCRIPTIONS=false VITE_USE_MOCK_MESSAGES=false VITE_USE_MOCK_DLQ=true vite", + "build": "cross-env VITE_API_BASE_URL=/api VITE_USE_MOCK=false VITE_USE_MOCK_QUEUES=false VITE_USE_MOCK_TOPICS=false VITE_USE_MOCK_SUBSCRIPTIONS=false VITE_USE_MOCK_MESSAGES=false VITE_USE_MOCK_DLQ=false tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@fluentui/react-components": "^9.72.9", + "@fluentui/react-icons": "^2.0.316", + "@mantine/core": "^8.3.12", + "@mantine/hooks": "^8.3.12", + "@mantine/notifications": "^8.3.12", + "@monaco-editor/react": "^4.7.0", + "@tabler/icons-react": "^3.36.1", + "@tanstack/react-query": "^5.90.18", + "@tanstack/react-query-devtools": "^5.91.2", + "axios": "^1.13.2", + "monaco-editor": "^0.55.1", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "react-router-dom": "^7.12.0" + }, + "devDependencies": { + "@eslint/js": "^9.39.1", + "@types/node": "^24.10.1", + "@types/react": "^19.2.5", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^5.1.1", + "cross-env": "^10.1.0", + "eslint": "^9.39.1", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.4.24", + "globals": "^16.5.0", + "typescript": "~5.9.3", + "typescript-eslint": "^8.46.4", + "vite": "^7.2.4" + } +} diff --git a/app/sb-explorer-ui/public/vite.svg b/app/sb-explorer-ui/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/app/sb-explorer-ui/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/sb-explorer-ui/src/App.css b/app/sb-explorer-ui/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/app/sb-explorer-ui/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/app/sb-explorer-ui/src/App.tsx b/app/sb-explorer-ui/src/App.tsx new file mode 100644 index 0000000..3249674 --- /dev/null +++ b/app/sb-explorer-ui/src/App.tsx @@ -0,0 +1,65 @@ +import { createContext, useContext, useEffect, useMemo, useState } from 'react' +import { MantineProvider } from '@mantine/core' +import { Notifications } from '@mantine/notifications' +import { Navigate, RouterProvider, createBrowserRouter } from 'react-router-dom' +import AppShell from './routes/AppShell' +import Queues from './routes/Queues' +import QueueDetail from './routes/QueueDetail' +import Topics from './routes/Topics' +import TopicDetail from './routes/TopicDetail' +import AppError from './components/AppError' +import { mantineLight, mantineDark } from './theme' + +type ColorScheme = 'light' | 'dark' + +interface AppContextValue { + theme: ColorScheme + toggleTheme: () => void +} + +const AppContext = createContext(undefined) + +export const useAppContext = () => { + const value = useContext(AppContext) + if (!value) throw new Error('useAppContext must be used within App') + return value +} + +function App() { + const [theme, setTheme] = useState(() => (localStorage.getItem('sbx-theme') as ColorScheme) || 'light') + const toggleTheme = () => setTheme((prev: ColorScheme) => (prev === 'light' ? 'dark' : 'light')) + + useEffect(() => { + localStorage.setItem('sbx-theme', theme) + }, [theme]) + + const router = useMemo( + () => + createBrowserRouter([ + { + element: , + errorElement: , + children: [ + { index: true, element: }, + { path: '/queues', element: , errorElement: }, + { path: '/queues/:name', element: , errorElement: }, + { path: '/topics', element: , errorElement: }, + { path: '/topics/:name', element: , errorElement: }, + { path: '/topics/:name/:subscription', element: , errorElement: }, + ], + }, + ]), + [], + ) + + return ( + + + + + + + ) +} + +export default App diff --git a/app/sb-explorer-ui/src/api/client.ts b/app/sb-explorer-ui/src/api/client.ts new file mode 100644 index 0000000..1bb7676 --- /dev/null +++ b/app/sb-explorer-ui/src/api/client.ts @@ -0,0 +1,346 @@ +import axios, { type AxiosAdapter, type AxiosRequestConfig } from "axios"; +import type { + MessageInfo, + MessageScope, + MessageState, + PagedResult, + QueueInfo, + SendScope, + SubscriptionInfo, + TopicInfo, +} from "./types"; + +const baseURL = import.meta.env.VITE_API_BASE_URL ?? "/api"; + +const flag = (value: unknown) => + value === true || value === "true" || value === "1"; +const mockFlag = (value: unknown, defaultVal: boolean) => + value === undefined ? defaultVal : flag(value); + +const useMockAll = flag(import.meta.env.VITE_USE_MOCK); +const useMockQueues = + useMockAll || mockFlag(import.meta.env.VITE_USE_MOCK_QUEUES, false); +const useMockTopics = + useMockAll || mockFlag(import.meta.env.VITE_USE_MOCK_TOPICS, false); +const useMockSubs = + useMockAll || mockFlag(import.meta.env.VITE_USE_MOCK_SUBSCRIPTIONS, false); +const useMockMessages = + useMockAll || mockFlag(import.meta.env.VITE_USE_MOCK_MESSAGES, false); +const useMockDlq = + useMockAll || mockFlag(import.meta.env.VITE_USE_MOCK_DLQ, false); +const anyMockEnabled = + useMockQueues || + useMockTopics || + useMockSubs || + useMockMessages || + useMockDlq; + +export const apiBaseUrl = baseURL; +export const isMockEnabled = anyMockEnabled; +export const mockMatrix = { + queues: useMockQueues, + topics: useMockTopics, + subs: useMockSubs, + messages: useMockMessages, + dlq: useMockDlq, +}; + +console.log("[SB-Explorer] Configuration:", { + apiBaseUrl, + isMockEnabled, + mockMatrix, + env: import.meta.env, +}); + +export const messagePath = (scope: SendScope) => { + if (scope.type === "queue") return `/queues/${scope.name}/messages`; + if (scope.type === "topic") return `/topics/${scope.name}/messages`; + return `/topics/${scope.topic}/subscriptions/${scope.subscription}/messages`; +}; + +export const dlqPath = (scope: MessageScope) => { + if (scope.type === "queue") return `/deadletter/queue/${scope.name}/delete`; + return `/deadletter/subscription/${scope.topic}/${scope.subscription}/delete`; +}; + +const respond = (data: T, config: AxiosRequestConfig) => + Promise.resolve({ + data, + status: 200, + statusText: "OK", + headers: config.headers ?? {}, + config, + request: {}, + } as any); + +// no explicit notFound; fall through to real adapter when not mocking + +const mockData = (() => { + const queues: QueueInfo[] = [ + { + name: "orders", + status: "Active", + activeMessageCount: 2, + deadLetterMessageCount: 1, + maxDeliveryCount: 10, + lockDuration: "00:01:00", + defaultTtl: "1.00:00:00", + createdAt: new Date().toISOString(), + }, + { + name: "payments", + status: "Active", + activeMessageCount: 0, + deadLetterMessageCount: 0, + maxDeliveryCount: 5, + lockDuration: "00:00:45", + defaultTtl: "1.00:00:00", + createdAt: new Date().toISOString(), + }, + ]; + + const topics: TopicInfo[] = [ + { + name: "invoices", + status: "Active", + activeMessageCount: 3, + deadLetterMessageCount: 0, + createdAt: new Date().toISOString(), + }, + ]; + + const subscriptions: Record = { + invoices: [ + { + name: "processor", + status: "Active", + activeMessageCount: 2, + deadLetterMessageCount: 0, + maxDeliveryCount: 10, + lockDuration: "00:01:00", + defaultTtl: "1.00:00:00", + }, + { + name: "archiver", + status: "Active", + activeMessageCount: 1, + deadLetterMessageCount: 0, + maxDeliveryCount: 5, + lockDuration: "00:00:45", + defaultTtl: "1.00:00:00", + }, + ], + }; + + const messages: Record = { + "queue:orders:active": [ + { + messageId: "m1", + bodyPreview: "Order 123", + body: JSON.stringify({ id: 123, status: "new" }, null, 2), + enqueuedTime: new Date().toISOString(), + deliveryCount: 1, + contentType: "application/json", + }, + { + messageId: "m2", + bodyPreview: "Order 124", + body: JSON.stringify({ id: 124, status: "new" }, null, 2), + enqueuedTime: new Date().toISOString(), + deliveryCount: 1, + contentType: "application/json", + }, + ], + "queue:orders:deadletter": [ + { + messageId: "dlq-1", + bodyPreview: "Poison message", + body: "bad payload", + deliveryCount: 5, + }, + { + messageId: "dlq-2", + bodyPreview: "Another poison message", + body: "very bad payload", + deliveryCount: 7, + }, + ], + "subscription:invoices:processor:active": [ + { + messageId: "s1", + bodyPreview: "Invoice created", + body: JSON.stringify({ invoiceId: "inv-1" }, null, 2), + enqueuedTime: new Date().toISOString(), + }, + ], + "subscription:invoices:archiver:active": [ + { + messageId: "s2", + bodyPreview: "Invoice archived", + body: JSON.stringify({ invoiceId: "inv-2" }, null, 2), + enqueuedTime: new Date().toISOString(), + }, + ], + }; + + const paginate = ( + key: string, + _state: MessageState, + skip = 0, + take = 25, + ): PagedResult => { + const items = messages[key] ?? []; + const slice = items.slice(skip, skip + take); + return { + items: slice, + total: items.length, + hasMore: skip + take < items.length, + }; + }; + + return { queues, topics, subscriptions, messages, paginate }; +})(); + +const mockAdapter: AxiosAdapter = async (config) => { + const { method = "get", url, data, params } = config; + const path = url?.replace(baseURL, "") ?? ""; + + // Queues + if (useMockQueues) { + if (method === "get" && path === "/queues") + return respond(mockData.queues, config); + if (method === "post" && path === "/queues") { + const payload = typeof data === "string" ? JSON.parse(data) : data; + const exists = mockData.queues.find((q) => q.name === payload.name); + if (!exists) { + mockData.queues.push({ + name: payload.name, + status: "Active", + activeMessageCount: 0, + deadLetterMessageCount: 0, + maxDeliveryCount: payload.maxDeliveryCount ?? 10, + lockDuration: payload.lockDuration ?? "00:01:00", + defaultTtl: payload.defaultTtl ?? "1.00:00:00", + createdAt: new Date().toISOString(), + }); + } + return respond({}, config); + } + if (method === "delete" && path?.startsWith("/queues/")) { + const name = path.split("/")[2]; + const idx = mockData.queues.findIndex((q) => q.name === name); + if (idx >= 0) mockData.queues.splice(idx, 1); + return respond({}, config); + } + } + + // Topics + if (useMockTopics) { + if (method === "get" && path === "/topics") + return respond(mockData.topics, config); + if (method === "post" && path === "/topics") { + const payload = typeof data === "string" ? JSON.parse(data) : data; + const exists = mockData.topics.find((t) => t.name === payload.name); + if (!exists) { + mockData.topics.push({ + name: payload.name, + status: "Active", + activeMessageCount: 0, + deadLetterMessageCount: 0, + createdAt: new Date().toISOString(), + }); + } + return respond({}, config); + } + if ( + method === "delete" && + path?.startsWith("/topics/") && + !path.includes("/subscriptions") + ) { + const name = path.split("/")[2]; + const idx = mockData.topics.findIndex((t) => t.name === name); + if (idx >= 0) mockData.topics.splice(idx, 1); + delete mockData.subscriptions[name]; + return respond({}, config); + } + + if (useMockSubs) { + // Subscriptions + if ( + method === "get" && + path?.startsWith("/topics/") && + path.endsWith("/subscriptions") + ) { + const topic = path.split("/")[2]; + return respond(mockData.subscriptions[topic] ?? [], config); + } + if ( + method === "post" && + path?.startsWith("/topics/") && + path.endsWith("/subscriptions") + ) { + const topic = path.split("/")[2]; + const payload = typeof data === "string" ? JSON.parse(data) : data; + const list = mockData.subscriptions[topic] ?? []; + const exists = list.find((s) => s.name === payload.name); + if (!exists) { + list.push({ + name: payload.name, + status: "Active", + activeMessageCount: 0, + deadLetterMessageCount: 0, + maxDeliveryCount: payload.maxDeliveryCount ?? 10, + lockDuration: payload.lockDuration ?? "00:01:00", + defaultTtl: payload.defaultTtl ?? "1.00:00:00", + }); + mockData.subscriptions[topic] = list; + } + return respond({}, config); + } + if (method === "delete" && path?.includes("/subscriptions/")) { + const [, , topic, , subName] = path.split("/"); + const list = mockData.subscriptions[topic] ?? []; + const idx = list.findIndex((s) => s.name === subName); + if (idx >= 0) list.splice(idx, 1); + mockData.subscriptions[topic] = list; + return respond({}, config); + } + } + } + + // Messages + if (useMockMessages && method === "get" && path?.includes("/messages")) { + const state = (params?.state as MessageState) ?? "active"; + const skip = Number(params?.skip ?? 0); + const take = Number(params?.take ?? 25); + if (path.startsWith("/queues/")) { + const [, , queueName] = path.split("/"); + const key = `queue:${queueName}:${state}`; + return respond(mockData.paginate(key, state, skip, take), config); + } + if (path.startsWith("/topics/")) { + const [, , topic, , subName] = path.split("/"); + const key = `subscription:${topic}:${subName}:${state}`; + return respond(mockData.paginate(key, state, skip, take), config); + } + } + + if (useMockMessages && method === "post" && path?.includes("/messages")) { + // treat as send; just ack + return respond({}, config); + } + + if (useMockDlq && method === "post" && path?.includes("/deadletter/")) { + // bulk delete DLQ + return respond({}, config); + } + + const { adapter, ...configWithoutAdapter } = config; + return axios.request(configWithoutAdapter); +}; + +export const apiClient = axios.create({ + baseURL, + timeout: 12000, + adapter: anyMockEnabled ? (config) => mockAdapter(config as any) : undefined, +}); diff --git a/app/sb-explorer-ui/src/api/hooks.ts b/app/sb-explorer-ui/src/api/hooks.ts new file mode 100644 index 0000000..3e0737a --- /dev/null +++ b/app/sb-explorer-ui/src/api/hooks.ts @@ -0,0 +1,165 @@ +import { keepPreviousData, useMutation, useQuery, useQueryClient } from '@tanstack/react-query' +import { apiClient, dlqPath, messagePath } from './client' +import type { + MessageInfo, + MessageScope, + MessageState, + PagedResult, + QueueInfo, + SubscriptionInfo, + TopicInfo, +} from './types' + +const listRefetchMs = 8000 + +const scopeKey = (scope: MessageScope) => + scope.type === 'queue' ? `queue:${scope.name}` : `subscription:${scope.topic}:${scope.subscription}` + +export const useQueues = () => + useQuery({ + queryKey: ['queues'], + queryFn: async () => (await apiClient.get('/queues')).data, + refetchInterval: listRefetchMs, + }) + +export const useTopics = () => + useQuery({ + queryKey: ['topics'], + queryFn: async () => (await apiClient.get('/topics')).data, + refetchInterval: listRefetchMs, + }) + +export const useSubscriptions = (topic: string, enabled = true) => + useQuery({ + queryKey: ['subs', topic], + queryFn: async () => (await apiClient.get(`/topics/${topic}/subscriptions`)).data, + enabled: !!topic && enabled, + refetchInterval: listRefetchMs, + }) + +interface MessagesQuery { + scope: MessageScope + state: MessageState + skip: number + take: number + enabled?: boolean +} + +const isScopeValid = (scope: MessageScope) => { + if (scope.type === 'queue') return !!scope.name + return !!scope.topic && !!scope.subscription +} + +export const useMessages = ({ scope, state, skip, take, enabled = true }: MessagesQuery) => + useQuery({ + queryKey: ['messages', scopeKey(scope), state, skip, take], + queryFn: async () => + ( + await apiClient.get>(messagePath(scope), { + params: { mode: 'peek', state, skip, take }, + }) + ).data, + enabled: enabled && isScopeValid(scope), + placeholderData: keepPreviousData, + }) + +export const useCreateQueue = () => { + const qc = useQueryClient() + return useMutation({ + mutationFn: async (payload: Partial & { name: string }) => { + await apiClient.post('/queues', payload) + }, + onSuccess: () => qc.invalidateQueries({ queryKey: ['queues'] }), + }) +} + +export const useCreateTopic = () => { + const qc = useQueryClient() + return useMutation({ + mutationFn: async (payload: Partial & { name: string }) => { + await apiClient.post('/topics', payload) + }, + onSuccess: () => qc.invalidateQueries({ queryKey: ['topics'] }), + }) +} + +export const useCreateSubscription = (topic: string) => { + const qc = useQueryClient() + return useMutation({ + mutationFn: async (payload: Partial & { name: string }) => { + await apiClient.post(`/topics/${topic}/subscriptions`, payload) + }, + onSuccess: () => qc.invalidateQueries({ queryKey: ['subs', topic] }), + }) +} + +export const useDeleteQueue = () => { + const qc = useQueryClient() + return useMutation({ + mutationFn: async (name: string) => { + await apiClient.delete(`/queues/${name}`) + }, + onSuccess: () => qc.invalidateQueries({ queryKey: ['queues'] }), + }) +} + +export const useDeleteTopic = () => { + const qc = useQueryClient() + return useMutation({ + mutationFn: async (name: string) => { + await apiClient.delete(`/topics/${name}`) + }, + onSuccess: () => qc.invalidateQueries({ queryKey: ['topics'] }), + }) +} + +export const useDeleteSubscription = (topic: string) => { + const qc = useQueryClient() + return useMutation({ + mutationFn: async (subName: string) => { + await apiClient.delete(`/topics/${topic}/subscriptions/${subName}`) + }, + onSuccess: () => qc.invalidateQueries({ queryKey: ['subs', topic] }), + }) +} + +interface SendMessageInput { + scope: MessageScope | { type: 'topic'; name: string } + body: string + contentType?: string + userProperties?: Record +} + +export const useSendMessage = () => { + const qc = useQueryClient() + return useMutation({ + mutationFn: async ({ scope, ...payload }: SendMessageInput) => { + await apiClient.post(messagePath(scope), payload) + }, + onSuccess: (_data, variables) => { + if (variables.scope.type === 'queue' || variables.scope.type === 'subscription') { + qc.invalidateQueries({ queryKey: ['messages', scopeKey(variables.scope)] }) + } + // Refresh lists to reflect new counts + qc.invalidateQueries({ queryKey: ['queues'] }) + qc.invalidateQueries({ queryKey: ['topics'] }) + }, + }) +} + +interface BulkDlqDeleteInput { + scope: MessageScope + messageIds?: string[] +} + +export const useBulkDlqDelete = () => { + const qc = useQueryClient() + return useMutation({ + mutationFn: async ({ scope, messageIds }: BulkDlqDeleteInput) => { + await apiClient.post(dlqPath(scope), { messageIds }) + }, + onSuccess: (_data, variables) => { + qc.invalidateQueries({ queryKey: ['messages', scopeKey(variables.scope)] }) + }, + }) +} diff --git a/app/sb-explorer-ui/src/api/types.ts b/app/sb-explorer-ui/src/api/types.ts new file mode 100644 index 0000000..f3a8eec --- /dev/null +++ b/app/sb-explorer-ui/src/api/types.ts @@ -0,0 +1,60 @@ +export type EntityStatus = 'Active' | 'Disabled' | 'SendDisabled' | 'ReceiveDisabled' + +export interface QueueInfo { + name: string + status: EntityStatus + activeMessageCount: number + deadLetterMessageCount: number + scheduledMessageCount?: number + createdAt?: string + maxDeliveryCount?: number + lockDuration?: string + defaultTtl?: string +} + +export interface TopicInfo { + name: string + status: EntityStatus + activeMessageCount: number + deadLetterMessageCount: number + scheduledMessageCount?: number + createdAt?: string +} + +export interface SubscriptionInfo { + name: string + status: EntityStatus + activeMessageCount: number + deadLetterMessageCount: number + scheduledMessageCount?: number + maxDeliveryCount?: number + lockDuration?: string + defaultTtl?: string +} + +export interface MessageInfo { + messageId: string + bodyPreview: string + body?: string + enqueuedTime?: string + expiresAt?: string + deliveryCount?: number + contentType?: string + sessionId?: string + userProperties?: Record + systemProperties?: Record +} + +export interface PagedResult { + items: T[] + total?: number + hasMore?: boolean +} + +export type MessageState = 'active' | 'deadletter' + +export type MessageScope = + | { type: 'queue'; name: string } + | { type: 'subscription'; topic: string; subscription: string } + +export type SendScope = MessageScope | { type: 'topic'; name: string } diff --git a/app/sb-explorer-ui/src/assets/react.svg b/app/sb-explorer-ui/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/app/sb-explorer-ui/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/sb-explorer-ui/src/components/AppError.tsx b/app/sb-explorer-ui/src/components/AppError.tsx new file mode 100644 index 0000000..106f278 --- /dev/null +++ b/app/sb-explorer-ui/src/components/AppError.tsx @@ -0,0 +1,21 @@ +import { Button, Card, Stack, Text, Title } from '@mantine/core' +import { useNavigate, useRouteError } from 'react-router-dom' + +const AppError = () => { + const error = useRouteError() as any + const navigate = useNavigate() + + return ( + + + Something went wrong + + {error?.statusText || error?.message || 'Unexpected application error.'} + + + + + ) +} + +export default AppError diff --git a/app/sb-explorer-ui/src/components/EntityHeader.tsx b/app/sb-explorer-ui/src/components/EntityHeader.tsx new file mode 100644 index 0000000..f481a0e --- /dev/null +++ b/app/sb-explorer-ui/src/components/EntityHeader.tsx @@ -0,0 +1,78 @@ +import { ActionIcon, Badge, Group, Paper, Title, Tooltip } from '@mantine/core' +import { IconPlus, IconSend, IconTrash } from '@tabler/icons-react' +import type { EntityStatus } from '../api/types' +import StatusPill from './StatusPill' + +interface EntityHeaderProps { + name: string + type: 'queue' | 'topic' | 'subscription' + status: EntityStatus + activeCount?: number + deadLetterCount?: number + onSend?: () => void + onDelete?: () => void + onCreateSubscription?: () => void +} + +const EntityHeader = ({ + name, + type, + status, + activeCount, + deadLetterCount, + onSend, + onDelete, + onCreateSubscription, +}: EntityHeaderProps) => { + return ( + + + + {name} + + + {type} + + + {activeCount !== undefined && ( + + Active: {activeCount} + + )} + {deadLetterCount !== undefined && ( + + DLQ: {deadLetterCount} + + )} + + + + + {type !== 'subscription' && onCreateSubscription && ( + + + + + + )} + {onSend && ( + + + + + + )} + {onDelete && ( + + + + + + )} + + + + ) +} + +export default EntityHeader diff --git a/app/sb-explorer-ui/src/components/EntityOverviewCard.tsx b/app/sb-explorer-ui/src/components/EntityOverviewCard.tsx new file mode 100644 index 0000000..4dd89f3 --- /dev/null +++ b/app/sb-explorer-ui/src/components/EntityOverviewCard.tsx @@ -0,0 +1,28 @@ +import { Card, Group, SimpleGrid, Text } from '@mantine/core' + +interface OverviewCardProps { + title: string + items: { label: string; value?: string | number | null }[] +} + +const EntityOverviewCard = ({ title, items }: OverviewCardProps) => { + return ( + + + {title} + + + {items.map((item) => ( + + + {item.label} + + {item.value ?? '—'} + + ))} + + + ) +} + +export default EntityOverviewCard diff --git a/app/sb-explorer-ui/src/components/EntityTable.tsx b/app/sb-explorer-ui/src/components/EntityTable.tsx new file mode 100644 index 0000000..5396880 --- /dev/null +++ b/app/sb-explorer-ui/src/components/EntityTable.tsx @@ -0,0 +1,139 @@ +import type { ReactNode } from 'react' +import { ActionIcon, Button, Group, Paper, ScrollArea, Table, Text, Tooltip } from '@mantine/core' +import { IconPlus, IconRefresh } from '@tabler/icons-react' +import type { EntityStatus } from '../api/types' +import StatusPill from './StatusPill' + +export interface EntityRow { + name: string + status: EntityStatus + activeMessageCount: number + deadLetterMessageCount: number + scheduledMessageCount?: number + createdAt?: string +} + +interface EntityTableProps { + title: string + items?: T[] + loading?: boolean + onRefresh?: () => void + onCreate?: () => void + onRowClick?: (item: T) => void + emptyState?: ReactNode +} + +type Column = { + id: string + label: string + render: (item: T) => ReactNode +} + +const columns: Column[] = [ + { + id: 'name', + label: 'Name', + render: (item) => {item.name}, + }, + { + id: 'status', + label: 'Status', + render: (item) => , + }, + { + id: 'active', + label: 'Active', + render: (item) => item.activeMessageCount ?? 0, + }, + { + id: 'dlq', + label: 'Dead-letter', + render: (item) => item.deadLetterMessageCount ?? 0, + }, + { + id: 'scheduled', + label: 'Scheduled', + render: (item) => item.scheduledMessageCount ?? 0, + }, + { + id: 'created', + label: 'Created', + render: (item) => (item.createdAt ? new Date(item.createdAt).toLocaleString() : '—'), + }, +] + +const EntityTable = ({ + title, + items, + loading, + onCreate, + onRefresh, + onRowClick, + emptyState, +}: EntityTableProps) => { + const list: T[] = Array.isArray(items) ? items : items ? Object.values(items as any) : [] + + return ( + + + + + + + + + {title} + + {onCreate && ( + + )} + + + + + + + {columns.map((column) => ( + {column.label} + ))} + + + + {list.map((item) => ( + onRowClick?.(item)} + style={{ cursor: onRowClick ? 'pointer' : 'default' }} + > + {columns.map((column) => ( + {column.render(item)} + ))} + + ))} + +
+
+ + {!loading && list.length === 0 && emptyState &&
{emptyState}
} +
+ ) +} + +export default EntityTable diff --git a/app/sb-explorer-ui/src/components/MessageDetailPanel.tsx b/app/sb-explorer-ui/src/components/MessageDetailPanel.tsx new file mode 100644 index 0000000..6adaaa9 --- /dev/null +++ b/app/sb-explorer-ui/src/components/MessageDetailPanel.tsx @@ -0,0 +1,44 @@ +import { useMemo } from 'react' +import { Divider, Stack, Text } from '@mantine/core' +import Editor from '@monaco-editor/react' +import type { MessageInfo } from '../api/types' +import MessagePropertiesTable from './MessagePropertiesTable' +import { useAppContext } from '../App' +import SideDrawer from './SideDrawer' + +interface MessageDetailPanelProps { + message?: MessageInfo + open: boolean + onOpenChange: (open: boolean) => void +} + +const MessageDetailPanel = ({ message, open, onOpenChange }: MessageDetailPanelProps) => { + const { theme } = useAppContext() + const bodyValue = useMemo(() => message?.body ?? message?.bodyPreview ?? '', [message]) + const monacoTheme = theme === 'dark' ? 'vs-dark' : 'vs' + + return ( + + + Content Type: {message?.contentType ?? '—'} + Enqueued: {message?.enqueuedTime ? new Date(message.enqueuedTime).toLocaleString() : '—'} + Delivery count: {message?.deliveryCount ?? 0} + + +
+ +
+ + | undefined} /> + | undefined} /> +
+ ) +} + +export default MessageDetailPanel diff --git a/app/sb-explorer-ui/src/components/MessageGrid.tsx b/app/sb-explorer-ui/src/components/MessageGrid.tsx new file mode 100644 index 0000000..1ca9e00 --- /dev/null +++ b/app/sb-explorer-ui/src/components/MessageGrid.tsx @@ -0,0 +1,155 @@ +import { useMemo } from 'react' +import type { ReactNode } from 'react' +import { ActionIcon, Checkbox, Group, Paper, ScrollArea, Table, Text, Tooltip } from '@mantine/core' +import { IconArrowLeft, IconArrowRight } from '@tabler/icons-react' +import type { MessageInfo, MessageState, PagedResult } from '../api/types' + +interface MessageGridProps { + messages?: PagedResult + loading?: boolean + state: MessageState + skip: number + take: number + onPageChange: (nextSkip: number) => void + selectedIds: string[] + onSelectionChange: (ids: string[]) => void + onInspect?: (message: MessageInfo) => void +} + +type Column = { + id: string + label: string + render: (item: T) => ReactNode +} + +const columns: Column[] = [ + { + id: 'subject', + label: 'Body', + render: (item) => item.bodyPreview, + }, + { + id: 'messageId', + label: 'Message ID', + render: (item) => item.messageId, + }, + { + id: 'enqueued', + label: 'Enqueued', + render: (item) => (item.enqueuedTime ? new Date(item.enqueuedTime).toLocaleString() : '—'), + }, + { + id: 'delivery', + label: 'Delivery count', + render: (item) => item.deliveryCount ?? 0, + }, + { + id: 'session', + label: 'Session', + render: (item) => item.sessionId ?? '—', + }, +] + +const MessageGrid = ({ + messages, + loading, + state: _state, + skip, + take, + onPageChange, + selectedIds, + onSelectionChange, + onInspect, +}: MessageGridProps) => { + const items = messages?.items ?? [] + const hasNext = messages?.hasMore || (messages?.total ? skip + take < messages.total : items.length === take) + const canPrev = skip > 0 + + const toggleSelection = (id: string) => { + if (selectedIds.includes(id)) onSelectionChange(selectedIds.filter((x) => x !== id)) + else onSelectionChange([...selectedIds, id]) + } + + const allSelected = useMemo(() => items.length > 0 && items.every((m) => selectedIds.includes(m.messageId)), [items, selectedIds]) + + const toggleSelectAll = () => { + if (allSelected) onSelectionChange([]) + else onSelectionChange(items.map((m) => m.messageId)) + } + + const start = items.length ? skip + 1 : 0 + const end = skip + items.length + + return ( + + + + onPageChange(Math.max(0, skip - take))} + > + + + + + onPageChange(skip + take)} + > + + + + + Showing {start} - {end} + + + + + + + + + toggleSelectAll()} /> + + {columns.map((column) => ( + {column.label} + ))} + + + + {items.map((item) => ( + onInspect?.(item)}> + + e.stopPropagation()} + onChange={() => toggleSelection(item.messageId)} + /> + + {columns.map((column) => ( + {column.render(item)} + ))} + + ))} + +
+
+
+ ) +} + +export default MessageGrid diff --git a/app/sb-explorer-ui/src/components/MessagePropertiesTable.tsx b/app/sb-explorer-ui/src/components/MessagePropertiesTable.tsx new file mode 100644 index 0000000..368cff8 --- /dev/null +++ b/app/sb-explorer-ui/src/components/MessagePropertiesTable.tsx @@ -0,0 +1,53 @@ +import { Card, Divider, Group, ScrollArea, Table, Text } from '@mantine/core' + +interface PropsTableProps { + title: string + data?: Record +} + +const MessagePropertiesTable = ({ title, data }: PropsTableProps) => { + const entries = data ? Object.entries(data) : [] + + return ( + + + {title} + + + + + + + Key + Value + + + + {entries.length === 0 ? ( + + + + None + + + + ) : ( + entries.map(([k, v]) => ( + + + {k} + + + {typeof v === 'object' ? JSON.stringify(v) : String(v)} + + + )) + )} + +
+
+
+ ) +} + +export default MessagePropertiesTable diff --git a/app/sb-explorer-ui/src/components/MessageTabs.tsx b/app/sb-explorer-ui/src/components/MessageTabs.tsx new file mode 100644 index 0000000..6803065 --- /dev/null +++ b/app/sb-explorer-ui/src/components/MessageTabs.tsx @@ -0,0 +1,22 @@ +import { Tabs } from '@mantine/core' +import type { MessageState } from '../api/types' + +interface MessageTabsProps { + state: MessageState + onChange: (next: MessageState) => void + activeCount?: number + deadLetterCount?: number +} + +const MessageTabs = ({ state, onChange, activeCount, deadLetterCount }: MessageTabsProps) => { + return ( + onChange((value as MessageState) ?? 'active')} variant="pills" radius="md"> + + Active ({activeCount ?? 0}) + Dead-letter ({deadLetterCount ?? 0}) + + + ) +} + +export default MessageTabs diff --git a/app/sb-explorer-ui/src/components/MockBanner.tsx b/app/sb-explorer-ui/src/components/MockBanner.tsx new file mode 100644 index 0000000..6e2696b --- /dev/null +++ b/app/sb-explorer-ui/src/components/MockBanner.tsx @@ -0,0 +1,27 @@ +import { Alert, Group, Text } from '@mantine/core' +import { apiBaseUrl, isMockEnabled, mockMatrix } from '../api/client' + +const MockBanner = () => { + if (!isMockEnabled) return null + const mocked = Object.entries(mockMatrix) + .filter(([, v]) => v) + .map(([k]) => k) + const live = Object.entries(mockMatrix) + .filter(([, v]) => !v) + .map(([k]) => k) + return ( + + + Mock mode is ON. + + Base URL: {apiBaseUrl} + + + + Mocked: {mocked.join(', ') || 'none'} | Live: {live.join(', ') || 'none'} + + + ) +} + +export default MockBanner diff --git a/app/sb-explorer-ui/src/components/NavTree.tsx b/app/sb-explorer-ui/src/components/NavTree.tsx new file mode 100644 index 0000000..3b75a49 --- /dev/null +++ b/app/sb-explorer-ui/src/components/NavTree.tsx @@ -0,0 +1,182 @@ +import { useMemo, useState, type MouseEvent } from 'react' +import { useNavigate } from 'react-router-dom' +import { Badge, Box, Loader, NavLink, Stack } from '@mantine/core' +import { IconChevronDown, IconChevronRight, IconMessageDots, IconTopologyStar, IconTopologyStar3 } from '@tabler/icons-react' +import { useQueues, useSubscriptions, useTopics } from '../api/hooks' +import type { TopicInfo } from '../api/types' + +const TopicBranch = ({ + topic, + compact, + isOpen, + onToggle, +}: { + topic: TopicInfo + compact: boolean + isOpen: boolean + onToggle: () => void +}) => { + const navigate = useNavigate() + const { data: subs, isLoading } = useSubscriptions(topic.name, isOpen) + const handleToggleClick = (event: MouseEvent) => { + event.preventDefault() + event.stopPropagation() + onToggle() + } + + return ( + } + rightSection={ + + {isOpen ? : } + + } + opened={isOpen} + onClick={() => navigate(`/topics/${topic.name}`)} + childrenOffset={compact ? 12 : 16} + > + + + + {isOpen && isLoading && } + {isOpen && + subs?.map((sub) => ( + } + rightSection={sub.deadLetterMessageCount > 0 ? ( + + {sub.deadLetterMessageCount} + + ) : undefined} + onClick={(e) => { + e.stopPropagation() + navigate(`/topics/${topic.name}/${sub.name}`) + }} + /> + ))} + + ) +} + +const NavTree = ({ compact = false }: { compact?: boolean }) => { + const navigate = useNavigate() + const { data: queues, isLoading: queuesLoading } = useQueues() + const { data: topics, isLoading: topicsLoading } = useTopics() + + const queueList = useMemo(() => (Array.isArray(queues) ? queues : queues ? Object.values(queues as any) : []), [queues]) + const topicList = useMemo(() => (Array.isArray(topics) ? topics : topics ? Object.values(topics as any) : []), [topics]) + + const [openItems, setOpenItems] = useState>(new Set(['queues', 'topics'])) + + const toggleBranch = (key: string) => { + setOpenItems((prev) => { + const next = new Set(prev) + if (next.has(key)) next.delete(key) + else next.add(key) + return next + }) + } + + const label = (text: string) => (compact ? text.slice(0, 1).toUpperCase() : text) + + const openAndNavigateQueues = () => { + setOpenItems((prev) => new Set(prev).add('queues')) + navigate('/queues') + } + + const openAndNavigateTopics = () => { + setOpenItems((prev) => new Set(prev).add('topics')) + navigate('/topics') + } + + const toggleQueues = () => { + setOpenItems((prev) => { + const next = new Set(prev) + if (next.has('queues')) next.delete('queues') + else next.add('queues') + return next + }) + } + + const handleQueuesToggleClick = (event: MouseEvent) => { + event.preventDefault() + event.stopPropagation() + toggleQueues() + } + + const handleTopicsToggleClick = (event: MouseEvent) => { + event.preventDefault() + event.stopPropagation() + toggleBranch('topics') + } + + + return ( + + } + rightSection={ + + {openItems.has('queues') ? : } + + } + opened={openItems.has('queues')} + onClick={openAndNavigateQueues} + > + {queuesLoading && } + {queueList.map((queue: any) => ( + { + e.stopPropagation() + navigate(`/queues/${queue.name}`) + }} + rightSection={queue.deadLetterMessageCount > 0 ? ( + + {queue.deadLetterMessageCount} + + ) : undefined} + childrenOffset={compact ? 12 : 16} + /> + ))} + + + } + rightSection={ + + {openItems.has('topics') ? : } + + } + opened={openItems.has('topics')} + onClick={openAndNavigateTopics} + > + {topicsLoading && } + {topicList.map((topic: any) => ( + toggleBranch(`topic-${topic.name}`)} + /> + ))} + + + ) +} + + +export default NavTree diff --git a/app/sb-explorer-ui/src/components/SideDrawer.tsx b/app/sb-explorer-ui/src/components/SideDrawer.tsx new file mode 100644 index 0000000..9b61701 --- /dev/null +++ b/app/sb-explorer-ui/src/components/SideDrawer.tsx @@ -0,0 +1,48 @@ +import { Drawer, Stack, Group, ActionIcon, Title } from '@mantine/core' +import { IconX } from '@tabler/icons-react' +import type { ReactNode } from 'react' + +interface SideDrawerProps { + open: boolean + title: ReactNode + width?: number + onOpenChange: (open: boolean) => void + children: ReactNode +} + +const SideDrawer = ({ open, title, width = 540, onOpenChange, children }: SideDrawerProps) => { + return ( + onOpenChange(false)} + position="right" + size={width} + padding="lg" + withOverlay + overlayProps={{ opacity: 0.4, blur: 2 }} + styles={{ + content: { + borderTopLeftRadius: 16, + borderBottomLeftRadius: 16, + }, + }} + classNames={{ + content: 'drawer-content', + }} + > + + + + {title} + + onOpenChange(false)}> + + + + {children} + + + ) +} + +export default SideDrawer diff --git a/app/sb-explorer-ui/src/components/StatusPill.tsx b/app/sb-explorer-ui/src/components/StatusPill.tsx new file mode 100644 index 0000000..a0d43f6 --- /dev/null +++ b/app/sb-explorer-ui/src/components/StatusPill.tsx @@ -0,0 +1,19 @@ +import { Badge } from '@mantine/core' +import type { EntityStatus } from '../api/types' + +const statusColor: Record = { + Active: 'green', + Disabled: 'red', + SendDisabled: 'yellow', + ReceiveDisabled: 'yellow', +} + +const StatusPill = ({ status }: { status: EntityStatus }) => { + return ( + + {status} + + ) +} + +export default StatusPill diff --git a/app/sb-explorer-ui/src/components/dialogs/ConfirmActionDialog.tsx b/app/sb-explorer-ui/src/components/dialogs/ConfirmActionDialog.tsx new file mode 100644 index 0000000..08d90be --- /dev/null +++ b/app/sb-explorer-ui/src/components/dialogs/ConfirmActionDialog.tsx @@ -0,0 +1,27 @@ +import { Modal, Stack, Text, Title } from '@mantine/core' +import type { ReactNode } from 'react' + +interface ConfirmActionDialogProps { + open: boolean + title: string + description?: string + children: ReactNode + onOpenChange: (open: boolean) => void +} + +const ConfirmActionDialog = ({ open, title, description, children, onOpenChange }: ConfirmActionDialogProps) => { + return ( + onOpenChange(false)} title={{title}} centered> + + {description && ( + + {description} + + )} + {children} + + + ) +} + +export default ConfirmActionDialog diff --git a/app/sb-explorer-ui/src/components/dialogs/CreateQueueDialog.tsx b/app/sb-explorer-ui/src/components/dialogs/CreateQueueDialog.tsx new file mode 100644 index 0000000..bbc2f07 --- /dev/null +++ b/app/sb-explorer-ui/src/components/dialogs/CreateQueueDialog.tsx @@ -0,0 +1,98 @@ +import { useEffect, useState } from 'react' +import { Button, Group, Modal, NumberInput, Stack, TextInput, Title } from '@mantine/core' + +interface CreateQueueDialogProps { + open: boolean + onOpenChange: (open: boolean) => void + onSubmit: (payload: { name: string; maxDeliveryCount?: number; lockDuration?: string; defaultTtl?: string }) => void +} + +const maxDefaultTtlSeconds = 60 * 60 + +const parseTimeSpan = (value: string) => { + if (!value) return null + const [dayPart, restPart] = value.includes('.') ? value.split('.', 2) : [null, value] + const [hours, minutes, seconds] = restPart.split(':') + if ([hours, minutes, seconds].some((part) => part === undefined)) return null + const days = dayPart ? Number(dayPart) : 0 + const hrs = Number(hours) + const mins = Number(minutes) + const secs = Number(seconds) + if ([days, hrs, mins, secs].some((part) => Number.isNaN(part) || part < 0)) return null + if (mins > 59 || secs > 59) return null + return days * 86400 + hrs * 3600 + mins * 60 + secs +} + +const CreateQueueDialog = ({ open, onOpenChange, onSubmit }: CreateQueueDialogProps) => { + const [name, setName] = useState('') + const [maxDeliveryCount, setMaxDeliveryCount] = useState('10') + const [lockDuration, setLockDuration] = useState('00:01:00') + const [defaultTtl, setDefaultTtl] = useState('01:00:00') + const [defaultTtlError, setDefaultTtlError] = useState(null) + + useEffect(() => { + if (!open) { + setName('') + setMaxDeliveryCount('10') + setLockDuration('00:01:00') + setDefaultTtl('01:00:00') + setDefaultTtlError(null) + } + }, [open]) + + const handleSubmit = () => { + if (!name) return + const ttlSeconds = parseTimeSpan(defaultTtl) + if (ttlSeconds === null) { + setDefaultTtlError('Use hh:mm:ss format (max 01:00:00).') + return + } + if (ttlSeconds > maxDefaultTtlSeconds) { + setDefaultTtlError('Maximum is 01:00:00.') + return + } + setDefaultTtlError(null) + onSubmit({ + name, + maxDeliveryCount: maxDeliveryCount ? Number(maxDeliveryCount) : undefined, + lockDuration, + defaultTtl, + }) + } + + return ( + onOpenChange(false)} title={Create queue} centered> + + setName(e.currentTarget.value)} data-autofocus /> + setMaxDeliveryCount(String(value ?? ''))} + min={1} + /> + setLockDuration(e.currentTarget.value)} /> + { + setDefaultTtl(e.currentTarget.value) + if (defaultTtlError) setDefaultTtlError(null) + }} + error={defaultTtlError} + /> + + + + + + + ) +} + +export default CreateQueueDialog diff --git a/app/sb-explorer-ui/src/components/dialogs/CreateSubscriptionDialog.tsx b/app/sb-explorer-ui/src/components/dialogs/CreateSubscriptionDialog.tsx new file mode 100644 index 0000000..f8a79bd --- /dev/null +++ b/app/sb-explorer-ui/src/components/dialogs/CreateSubscriptionDialog.tsx @@ -0,0 +1,60 @@ +import { useEffect, useState } from 'react' +import { Button, Group, Modal, NumberInput, Stack, TextInput, Title } from '@mantine/core' + +interface CreateSubscriptionDialogProps { + open: boolean + onOpenChange: (open: boolean) => void + onSubmit: (payload: { name: string; maxDeliveryCount?: number; lockDuration?: string; defaultTtl?: string }) => void +} + +const CreateSubscriptionDialog = ({ open, onOpenChange, onSubmit }: CreateSubscriptionDialogProps) => { + const [name, setName] = useState('') + const [maxDeliveryCount, setMaxDeliveryCount] = useState('10') + const [lockDuration, setLockDuration] = useState('00:01:00') + const [defaultTtl, setDefaultTtl] = useState('1.00:00:00') + + useEffect(() => { + if (!open) { + setName('') + setMaxDeliveryCount('10') + setLockDuration('00:01:00') + setDefaultTtl('1.00:00:00') + } + }, [open]) + + const handleSubmit = () => { + if (!name) return + onSubmit({ + name, + maxDeliveryCount: maxDeliveryCount ? Number(maxDeliveryCount) : undefined, + lockDuration, + defaultTtl, + }) + } + + return ( + onOpenChange(false)} title={Create subscription} centered> + + setName(e.currentTarget.value)} data-autofocus /> + setMaxDeliveryCount(String(value ?? ''))} + min={1} + /> + setLockDuration(e.currentTarget.value)} /> + setDefaultTtl(e.currentTarget.value)} /> + + + + + + + ) +} + +export default CreateSubscriptionDialog diff --git a/app/sb-explorer-ui/src/components/dialogs/CreateTopicDialog.tsx b/app/sb-explorer-ui/src/components/dialogs/CreateTopicDialog.tsx new file mode 100644 index 0000000..d606506 --- /dev/null +++ b/app/sb-explorer-ui/src/components/dialogs/CreateTopicDialog.tsx @@ -0,0 +1,39 @@ +import { useEffect, useState } from 'react' +import { Button, Group, Modal, Stack, TextInput, Title } from '@mantine/core' + +interface CreateTopicDialogProps { + open: boolean + onOpenChange: (open: boolean) => void + onSubmit: (payload: { name: string }) => void +} + +const CreateTopicDialog = ({ open, onOpenChange, onSubmit }: CreateTopicDialogProps) => { + const [name, setName] = useState('') + + useEffect(() => { + if (!open) setName('') + }, [open]) + + const handleSubmit = () => { + if (!name) return + onSubmit({ name }) + } + + return ( + onOpenChange(false)} title={Create topic} centered> + + setName(e.currentTarget.value)} data-autofocus /> + + + + + + + ) +} + +export default CreateTopicDialog diff --git a/app/sb-explorer-ui/src/components/dialogs/SendMessageDialog.tsx b/app/sb-explorer-ui/src/components/dialogs/SendMessageDialog.tsx new file mode 100644 index 0000000..793396f --- /dev/null +++ b/app/sb-explorer-ui/src/components/dialogs/SendMessageDialog.tsx @@ -0,0 +1,116 @@ +import { useEffect, useMemo, useState } from 'react' +import { Button, Group, Modal, Stack, TextInput, Title } from '@mantine/core' +import Editor from '@monaco-editor/react' +import MessagePropertiesTable from '../MessagePropertiesTable' + +interface SendMessageDialogProps { + open: boolean + onOpenChange: (open: boolean) => void + onSubmit: (payload: { body: string; contentType?: string; userProperties?: Record }) => void + theme: 'light' | 'dark' +} + +const SendMessageDialog = ({ open, onOpenChange, onSubmit, theme }: SendMessageDialogProps) => { + const [body, setBody] = useState('{}') + const [contentType, setContentType] = useState('application/json') + const [userProps, setUserProps] = useState>({}) + const [kvKey, setKvKey] = useState('') + const [kvValue, setKvValue] = useState('') + + useEffect(() => { + if (!open) { + setBody('{}') + setUserProps({}) + setKvKey('') + setKvValue('') + } + }, [open]) + + const parsedUserProps = useMemo(() => { + const entries = Object.entries(userProps) + const result: Record = {} + entries.forEach(([k, v]) => { + if (k) result[k] = v + }) + return result + }, [userProps]) + + const handleAddKv = () => { + if (!kvKey) return + setUserProps((prev) => ({ ...prev, [kvKey]: kvValue })) + setKvKey('') + setKvValue('') + } + + const handleDeleteKv = (key: string) => { + setUserProps((prev) => { + const next = { ...prev } + delete next[key] + return next + }) + } + + const handleSubmit = () => { + if (contentType.includes('json')) { + try { + JSON.parse(body || '{}') + } catch (_err) { + alert('Body must be valid JSON') + return + } + } + onSubmit({ body, contentType, userProperties: parsedUserProps }) + } + + return ( + onOpenChange(false)} title={Send message} size="lg" centered> + + setContentType(e.currentTarget.value)} /> + + setBody(e.currentTarget.value)} /> +
+ setBody(value ?? '')} + theme={theme === 'dark' ? 'vs-dark' : 'vs'} + options={{ minimap: { enabled: false }, lineNumbers: 'off', wordWrap: 'on' }} + /> +
+
+ + + + setKvKey(e.currentTarget.value)} flex={1} /> + setKvValue(e.currentTarget.value)} flex={1} /> + + + + {Object.keys(parsedUserProps).length > 0 && ( + + {Object.keys(parsedUserProps).map((k) => ( + + ))} + + )} + + + + + + +
+
+ ) +} + +export default SendMessageDialog diff --git a/app/sb-explorer-ui/src/index.css b/app/sb-explorer-ui/src/index.css new file mode 100644 index 0000000..aa83cf0 --- /dev/null +++ b/app/sb-explorer-ui/src/index.css @@ -0,0 +1,75 @@ +:root { + font-family: 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif; + line-height: 1.5; + font-weight: 400; + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + background-color: var(--mantine-color-body); + color: var(--mantine-color-text); +} + +#root { + min-height: 100vh; +} + +:root[data-mantine-color-scheme='light'] { + color-scheme: light; +} + +:root[data-mantine-color-scheme='dark'] { + color-scheme: dark; +} + +html, body { + width: 100%; + overflow-x: hidden; +} + +.drawer-content { + background-color: var(--mantine-color-body); + color: inherit; +} + +.nav-tree-link { + --nl-bg: transparent; + --nl-hover: transparent; + --nl-color: inherit; + color: inherit; + background-color: transparent; + transition: background-color 160ms ease, box-shadow 160ms ease; +} + +:root[data-mantine-color-scheme='light'] .nav-tree-link:hover, +:root[data-mantine-color-scheme='light'] .nav-tree-link[data-hovered] { + background-color: rgba(255, 255, 255, 0.32); + box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.6); +} + +:root[data-mantine-color-scheme='dark'] .nav-tree-link:hover, +:root[data-mantine-color-scheme='dark'] .nav-tree-link[data-hovered] { + background-color: rgba(255, 255, 255, 0.2); + box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.4); +} + +:root[data-mantine-color-scheme='light'] .nav-tree-link[data-active], +:root[data-mantine-color-scheme='light'] .nav-tree-link[aria-current='page'] { + background-color: rgba(255, 255, 255, 0.42); + box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.8); +} + +:root[data-mantine-color-scheme='dark'] .nav-tree-link[data-active], +:root[data-mantine-color-scheme='dark'] .nav-tree-link[aria-current='page'] { + background-color: rgba(255, 255, 255, 0.32); + box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.6); +} diff --git a/app/sb-explorer-ui/src/main.tsx b/app/sb-explorer-ui/src/main.tsx new file mode 100644 index 0000000..71fc35a --- /dev/null +++ b/app/sb-explorer-ui/src/main.tsx @@ -0,0 +1,26 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import { QueryClient, QueryClientProvider } from '@tanstack/react-query' +import { ReactQueryDevtools } from '@tanstack/react-query-devtools' +import '@mantine/core/styles.css' +import '@mantine/notifications/styles.css' +import './index.css' +import App from './App' + +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + staleTime: 5000, + refetchOnWindowFocus: false, + }, + }, +}) + +createRoot(document.getElementById('root')!).render( + + + + + + , +) diff --git a/app/sb-explorer-ui/src/routes/AppShell.tsx b/app/sb-explorer-ui/src/routes/AppShell.tsx new file mode 100644 index 0000000..dfc9fe7 --- /dev/null +++ b/app/sb-explorer-ui/src/routes/AppShell.tsx @@ -0,0 +1,227 @@ +import { useMemo, useState, type ReactNode } from 'react' +import { Outlet } from 'react-router-dom' +import { + ActionIcon, + AppShell as MantineAppShell, + Badge, + Box, + Container, + Divider, + Group, + Stack, + Text, + Tooltip, +} from '@mantine/core' +import { + IconLayoutSidebarLeftCollapse, + IconLayoutSidebarLeftExpand, + IconMoon, + IconRefresh, + IconSun, +} from '@tabler/icons-react' + +import NavTree from '../components/NavTree' +import MockBanner from '../components/MockBanner' +import { useAppContext } from '../App' + +const ShellHeader = ({ actions, chrome }: { actions?: ReactNode; chrome: { headerBg: string; headerText: string } }) => { + const { theme, toggleTheme } = useAppContext() + const isLight = theme === 'light' + + return ( + + + + SB + + + + Service Bus Explorer + + + Emulator + + + + + + {actions} + + window.location.reload()} + style={{ color: chrome.headerText }} + > + + + + + + {isLight ? : } + + + + + ) +} + +function AppShell() { + const { theme } = useAppContext() + const [collapsed, setCollapsed] = useState(false) + + const chrome = useMemo( + () => + theme === 'light' + ? { + headerBg: 'linear-gradient(120deg, #0f65c9 0%, #0b78e3 60%, #0a8cff 100%)', + headerText: '#f8fbff', + subBg: '#f3f6fb', + subText: '#2c3547', + divider: '#d6dce7', + sidebarBg: '#0c1626', + sidebarText: '#f5f7fb', + mainBg: '#eef2f8', + mainText: '#0f172a', + } + : { + headerBg: 'linear-gradient(120deg, #0a2d4f 0%, #0b3a66 50%, #0f4c85 100%)', + headerText: '#e7f1ff', + subBg: '#0f1a28', + subText: '#dbe6f7', + divider: '#1f2836', + sidebarBg: '#0b101b', + sidebarText: '#e3e8f5', + mainBg: '#0b1220', + mainText: '#e4e9f5', + }, + [theme], + ) + + return ( + + + + + Azure Service Bus Emulator + setCollapsed((c) => !c)} + color="gray.0" + hiddenFrom="md" + > + {collapsed ? : } + + + } + /> + + + + + {!collapsed && ( + + Navigation + + )} + + setCollapsed((c) => !c)} + style={{ color: chrome.sidebarText }} + > + {collapsed ? : } + + + + + + + + + + Home + + + Service Bus (Emulator) + + + + + + + + + + + + + + ) +} + +export default AppShell diff --git a/app/sb-explorer-ui/src/routes/QueueDetail.tsx b/app/sb-explorer-ui/src/routes/QueueDetail.tsx new file mode 100644 index 0000000..dbbfa57 --- /dev/null +++ b/app/sb-explorer-ui/src/routes/QueueDetail.tsx @@ -0,0 +1,192 @@ +import { useMemo, useState } from 'react' +import { useNavigate, useParams } from 'react-router-dom' +import { Button, Group, Loader, Stack, Text } from '@mantine/core' +import { notifications } from '@mantine/notifications' +import EntityHeader from '../components/EntityHeader' +import EntityOverviewCard from '../components/EntityOverviewCard' +import MessageDetailPanel from '../components/MessageDetailPanel' +import MessageGrid from '../components/MessageGrid' +import MessageTabs from '../components/MessageTabs' +import ConfirmActionDialog from '../components/dialogs/ConfirmActionDialog' +import SendMessageDialog from '../components/dialogs/SendMessageDialog' +import { + useBulkDlqDelete, + useDeleteQueue, + useMessages, + useQueues, + useSendMessage, +} from '../api/hooks' +import type { MessageState, QueueInfo } from '../api/types' +import { useAppContext } from '../App' + +const QueueDetail = () => { + const { name } = useParams() + const navigate = useNavigate() + const { theme } = useAppContext() + const { data: queues, isLoading } = useQueues() + const queueList = (Array.isArray(queues) ? queues : queues ? Object.values(queues as any) : []) as QueueInfo[] + const queue = useMemo(() => queueList.find((q) => q.name === name), [queueList, name]) + + const [messageState, setMessageState] = useState('active') + const [skip, setSkip] = useState(0) + const take = 25 + const [selectedIds, setSelectedIds] = useState([]) + const [inspect, setInspect] = useState() + const [sendOpen, setSendOpen] = useState(false) + const [deleteOpen, setDeleteOpen] = useState(false) + + const messages = useMessages({ + scope: { type: 'queue', name: name ?? '' }, + state: messageState, + skip, + take, + enabled: !!name, + }) + + const bulkDelete = useBulkDlqDelete() + const sendMessage = useSendMessage() + const deleteQueue = useDeleteQueue() + + const inspectingMessage = messages.data?.items?.find((m: any) => m.messageId === inspect) + + const handleDelete = async () => { + if (!name) return + await deleteQueue.mutateAsync(name) + setDeleteOpen(false) + navigate('/queues') + } + + if (!name) return No queue selected. + if (isLoading && !queue) return + if (!queue) return Queue not found. + + return ( + + setSendOpen(true)} + onDelete={() => setDeleteOpen(true)} + /> + + + + + { + setMessageState(state) + setSelectedIds([]) + setSkip(0) + }} + activeCount={queue.activeMessageCount} + deadLetterCount={queue.deadLetterMessageCount} + /> + + + Messages + {messageState === 'deadletter' && ( + + )} + + + { + setSkip(Math.max(0, next)) + setSelectedIds([]) + }} + onInspect={(msg) => setInspect(msg.messageId)} + /> + + + !open && setInspect(undefined)} /> + + + sendMessage.mutate( + { + scope: { type: 'queue', name }, + ...payload, + }, + { + onSuccess: () => { + setSendOpen(false) + notifications.show({ title: 'Message sent', message: `Queued to ${name}`, color: 'green' }) + }, + }, + ) + } + /> + + + + + + + + + ) +} + +export default QueueDetail diff --git a/app/sb-explorer-ui/src/routes/Queues.tsx b/app/sb-explorer-ui/src/routes/Queues.tsx new file mode 100644 index 0000000..02f7a09 --- /dev/null +++ b/app/sb-explorer-ui/src/routes/Queues.tsx @@ -0,0 +1,81 @@ +import { useState } from 'react' +import { useNavigate } from 'react-router-dom' +import { Button, Group, Stack, Text } from '@mantine/core' +import { notifications } from '@mantine/notifications' +import axios from 'axios' +import EntityTable from '../components/EntityTable' +import ConfirmActionDialog from '../components/dialogs/ConfirmActionDialog' +import CreateQueueDialog from '../components/dialogs/CreateQueueDialog' +import { useCreateQueue, useDeleteQueue, useQueues } from '../api/hooks' +import type { QueueInfo } from '../api/types' + +const Queues = () => { + const navigate = useNavigate() + const { data: queues, isLoading, refetch } = useQueues() + const createQueue = useCreateQueue() + const deleteQueue = useDeleteQueue() + const [createOpen, setCreateOpen] = useState(false) + const [deleteTarget, setDeleteTarget] = useState(null) + + const handleCreate = async (payload: { name: string; maxDeliveryCount?: number; lockDuration?: string; defaultTtl?: string }) => { + try { + await createQueue.mutateAsync(payload) + setCreateOpen(false) + refetch() + } catch (error) { + const responseData = axios.isAxiosError(error) + ? (error.response?.data as { detail?: string; error?: string } | undefined) + : undefined + const message = responseData?.detail || responseData?.error || (error instanceof Error ? error.message : 'Unable to create queue.') + notifications.show({ title: 'Create queue failed', message, color: 'red' }) + } + } + + const handleDelete = async () => { + if (!deleteTarget) return + await deleteQueue.mutateAsync(deleteTarget.name) + setDeleteTarget(null) + refetch() + } + + return ( + + setCreateOpen(true)} + onRowClick={(q) => navigate(`/queues/${q.name}`)} + emptyState={ + + No queues yet. + + + } + /> + + + + !open && setDeleteTarget(null)} + title={`Delete queue ${deleteTarget?.name ?? ''}`} + description="This will remove the queue and any messages." + > + + + + + + + ) +} + +export default Queues diff --git a/app/sb-explorer-ui/src/routes/TopicDetail.tsx b/app/sb-explorer-ui/src/routes/TopicDetail.tsx new file mode 100644 index 0000000..6f2ad6c --- /dev/null +++ b/app/sb-explorer-ui/src/routes/TopicDetail.tsx @@ -0,0 +1,292 @@ +import { useMemo, useState } from 'react' +import { useNavigate, useParams } from 'react-router-dom' +import { Button, Group, Loader, Paper, Stack, Table, Text } from '@mantine/core' +import { notifications } from '@mantine/notifications' +import EntityHeader from '../components/EntityHeader' +import EntityOverviewCard from '../components/EntityOverviewCard' +import MessageDetailPanel from '../components/MessageDetailPanel' +import MessageGrid from '../components/MessageGrid' +import MessageTabs from '../components/MessageTabs' +import ConfirmActionDialog from '../components/dialogs/ConfirmActionDialog' +import CreateSubscriptionDialog from '../components/dialogs/CreateSubscriptionDialog' +import SendMessageDialog from '../components/dialogs/SendMessageDialog' +import { + useBulkDlqDelete, + useCreateSubscription, + useDeleteSubscription, + useDeleteTopic, + useMessages, + useSendMessage, + useSubscriptions, + useTopics, +} from '../api/hooks' +import type { MessageState, TopicInfo } from '../api/types' +import StatusPill from '../components/StatusPill' +import { useAppContext } from '../App' + +const TopicDetail = () => { + const { name, subscription } = useParams() + const navigate = useNavigate() + const { theme } = useAppContext() + const { data: topics, isLoading } = useTopics() + const topicList = (Array.isArray(topics) ? topics : topics ? Object.values(topics as any) : []) as TopicInfo[] + const topic = useMemo(() => topicList.find((t) => t.name === name), [topicList, name]) + + const { data: subs, refetch: refetchSubs } = useSubscriptions(name ?? '', true) + const subsList = (Array.isArray(subs) ? subs : subs ? Object.values(subs as any) : []) as typeof subs + const sub = useMemo(() => subsList?.find((s: any) => s.name === subscription), [subsList, subscription]) + + const [messageState, setMessageState] = useState('active') + const [skip, setSkip] = useState(0) + const take = 25 + const [selectedIds, setSelectedIds] = useState([]) + const [inspect, setInspect] = useState() + const [sendOpen, setSendOpen] = useState(false) + const [createSubOpen, setCreateSubOpen] = useState(false) + const [deleteTopicOpen, setDeleteTopicOpen] = useState(false) + const [deleteSubOpen, setDeleteSubOpen] = useState(false) + + const messageScope = useMemo( + () => ({ type: 'subscription', topic: name ?? '', subscription: subscription ?? '' } as const), + [name, subscription], + ) + + const messages = useMessages({ + scope: messageScope, + state: messageState, + skip, + take, + enabled: !!name && !!subscription, + }) + + const bulkDelete = useBulkDlqDelete() + const sendMessage = useSendMessage() + const createSubscription = useCreateSubscription(name ?? '') + const deleteSubscription = useDeleteSubscription(name ?? '') + const deleteTopic = useDeleteTopic() + + const inspectingMessage = messages?.data?.items?.find((m) => m.messageId === inspect) + + const handleCreateSub = async (payload: { name: string; maxDeliveryCount?: number; lockDuration?: string; defaultTtl?: string }) => { + await createSubscription.mutateAsync(payload) + setCreateSubOpen(false) + refetchSubs() + } + + const handleDeleteSub = async () => { + if (!subscription) return + await deleteSubscription.mutateAsync(subscription) + setDeleteSubOpen(false) + navigate(`/topics/${name}`) + refetchSubs() + } + + const handleDeleteTopic = async () => { + if (!name) return + await deleteTopic.mutateAsync(name) + setDeleteTopicOpen(false) + navigate('/topics') + } + + if (!name) return No topic selected. + if (isLoading && !topic) return + if (!topic) return Topic not found. + + const renderSubscriptionList = () => ( + + + Subscriptions + + + + + + Name + Status + Active + DLQ + + + + + {subs?.map((s) => ( + navigate(`/topics/${name}/${s.name}`)}> + {s.name} + + + + {s.activeMessageCount ?? 0} + {s.deadLetterMessageCount ?? 0} + + + + + ))} + +
+
+ ) + + const showSubscriptionDetail = !!subscription && sub + + return ( + + setSendOpen(true)} + onDelete={() => (showSubscriptionDetail ? setDeleteSubOpen(true) : setDeleteTopicOpen(true))} + onCreateSubscription={showSubscriptionDetail ? undefined : () => setCreateSubOpen(true)} + /> + + + + {showSubscriptionDetail ? ( + + { + setMessageState(state) + setSelectedIds([]) + setSkip(0) + }} + activeCount={sub?.activeMessageCount} + deadLetterCount={sub?.deadLetterMessageCount} + /> + + + Messages + {messageState === 'deadletter' && ( + + )} + + + { + setSkip(Math.max(0, next)) + setSelectedIds([]) + }} + onInspect={(msg) => setInspect(msg.messageId)} + /> + + ) : ( + renderSubscriptionList() + )} + + !open && setInspect(undefined)} /> + + + sendMessage.mutate( + { + scope: showSubscriptionDetail ? { type: 'topic', name: topic.name } : { type: 'topic', name: topic.name }, + ...payload, + }, + { + onSuccess: () => { + setSendOpen(false) + notifications.show({ title: 'Message sent', message: `Sent to ${showSubscriptionDetail ? 'subscription' : 'topic'}`, color: 'green' }) + }, + }, + ) + } + /> + + + + + + + + + + + + + + + + + + ) +} + +export default TopicDetail diff --git a/app/sb-explorer-ui/src/routes/Topics.tsx b/app/sb-explorer-ui/src/routes/Topics.tsx new file mode 100644 index 0000000..7c2348d --- /dev/null +++ b/app/sb-explorer-ui/src/routes/Topics.tsx @@ -0,0 +1,71 @@ +import { useState } from 'react' +import { useNavigate } from 'react-router-dom' +import { Button, Group, Stack, Text } from '@mantine/core' +import EntityTable from '../components/EntityTable' +import ConfirmActionDialog from '../components/dialogs/ConfirmActionDialog' +import CreateTopicDialog from '../components/dialogs/CreateTopicDialog' +import { useCreateTopic, useDeleteTopic, useTopics } from '../api/hooks' +import type { TopicInfo } from '../api/types' + +const Topics = () => { + const navigate = useNavigate() + const { data: topics, isLoading, refetch } = useTopics() + const createTopic = useCreateTopic() + const deleteTopic = useDeleteTopic() + const [createOpen, setCreateOpen] = useState(false) + const [deleteTarget, setDeleteTarget] = useState(null) + + const handleCreate = async (payload: { name: string }) => { + await createTopic.mutateAsync(payload) + setCreateOpen(false) + refetch() + } + + const handleDelete = async () => { + if (!deleteTarget) return + await deleteTopic.mutateAsync(deleteTarget.name) + setDeleteTarget(null) + refetch() + } + + return ( + + setCreateOpen(true)} + onRowClick={(t) => navigate(`/topics/${t.name}`)} + emptyState={ + + No topics yet. + + + } + /> + + + + !open && setDeleteTarget(null)} + title={`Delete topic ${deleteTarget?.name ?? ''}`} + description="This will remove the topic and its messages." + > + + + + + + + ) +} + +export default Topics diff --git a/app/sb-explorer-ui/src/theme.ts b/app/sb-explorer-ui/src/theme.ts new file mode 100644 index 0000000..8a4eb46 --- /dev/null +++ b/app/sb-explorer-ui/src/theme.ts @@ -0,0 +1,99 @@ +import { createTheme } from '@mantine/core' +import type { BrandVariants, Theme } from '@fluentui/react-components' +import { createDarkTheme, createLightTheme } from '@fluentui/react-components' + +// Mantine themes +export const mantineLight = createTheme({ + colors: { + brand: [ + '#e5f2ff', + '#c9e0ff', + '#9fc7ff', + '#73abff', + '#4c8fff', + '#2f79ff', + '#1d6cff', + '#0b60ff', + '#0047cc', + '#003399', + ], + }, + primaryColor: 'brand', + primaryShade: 5, + fontFamily: "'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif", + defaultRadius: 'md', + shadows: { + sm: '0 4px 14px rgba(0,0,0,0.07)', + md: '0 8px 24px rgba(0,0,0,0.08)', + }, + headings: { fontFamily: "'Segoe UI', 'Segoe UI Web (West European)', sans-serif" }, +}) + +export const mantineDark = createTheme({ + colors: { + brand: [ + '#e5f2ff', + '#c9e0ff', + '#9fc7ff', + '#73abff', + '#4c8fff', + '#2f79ff', + '#1d6cff', + '#0b60ff', + '#0047cc', + '#003399', + ], + }, + primaryColor: 'brand', + primaryShade: 5, + fontFamily: "'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif", + defaultRadius: 'md', + shadows: { + sm: '0 4px 14px rgba(0,0,0,0.35)', + md: '0 8px 24px rgba(0,0,0,0.5)', + }, + headings: { fontFamily: "'Segoe UI', 'Segoe UI Web (West European)', sans-serif" }, +}) + +// Fluent themes (for existing Fluent components) +const brand: BrandVariants = { + 10: '#061724', + 20: '#082338', + 30: '#0a2e4a', + 40: '#0c3b5f', + 50: '#0e4775', + 60: '#0f548c', + 70: '#115ea3', + 80: '#0f6ebe', + 90: '#0d7fcf', + 100: '#0b88d0', + 110: '#0a96dd', + 120: '#0ba8e0', + 130: '#0db5e4', + 140: '#1bc3ee', + 150: '#35d0f8', + 160: '#4fdbff', +} + +const fluentBaseLight = createLightTheme(brand) +const fluentBaseDark = createDarkTheme(brand) + +export const fluentLightTheme: Theme = { + ...fluentBaseLight, + colorNeutralBackground1: '#eef1f7', + colorNeutralBackground2: '#ffffff', + colorNeutralStroke1: '#d0d7e2', + shadow4: '0 8px 24px rgba(0,0,0,0.08)', + shadow8: '0 12px 32px rgba(0,0,0,0.12)', + fontFamilyBase: "'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif", +} + +export const fluentDarkTheme: Theme = { + ...fluentBaseDark, + colorNeutralBackground1: '#0f1624', + colorNeutralBackground2: '#111820', + colorNeutralStroke1: '#1f2633', + shadow4: '0 8px 24px rgba(0,0,0,0.5)', + shadow8: '0 12px 32px rgba(0,0,0,0.6)', + fontFamilyBase: "'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif", +} diff --git a/app/sb-explorer-ui/src/vite-env.d.ts b/app/sb-explorer-ui/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/app/sb-explorer-ui/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/app/sb-explorer-ui/tsconfig.app.json b/app/sb-explorer-ui/tsconfig.app.json new file mode 100644 index 0000000..a9b5a59 --- /dev/null +++ b/app/sb-explorer-ui/tsconfig.app.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2022", + "useDefineForClassFields": true, + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "module": "ESNext", + "types": ["vite/client"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/app/sb-explorer-ui/tsconfig.json b/app/sb-explorer-ui/tsconfig.json new file mode 100644 index 0000000..1ffef60 --- /dev/null +++ b/app/sb-explorer-ui/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/app/sb-explorer-ui/tsconfig.node.json b/app/sb-explorer-ui/tsconfig.node.json new file mode 100644 index 0000000..8a67f62 --- /dev/null +++ b/app/sb-explorer-ui/tsconfig.node.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2023", + "lib": ["ES2023"], + "module": "ESNext", + "types": ["node"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/app/sb-explorer-ui/vite.config.ts b/app/sb-explorer-ui/vite.config.ts new file mode 100644 index 0000000..2ea0e84 --- /dev/null +++ b/app/sb-explorer-ui/vite.config.ts @@ -0,0 +1,40 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], + server: { + port: 5173, + strictPort: true, + proxy: { + '/api': { + target: 'http://localhost:5173', + changeOrigin: true, + secure: false, + }, + '/scalar': { + target: 'http://localhost:5123', + changeOrigin: true, + secure: false, + }, + '/openapi': { + target: 'http://localhost:5123', + changeOrigin: true, + secure: false, + }, + }, + }, + build: { + target: 'esnext', + minify: 'esbuild', + cssMinify: true, + rollupOptions: { + output: { + manualChunks: { + vendor: ['react', 'react-dom', 'react-router-dom'], + }, + }, + }, + }, +}) diff --git a/compose.yaml b/compose.yaml index e0c5ff6..6a63768 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,35 +1,29 @@ services: - sbexplorer.mud: - image: ghcr.io/tombiddulph/service-bus-emulator-explorer:main - build: - context: . - dockerfile: Dockerfile + sb-explorer: + image: ghcr.io/tombiddulph/sbuitest:latest +# build: +# context: . +# dockerfile: src/ServiceBusEmulatorExplorer/Dockerfile ports: - "8080:8080" - "8081:8081" environment: - - "ServiceBus__ConnectionString=Endpoint=sb://servicebus-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;" - - "ServiceBus_RefreshIntervalMs=5000" - - "Redis__ConnectionString=redis:6379,abortConnect=false,ssl=false,password=pass@w0rd1" - - "ASPNETCORE_ENVIRONMENT=Production" - - "ASPNETCORE_URLS=https://+:8081;http://+:8080" - - "ASPNETCORE_Kestrel__Certificates__Default__Password=password" - - "ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx" - volumes: - - ~/.aspnet/https:/https:ro - - "${CONFIG_PATH}:/app/service-bus-config.json" + - "ServiceBus__ConnectionString=Endpoint=sb://servicebus-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;" + - "ServiceBus__AdministrationConnectionString=Endpoint=sb://servicebus-emulator:5300;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;" + - "ServiceBus_RefreshIntervalMs=5000" + - "ASPNETCORE_ENVIRONMENT=Production" networks: - sb-emulator: - aliases: - - "sbexplorer.mud" + sb-emulator: + aliases: + - "sb-explorer" servicebus-emulator: container_name: "servicebus-emulator" image: mcr.microsoft.com/azure-messaging/servicebus-emulator:latest pull_policy: always - volumes: - - "${CONFIG_PATH}:/ServiceBus_Emulator/ConfigFiles/Config.json" + ports: - "5672:5672" + - "5300:5300" environment: SQL_SERVER: sql MSSQL_SA_PASSWORD: "${SQL_PASSWORD}" # Password should be same as what is set for SQL @@ -50,17 +44,6 @@ environment: ACCEPT_EULA: ${ACCEPT_EULA} MSSQL_SA_PASSWORD: "${SQL_PASSWORD}" - redis: - image: redis:8.0-M02-alpine - restart: always - ports: - - '6379:6379' - command: redis-server --save 60 1 --loglevel warning --requirepass pass@w0rd1 - volumes: - - ./data:/data - networks: - sb-emulator: - aliases: - - "redis" networks: sb-emulator: + diff --git a/image.png b/image.png deleted file mode 100644 index 9e265f2505eef04e16c4a89c3160d90a21893b44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 735547 zcmce;2V7I#mOhLiMG&x1q=S`?bfqIANSEFMBE1Ergc1m%0s;!C6zLtLcLIc>AiZ}; z2mz5!f>J^W<$rj~+&lBl%zN)Q*BgFG4*Q(7_daW{y~?xJNtlk73N>OQeiHKCgV&lnmK1?w@-#E#W zH031Lz2`P;M#PgruH#1^8-14IMtd~pRo<%+d}R#!_jODL4K9#Q+%uzk@}=c!`ip>< z{FL4G#${H%^0!~11GZ+8yzR95C2uXILU9RD`+iy?v(5CZ1d;EDPnomwFmEZOBd?z9b=1lJF`) z&m#ZGi`_+g%8{wUlL5$~TbF8lFV5-}_g&@h93jScv+bMniYa2sIiEfI!M{~E@^d8l z>d&ZTTdiE9X@2|M&`P_69z0FV!b3||v7U$imL}&dd&584TI6c)@kbcG>cVSY@)fpE z5J)Uke9yqMmG{HA;_xod#i7dNwkT8nLIDApr-JS3i;NFjZ0zUG9m*`>cVc(Au5Ag~ zFICz&xA9y&u8=ERT3tH#(c`YDwN3Ri-x)a%;dd228IyW7@wa8~GYqKje%KeSY_WB2 z>s&}SW4XF!#VgHe6Q_8gj8sB_qW7XR>GO~A0;y83CMf5eF3R6k*08@S^j5|G+#Lq0 zWeGzG2$4o3D#7{ZB5oV{%3<#==D?6BdFMiB(pK;{A_p|d^Onivf#?u(9ycPvDv#@# zMNAxitK=lF71+5+#M4Q)p9||IP(LLS{7kaxJ&eHf0Wk0^sKr}zg_VE=b1^FXR-fS{QC9-HH z8xmno$xd?07cJ?=+-KB6&PJc@4wksrro*Fu#z4tya6pI8^GrS2&b{4qMF%=R>VOxI zZZjE%h+8R5Ub6eFapywh^Z1soA8L2V1)sw|FFd98rvtwb`YbssT}B5xqn%C^{wg!W zQ)iKztecAdO}NsHjQgLwK3&ykDj*ws?xf_E3C_s=Bs{7j#-OP@GPLNxSS2rYsZX)= zeyLJ?I^SUR^3ClV+XCC1eym6IN?#lv_ulTm!f=!9!yA)ep06=hG*(*Hg4VdlA;KGF z#{AUIue`nOvhU~AEueR@YcnW>+i@s0KT*V=p2?9-2?ea$(* zS9Z^6w>Zzc{%G2}(?FCKCDh9CC9QRLE^Y4CIm)vnFGRUMe!fw3)8z*1^{R{DOCjez z+*i)LI23zDQR4=fGww3W>-aF*FgMlf?*+TU=+wS_*i>D}p3g4KRvcETxHJ{Bt{izw zz0<5Sv_ln{3HDn4j=9(ZCX>FB~>C7BCTnW3RVj?3_cTlPPrhn`bpW7kSAf^F19&`UsJnt zL+J*`jS}6U;WIfAYD)Ta22rcZ3p$dzw7Noip|R!N54!mm^cS8iSa+kl=Xuq5A-s=x zr+8y|?G3WU==!4DGjm32hP4I{9McvZ`>p%u`%p5aRu-6s-GVIxS$*FE<$|{b-um+S zLu3A}&+|0H36(o8CC)FU+DJ?be_9%|>sj|dHQc!_x) zdR>xw^NTDUUCA}f}A1;J7(RwCTw`a<05V|K#2=!$T#CRS5VgHO{f z@rxaeoquJ3T_e?Ps$>QVhEe`2w{Inh_Eq+-^^prWFeozYGxRYC3G4{W^TW*`rm*S? zxEfr_Vdt}Hm(*t|Onu)$_1k>vj@;qJ8iBU)2}q-B1eQ-)R5}$6Lm=?_1Z8~Ey7YSU zojX#mS(#ZMu6rJ_}ml3syxk9}y{yYHU9W3r!`Tn2+ud%{?a?>l?E_JkqWA z-50sl7+*PIS_*NCfv0)D^M*&g*Ur`s93L(8r##WDSJ;g&?p^N`Q>7cNp|GGUbLhwnji6?rVvr<%`PlGB%# z*txclkXMEwa@3VHJ=AOG^FoAZ zlS^t&wZ$HC8xbP=u2XF~=}!O8Z|jQIgo^m_Q_2Ie7I<#YvarCd?Csh5bEuvs*^8tJ*SI5yz!?*TJ? zY0+vj@~-d$g3J4y&YmfQHoJ* zQie2b5lWhLN_6z^ly%wajqNUP>|?y$YS0b#TN78oLpx6jzg2u2xRLyRP2TuK=eQLv z@X)LtF6Dx5rbcL%6$c^+c%*LIaPn{lTLeT5o4vu0+=onTf+o7xy9*$fz11P=Jukb> z@XH%hHA^1KYHcZM1KsV7%uvaVfaWMfsatc$aR_f;!M6f!`OUxvGprF>-`ZFYLImYp z`#kdU5xI2WlS6%P)gzss8A73?p*hu7)$yyWYpanCtW&166Y8rfQSBVqyNdxuIbRww z>fenU`?Ipfvj!e}v z9PG9bLo=&fmPhVpQTJ5w((5J4{s8GT4_GE>QVznk-=fp88A;A)EjZIe=a)}#pIs<4 z@-H=Cw}GTKulnuuiZ3}APcTg+x!sv|SgqKQIx0LW%|o!&CxNAATvnc~I{_4)>gD%2H@Ft9hOPyx*hY!7PaN89 znq`eD`auSvWor-jK9DOVXD~L~A0PYH&hjicPKjdey{<`Ivwskv0!t*_r$&E z2W^`?zDW$`yQ&=}k7&1U548-l2!Mh%A7K0D;1DRuu$r6o}aBYln}A$r!;Yc4A= z*bDzG7IgAev~suV4$I}vfN znCd4NZ@3lL`Ob2Pi1wW1-~vrKdk!QCLXr>8F&k}*6$0*SoUQRgJ55a@Uf`I5i1f@Q zA`;-}4Dd&EhM9=;w__qAwKFXLajbiW`;TjgiHJfSiO&9UjVbVb`ichL0QDc=B=19r z$btVZ0qnp3=jIz_*^YyR9wQ!@pzHyh|!Mv#-7HS8dBD7u7XxJZcl6leO#ZO_CqA&BLy6~+Im`X`nbA) zJ*0eOul{z06mWdnEOeFgw@W;oWv?1*>ToK#x!ZC|2;LUFeN~Q&_|TT+w1k&22)-2QvgzdQAJq^CC_rEBZq=HhkAL<6v+ zr<{n4(0|wbU#X1$MkXgLCMG2O2if1Z|5qB5|AFT3+y5(#w!0(1N2}B6$^ALT-?#m7 zy^PSQ0Q{Xm{4Q<3wF2TMM=2xpAEGNq`2!WkNJOMS^zgo-zR#I;wD)s!uf~&;-QNEG zxb@uK2gK*1U$Jwhd!Ai+mCLyE;`6|!f#Q9Siw)1|O6mBFbsmkbHNGahuOO89`n3Xa zMyL+)xf@)KZZ-Y=hjOLbn+eG&Dd=7>&2^gRL+CU6x%tyXP`>ah3J*|2~(X6f@3p5AU>@f6Yuh z?<;WCA06Otq&Hr37*#&y_Hy(ovs{i2c53ac*rj__dO4yC^k%pePX1s$l6T%9NN|32@3>@2rFC-YYe+`XwCx%#5PBOTh` z$bxVebRHwZbJrw8t0yGIY-q`t#70mh@FVgRvt;oQ( z4Y8UA{nbWM=8W#LDY~0dA{{l61ss{gZfB$*Ow&xkr8ro$HCgeQ3OJY=9+(xGJN0q;={J-hQ zFG#`Hw~m@cYV=ar{Tj)$)%H9e75`0R|G8d4GrZ~1c&?Y^W-?7YnJMY`8Nb{W#($iZ z{}kW<$BU~j=ok|oGmf)Iw7p5kGl(_(``N&+6Q^P7Wk9cpZQQ>;BKfaXC4arB4gxwL zkfsjQnIZ0fZ;KK^O7e<44X*@(-Hd$+?o=8p|@b)Wdf#>E{t zZYk{^sBOt2OlB_ZOsf&PIf3 zgfB%4jUyiF67qO0&_-OI}>HyuLx z>-Achc#y_TYierhV*^uDCwh8%x!M3{R5|+}`^m3{ND(VbI2`gjd*L-j_HV9&IBB)s zujJJ4$|tCwLQGsd!2(!EUOqm7cbqNNqLD5ye=~^++81W^nr3K>QoT zUm>0EEHev>rciM8n(`m|K4|9F>AFehZBqoLsBy-sO|`#eIa1Y=Ht1O4|K*G4!We`^ znx;V~^RzkCufO&{3of&s{cYibu-7kOv^wT)11^R_Jk{vL1PWR0e9m#h-2?)#>>qYK z{{LyNM?tx{H`9VX@!$VbfVbJtyg)(+>auT9tm_jqYZm0@+U2c^ru=%Pz{Z!(f8X}1 z?jHi1?o9#cDCz!djS7$RE=|@xyC$y&DG=4Nzxem6z)qE`PUi`s*Sxe5L zErbH?1%=1enwF=j{5mJrQo+05<1}C$d>LKV}8c9N#f+ zTVJNm{OSdy*mektehY|I8atYnIqJ75f9@Al&>{50NCyMY`b9r~@P<p@~^kAmdWydmHE{? zm5zE|aVZvRY+=!~<(ZiJy8|&8ahAeqL;2Q+63#(0QecsRHTEokG8+^i9>h`3Z5%ur zow~5E%@b z#{~lt{#5QtyLe@kzNItEcxlB>AqHOEGgD)*(TuZjTfZ*Sn3YuCN+ZobB3*w^=z>DJ zB<1M%c%lUxkFBk(Aqa$ir&(Ww3!!Ey%E-v*!FNRddam13=o=a){%*d4QiTQsKXam% zNb;t>21He@!d@2D-L=-tugV#ARF_1=CrPX=v>?Sb5!oA>J)(wYmE8=Da;TYvUF|{> zMA4G<_9pvvKi`vOc0lMK2gMMgR~%HK%F4kzDMF#T<<9M2E$_PSSEk;@d4|_pj5sx6c{n}tb@%yvEXp0G_X3916I2P`4kG5VUL(fmwTw5 zJC1qZd>Z@k!*yW8I-JF2obTYNqTN>`&+tU^QVjuPgSVH zCm5Zr2$SBR%)dcHu?Kkqi3eL-Y3LAZ!OmV1s~h+2`>h zlMkSNja@4Jn4A2m;2MK9C)bq%>YCZHyAm#)k6DCaw9b$L@Ax_Jvt702C@Q-N!tnjD z*c&$6J?W@kjUx2o9oc3v9S`kc+bqrvDVX9G*p1yvl5X2q6aM3 z;N+wO^SOe-Ob#vs1A}104ZI(vvr(tN%8Nxr<0IC;j{g3$3jSwzNf7(ZGN6tLX%)(5 zSK5d-jdG}Sr??#UDmEr&`!#;Jv!4oZnkaEV8V>6tmGwnbTK`uK zp~^QKYTcv=M2QK1$r7wxWaUjWX8z|J+NauIzX^VA{MxQDiRtDgOnrk}aGSnJskRDB zsh-~ku-I_3^pcX2S+Z5~*K(c_#h)|}f@0Ki!iycN$bYdt3}WYcda#m*S}SdyxrStB z&ev!IcsV12wI%LOJa4s5nc8mz1U`pPNb4p>M{A=OYfsTOOjCe&{e_b+g6YuJ=dd`x zgJ))S;9zeiL-Eh;n$j(cqoY$528Ej!abi7@(zsd)0@Cm~G>L_7E+gU7;pOa|HxTc1GP4X$8XZ zq0A!L5_h@XuI0^<^cHrFh*On$&c#P`;}&m}xvgHu- zUPdymy%r{5Jc=<%fWc#~UACc9;|!KEalGL`%xRRH@R?k0*3!EDP5Drk3c*6qw5oI4 z?_1a{7eGhgXP_Il@cfbzd=R$rOLn84l*^CDN#-D1da9W+FSo{IxKlG4UsDhAhWoNO zxlDD(`mSw%5AKd~6?z?DM!=7oxlO$wr3#lygG_+DU57NQ;gj7b-rHgLM{pMd4b)GKs_+hs@AE%aa46kt#S{z})C-`Cz)YWZ6c-@j#F>67lPoFqlds zO%AOkf8^Qxh2vyT1+mdYpu_;n$j`?oO6tyN{it(qK_wP>F6~ac8X3oUv8Ic~z7V0y zHE`{x6&65bYKBR}Bqbycp5ycN@(vWwo-Wmk!&JXj9>i)vp}!A8LiOeciAmCg_?Q^F zs(^BXaKz`8xzt2iG<)S*VbV;m6PAjk7o=l@e7gmsBx)?2XN2%Q$f>Jyq!_-gi<<_;0{h7yslS(eAN zdyjxgGLxvC%@TB8qbc-F@-{C%R8yrtw8@h}cRQyjiwkR?7EpuPY4F`L)u6g-VZZk2 z?aofp1F4mDxyipy9sVEfREj3&tExgw;>JToY_J_4?zKn3;Ln2LS8e1P)dzvFu^SY8 z616PhRDyzpS#b&5KeG8PXW$2wXs7xlF)rR{uXtL2qaS1vs*2?Y z!aM%jgEwW@#!JdjZR6gur^EMwMtM;~UhI?Ud)kfpz@o6p|OMP&0@#^u9?uu)| zjDxsT5T$Vx;)JfvB9*%w{UE9aj`5osFE(`|A)~Df33;F=QKEKlqEQ_@U~>s~_g#%$ zU!EvTzW&;D5v@}cqWKxn#U<2{^D4Q#i#kK2tw-u!Ax7J6|HB4yLfo|X?gE-&G?j%L z)Jq}#jaXlmAc$ChFT35(KAs9~w6U7jpm3Scm(+KoydH)3aNfc)Ihsv<+TMm1XJmYd z(w&#CjFo2=$Q#Ujj<4*O;xm)&#Q=&|!eg;_eG`}X$V?JEJ(+_zL2tn9j|jWFTtD(s zAg1v+s0yygvKfXaU`}Qv=XNG6;SoYjcTmaraa+EfmIUi4*>Sn!pHYNVM>@$yDYJrt zf^|Ss?j#AB*AA96A0PDN3XI%BMW?lS5Ra5~NOM9xv6eK)B}0 zFU7O0zj%o#+q1SYUoMZ#NPog;K7IKmlD?n)9`cq}vV-^Zvrxdl>LnFULZ1{&rCGkM zyRbM8DIH5{tnt@-?co?U)%BrQYg*RI$ig=#vheY79f3q95G;eD85NurY zmDx#}xyxc%c@dY^*(Awt>9o@Hk`i6Zy&9|m61QuA!-O8rH3QeRZAkhRf$!=FO|Lv} z8iO3?cNn8HcZ<6ha5*E+u6xnPfQw6H*6<|7^^*rvouCyO-NfMi1sg!vF7Hmppb^n=Pf*;{uS8 z(nlZg$R3X(yGE9kjQAM;iFq@(MuXADwYYSAF{v73btjF3IfV;`sTHZT=hu{!SFAT= zM%;y3wZv`uKkzH#F0)W(|DwIcEPQV*{Alh2YT$=O)>(R8u_vk-ir5dgw80mL+0lU% zE*rQqNOg5dN&m_1*X)62i`Cjk(GPEmk85x696Y-KOXuO2Hbt5-7EhoS^R!YD#eL`B zO4j52ly-M_yCRL;X0GJ1c|g1dcCl+AFpnGnAnOo&k>z*h?V$IJ?~<*`vfuWQ z3U;FTSX}B?c`=_Mm+u^HkC?GJN6F$Hs*64{a$A>Qd5M%vsH>WNL&Y4~hCUGtpVXw6 zS|&*ZLrubnC;Jl3iJ;xG^51aHuMiNl z@fE|>8t+HAV_~yQ+Y$@pSU&ffbw}#U+H^iyz&^6MFv4M-H53ZmudYhgY{DSOZI^rM{#k+NWa%M*I2W&L+k< zMo241wTTrrCdF(voUf$pTI8LUYt#N)eYrp8i(`K|r|M zEPmQUdxQ_}Ftxohf^8z;dO!v-8&rM9(~sT`h)LEGS+!B}Wus#?DhcvAuXZ#yK+mE4 zO*~B!^DSWl*h?J-=9Glor{3`Xh3^ZXrJ4vHa}--vUK|h*CiQ1j%;Re3X*h7N$GpTeegIV1_|8BEd+p7I1dyxEn}!Y4yMByz0OvN>|YliYPqX#~BG2H!YO zS%#+R4Dzc~NZZVo6<=e5B4sBIj4K5|k2c80RFU6o`S=%7J$7)9j3&OP`r??3Eeye9 z0SCsuSHS_iJ+8B}Uj#p+i!!HW=lyk{m9$_ZA7~0Rw$9JCjrqxb`JNbj6XFavl59L*t zF;{BlxgRU{SDqY$ec*iyD|u-&l^XC5pI@E3yxwDZToD@|@0NGX{mQQrFV5!Az?i9^ zpGfD@DInwp57|z|D$8ZPQMMHbSug+QRMMlUx98{LFH39&Hb{oaj4P02I0uc#Um-cq*+br^*l_e24K~sBtWZ_BY;m6`)=P81v%w_nT zfn$<{YvO58D0kMP1Mn<(hn;h536&c))^VvNoE$W1vUfx&JT1}#ui90nCfTz{jHA*E zM4VmJQ0Zq#ibogjmlRGtURz@>=0V%2b!nP~QLm#0a%*K4y1qn^?{#O^C z?Pvp{WY^otGMtJEL_ZE5??cz*H5k1`JF$8Uk=tc)XX|ELbP$S|i@i_tbSHq*D z`Z}UVuQ`%lmQW!dd*m2d22?BWTz=n4H7^X-)m{v*#~>G(QC< zXq)640G6%vfduNCQv6o)Aq%lac1lRS{1^Z;OJ7DleEH9!PyZkSlfFx}UbmE*Ys4LR zIL~paxv1Qr=8vHnCJ|FK;DH3s*2Q%En>KPy2p3iok%gH4x=5z(<}(7nK2kgMexxah z`iXXF3fytOJy_7^j;rnd_*he;qkQ=#M&0$uA(Ebhowb0n&Cz^4Z0EHo&!Fy86S1D;LfEh?O5M3RG@Ch_!d=E_;(wrP2cCf^S!v%?7XNoh)KS!yX9CZE+Jv+QP73v?|di4h0I;Fw`uNoLic8_eynaTEKg-UQJ~ zv(*6ZA-|#hvZlgZC#X^@{^VUcM*;#@Uub|3B8p%T5ZQUwmncr^&6l8o{NDB9NDe^4 z*Sl_|Re7yV|Ii?1kj3E9-j*Y@U#BYVQLAHxRMQn@rwMV$-ds|Xj?B-mmusHQx3@@m zRzHYjb%d^$hf;IMO~(mYg54T^hBWTZKuO&&a5qc6kM%BTfychiYg5I3?f`bsgEQ+P zqh(*mtdYNKQdo#P+QrBtmJ{q#yZV>$wF^uaxOM*!*J7ehI)DfZ@CBqIPe9tU*VdAjrwBX+O7mSIP89_e9^bxj<9ONH15T z{O5cJ0ozK%P#@ae({tni9ST@Y9DXMLsdv0TUw&{=UMb}KPkFo-HP6$==%u&F^rrk} zrlGi(4W4Z0nZ-I81kIOG^oK~Pw9WCO+|1+Z9p90-mzdj20{~Fl@V0;D{SEcQ%4@rc zZ^4(4xl50sJEQXSX!8Bkb5?1qQLJJWsSVrvrS``5JzSxz6^{A>a1wN@B--A}8 zj_!5qf*;Wf88>Kazewi$u3Q_xv&0NHFRvDksQdcOXQu=Pny(b)-NM3qkmIbmaBS4aQ0mO23HxcqgmQbeHoxdT zq|6v>B7d|$5QtOysGXEto-xKmnBuo@tSc%IN7#dV#E4Ew?Y+{>68BuqJ=fU|;HI(sF#@N&V=Xm~#f*>Wdb>)x zj}-dLw;&bp*Er= zxp99tZ@;X;Sb*y2XL{LUWDFEn*Kv=VU|-O^}^Y^$~DP!CU{bxxy z%7kD)BP5=t6VAlz(K#Kx5a5qk7ua1Av!b?6UJxEogPZ+(T2s-^>i{ zH35?Q6wt%o>j~S|O%QjETRG?zpd2+Ef?2}$7Z?iZor*d1vs9wMwngc9j-zE2xgQN} z5AM3reL9sMIl}&B!%*1aUWYtQ#HQ8`E&XX=Mk^g%uweE=0x1=ULMSlJCuTh ztBwx1j!FZM3YB9;`|q@B-I;r3I1$CmQ+8B?0$1*00-M_;{5(Pngyj~9djr^vslOsq)xoQC0&&HHbwz2v-_Ljv`o z%Ne2TIK)OI?y7XDeJ1W4J&1OnOlH!p`Dpz^+F>>jst6%KA0MS3!JBr98x+?u`~BXB z0hvpfJh`3xvWF4*Wa@iSCwsKb8e9iM&e!zy34%>~PdJbqalt?V@{X)bn&qdF8T~j~ zxxI8WbfXb#V9oZcvbTd)XM)Q@Ww>3Fg<@neTCrBKr4EGYfCp>JN~r3nWr9N^Rv2Rl znZVz{k4L_Hh`8Xz_`H~V&e&Z~!g8KUGT}zy^tV?7Un=z*%~J3?@Acfu-@l789$AyG z&`432jI2w?`LC@`B*k)n0u@3nbP(>>Vu9V!3|LRp_*lpKKxxf+M|ry^J<$-%6y%sy zq}^q#{SBJ18FwUu;I=zy3T)5SN?G+7XAm&`F3Q&f;`A(!2a1iN>b<_*Lx9%V3#^kJPNw7~PEq zyDj#BPMV{=ydo=XyXHhWt&`%!QWpND}*lI|q^9xkHi07bV5C?|A-+VoMLPp2oZ z>suVm39L0GIDhlPD9)?qBuzj&TZ=U*8n2aJT^ZJbr2oMbeh=00mW6Q!AD;gLskGuk z;XBy`*QT$k7vM-n*5pwq&Z@NX%zlN4eF|9YO_*xrO+Jn2YC(K--{st98eCFv$tw;h zc#gnQigzl<#r&co{tYmI#my^~(Zi+<_i^6M&Xi)bU;2mqa=>))r+5PFRB=&G8t&DZ z(>El$ncZatJRF9W`YeKgXH#ZoOQ?v760)@>Ha1r7x7UUAmRm5VjhdMQez*iglLE$*61@<_@ULpIVX?KHVY169O$8#;pMBAq})Aa)`fq6$fAaP#ilA>D;Xv(duCtE(tjG;zEm;5VV8DHs;}ycDlrB>I1~KfD<|U2s=q zi$}-C_HXh|ZUkF$>AwzaH+}50(1u|recKP|e20nZ8TLqv$pN++dJ4HRjl^fdsG)6x03o-2; zSTkW1-A(o!7+hR@;OtZc&kgbOMvt2XfL!roI+pftslC7fDdJ)h#?}R2f@||M9!6%h zuMflKO;E1HVg0y-XncQnbu$_zSOmK9YB9vo7-zI;pLfA$tr%WYmj)`2as}Tfhv+Ov zh4#N%=Y3;3w@&F4#Sk2(@^U(Bt=_sx)OABc8nA_D^`bqwndu#Y>@e*1Yg*Wkm$?cy zq>SIUr?z>}kZ&iaIz1EViL#&GJBr@pH^ zZ(LlL-jcF%Q{BR6653wDMEO7%#6pyVFxgQthh~ukS78npC3B^q*y?ymHhEY>X<#=` z-XsulH9KCfV1VAH3SqX=JbBI;`tF*FANh`+vi$k68WoO!s8jR+ zw;&fldU}@&AZz*^l=4r!IMJ4?h-A9!B}CA%p(7aJo*?6!wr^nAcOLB~b(1ohM^o1} zZ}m%SW(DOp9B%f&3gm%;D4&S*qa5{kB$ZIZc*>HemN7R%~j=g258aCGwd~7kOq* z#BLNlqj@I+;DGPVI+0%hV7S~SD7+Z!%auh zW25qx&}!LdORiI{_9p|{MWYMnQ{7u7v3q=_HPXk}?DhKFdb*Ds--eoeg>07^s}PW`hl0b$i75F{_5uGUCE@A{wIXask})GsCHT2 z@%G2!qWsffZ0db1pG)iN*f_>kU81gGs6Z~(&`vXsRqSg!wz^b&6zmC9Z9H7rWZY>O z4g6``PFf|2D8s*r-BSsHZY=hw&kJUWJF-l7p4aSiWb95mV(>(XV^%+>m=ETs;|IHzg~v<;Fyq4@+AvpFqYM}~v(^4Omjf=zr8fpMQ3zOKa zG&0sG&5f4p-q88@16e-g-KFFYt`?rhVYgC$thIJa&iJ&FOIiZ?eVDuo>$Ce3AI-Ry zc@K)tXH2;d38Q!^EohW8riLnjLdku&h#{v31u}5GyhEeZ&3~Rn&Jz?c26Kng5{B_k zr7y;n>efmS{+wQWD&)aEDld@>n{@*Lg8I9Phm=W*XB0d8ET6;z961zju>$Jb&f-vy#R?7E* z(#Wh0dCG^hH#xy&F1fv{L-!E| zn6MCdEkEw?2 zKjG$e=pM*J@h&HZK|d%#6P1c*4(prg4vv9P>bm}}-i}d#jtLwL!l#Zxsnah2XvD-3 zTO<3}E$Zl}iwX8lUT}KZo>49OU>skStUuWCHe~?$Xr*Dm=u!SsI@zb?g3K?H_l%oL z7})~*5;aeB(w$ENkCy@uWi!ekvQb_~hs!GRs|Br<9KQ@cQa^j|X}w5yrm~4Or8CC# zoL7tf&Q@?Uqq-^r$tY4NW~tw{Ky20?{0SjbY23cxVrxFDU!1!4=WhW#7h?Lm$T=j_w^HuHyyMFyL|m2FqI#TasHv0i)c}%7U|Ill)zvJGhRcpS zB_19yLXROR*<(T|K!@;AmBzYCw;iN3*Kj|6H^z6tk5^RZMq>3O2y0{vRjCL>6tcC| zV*D6~kAGaNbX5+>!d4H=NH{1|%kK4HkP#l33TiJF0fP?}$3W3FQF3H=g9%6*{{Qn0gPy zIF-{nc%y39TQ2Qxq6iNwcM3}cA5_r5c@iy4{M(~5Onay1*=U@iAR@fkNu_*h!q)V| z%@+zRRMC;6=LpypE9_jZ4#wBm`#a_2-BpHzc}0%vDBaAt7F0!AzYC(+Rp|T2ykvJZ ziTkEpO{XwRVIQ4H(bJVv)TdN>_Bn~^=v~5kW#vX1039)KVXcB&#-gNFxjBYQY$=`7 z00hP|V6*F1sFQErY3_}zdMQ#W&ikbVg9Q+m6vI4E>$l`BZ)$v;h3jJOsUCa|B601E z=7QCgoK~pRjxo9loU|}DJ*MO{BC2`uSp~qJDK8tHQyfd2pwOyQCIbmS4a2jfCOCcQ zSK_8TG(z3$k|a_P+mjjXku;D83aBz7ADGo+Yf%2Pm3R(u9aZl;O)qMJb}J|~MS8l^ z5z(NRyyNioBx!H3G5X0t<3>Pf8?ahfa6p!hx=c{dYM zR>lm6mhBH3W&q4N0JDp97J~k4V?-6CdhZXZaHKRwO_W-03@C%!3J`CEcrN{2*D~S^{jVPm-WK-~N`W@Z&Fgf>ZfMdKrYY_!MrN zf;cvb&aJkw50}s^E*jcOH@4cF*I2g)zvuwT6i2|F{TG_~>m~wCyUMbPzD+6#=}jp&inMdGLG~Mt^j(3i&Z~u}lw!3+1L|qrHd{GDCVw@M=AFO+sVo7$2!BCr z1tp@s%B$I?e$E(##^dpfeRI?%AFyMXaWB;T6%?|atvcXlN`-Z#)S%NixJ<4qJJu+6 zvZ!qXiC`H=wk+@!*OYuY*vYS1Eui!$EWSJDknsK$)La7f8q{vASI|G)M;-on7t~q% zg_}8%c%TM6A1E69G4v9( zbkoT(q4k^L2mlqXLE4$@_lzhU-3)jJUOY7~<`qC67IJDg;u*$($KinI^tKGoWvrSq z9X&Pt?88lY#prQBQzp^(8|ra3Mr=TkGqn#Sg6x;*a|1>+B~74brlz{tk{@2bWZ39? zorTm(rB5tePgCoGI{lXO^ir=bDmtnp{Pg*q3Il)6_q``D!v0WN2s@GW8;ld5<&ZwDhWv zum=P}12huRo|swjGKHqh=UexBfao9^zSeg z7F*|_LrA{sVLHk#5A(+#0T4-I%0P;v8wiY!Y>EoW=HqP6u-Yo~xGNoABa6f(JF&qE zmlSVLh|2o8DSPKac@DF*wiDQkTYuT3Q99>|DV>bs%&L-M2P?U=JNMK9XauXL_#=jx zR76wo_GC`gt@m*jcRO^cVAYPT??nKeDp_8!y54_J6`BiqC*E5(`Xt9p-vZBS zKjvYaO?Cf*%a3_6tykk-?XIn7Xp&kLUXk5Ht!X@r)qZIsCO(Sz$-i1uoCgbuYDLLnKRi}HKP8hH4Vp+p(G1~_*@;V_8GHE`WR+zW^_P-6aKmEQUW zsTQ1`m)*5=^%D*+2-LOVLz5*-w=929tzc^K&Yz#3nF4Xo)-_fDwe>CvhzCxljegao zz>{nXR7Ee+rS%T*SZDhbuQ)aU^OJD@t}02XG5oeyci47G%c{$jo-`@+QlnuAEeAV; znHYr(;|lz5cPrfS56RT7#zpSOqOnMl6^nT0@jf~b8B)AwZbkfB}G zz#!g#pc`-%C;Fu~WSSXMN>AapX1dvu1IkIuvd4-Dl}D2S(1~pPW#U#KdiOp>LF==v2c9P$Fr3=T^PpLKgo9Wj6_>0^0I>K=v{# zQmT7lmExwdxkZ+rESAoL@a<{0Ys$f22_wP9fBgF zBE?M?DM~K^0qF$90t!+D>0K0%UPBF_NH38Z2m}-ep@j$`fe^~OvS;Rbzj%7kMyyjOwg#M%}@}Wnek3XTsYQECd1GE8(RNhz*1wIx4y6M08 zS$Si#mLE@fGUZV{c88#*G8Cy0NNtCD-CPzG`m&R7^Nq3N>eG0?4HnVFngPiV5rJu~ znuWV%Qn1p8BK>wmcMb>BY4i66hI`10-T~3?%7x+e_uw^*e%@5M1s#@g*CxL>fd_8& z=RFXYg6tDSJDr@GbjBMEYaP2j>cuCQPkM1imn9@PcYeHABWOi6a;Cbi;lF_@TNw?* zq8PGa%5w&+CuNF!h?lthzXromp~%wOAj;E{3RGw{)2D}M0R9Y=OZv}MH?5=6ucCDt zw(fSn8zg@ZGE4Bzh=86EcEz5(m&b(BU9-6z;%RnSK)4RtY2bu1QTP3TXtI5ZfjBi5 z&@L^vHV* zX;Jj9lZ$r!SMn==^EM#Hs_3?K9XT-)jN+!E*Tj>pB`j^ z@7tl8ApHB@)c@k$eLfad*vDNUd(te3UrJ%!&WZCw)?{R|mt3A1b1%n8Be>&{7o(T2 z>gXCh`v5pN#YQ2O-MX^Zj2NmkkeX#v&i!!73=35V51KLJsOiGf8~ZB93sPa^F_ni( zeoD`)Xe`W;{x4p8{HHN@WP60g72Z5&=669rV{-Hob!N_ekjtrMmoJ#}|%PlM|KfPlWL^|VBp z??j(g^eTjb0^#}+$%Inm3KOn3)35{enqpP`4%OPk=s9$C>#W$OEn_?$qr>m#DA z-o(eVm*PId0zT|4xI%{7yr}OjD#JBhs#=3io9d<~OxYjY zxigm<=01{hJL$m;Ln5Q&)Ief23J{UpyQz^q03M&9;frV@5<-w22Usp1;2{kFbE!O6 ze<7@n8Tu?2xjQTtpi8ZVP@g;HnwxeB2kpjcseHSp*a~bD*ut)&_Xy|$JR-p^RQ*y8 z^!caiJpIqEZ?lHS&#B4IYH&z&9(6*S5=7nhYfGCLsMq2p{1Ukv2=oOQ&pgb=_rZ}b zL(Z_SSi`%oE0eeG@(!6Bp)6Mp+X-_?k~iAzs5sl3Fa5>qaML+L&w2bMG-Y!O$865# z=w09#nY8@S#xQPdWan8$f(NRl4UY`hH?-OcyLldDns+_n#fg1_u>u-kyvHe$N!k4! zH22&<+`*%$49V^|jSpYRrG>&#gK^YFeck%gtP1Qd?w*?!89O5P@#8*TCkGn4MeD6M z*1!Q}Z1k+j&b#KRo%92Z8rw(N&Q6D^=#iaLnA@TGaC`oJAM;N<`CMO*rCddO_H@Py zQBeRl8qX3uInZ)TkJ>Q@O4$|A+tzm3qq$9TsJ4#jFv1K-Z zV|cl)s24D5+g%z~+m=~)Bj`w5OC?m^Q%)m=63<(lwyH{CP^bFEHIjnMc~I^@TH%{} z#EeCtE-n6oh#x2gt}yC-(pDzv)1+pWpdK#%{9Qo@zJ+(U)Iu!0?_^rNE~qS?ur}z&6SI zWaqMR@bxICg7bN%<^aPEG&S&>SQ88Q#t1HNBsHV^iv@;7lFy$n1T4YaX5NjvqI_~nxw3JXD zzw-^y%gm?%7z|e6X==*4f|>BE#gTwktG6fy#v563fTC2vmh{scox*OY-e2O+L?8kx zzE}@Og;a%NTjij_Gx?{`r#)6%l8yuU%+pau=xfIFUP=CCF~2D;G*Wl22c-ulGYV=` zD2ZSXeb=C_+Hj0!>+Dvy#uhgUlNPjULx2KJC8bA9WB}4-r5`yNtE1u|l=|=qUQ$&x zWh+Y%87ONjL`W)oSB_WIePiamOTmo;CTqE=@><6^^7^38cnLsGpq~&u1 zuwzM0>*2YuwXl~p#+ zOG6{0C6rL?O^!M92Mflv2J3jM;r*IWpN7u|D%&x7pAXd84X6YeQAITc3v-G)p%xF= zu-@Be<<-P>Uh??urs5G(lcC|yt2rH2nU+olD^mXyffs)ZGF;-A(jUVrq z&9?y(SlcCM=yfPz^QXc_ugny;ZPWuh`^ZodOA?G$^m= zT$Iv4=!k~Q1$)Ddt9!dUFidjt>Am*_2xdSCG^+>oB^cXt=?vewBytuDtRu)lPmT;Q z8YqpzV~W4(xx=9-yLqMYIJd6aeQMS#wb$<%R5~vmDQ7`B zuGEnyLxY;{q=7QAqO1MJ9S!a(Er>fCnWy+1%n-hzrjgD2{5Ybmr5vw392Ka{(Nb{- zm60BI#MDS0@Fy>w9xArGeIDeU_Y!-xJtGzrW5UuMpv?D5X^^7=W%pW1Xr7Ua*@2HZ z;eMJ>+ok*R)TA9I?@sm__oOvz*jD+ab{6XWu%DG5pNv(Neq_eKT&vD$`JBE6=VHV} z81K$Nzs8S`&PtBo8ekXJtSel;M1h*R#%f;fs}U#ruT&At6);ASh5DdUNQNglhvILG z_HKF<-|I)d5*}A){2;+n3E!N(Ty7fV;M#Y_nvKmA@+q?T&bQMaCL|726)Y==+q!Xl zPMz$jd@E?%6g0LxL-qXJyBrGH&SG(x0v8%Qqs8WvsSRi~##Rim9s@{Qka8Nr5on@A zkqT+-<5{FT;ThZjU zEk8}BQ;r7%H>HJ#Gud5K!xH^Zy{YlF*)LNc`Xrq7GPCOI&Uf4Hy$SJxB6ng+eQr(^ zY1RhwE*2F^FQlJyF|7_Bk8L&Mj@ZkD379cB_Y9lW``NhKh;0Qz^>pj~I6jpfcAA2F z6#X(_f4-E?W-5@1hmJcObK$-|d%kEQO zN!?=pRWJO~J-}EfTD$TKPol2gr`N%*E+l30p@XMTzI zmn#P;uivh58$IQI7VUVTLim)z8(-qw7+{l5PhGUEEz0zQy+m;Y?0m1EOLkg*&S73k zWA!b!fy)S_>WBlXOHW7nvZ1X&F?QVEb%%wc`a;fF9{jY7J7ck&+vD+*L0XMC6AfX1@hZn*3pHjhoZqMMvLLv$NH&OfDvbP4EKEX+!-f zMK9+`EQS3jkJ707{t-6gMsU7U7LynK1`_ZSYadwx#r=!sCp0v!cNdMP5j-vO>>q{z zGZ?ts5I~h2!#Tv@!o@Y8#CXAlH=NYJbo(4Y7r+%Gxi2eBg*tx35%rZG8aJpDHjJ%ucs6{KxF~Sz#CSwR3RIf&{OqI`RCM>53RcdFAV0I9&$5sK?9^4 zr&#!fTzYS?wBgj{BfWPg(xFB#u@K4IYmorMm>c+j(4IaZ|7)6Ru8(=w-eNf;D2gbkBd%B95_v=NA2^%vaFO*nt12e8e>#Ui<(>TrH)+! zdO3;iLvLDhClIlMHp?G<{c>}#=vR|PcNI-D9-E{hi|UV( zE1da?kl`VFhlHJKN9=D2?Z$R3*I$wMtvGOeHNSJmB?2AQ9V4R0T0fp6kEO#{IV2p* zaKFFuUZq+;m~g~h$NCm@ff_ESsd&ROAxNug=fyg&$J^I5l+zvuF~^T^;+Z zGPL6Dk~)7*owmM$N6|B5(uHwD~K&q8_L3YgbkJ$dVU%j4J7UY?) zY}sSx1MJW|n8s+|0~$-3)k|Vo4GWtR2fF zA3h;C3b>dTsAI^$k+*#pa#J51d1=@m8YpfIFdaO=(*k`DEs$Mh_U<%$mxhZ@@eq$_ z2kz}`z@p0)9itqlwB5pN22LeKS%}c(1lxeRK^Ov`ci>-2h?0svaD2 z72}TA`6usxmOLPU3#k=833&t1?6EZONzO^z-2Puy10eAyZ@~KGahqF5f_4WI8i&pn znh67VEd?``;@X%50Nj4a#rcWe3`kRJzHmu{B-h=dz-v!G^ZGAK01}MK9Q8xe^4PAiVHs_WIi8^6u>f3_GL8WQX({;Fwf6{Fvpm{?`*3o6jJTpK34Xbwv%}_oC7f zLq=9VF|Up$=i>%m1A$V?jM-10&GVXEwSWL-bakDbpmyr$w1?0c#oIs+Gq(Jdk;5XO zj7AUG^<^J%%DuA{E#CG?t|PVs!TZpIkKWAt%$? zQ3fNvU-xXCQgXPSmp@&u;d`6+m}~KIW~8KK7hg%j*_jvJNM4BdF*a^kZMZ^Y-Ydra z3ZgYxkuMI-pD%bUQqKO)=7PWG#;?8P`YEaOo?hs{uh1C5S^|!wpiK2h$HDrPYpa6- zctsuSALzo7nC!d#4rELdNC%$;%yQ%6lGd14=1ZN#Sh1MN^?ze9_ia;V0** zCW{ePF|^Qh&3@{G>w4Gb*j)18P@dV`@aHkLwGg#v4A9HfM#G}2dLwe;P5K9iB}Ab; zb-YFQtnw3jPU;JWHkWG%XH=PZJovVKz>R3O(fU+)|3HoHTt_EPGkjXibpI3P!D)M}OhQC?n#&lU5Rk6=dgn%#1m^&W0(C z1~l1rZg-8vVSD117gxeaOK4%-BZJ5fO#b~}j2eXO^y$6|bL3e|7Dr&Cl=M?^8810b z#b%P7;icr>dSAee)lm9&SZ5wW0eSyRK-VId=%AjT`Iyb*h@{|DHfm3G=J84MOt-WpJo=9M( zjj?yg%G9GlEp=nxT{)eS?JI8tE=fJAud}{EE9ROxcLfVdzS%AB77Yh1lG0M;-OU*) z)rkA3*@)W)#(U%71Wxf%&<((n2?{GHX;kRS#BZ-!#7~%;uECP-Z*ZPUgLQb%0~Mdi ztH*I47dUUHXCZAU!2Zij)I}QUzZ%REkhwV?i|-|}$bEgh?+T%ce`g_vFj;s5E;U8K0K$3Fyks{%a%89YifT`K9`zYF7&8uq_Zy@=^3i#z)@MUvAj=grH*g(Aq=T(dNfRQd0YoAR^fsF2k4D2tglw};>v4!-E;O!p6gCAK8 zH5i(4Z_W*3No&3ckd;vnx^$FoZ;L?lXAym++W{_Xli0^cfk%VJELD==d$cqmLn_-YX-OMZpR;8?Y4#OY&Xj6wF0r z_r`CYG}ATe)WTR_gX6a%_y9q0fFH(fZ zx{#AaV&uYW{rFlfH4%I6G>0G?y@%h{#xL#{ZrH@Ges>L&6fLq?_YUHP6x>te7mugo zu&9?yueHBZ=t78WAMsLG!q<7dDZzclUJit=dznDTWi z0b_(DgL-A3LxegbhyLXLxJ>e`O+PygJDb{SNz0F~j8``o?Mt4Oxz5kO;N;vg_ib_+ zEzMffcHW+9_?RjyW0aFK|Di#!?jp*Suw3x0+Pi&V+?A_aG~ekBomH~CNFnUemj95$ z4gZTfV3S;WG6qUy9f6gL*oh3icqZ=N3r{@@_TTWZ2w_WT$JR+!9gwt_X?hp+Ymd@? zZ;cb>+h|my*N_}%eoAn&Ntdrnw<;#Je0J-GCfxV!Er#46Al6x88R%pE25A2evb%Bf zw}HlIEpv{u4*@{T_0TW^V8-tp9cIJ+av}pzfT^-JqmLN867G{Z1=I9AJ1u8&m9Q6v zQv{vm_rKQx0A2^{a=@IeL1T?|^ds$Ifgq7aDuy6RH(CH#bSYCJS39Kgp-RQHICN%*$hYa946rN&omCjF9aQo9JKHIa%#S&LXKLXL~2LOZqwFq$uv;%__~crD*!z6pfrC=Zw1CdC3y|h93hiH zm%~mdIP-q~>r)odobt$JA^Ttpm zV+5$W+&<>ch1;>nPH<`eb_LRom6%b6Y)p8}a1(qqR`2EBWXQnjo38Cd2UBc5>`uh( zXM01<$64&IC4|48?NTK(aU(y}O#nc>RnaMrn&dgF%3KTC3w*O*^o{3i(B?av-OvsY zN)mJercby5e>V=#+4>m=9sj#vG%_-X=-|_96+RvOq3bMPDgaUD8kmNu+~NJ3`h;%W z#ga6_I8z*Q17+zsD-Vc=Mxd%DKb*_)lu_Tc!@KV44-N#0Omwv5GDxb6kG#tq_q@le z>o@;HerF_O_bd7yn_$GY3qWBm=sN`}sHU?N7!bw1$k})~cI-~0opSeP1<1T|2iPUm))$ADra5(d4GU|q$r8}jPy5rk zjf(Ep8&r_nD%CEgNYioL^RjCA{;Vk+9&b`+A;3~;)7E25{@yjeJi&?wiA3A2L_Zx1 zwZbC$;wiT!v(;RSJ(;7v3&+ZeV~T3wh;wuLw)&DxsCG3Lh`v%bbA(hjBD-L1 zCGRuB=(>mfys6%TtA(^-IX&0u9ez?A!c^DUY5 zN3I`n4C>T0Kb|C;Hr7w8Zoe7B#?JBQIouF<8sx0$C8uWA9rF?G>f3GFWk75?49KE9 z`=7{3C3-9jy!XV$BD(;YleF*366IUxg^VO5Y{jGXO?PdP!aHS%rSFRM-s9n6X721h z+h)Rzu4~WI?G90O0@s4htyvrUhwvw4;m7(GcUr3a3&&Hl5Fno5Nkq+UBe0dac&E2p zluBpi<+o5NfOc;T+*zB`44i19!f@5^ObjKLxZ}haL9%{-ySr(-`}+N9&S&Wv$d#2Y z-ktmy6z$lXF(ddH?Tw(xcE;`|j%rldsuCq3+%T%hTr{fFyTc!xRcCM4PZ%mAOP2?= z6`^1Fb^)QR)ybTgTmuMY4EJ)CAp1L|>=pO-@cQLR78+=E5lq(_@JN-PUKx()kM`$22=-+`RZd@LZ`M6aj5Y?@UC%_2)RrOma z;;tR&@PO2X-(Q_>RU5G|luW#`Qqbr+3>8Io`;y3LJAsWokX4DU3|eL&Kr(i2jUuXv zr=;X7?yn(Ee5Ct6sJs_wFhyOg>srF**-!1Pc%N%&k~LUUG?;wK#9DI6A;Cfhvi3U4 zd7ZPzs(>nO%$2`XpaS>vC%Ka(hP!=lCtLf#R4S^d?mLHwz2sE5u-5`;8GfQm2KVYDpWa zj8r7sU9-~j5P@x$8N&l?M9_hu#(v{5o4wURr(}1@`95E_>Zj}WYGnfVmNaL&rgkLa zx3OYwI8W5)BBOi9!}r$fyS4{vc9N&s@u=P6#Fd)epy|FPv55E8_l|Y*)&RFRE;coSd0S=d&xsc|)tyjEBDs=aY>OQ_pDtqD2DPBa56R_gOtrmy^RM49A-P5DeSgJ8wn_jig)pG^DEQv>%L0>k zpV;QPOO$L|P;-w6@V1Fw)sn^Nb7J3nT+1cY%tXGAeRpMtqt0MOT1cjM?}qtl5SQPO=KMu6vYEt@ zb`SGnkoKo>K{84pNqD_sUwY+ah(gfWYCBV6T5Q(5{P~Z%8C2IG>Ue8V@~q+-)YX6d zMRMW}vW}Qk4+x0i4>u(%8w$my^ju*}rlEym85;p&SXeiinSD}awliq_^@a#RBho!# z&#m0LGiD$EdP`acp-l+_p#q4Akoj>bCI8%bdIlA|La`5F)*~&lB`yFr`}o-Vv4`#B zIzRZlKIIw=at8lq0m)2d&5#NfLrIOrM61XPYwz+m?Bd6*g_8{8C?!(9TG#xz&srRgT6%Wg9_rMcL#A_<1g*r*BsWcPrzvClhema0*Gc*V zbqUIK3NDRyCWYoG9>vPus1dktKW6+SB93KuyVm1vRhH0*5go>^di|P}spfLs22a0{ zd{b_&WOQp`l0<>0S5NBY`VQe#GkI@q;#SQf3rBk~6(Yorud{QWUw+Zme?ZMhKxFr= z#kRBp8l}S!FX7N)I=L2qcBT?uj&8uBcT7DHz73-0+&$(9C394YBT3Y(uCl3fxO<0d z$(cXnHPfly=&vFax=RTj{*9_0>F-lHga79o$a7v|>DWs{v=;mRoc&+hloIL?<6 zTzO&@E73CQ3gEoA)5?(O5P3cEd<16nMB742eK@yo#D5JqGq5))ddt8%@rlLw8@tfaLtOUOIJmqp4})%-(mFJ@Mt*or5~fS8btMsA%$R_ik^Z zM0RwKC3(;JF1jgorw?W`XP~^_2z=Qs8yWHW*lodOmSAxjFU-qh@VqR`S zQBJgOqtV!?b0J0Brh)iiNub1AB;%#QlH$yODIo%CdU|Hn(@Y}!{e`>9T-o(8L%UzX z;^M?f#r7$~cR62V$*u%G@?EZZc&8@=#a@6aj%-&L&xT$XP^&Jvpm4GFO@*B+@80@e z>Y1n#A89lSIKS#yJ<^xdK$V!Ch*D{kgk!2M&%tHdv!j$wVj?b;`H}KpG^X1-IK1@d zn35>EiYD^J)ea1AIF&=PXV{0*57D6uc%MfkXq>oJw>mcHsu^f3NIht~^+BhP2b-|K zG|gSSZn&#kWYN^P)^1OJ80xaRE18E#jmr7tYy~&q7e5|M3s`c6+1c5rDlLD-$%QoQ zpOl-8R@+LUQK(5`rhfv;`~$NO5|KRKV97k#ulw*-7db})2W|?n?ZeY9ANZA`M)QzF zS5n9;tNr;cXjkgDPt&(R`j9BYj~6ftxj+DF*40s~C_t7{QC z<+fc>RF~KxtirGko&YE#SxlA5rEjjQ&2%C#tKWG8%?`ig5sj_jXICK}aNB5rPRDoE z4!++8R&x=c8t;C!&I90LIvt)lry8NVx^BU#gu7Cw_@v!NwBa%y=j zV;MPL!%(GDuUM!?f9Up$=0cN->nDfOBRW~vw^#col;kb!Fc^$Fmk@oQdQL+#kO*)^ zL`0}VR)90Zg(+TczS0Z9Ldpv_cj`-k?0wgU@dsyt`{+pLqVF$ZD{B!dv?NfW>&r%O zkzFCO+qu>6yp6HHo}OMmCKU%?Ff6wKWKvk6IYI&Golk(g!|V*e$;tqB@!2DtnEIfL zR_ss)WFiQr4zjpA5jeF|WwEL`Q94J2XCxgEom;^B1(V#DU8qO=ePxUWfkip)#A`jX|MdT?1$NZx0D|f}; zS_y4sI;UKQ2%PnplDyxs})mcx2NMuC})&@^aUYPW1QpORx`r zc=|`H4S#Hl@~K*;9*}$o6X}W%K}4y8OU`)@wt{Lc9G1xzd8Ty1ygY;RlZstm>RB}? z=zHo0%4+StxHO~NHhWGPOJ}ZSdYSq<;~UD#%De{Om=TtjUrkMx$-$=_qI|YaWSllL z+EGzJ6`tRc%7$L)QCa_9b020WQgBAfOq0`C*^DY16G&QLza}58CaTlszL8H_eJixW z;~LZ(KC{KRcT)DU(wT!R2vd>9xtvj0U*RbHzM9hH;K{T*Nq$@pwDoiztyf*saMkOv zUk<+v>+MHPutF4;Ov{ie_3b@f{?lYr*Kpss#~TO0t)w_k_<{ELcFoKrbtV_GWiSE5 zL03oBGzHJKCRRD*D^r<~{*%P5w!)2zXH_3JpE~Re2=MwJ5mLh0v!MFr{i;|+W_b3H z2Iajj{~xdU{LxwXJ!@Rlpv}Alp#5(xJWL~3mXwrqq&d5~Mu9}2gLN@=%4;0D|C&q9 zw~);)qee+*00C6meT8v4Drd$xl)8US_y3%ZUkXbXae#)W#EYacAO@a)qn8x(0>bgu z`@l}&MUPWjp$*lfVmi#pH6mxMBD>7j7T_8}BUL?-^2%xblS8M+r60BCr-zIR)@7HK z@sDg=@0nkU^n_`ZX?o~Pp!zxLl@?z1OS)cpq(8~nKgbO&Vg|LLV@@MQuOdlHZ|id< z?wXnk317j$HFfEE0KF#f2z#IV4`|`npc$IU0%63sZ3t$~5Qjri8cQ74W86?I;@UcsNUW=zjVn}q%4 zCAES%iMZ=i6OG0derlCo8=ujQoc$ve{C-x9i5p<#(*U$`#8FcOLvxrDo=gcVb` zQXbd}G{X$2A#%=5u$ixRyeFxI3X2}oQnl?39b`m3!S`2%XO%kWP~b)S4srSP^~b6n z9v-tSuYhMn)TwhVXn%j<>`?vdjAN&5K+(Q`Y^?UOC_edzpFV&2z-Ggf9Zan~zvUH=oB zi<&IlzHwczy{^W4Rk^Iak^0#evTHNp)m>D!w#uf*k*$4q@_PeLxx`(Q4ODb*n+F3l zOWnu_m3KN3avKnCrS3y?>+0*R@aU@79?yStApYycF;6TwK0ZDX5)=sYyz2^ba$PYx zt~x7Q0dIJTBmut=aoG%}u1j5P3`t~*W8H}7>>n87V(yLT7q2+JrZSkxt+&wsusUY| zGhj&PdGX802)nRR@fibxl(;gov;Up@X=Hie&Q{0GpBBXQ_$p4&#*Z~IhfXRvyF#*c z>Vb>t-bk-+Pzo|J2UDEja@esXL9r-I;4OH8JF zg3g_T4LZ_!UWkUMY;A3YHIsVxby$*sLiB;7v-2ykctFcEwQ&#S+>nrvw~GzhJQ;c+ z6*%DTV^HYYSCyvrgAt0qz4>ji;E|D$j>7+X);ij=t{?{8!Lx#OXt=JpA65O%`WJsY zJ39&JP31m;pA!@57j^j5(A}>-Z!IBsexI1&g>zrzV0CYW=noBrtM0N&JkUo>KzDxq z@!!Acd+C?Ic>&PIIaZTT>e%y2onrsDmw%69mL3P_t6YmyiHBH6^XVwr*1(#|w2E0& z`zOuHP=cy0zpdcgzt)j%vjopA^fM#)R5N)F*!Cu~0a|()IEv>N7xOjfU_a@Uq8C)n zeE(hmoc&>EJ|C`0)%+{caN^f5a#v7poFH1f3Rh*QqPeKr|2Ffs;I}`(=#o4VeM9Nc z?QMFO{<1D4j~sH$c;&600v3iy@b))JU=?>Z4}m}^gXWVm1w2B>{`ook{L8vg#T+{1SdwB|luf^A$`|zg4a5)p3;RM&#l886mnV@(YbN{S>`ggOVs#|aOGluIQ-X3f(dlzU5 z5FU^GXBOh3X=YhteaXf@-F^RRw*TSr|Ha%7Wvi-LydSb^CnfzSR%7rMn|%v$>}N z%!GdYrRN{^ux<%03nBF_$^QNL{^*te`w|OQUp=lqtl5wVszH5W=*$rN*RB zUyN8uagG@Hv)Z)(>HGf2^V>4uKuDNS@g(3;H5T1b+()OUo~iHx;a6L?qXsQev6U17 z1H$Beh3ij$^8e>;|Hp6tzrWK=e`JWEG-0WVc-T2c^BA9aD}9$Z8SOh3;qG6n!inpR zExUuh_J4o>=Pb)tQL3D6<|FA#Sh#ySH9w)-O128Ib*dXo4@+>?rx6dTCE>;5j7Jb@ z%lhQ8Ar($Sn9R?@^ZuGm2D`E5F&p-g+`GEtsNKF}&(I|IdXTdZnr3cQSa8>+j~Ac{ z*z&7g7i$(h;3MUr=c)jq?kA_BmUIX5_a_j`Yt5D8#=CrL#ZU#nyk?jxasptE^!aM2 z?sP2tBRqlXVUB=IaSksHw?pwZSMa9PqctjjU^V=2W;f9?Sn?Sn6^D&d*_uD>^1K@? zCNp}`hVP#qd<|XPy*=`fyeM3VYio0*6XB2KVV#cJl?q{dG!JWdoAywXw;-w;av^~TC=dYaOSdYo^aZ`F>yXJCG;R)_#I}a*f-nT~d8l7aS`(DcF=u)qpuV?t#Tjv^` z&13hFi$({9b>0d(0xVkZM&_AK{wX1oF7F;|!jnvLXJBY$)cu1 zbjZbr9W$1_Z&3fq=>4x=_@BPcDGvarSZU{9{ZHIp=>_Y-&HO*I%*s?j8SIXgJnzh+ zfyQIiv?Ff_Z`@VJIKkAC72m=B=~(>e75AzZysdr$ zKm9jGqdAdLI?6ZVVyYJ%uz_2h&yH#Xz4=%x?2wV%-V+jYy(zNztq*`I`{S4Ff14)K zIe~%qx<`h(OON+03Vbno9=i(W#*D`KJ_rr)YNntNOH@7?7#iB1`lT_x0kWB zv^0}kTUQ4?ptW#um_6!${1lkZ=iRWfu?n`>p62MsU=XX3_u;d|r2Wi57Xtxu_fx<^ z*IWAXWoD0fOckAGf@lO}kAkd9X@8_Vb%~;#)Q1I5>yfSD92?$lpmpI(wWIRyf-rPH zYx*tE9suML!8P|{br3$-62l0`uiyvQ?@y$+HEg%6No$?w(ln4^ zU(5meT9(ykLQ4FRkljt6)o_b5y}djITGPYJ0YJ4s(<22qrI*$64^*-6Em%;tP)$5( zX=yu4DfQ8fz`Wogt*hDUP_BxnN5O}BBFzOkA{|wBU2gr0S}rg%1ttZYkj;-QTMOwM z4LIPVgDU+oNW*_$N3rT(L%3XC5CU+DJH4Hx@>H6~0WhVCE13Iz(OKR)a$_hxrW(4; zg#a3%O(2-&1=<>_twA8LPy1}ALQIkaT?b~sx;PPlFbUI6z7c%JneQNH$AyEZd~k|W zoM0`dcL>(7|Fr2FIQ-_@@^IF2RRqm_LF^rZy;XtsWw&pFn5?%3kAP1c&Gy!s&lS-wRn7LG=ood~=`_#y;NS^b!vWbN4jIb+UNk1U+t3}2R?wD`i*v+0 z9@s~J1|srlK&TG~uBi~3U8lQ|1ac>1dsb)$w09HzggLledDZgOf%MJKLT$k1qp|a@ zqM{;=0$AoaoL@s4F%8F6lb;1dA{CYj<$zzNqqhm~b;}Y2IgC@vmdRtN!tzqT0s`VJ61{9SDpg!-Rch3w4j^|QGY3?YVUY?$lNv93YvBK@dvpd>CWn#K6`=+bHVdak)ogXdfCmOE7J+tiH9wZi*4knOXeGOXWt>b z_JE)M*1q<;NvDF*{`#=tkDt~HHcV-SYM{3e)Y7GX*Yf;q%s2sLW?TloUxN?2R6^fz z?XL3fxq;GGdbQ8$gDd!R2Odp4V^pGa>O{`X&CP>bWs?{F>wz6bk)QWIFI7WIGeG;9 z{eH1oQ+D7ic?>m#H>xtsq9zN9rt*shp8#%A8_k4W?_Yy+e}Wf-q<1J~2TYeyBAS!tqVS{uK;2DH;UVf6FW-K@HWoRqUq zXK6xku(={>x??yvK}Ugve&&LXZs@qf2Uu5Hwd4mh|`+!A}@hYoY?CiUE(GX zq&s9o*eT_AYaV`kOuSwmBi2>rggPoGy_Y%1=qYjwzA<9z8bLE(@=3C@;Ns%40?k%e zGL9;*f3bIR8h_i30YYTA9TKYDDoWW?3Rzd4!?}|y5?Akz5nJ*qRG?JlN>`Y6U1O|6|W3?6WCuu2@#Fnwj%(+Vr z_Y|=5Rc(~w&O4PW4aC0bv?Pm0VEZ5&mAAEB{~Z`AT;Ks+Q+7Ap8V8BWafGPXfk(T- zfp3pXb5wXh6LzY!{GATk+LTzaR++1OiDtMIS5JeUet3eVi=sQn?0^jTvKTYw()F1! z)o1#p8bejnif2j6CIj@juxCuzN+`ZIdM&xA`FZa9>}or^W0W=T4}pc#}#2pPz%gVwmG=Zec;pBOS6dZqQ-`s0g5 zx7mUhn-`ot7{+ZkA2Q%vT;%5xtr(t}gEreM=ZY`3^bo_*>Kta3cS?Od1;!dduZoMn zJOlOl#?==d&t3rMyW*xWCP%O(gUkx;GH5BrCUD4+=S$oH>c|K&*n*}TXqvQf@TR|uAHg|6colquIp5l96V>YYcLlKA0 z7AwQ+@baIo``I+PKZ|@Fznx79x7dDbPoNn&%{p+FZ-c=UH>aXe?BDQeJaUJ8IUnSmym0Jc5=?r%w0dB%Tfv8Ff8J{nPh)T?0LuiCaJ<9MsH#+yMQq z+&&-EIGKG0Ye%MaAQu6~bgGJ7akMUg;T(v0b@hjocqX4aBeFwEExW|K;x54uZ_$lnk`ot@>(rX%hgY>A9WA8Pr#iX?(AVQa7)+! z!~LJZ-VTm9Ala^!)IjGO)JRMtoMi5CZf4>{GIjZ#r=9&YW3w<2HglTllaM~(+Hvy! zxZ-lDT4iPBwYg`uD%Q3)A_c`Nn+9%{KLkzDS?oK(?Npvm%%i!l_nw2JW0;xO*!x8D z?@u^B9|V`GeMz5E^zc4YxtBaU&&+r?%y6&9Bs9DOzO*oyIu9}VveN@_T)YB#;>o0s zz_|SCJAd0)+u{$BJG8UcKW9_;gm85B`Js5GVHj4}!ld5!^AhI}LSA5hyT`joa40eR z`-ODceJ233-cz&$HT?DM5M_tx{f5Q&Od8Heorjgii1jX(5(C_TS7eaLr@n)Vfu&H+ zN4vB%w7GbDMvp5#y*(nw`s<@ezdNQIx}MgD0+Vfgh_se1U^gg-C{zad2aat5+ZP^i zSS(D*41HQ0E(llMU>ZYyoil2fW>bq4mD1-nwep_?9S>cAtJU~vEzb31nr(Q%vK4Q5 zJCDEfmz^rE3Nd+iokkr9>4T1X$ZMTY&`+^ZTC#8li1U{T+94yjihGJ%ntS_#OgoTx zTIp=SW+UO$kK{4*U3`M@fdno4?53S>Bn}LxT8?6QJSq(Vnk~=WW zYhB3A-~pn%Q+I|bwMg+TkdJEPeTw%Ut6@xX*n z5X}5k#OCpHojxFyj_4`wjoERsw|@aPCq?}i80hHrq9o2FhGzYGP+6tqHD??}$tKX& z_GHk4rp3iIKG3dU_X?8JW#%s{HJS_zwS~)oAu^j8INmgl45ql$U65RF5}|n!ral_D zxk?LPpdY=y^{Yla)HS?+G{F8-iBowuEp`@-!V{YB zhjPRF8&}cM{GT`n%y-?m7CdPk)2CUmw4(`h2K{_PM>w*Z^&1lp5Ad{RQP}?863#IX zQlqV@QC7qJ%z_e8Xgh^sfS55E03- zSN1&SdM=O+4u&Tjv~8vyRQVo!wnM2&L_0L*sbm8<4bOb{t=n2Gn3)b2o1De%(T*(Z zW?#=vf2A1j>nce32fqc%b2@a28Br)b{@$P|Q{;N({iyE#{PM}HPXoB#6r%v&Vs0Nk z;XYm#nw`oFu$TRu7o<!*Y5th957K?(=|@vx^1LptvMUiAWVLe!Tbat58*d$Tg6PTtPF7 z@$vB)nhmA3j5D;;xv!_XH<+I08<_~YDS`+`IG>JTn&l~p`M5-DbJJG2)zflG$_fdb z5q*XW%-NEVo4}*fPCx5AKuAQCLL4V(o0x_`O@qDu(g?T}zrHeu3?x@rc{~A5sw&VA z-34F;?M9QAfA_F5uCVRBt~9m>42EaQ9<+v?ed-gXOnxB?zHOD}beC<_?$P3-WI8i8 zxu9E}NnUu!AzQ&hu@Tas!e!h*lFR-LL3v)Nkg4<(2HB`Z?(8jNd=t+YARxQ3%FhH;k3TRz z{`9fPVMT@;q8+DI>5rKRuv*{wSi*JaN!YY!?Y=8+`z69ydDU5uiD&YKcQkhKupcfz z7tDI&D*NrgfJN^DS5F<}ZRBm80V$#aa&XWfS36CCl)t!`9yBSW7(s`?#sJmUj2}O5=)(OY~Jil;( z)6%V;#yiq4cFw(%r<-lL6nRYaSl^i|of7^xS2aEYC!Cb$d>MX=9}HNyp;kGGwH~;5 z=+wg&=8CcV)5)OKgTjTam#Wx9A0wAeZD^b4=wzfH*wsmvzEI*=vjL2ke>Hpf@qoCF}syKnt`!=wqIdrR2>r zIEXWsqV)2p5;NN~8ZPvi9Gcs|M2>kInt2XC@PwZ^A)#+Rlcg4#L$h(yLK_ww8cZDG zzoo=M3+gAO)(fjf?v6!`lm>y#HbApMm04&3=BKe*#;nM9o1m}o@r+L3qgHhD26c0F zX7JhJ6XpIgwi7R3GCX+j@=$zKGZA3K)sN;6`LNU{zB>1R*n8`!tk-s3bc%>5A|faP z0s@L6B}j;*N+>Pe2uOD~h#*J^BHbw6`O;xf(vs5B`O;nP`{!J9ec!kCKHnMZtchcs zG4?-B9XfgA_dIu8_jO-a96l=KULXQ;h{v5e+~1b8s5G3py#1V8<@Te2i3%Fmp$5Aq z$A#>0=7^=;bCS=HZU_F|VuOEn59##w zRcwJx=UTP&os9MeBoY!aysuh54l5%$ga)N1oupHpyB={&oMMb~Ui+$~tM#1yXbjKo z7Q4aDln=p8U2Vj_u^^@n`)QzYeWO^_YCY+~{i8;6|GcexLLvFu4aLnyN~);=r2@Kh z(0;|lP9SRBI@N7}tgDzU{jz=rN6B!Vw@ZM?&I$AFJq_C)RCU@^(*R_kuf_|_>w&%b zhS&(Pm@nX^is5+ZI>83}|3$6rgGty|1DXBTnSlO77Vc+!^0Q%N0UWaivv8w9C@t`n!Pz7={y(sSMZUbUz11N7=C z%Vvg>kZOLBSXrgl7J@Gv@&y{LN=r&={YjZ0iRKIFJGRUg)RPzyW)`mdSo!Adnz^n= z&jBt+Yf^Kxw@}!z91)tRIDUW#d4`?3+hC8VYo|txrCo`F3{9G9FIWb{h%Q7}upn=% zR0#hn#e`AFMGddjMBbb^B()Z33P!9mH(ZsGFR7GA&*>XE1}(P<9!%GPx9>JU#6{*~ zpQUYvns3HhOV0`08a%p-%b75zQl-_F#D0e{9>=J;$7hcXOTdR#mL?=YfJmVnp0;nVDG# zGgsKhi6QQU1uj)u^$z_lTT4XgoZvL!!uSX`fW%!tK6!}t%%k9d3yV|k*CV%foG zMoxu>MZ$@}t| zxyE|2{KA;>Dkdnxe!r(9_7iWSPS#SJZ9v^5;(>+RRA5~pE#)-nCv;>M0`_u@f&r5t z^b!pj9`AWsCH_6~%bWB;r-&oN0pHN_ohU)k`z>@o4aa^LxKAm9*;R76lN=5B?mNT{ zBl!t<6gV`H8s|OmtyE0jKU)-MIPB6s99c!T0){iUaB`~0yht+~E1^_Sx?@j%o?Npx z+PL7!7Rg;*vCFDMBR^KtWl~cB;13BP{ZxZrT0P>p5IUd1AQs2XiE}34*;ZvGh`}qR znZ-yN-FO+8xUm2})LVt|tuJ3j58iw@Kj993;fvD2JD*$i_HN0^E0sdFipGqaDKwKc zP?wR5xYYdO#K{b=BBH@sA~jDL3aI0BG~1z%=f51HYD}u}8NW@H9-42xPGR1)AT7Dz zsfe)&mC-%o{obdd=mt93l>XNOv`kF-)fP`r*okB&P1v!M!%Xa>5`F^GtdN(Y{aYh zpGezdaz0r3XL>6i6SJl;=GY9u-H`j4iuPdMEE8juFOcUXHr^pk%{o1_;^lWm*F@7r|WaBHip zdfGBeA1iPdCtTI?iEnu4T};Pq|1Rq=hBE?p)}U|?Yi;Y0uK0eLvK&l!G`avw4h{g= zr3f$=-S?&VlMq64ONyNgoQhg0b{up(@!-D1m1J){`T<~HD@Wgk>&mCoC09DhV{5}Z z7%LW~dq<%#kiC3Iqc}hBqQ>*Of_~lTWbEsvWwLbe|OEO8Q;&1D=gmeX6bYHJy zv0wRN4Uhm)rm`w8Xef5w&dieTP023g6vTEhqC{J~m@V1i^xJ2raZF3DEzDmluh+Z3 zl&&l~M4B4!TK;xR`BM?~-;N9NCp4T9DArLCeg5LIsAsY8GkalC=7Xw47n|+FFSpm8 zQYZ0(H%X_S70WY;8^lj}8Cpo>+u z)Z6*MK<}20LGjGp{{Fsna>m^&2;M5u{xy3B^{ubq(rkq>Uf;pD+h6jc&B~06WxZZA zMJF=GC)S>vX`~JmL+0}3;JDEVhJIZDw;PePR64A8g7HXP)rWYCiTY#&w#$ZwlVOSC z(-O$mN~DW>;!(J+Q|-O^OABCUEO}G;GVjKFywKLPyP)u6Y#SWmlZZm{JnNZDW~T8w z7xzHsT4UhqgWA;_mm17+1io)%my9SEJ3z~DOT}!V31Wvrv8cTppq`AGMg}^7A&4Vz zy{PzYj{yqM!rK6wxbWhJho1Be7KRKE$nr1NHX!RU)KTn|GWJ2ZIyk{u9_J*A2enlUGX-aQP^6ox2D9gry0jP5MOq^4bZS*}0 zE%9K(NiJM){Ch*e$E#-5%H|-qHRRu}FDCF!xgYMVVHBAW4B~VeUb{}L69x-(D{Ha% z1yKv903ughBzj<#S9e(@q*q1x^>Y4_eNBmVTk&zwXA`I~f=>1+_dBn*7OIwOy|yC1 z;tJ?vQL$4G8h-;EQj-q)GA^*mOF+5TAEwzqve03iikqjIjq1JqW*q1VvdFYt-#0RIyyBrc1kNs4&M7 z6%=`4YDwnd{DyTpx%tr-FI>@hP|52AbBNeiM#B6n;IIrLf%P9r6<^vBcfveHO`~@`fh*{hO~ThsF!iB51QgjWvyYqJaCJ86JyW6SgwmzXBDr5ZrN8X<{EV4u<-hsdD9^iY=27Y5eZ^;Xv&Mu;ouT>Fq*lM5S&t{P?K3vFd2%yk&@EN7p`O*)OHPpdkuwx}%0MjoPKoG-X_A4V9R zU|lbbiPf+GhpZLD0n+++V>^6$=ekP@N&SU-dY^vaC#cW^D(F_=>T83-#3CAOu=IS2 zM|PhTbfPkg01#ErpiMhO5JZD`<;%7(qOb^T8`ZQzRtPTKjkwaH+~6r_2c1Ni$vMH|m@YT|Ow(NmxH z(f8iuQRB`HffVstz3JFpW}a){*P3n0hdtgP$Z!K=53yC)fX`OFNFv|n#RjuHYbY7| zI(35C(Pv0`AUxX4z=H9=|poMb!KnpIUnLw7P|gXmii!=?MqvW-AUF^|WMJ zUcSAJxnObgr_I%M?4jB&0POfhN2{HW-nzmu`2KiUqEZ)M$J7E;lKJFF+tagQVdV>+ z85=!!0e7l+bno?*D(ee4t!HJuCW%PpoAc;Rmou6{-&WpW7QF9nL414od>K@0Gud#{ zlk;{Tcwi+XGqR>VpF7)4L!%)6$b<7V@Mx ziKIw_Dh8ZbhuHbC&d7=8STH%yX9Yad8P&gC>WUb`6b|~4&fAz>+AkU^0H$M@i?NHs zvy~s841lfBu72VoUK{oW#Cy9yfjOiC+ZLu^sYn}aP;TC zen%Arb?4PO8jTm|GsdQKrJ)a2U&rLD+udE#;$v9|zd&d?2RU z`K#-`Z~(UU_tYGwLJilKN3ULL19&$IYNWS@Shm{r+; zH@9)WF>5w?QUI>jRikW_JegBgb|&28dt~4@Gzb0`COu^1r+W~qG+Xbbl1)y0kF*1P zlJ>M6Fx zGFb@L4R^0Ih6wf|>QT_~9RvRY8K3RAO$&3wa}8PikgIsF>{kdyTk`NVr&s@IYev8) zrm&G^aE>O-4G2@#yEoUDs}X%31-C{|^Sj-MgPuW64fwmtc?_6AjasDt?Spg$c3#fb zDFs8RFAqIa6v7P0nnO(n3e+9c;=mdf`7zLARwSxf4;U;bCCa4~HgM*z_gVb1C5vbpC z%QfsWW4IkGecN?VXQ; zbHft0iiaMB9s&3r@fMux8 z3#^}Mzt(DmkCzRM13-A^qKtA3iUYr!!w5eK&}FVS&_J1hz$WbwsMA+p-cBF-9*Oh} zL7`X662P`WBKocfb-49s&olkB!YeMGQ*^@$33l5&YO}|pkLT`6; zuses4Vo61G63qJR&*umvnCXQ=TtsCpAUH1l&b?89emJK6`k@S8Rxcij3pLdBIE`m2 zsUWxQ^K2J9I^~CZzcsa0(vXp{;b`*hqOo+`T_n&pdN=@vx&u)C~8I(THIr-Ll zscc49qse7&!@#2N$~rU-QEm4o{0a9D0bw=Rp?JvL8Od?F3uZq`I~XeANUIuH^$pgO9USQ`Z}K4@D0dS@`w?gqb+@q}3z1(x z8Y}>~JBrChOvv7k^=Y`dAmg;bN;3;@NdHBphGm!BAzjg#0Fu^E7v<%q>YcU_kbLD2 z1d8f$_6?G8fT}Z@K$4po4dX%F_|~#sWus)!QGGsBVm;SMugZ%tomr*j6hdbEopN(| zluu=;F`i?@o?1Mfx2n6YF^F2U8O3PbYm<>G%3D8M$lwrzPe`%-w9*TYLY>aXR!ug+ zjEJm6(@yHzLmR(OLnpD$Jo7-(%u}+&w6f#DIC%3|8o9BwNBM_Z^xfVOvz@X0g3FNvL8|O4ZGB(^txQT1 zVp&(Wp3RfY!*_q8To!AsWV>IPbE(PIh$q#)x1lgyu~*fqb==T9oGzYnHOrqO;XmZ2 z{$><_HQ-~?li*Gyk$1j82Cki!Dny`W$OIhvr`5An!I-|3=veF5Uh`W}N3=ier5@a* zrr3R44m4LlO`}N{VP+yiTmiFO4Xaj?6xZ=upX7Y!wcvO$u*%{ST?oYiXHtn(;((S0 z=-+vfVN|I2Kqb=bgl-u~y6Wnwr8<@i)EnC){gw+nR0#ygnTt_T{tgVRf>!*f(YPlJ z%JYN8^+2Z`vG02x=|79`Qp%Ug7epF-`RB1&m-PD~!bV}Dkc^=-oKv~hq_dE335ZK7 z_CvGDi|@Yzz^#qUW<|gFznImMa>^q55>hf?m{|m9K*&IeohBO9XIiiT@{^sj-x8y{ zOH!$HoqQ4wfPE2S8`%F8Vb^y$+Nob*H&zVpa)NXa)ooMsfrY+;;jk_ci7{+Wg4hoJ zOc;X`!WxxCxoRWJKw}M~dduZ1W!ta@Kvy!jOr`eA_)$Crn@5vvm#bqtCJacM7QNUR zM-lbyiStrCFteoHm}(9z4ayjB#$=U*{I5J!>UqD}G~?K^VFeM#HcgW2IH2SpZviA&n>H(rG;m-q$v0l#wqv4{sX{H;t>jN z(R@ax?uo(t5#@devZCV90u^^!QZou*A3~6g!!>~m!QfRSoQSO(n6Py#$Xf;eqa|h{I!POg2>3cBV`wb43t2#)+t|^WQ`a^TE8x*Bc{yd)-7Sxd8T{z=}`s=qx z$S`;gLB7k!ed#(8&$A-v%sJ+M0$tlGxO_?40!~8Mp%j=ROOmiWf80M;7x;eMSWSmi zMG1gP2|9)-)10lctOH}V;Y`O?Wut7l;`hpBSn{GV@Be+nM7inBTuRo)-7b z4JqO#UXy{M@^g1y_O15;q7=HOfa2e3V(!-Ye{-FLdox14xU9ESp(jN@t9T$joO_L!qQ6UHJhSge$#pDeiRV zgL%2F!Ls|w(_vwQ1yaikvS#5*g}TW=mge9}297fiVqQr*5>1DUNA~JDs)I~iVT9g^ ze9_ZU8OuT#o03#ZLidJuWp7hpG4IzxsTJP~Z~J`wR>A|1raeU{shWC6*WX0E0; zV)(YT+CY(ua)=%fOgn(8CK{P?BB@CCZs8M`r%vY zge|6D;{)l(_MWdKBUx^U!@%BYiEyx__yAxlRBzJPEd*4_VthG4cQf~vQO9Qy9Vw>` zvKbjpgGV@O&!cb0YSE-^9qpJbDMDFp+MfdDN{apTB;QUmyYjJ!3%gIz+%f1(DmZ8X zIt4|)qu#4j4g0ZIb07Q|Z*z?zrGoMBS$9K>AQO9}KwftHxv%6p58VF<_WtL=)=+At zH2TNDJs{z>HwX0OO(){%K4mGyms@k>m^n5OL|Op=og9~Oa5>@^8e*k1bVbP@wS~VA zj!H&zFqojXVYV2rHRdd!F@qve+C>xxVv$S~l+g2V=b#FS?S$|#BE2qOf|x*er?BLf z7QGLB<*1R`X6|EjMIB~-a=y-E*rq>${}CAn5q1OCOmzF~U_y#8AVh&Uxi@g0s~0?fV$g!*R+X5b58ZjOILuqXfXiMyJ%Y@H z>C+Bj!A!#9$iZi2%h5|)Sl@~{hNt=pvbYxYC|cXO?%LLlR^y`q?Uq&QO*lX8-tnI~ z26FT3Ns`NZFOLHwLUb`Yyfn2QaFbl1201IqhZ#OV?}k4gVW;7E{l^xzh*>sxWm40+ z-Yb$vmb*599exVcurrRsqpLl~cq5J(uB3YZTrK8V zWF_G;KRI6jVsp{CRT}69sXYmCCzDlZ{)`aj*EioBjeDa3s&6h2pio3JK-RYH&tWDO z5IcuZ(nEVniY{vVx?S_VL8FsqM+|*;Fr)T#TCrQ-67&CtrTG@wfw}>f6M#a2@lzc+c zo`w51DWaZ7@wNj725@a89(kWl-XUhg(W{B*s>4xoSSN~)cDAU^q6$r36P<)+O%!hDC|xwF zl)O+vz}&&}Wdj|#dFcBU2HTFdH>)>f=@BzUU#7QBk-}^J9KI%81uqS7VJ!SD2(x)$#S(IVB2&;mG39l zzh;=3EiWJLoe(a^UMRglWCTvcuB!+`nypKFbAHENk@ErnRB7gNKbs-7J-6$M{E_}X zl#UvE53GQdpECBvJ3LluC>mkADXAIJK_xE=JW>^-R*^yKXWVf*b)7+OidrN3jd?S$fOh!u$zuIIGFnDgCQ$G+lnmQn9()*!ii4r`M% z{iwQ@dIXV2@?}LJoz)f6)fhMusr2@|^;-ZYp{6N?Y$p&TEz4yRN7&0ySY*<<8jK^A zh!7Y#!z1^ z=BaMG=gxo^DEPje*1E8P5R{FlL#ka=j&5n#^vEGhFdc6S4pY_sJ>bYhQxS6NDtv7Q zL_QeyTk@hXR=!Z?7~~s6v577Z_jR%EwRB!Rgt5FS%k({UXX1J>#!#Kcx0IoBbAXtO zL&Q@L-qR9nnZJ0qty_Bhv;3rX5<5;_CS(iTQyfLroPIS-ye_-rlqrSFJ)wg*|B%VmOe^f3Zjk+2!cZYcw9)rrhS zk#T71cXd&pn1+B5sQYx@?~=_?Z@r-(v`3{PtHyG6epj2eCf9|qU8_Wdb7k~O3ELSg zMUYl871_5DtT!JL4LZdI_BV^XzRpwT#@X;yl9?2{LVu<_l&ZchZ=_vPRnEUW-(%?X z@*^<4I)0TS8ofH_F;wa*Wwuf1mk6ab#{_8=ysj(0m@c_}Sp! zA=9vT;J2|*vEY2@D+%ifvge)!5Odf9Q$(v!LM`Cgtd`GWXQi5SHp)$l3ohfo_Q zHt+covw!}OeA?bV7Vt!!eUrRTSV|GjN>ded6kvSXoI$m+UrQhK0#|D1%G=htbmbac_rw zgoZD=npj1x10lK9we-^dz1_*+E})92Wf>M6Kna$V3$zaLrPhEJvF^!hmoCAcwPf&m zEQ^jvIlvfn%3--)XgrvaTO%YplY2WqJTfIBqF}Buu~nklh4oE83SG3aS=$S>n#S++cM**RL1fiZ}x*Tz;W8 z|HF+4!76!IeI#Y&!+W){f?!N?lLxpU$>rGdJV!edGA%9mn&ZG}QZ8nA=sgi(5w8ks zPPCuL)-SsMz?Y8;WXfG`*~W8S@t8x1<-XU}Z`ECx!5$ca*S|lt0*s5tq-K>CjsSXy z9tvZxA>oQX}79pC+HBA%supl_h`!%YlBiXJL0al{QQKSQnA0(W8{-gR#-`EVl6Z{;Ttp;+FK zaxg}_+>GOTN=45Xm#(1UViSC4dxu+SzwNdKSvAbR_1eP^3NOdMx?;q={KXXJUCH|# z7)ukb$oVQHPV=1@07RsqT{gdswtOoqUuIL@VdcoLMAFSD6}P3b@2YG|;0|pZYb=DSxxvvR+u%PYv3~?8 zs8eCzQ+K%Mpss=D`J6$mSnBrksE1w8#^K{0vNuwYu#N2-$SkM?1V4oJSqLOu!yNel zXk6&8RSXojW%%W-{{{DnpU(%(Boz=@*7RHjLCgg=n2(Dg4PbgRv=`Uw=tTS(UdF7y zU6xM#sRlgsx0PiV-**7Zbcc%x|Fdg7vEK7c{5Z1x8i<+(fbly77i?qi{QTa)D=*)t zM2C+(JXBUZ6~UbUF@#n|xysg?+)@8>wfec4z&rChdI`w|z(+_%B5?GT_sO>TCJ^Xb zG1i%&Y?AIO#ln{**S-q;zRUJxeU7k3+wXY>Dp^KUE75o%etg}M6cj`n$p{T=QFfdc z;TJd0`_ftD)+Z4Ft`?`s zB6K?F@xAUufsYPiofjzA9ekWz=eyJU>Ea44+G}~Fh_A$#1nNm+rU2vY#U?_fKvt8i z({}vpXQ7>&+ z!q_V?-2y^1;7U14?$}tS3>Uaw20?6WCp_^DAbtJfT<1raYe$ne`F^bdb@>zDU7PQ8 z@(dz6`Bjv3MD4ZtII@(AkfUhjnF^;6{^GFgjWib^Xw7yr3pB1mkd1vMseq#s(6M58 z<6$Bn1lZ^9?LEaaHu&`vpAM1Lkxsy!Vim$isACRcm*{r30wc1?C(=OS<{W-TDWC(5 z9Ts5GPzEIO4xX25)TPy^_D3TMp2gm>P_5f|6$F7yiw+U`a zw0s^>G3=5n=7IWP?wu$jEvYHD5ihKOg!ag(`1lY&TbNtm#K}u-afs}|TwdSP~U-Ty`2AR1LQ6X*gU5?1>4PqKR(>e!ZK)!?*5*zxWebNMexa zcw3U)u#eC!5gxO38|Mt`u79m3DflB9Z`}cc+gFS!1tpzO-NEmF^N`>_c9J(Q!9;p(8A_v}Go!y=4- z2cVzrf>gOGYqVo=1!=*4F&UQp!Y~fjPv$~D+0RV1Q-d#>t6tR!6WAE42p)ALh3TDO-|UJ2~{4X8azeAL9S@CkUjr9rqwG8v|vTvafNNS;QxTGQpQ zgO9MgYY(sXG1D;GgWN|Z+t>MVM>6mMpL_f0{F9TX&l?x3IdRnLAwzbFiH5*--r($0 zn++CPVyDUNpRuPX)3oU?f6qV@5m40XEy5PHC|oj06pfAzWVhBh8Dx7^oPZ_-ZG1e7 zi}&fJ&dHiF5?1zl{374Ku&<=s#DDGI)M)bN;-}q*D+?1DM9{x@^5-TmUna!##jp_N zh9EKrydM#Op7k#e903%jdtx4ci*&5+T7Ck@{_2U}s-M1j=^4`2fTyt}P&JX|=f0W0&RG}J==kMVWMG!J?5xuMEM@JBIN zC~Gp7hZcwM!5+16fEaSoJ{NG!UkoN10@mUj^ueN%Je#tx_ES>Ohv1024Qz@)xRg;{ zKuSZLSIe`^PUA;N;aCoGAflfjnf|vi%tuNJ1Fsp?$w3%$eg=UQ(pK+L4ESIUga~TBrom7g#Tn4$l?v1SXy}KbQ zU5P9SR8f%@Um2)b6rOvHiEXXpzH@Ztp82ydTC%cEm@%}e2XRH!j31CNc*{yTDO4}` z|FQs>r|D1zLyYrD)W^~9LVgp(q_XB{^1$PbsG1o=<2S{H!@frHxTE@VRX(T~arAE9 zAp!PGLM9e!8y!IOh4VOQum9j{@Hb#0M2i5MXJ)@XaK{gfDpF@>uiqm3_J?~p4$Qu} z($61$U#t ztLs07O+`O$c0_HLUlRX9%ZN-)(fTnM82;mhKmKIuAjLeECh>ohm2r#$j%S>0T`be_ zzTSqtyLy$Q4%V(y;OP_aO{!t8>4_Yvhf8qf6Ffl2zRol{o;d$sf)9xdJWXwNqC{|- z{(pMnf8SY3AOIH;JF1+VV-BnQiDx$euVF13w@mLugeeUPZ}C3zZDw1l9*R0+sA0Ns z{g%VE62Hy_;_&Ze;j9h4}P6zmep}J zCGY9P;p>*V*ceZ_>s0;Tk|)^r*7v65Pl!HC z7=Kf3stjUf^oYO2aXIP!bzo%)8c&8)Xr)=A)}IQ$__#(io6#PsE;`E49N&)puhNBo z|JiqMyLd|op9uifI>*Wy0E7)z$LkC}y*ye>USh`*SP&;1wfqD{Kv;`AZ>J)n2i#e zP*?JdtiSUvn^}0XGE#z%rFrgHV32=`5+4ij8^64p;K7p)See3>4N!pHu9Y>U&^HO> z-@a9sx2)w9t67clq`P;oyX8zSzhOC=uBS|^;w0WY=J%Qq zjYH@$u)l?lrV8P~=uhN*89~IPu9~qhO(+rghr2wyK|$WgN0kj$)arE!Tk_=wX{|2@ zNaroDoIBnua3QURACq4A52p~two#|;rPx#X!i|=mj6@z0r_W!FFliMkMRdtgZp<4Xz zk=F`!5yyP%_+w8|-7C9N5a-Pxe8(w-JCA1o_}58`vvr3}?22#}8?a@)a%bEZcb&LJ z*JecUlPzn;i>IoF7KXhCJEwTC8;;$SEbI-x4!wnEfv{TT+SHXNIu*{=tvxe?u=wBM zf*FOQ)V=^$%CJ4$PcOcNu9vM7>@bANN$QWMUH!+s3v=h!`R9@>VLS>W|B|`>*5$Z^cS;v2JgCjpfR_N6?y{!t_0{ST{A^ z5uM3YY~Tql9B<4o`Mdx9G5ep+IVLv!X?Nw9-;E3kuX-)L{qv6)fBsQ@^DP)o6r>$% z(F>oBN0|SLQ+ru&TL{128SCU1TSEzE)jy8i5pXsVqwa;ydo<5Fxp^<<0JW5}ZIRy3 zsVbnSPPv@AdJIxZ|MI=FzU5cIQ#ZXP@(Awhr&Ep`J3HroOJjTj!-fd)zLh3BW+#z9 zKW@h?SQC;So+YOEmyiF~E%>`5<^TO`|D`zn|N2G$|NOa`^Gaa+r3LVBzXJH2F5$4K zJ*&;i`>PktQ^j=LoJXk!EF}CRZ~WcI6#2;=yBIE9KQ9FQS!|Z4@LRADyhp38laR0- z>s5&&m>nL%`j2At*g;1hD?qLjBtl@=wjce=ipUf4al2jI7`N z7Y@LG@~o`Hvrg4(6?t1&mG)l8>XGKoj=fO@1M|TSRhd75<-4bV3?CcfUEJVQt=gR? zuP|hK%yvIq981J6v-*io>gc zmVNs;bY1`HfHeyzuyC;VQm486_~@R#47)zz?P*s-e?3-fN_SZK_(<=A;bVT$s+XR?udtJlk2wMZCZzS1evEV(V~ce!w#F^B zW8J?U&vE^a?X(|Ys`n0%u7|GP&#ht+8X4cVl zhyGXrMZhz;h2^E30&6b)fjk9%70huQRy>3DQSF}xer#@LqVWUATULE6AeyC`WFd44PbaxaYLWLxOE+ z_7+F?%CRO*eZd4fx|zyP#NZZJ=kJDS50%?1G{M ze9Pekm0y0%9{LDwd7+5HD@G!(Fdy$n#x}IW`xRN-@1Mms&!tYuIgYC5Kc8HO4}456 ze1*PadV2qQKv+{?;89=6C?xn>PR>oRnqL-BRYR6F`L_v>gR{*=t9QIPpByQ$PODp| z9yjWboQs51m>nk_(TA#dbh2h<&Qeqr!k89AU@Sq7cxdk)?tCCVvn?bwm zP+2!wB=mqp;k!qc3%y)MNC=ZgbsmStWO0dh!+9l?VdzyJN7>HK&Lrdh0_ieK9fR() zpdyn&c`9mZzo96Ps%vdQ&v5R#X`Wpiu2A@pn0Vv%?WW4lU%m)xXliP5G8yqG3qSbd z1m*?)-|)+=0Sx?Cs7ij%q6OvbgzXRHy+^3CGu|THQc>` z*SA8tx=RF)M!>931y)Yj5Q&wX{IRhy=~M|aPTR$ZnEN(OMLN%)M|hv3SIpyAcbvO{ z%!hNBoqxxJ`NwPAQgu(b`Rw%lq~UQ|2~9MxO~V@-9~;dDxcM30DVz9wvU?168Va=P z&fbmodQa5D;(D;7N{J{*W}mxqho6Mq_}0^>Pj&mtnHGApgJBu00kb4EIr(d_Brh$9 zpPc@jv@vnDQIs4MQM9*f}eWwRpW8Z>rW`*q- z&u@)={FG+}FdbD$VtBRd&wZhNs{mII@}S2+1&)I z&QqXw!9h7{U|=8(PhoDbBp2C1yGTq-3-+a<$Od# zvK_XUhS$K~CaQeUv_f1*o!KB+GF(w2hu%?W0HG(mf@hyFIL&{& z041_c%&>(hn>a|@(pp+tmeaeiw(}g=8Xp!4e7#l{sx@GPtusT8E_2|3$9^RNw!VqL zzw>f`wM#|1(f7RfAf@&Y?9U|9rQScxIoi_%u}K!AUV80KSf}$Nk%(e_62_oH16x$= zn)AC@Q|TQx^Xw>~_zO91%m$@;?+3zFvV>*(#t3F@vC}9}bMaUlERp0r+R>KjD>hLf zzVqzG{u$R?u*D0=QZ1AI{Q2`Fu*RFFQavs+snf$|S*B9_-t6{!n}y!#?^8TSy+WW- z#W2y4DoHUnfXYNd6ujK?_Bft3ur+S_Am}Hi;MSYc%VoQGXJ!nvp^Z&g`ZRcKLEtA* zX}v9$E7^3oT(^~s%a*k|Cl=iDG}~yiD`103FtEg^zs9Y`88+-vZZk4U09j>mz<6YV zGkskaES0>@lSSpmp8Y*(=FeM>>;3`@rQ$wEb%e>N! z%xw(~4bSI$#hVS6%h{p_ZXg2PIB`EbQNXFwNt%Wo^RlzFPhUAfx8^p9gwf!hIQ2 zur>3wr?2ZYu4qXU;KNxZ>W4k%j<`B~{1&)fe0EDQ-5GMtn9HygJ=E=R*09EW?BxMi z8N7qNhOdae5?zwo$vxPhFp1=}(#^5aH?OF+jwacN?|Z~$bfLnl+(_yW6k4o4@1w-O zEQK>^FdpTYe0_K0LxaepuHjRt1xK6Va@Wk+;@)hPn;^@?rVWxsyaZyoXp$V$SZb2a zIF2;6M;qC;xY~9^-A8a*B9{H*)(L;-LsoNtaSG)I0$U$){nS`1E0SKJGSj`R`9Rm> zT~H7uqEg6eHli9p&SUsFi|x6}moIEdd!W70S?%IPkfxp?OH0t1O^F^*c=W9yfK26< z_be<;u~DK)Uc16p#S@70VtJ)l>A6aULZEzPf-z{rykL%drd_4m3e;6}5ob)c z2jdLNMU8{4=oujWNA2b1A&N3SgS>IKZTzu57)e#+JP3^SnlXB@4?1)v55ETo2PYeJ zrR=7_a)*aOpV!gh{*0j;$jbnGzkmWFAqTPKNu91 zDf<)`zQAgs;mh%!il>P}^~EBgw@;}@v$>7bz!F)cSR_lG?7}X$`44{W_jqI-DE*K7 z5FNxyk3exjZ_nUP1@9gHFPod(<#6Gx#53{!$n)iW%}-%1RpaWC*~D%BY_Qm5+6u;n zmh%oC|2}8^t$+Le=7qNjTOTfVnv(J29+9)^zjaWuAzELC64Ll{eU;J|s92K0rfRp` zFs;O^s0J!T8veoggcH;7yWHJ0N;IhNC4y7qN%_Jv8{~Yhl`TMPgSqh5ingmTerbG7}U>Qc>WTzTZ-V2`m#4WI4oo5-A52PgIGP_p*r7rq>zrl!6@ zM<*(utsF|1rpC9xnWVX~_w0|~*)nzLByY(U3*3IX`n-7)3c}w{Any&E z=71JM3h&*!U6>ga=*bjIU||-x?Avx(LR6VKYfw_oq2Iv|+jQ*fPrrO;iy2g#`k0%KDb7tPiv6^$UvGq82yUKs7b`(PaQM@^$ zZCk-(b(5RZWKK?<_Jm&?{WSaV~jx9`!jMRTev26WSck#Id{)vo)DEddj8o zBZ#T#K%WNrCNP58ksgJH?aTt*R+9Vx)TPGJavP&>4xno{7(##KXZM7#@XGRgO;iv{ii>SHADZ{>FwiLE6%S zJvtXlz6_Kvvr0OlymWx$F8Jk#+wK&R1+HN{pIh}@>I^?52&?+V{=%CxP?s-EK_cdi zU$4%8IeaTxg-}e$-OPNiVI7cL}{H=;T#ZL#2!wGQbVJKV;TkDEh>#0V4IpifzPX5N$#?$MM z2k5%ldkPt{Uu{u<-4vK?mwbyi-^L|ne~r}*wI#2WuiDBTWYrKYSSKHA?0) zT4#-1h*HQ=rQKUg(buoQLK)3zA@-Z*n&p!v9WR1;!v3kTu7al z1KDW(?^RfbGQR~Z`V*75R&)y6kV&Xvw2yy;3)xG_tCX z`UgwQ%sv+^^km+IQ_b>eBDZqQH?lAOu(J&9o3jaUQi`8UTE#H;(!hLgw$aN02>f(# z76Fa8XE!|5YhYe^=~j;Wn8TOx{q1G5mji4q&Ty1E^E4kRRXdmU6WMgy_FW_=k6T|& zi8f^!+u*!JJ_118$Rj@&R4#m*(F;*d8?%&9%&l~@DO4G~tpq`5p!?Sge)&#KMJ0C4 z?bX>!ExXAlH)FbrVP~uvRLjKkDtZ?be`orF+p|)~XZf>)=k*bQ?+SUw$cvr8I%(*|Vay121@cMcJ}kD+8}JUz3)5%)mB4>|Qe_N9|WBCA2B zli6zFG_K)K5JWe5Ibfp#UbS~zunjrR9sIsplfMzi)4P%%`y`-}G>8v{Ydj zXrrX0^s8(bf#6pH6-X(dlQEpE0)vBEr-ID}i^Y-DZ=onHEiDo4<$k&VjL9UkZ0J=> z@94S37Qe3tr2^LB+hFX8C{9;X0{jsMyJ3-go}QRb+iPnD)_3PKbKCkfPBv#F7{h`| zb&cTxXcv72Z$`nsMafkglepsd>#~`kW-^$q#04d6bJi{(ChZ(*@YuwMA-9SvR=DcJ zxtHL>HNnHf3)gN4ApVjl94I0y8&YJ{$C!#|_B*e(HC%1HVQnUej3KXIV^jZNyu)?( zt_<(N%A-QeguDjxNg@tGox04VStXLAwn{jVJjE}^WNWeCp(45+LS8uJ zhluU+K$7odjndH65wkph9Vy+n4LD14hFqpGM-Uuh0FM(C-FHCSAXEQYSw&}!o107( zeCk~|pEr1T)L3O}07u#_@5_)ACE+kNp0C+o;^MShQmy7yUhR_P`wCc}_=*FR7sFet zDV^b{{#GIi3bUwiz;L+imaGSDejXjNK-E#G%QNC23Vo1RD6iPZH9JtE_wfnRZHM2qTY3Y@@^UwA8pT7Y2O*%F<)CKt)2z-VF%|Q?o^2$=L zy02GJVYeIxlCiJ7UU|QIHPy{k^$i+VygnAQkxEs{ArixC)8YHOAc#Ygv!6D$l#>jl zG$#e@(!{K*kAf=v1Gw7H=TpQYsh|gK?a3Lm-|SJi!O7X*jra`lX7lwuXQyCgg|9v* z#oH^_NO2!Zy*HZ5%2DZk9UIvyB~b|$xCWyoX7TCELuG~MNLU*u77_KrfcKZ~jASY> z`2+;CaR>#zY0I7h8zUCS4Sj;er2%GU=BEg{CDZdk5XYb|C)TJ?a@j>Gdbk!)x^USH z*(V$Ji0n`SJY>~jwn~@ow5K%o)zBAOg6PeZVILkz6Zxe}I&C*_f99%|71Y+(PtW%O zPO$C(xnMfirp3}`{I^yTN&Etjmux7PH-P&#)^%CK?a(G&I@woJ`vC0>9bXgZ99)O{ z0%~aZ>B^{#GwghplW^=$e%(9->*vamS{RO)JRD(5JAml?>-;%{5g~(2xu^ut2qgU9y=PG4_|PD6xWBbAtbB*0+?vT zqZ&boM+X3X&IeQFX5~lE2-QYGx8yovzlZD3=XO*Hmb*Qb)=nfOu3!T2mGt3gqA=dK z!#A&24tl!E_BR*wwnTAJs-TfHom=6?%IyMXDl9I0)=xx4-hmgQ;Q07>5?B-?A+^84 zE|)mv(=5^+xxZX+QH!qFG*m0IoI4V8yLa+tL7!?J_0a!y4!B9^TrI%Zw+}xr#?S&+V0;6LEn1J zBBNQ9 z_p&si$kczk4`#*BTtYx==drxJeA^6E)Xkt*Uwd|V1dv!{iWJ7AVft_Ysy?x|`*2fW zNEKK30MCrINcGXTn_>~q9@cLb%0U_jq!6j{Sq!^x5pd@&Slvd1#3aJOp;&;`e>f*? z8>pb-X;oOYpa!E1rKZ?pC%`}u2Va_|Y#~C>($3wP329yAwh}hd7&79TW2MkrGFGuae zgw1e%em;#pZ{PD*D`PMp{B^>MP5u{eUmaHE`faN;Dk4(45K!Epv_VLNiYQ1(ONY`S z-5{tSsDL0L4U$U7qCrGNK)Tl=q;r9E!=0b*6ZhaG)#t12%U;L`~L*2(DbY@&Jkq^op^uF&5qV z9R5!#G{Q4|2px?TKeocf?mA|$QNjP;e(HDsOT2*^C{p7Ln(N2@Qod*r&~Rx@FSBl7 zH#av2sNJsvr{KD{9>6*!GPD*nd@(qk%N(O5S3wesyl>ha({N?BWCm@}Wo;OnMRtY+S^f+>%qn_dW612#+sFMkAIpF9V-+-K(+ADj z1pji5#BHe5i>+eMz_1S2VcwI;3d%b)z$-}ImTCnV3|O&->N zaPlt)<)Rr+$ji!x!A`a) zwO^rC6NZ!q`*DD-U*wK2I`<#L<8S%m3J;LV?uwt!vw#03e}1(1S;CW)lp=Ef?oFp3 zMP?_k6UL|PTW)S{LQCuTUvAWI`I=OO-anFZNqYX14{oinDm-Wqef_>pQtZ)vAiedxe(_~*) z=6xk7P?>Iy?h=s8@F=^U0<$60*IxGVB`BVp@VFN4`+*j?jR!2OJBJ^ zEtA8)9j&J=zb4d~dH;a`Mt_~dqWwc2dv zRI1MKnhI6Uoj+mG0;9QoiAC1cofKbcHs!CSer@L9mfP;kG60;Tn>l0)(qPQ;#42k; z-PJ3pTBz)JC2hvNcfN1fR2m0E(%JFw0K%lK6l*t6^5kDT)4P*n*8QFk$B;rY@0h1` z{o(*SZ4-WN66DhVyCCuZ^xs|d#jCmViNp5<$1lLnJLF=5ekg=EgavsY`oVcjQInyb z>Cj&9*>*sA?*Lqs0vsGku0C~q14@|80J%FH=pF(K5xz%?&3ombFJ#d!cjR1E7^Acwl7YDw*zG4twZ=VQ7M&`v~RbEV=kKxAn~VzPwr->iC&!-_b)wiuJQg%gT5j zG4^hE?%bISi;0yxvh`2_Y zhcIlsxCfP;VNd1;`8HjGK5mH0WAlY?g675vSM6$b$whDBu+2?pd0Ee1^B?;aE-T+` zdgiKzK8$msIE5FDUPs7E!v? zS`PE)Xkx+%%$*4GZMXF57tijkFAiHTRIf7J?M)%S3bcVPH!2T>XAD9jIxywDx=^EY zzJB(AmTPvSu|||UlJOrnqR4snVL!3%*4O^*yOmG>uZwVT|7XIRo;IO;kU0_tOv=fW z#8*8{7@0lyJQ*{y_sEQ(Vr23X;lFqR@bDBSNN%X%8!jSDFE)*~E&E;AyLAr8y35zX zd@BGe;?pfBS_fk64vVtVjn{jesIzV`>LuoV-eqcuBH4yj)6og0UO}O8)~Mth??jZ~ z92L!cA&V0Z#UljFA}3h^2LwkXooLS3T%@b))+%|F=)T@>%yL`Ex_r=>tY8neQk;b) zA%49z+o-R*;7{EE3+PSoMsSl(y{U0146-6QO5DrI!#zv0(zOWL;e@V*-BqM^$1H`m z`Zr-vfY6Oig*0xw=gq`KB#}#>5^*iW1p{-6a908kr6B~I)3=Z`EuD*TpO$&dz7~sq z9)V409BsV%a6l2t<@j5XM~oNb<2drF{d{PXr=1iT^?rcg^>ZRB;-qPO5g4E`$wu>$ zeYW44jJ#%(gkTF>vsnSK1fdZFD-NWQMu zJZqn2#yT`DiTp_0FitNFE_ef=!@_dIz!W(xV4GaO?!z}-nz*40k+;{H!#dPnFM@%ke`F=4nG9t1Vou9X$G};2zMYUO$dm2CvR(n0>8;GfIaret0#LIW6O-_8mDNDWJ=nu@ z9un7zv7OONSF_yZtF6N4VFg<#DJ>eCI!tGf(257Up81BOktHrky~*O?z!PhNkv!tT z91J9EErcH2erPB}mCq9M2e6k?r=6IC>&l2`@I_#SXEu|51TbI_z05Q|A=j<;VOEb* z4S*W%9a(VHUIFsUIAHu?(7;jZXji&A^iDpm>@|~bd zXlGl2#EZ7TdC6dDmCmjIVFcm0lP=?-O90JKeqLM@bcos4nU!IzNZR-V*wfr!?O(2) zO{k{djzw6}lC_wl8lc3tS||myU8EG8mLE*FB`Wr9)DsT+B?*cuFND2#FE)ojKEJ=P zKifqhd_mhcieTp#pecTt_8N#LUeXJxhI8CMSttTyx)^sDGqGITfsJ?J;IK?!shLg5 zDD2$!v>qN)Pf^*&Mc!PcCm)ggfebi+*_is#4kMdz?mLP|1bW?ey=ie;G9pier?oE( zOGjvVIktum_KQhPdp)>J1R&43Z%srbNeqJ1^&6;dwUo?GEW(-tCg8@doob9We;mQM zs)Yc=!Z2o1%+lcHmTKobg@?-AflVrR0HeQ@+WJCNg3t#A?57pPi{DAi0zWPO<*Ccp z%bXS&a!c2WJ%BIX@d%3iwoiZD|Jf(KAvsKD z>NTC{_W;xy&+^4C$i)Q1wv_9LrUuE}3dI>C13|*e&y$mr2`q(R>-d$O71$to2PPLj z`SfIzYTRUwWRCq6E(OQv1(mH}U0vx|pwJ&oNk6Q%c=VK>D8SIS{PAKc(QE{}njCCg zj=Ngy`%V-r<5|uKrd@e#&1W@Wa(x$>#gW1Y{rk7O6R#e}$uCyzWV?tz<=?~amTG19 zn67~`?IxqELYe)HxUBZ{3ar}Ei1XYwZ4X}jbTK?u$FGY^P_XP0UvvSPhu$-tCT`W+ zz^=W{_=O@fDe?RE50c6j2ndBAqua;UfH~X%GLECd5&V?X)`_A#;?-D)M9W6cbv;%` z2vFkl8B{#!+Cg~?b9z*Bo)V1HSDb%**Rx<6pNxT-ZpG3UIth;x-btycsg1}WM_~uz zN1kRs-lHizAG>u@)zx~xJgb?12 z=4g5yU_5oz>D?b9TE1hUEzk>o*#jmg${YrH(|xq!|c0D)aV!f=!`d9eEyW9B8;=X$-= zQxgjiapuc20*WD_p;_;*?;$~k2)-8PG}%>82nx(VAAP?(m*blz(>DD4=KDM&DGlT~R zpG5|MX9VrPPUR&Eo_(_rc4O^S!SL^Y5q|;;KA0EF?fRC#KHvG=B^asq=NbCZiX8N& z04-b*2;Qc{Rh5V|C9|#L`Sa%o4$GslzC~hdT}nybv))|DMLWC-@Cw;#7sFJiUY9tr zmocc>a#um^5QHT&s)gCs1k`fWgT;Cgus{60!u29pzDGv+Q3yg-g72qtSC8GLdW722 z%Qi%OU%d96*ZvmRA1W4^shEP6rW8HH%f-j1%BGxt7J6UN))ai$oqQfura92q{!VHF z7PYO9k9ir0&jq+sY zHEW>@EG(|`C}_~&ov7)KgFD4cXq zJSJx!HibI~{lU)O^mIF0w|eMlu@x5GY$?_&O_tF0XazPL{>+;&>72jjNA$(4%^m)* z6q~UxK*^#;c*!OgVXW+j@Hm&D7ukaIi#ro<5F2;oQXFzW!g_n%pArJx?Zx8W#1t0E&VKp+F^;DC`2o%y>+6`i=l~@~oxgdRL zi%gtLd~>*UD%1;GqLIPXRj&sRk}aLcJ|Gx5Runo{+hel5diEZ{zGP&Mv@>nN>HM~FLH7bbbr~>UdPLgaN)T@{FXmhxZs9pBY#wi3MT+w#4@1ODp8p|x0N`zF){K7tX~R;1;=t+ zm8*(a%X0I(ckaA~b%L|4{UV&wqXa84D)%Z@-sd{__llqrQetrbAwijmXeM3|H3@}5Wgo5347{mp z4n>v+qc6BCj+?4&02q&Qa|%^WSC9a0tVvXM)wWst4^=Yr14vhQr%TE&XFEV6mqNhmS+%xAW7IB(@RK5^3i~*A%zc){9K-a#f_np-f)Lh*z5KD)%?g&ikF>3Q9)XgH4aq6sm^J)bnsHv? z-7T_}4jWX}hp8-2ztx=wYH~5x^nK!ySy{Q2(E_cGbB!hAU=N6wX3@>>yUfExGZPae zs~2H(WfOC&njMkMY}b7y2W091i~zVBgf;gb zQUXA$_ioDYLyzfKqL+-fS7-9ww`}WWr!`hRmtm=}-8@|YJyI%D1#$1Z{3q(D$Ko~= zFpV!c!`kx;-WF##OeQ7fzWFE)Gr-83xebVgJ)Q8|^0XcKSV4yns7f1Oa93Rfa-zfV zOmz`b#wHRJ%|$VIthUFTb;L^U72m_3271;7gjo(RrH;Tt@KxtttcV*L_SN#rX%C{U z`|~AX>*x7m%j__eV9vSnGEvgFuhz>sOC7!J_S zFylCvFLNtN@K1z<0V_PE{s2;7ysR{&+6N%J>;U#c{Sqqm!vd;85E>mMXj;^p+%ESm z`XInuf`%&Rn6) zvvti43r*v7k2W97tbhiHjdPst=R5)JT-h%0C*Q<-?f2UZ0El=uvTPx(cmmkmEK~#8 z2cTwWI@s_!Fvi2-wq49RKRSAtc<&#FrHN^AWpB4nUp0y(HlMDg!n=p?By3P#Im6ot z-q21u$Ml-D5pzy&G)51fHNOiA?r)3Zh(ZF?h+$BZe(^(urQx=a7@cU-LV5 zdbHC)Vv%0Zao%Ksb!|v(Q8UI<47gd}Dvcon#fDQU;s)6Lx<-tQ|CvJLVh7%cq^kqR z@jv^0;Uj-QMP$+G3*b^z@H|Kvv7U0TfRxFSUJ0N$T01l(q~gfsqS()g_wadnuc0Bm z92XhnH-EH=#25#KA3(3Auk{i$(=U^vJc{o|ZKnIhh8xqUMD1Geq)7$9DE09B^v zH>Eu^e=YL34yna(mG(LgYm5ajKAZ4}sZ*>Lt97o#re`?OX|^nBjdi}9zt5YV|7 z-W^}PK)5=>3mTpUx&zG*`f~`^85-QK#W|n2VOQPv*pHnFu zOQPitJOl3i%X);rdWlVr;J0sC0i7$RcY;1?hhFrp(^S_&745$TO^mIlanmR4SC6qvnxTpkg6?!3Dj6F1G9OCIk!2WeZnW z#o*c8dUla81}~cT3={>64#!kCJYO(DL-HDa7v^}o`25S4$FQQb1gBAU)Z+xgVDoRdZ&SrJ`c#kp4v+E7aTiB&{(Uhtv|s8MLhLy1YAwLvX`k^5iAsXlB!waZ*6L zb{JsxaIOU_nKL^sorwT-O_tAgIo0}-eG>V6@aFoS&X(87il4pre+9q(eGtz(>8wI- za%WO5aV8KF;B&lBQ1yW&LX3!8k7Fx7^&u|j)C>JdpAJIzjGx^-h=n? zKKzrGOqBcfOixyHZ!Pbk&1bYa!I6=ta_URw(x-}jahNbb>HMoM)=>5V*%CJneaMkb zCn^4E*~bNGhfJ`9w190tugMsIh46uit8#WF=GA-aSo$0>LAhF&C)xnUazRRW^Qk;t zyaHViR=Drxlb)j*tKLl8*g542(kZ9d^N`Ng468O^S7X~_`!r(z%=-l_!-BgR&_1qS zyUXbz!UerZD1fVOF-ml+`g{PjhrmJYUtdAzfy>Ahi@re z_yxMX%x+@nkAuAI&+Ng(-CK+9y=?TL0k zsNsk?j&+&fdWL3kwqZQv!Fo~qAG*kJAN>RhS~Ki|^}Eg|7ww1Ohqi<~+UhO)awTH$ zO4js=w&}@kv4UNaFoIBc;Toa1lk7!hCQV7@uD6>uqi*lF-5?imSji9(6&=bufCiF& zN1c9kgB6jQ|9EaY!$FE6Tah0d|3gYjf zr>n%a(RCi#V2be-;0p_<8;rp#AW|Ac2UWlF+G^50Q@dSk(a(g;37jaIjkMB-*&`zH z8v=hjs`ir#q2PniH6(~bwSU?=kn_$NR~8{$HH-y` zS#_Q-kwtYdm<$6g;+kk76Ekz&96ittCRXWJT@AVD*WAoE_5=Y7gif#Q<&Qlal!GF^ zdUG}q{9eh2&WbccYhxgUWCUASL)y2#RBQvP{=oX7;Zm8=YiT>&gT|GMoqiaCcQ&!FUOq{xTHmG>+3dmNq#b`ckxXK9iaU6bIaTL%r<)1fb zUxG2@Ka1fv5yTiR}+oJLM4pe2|@4Eg*-Ss5bhSiZJ9d z9V{!#RL^5N)ftg45CpVY*NS-rUaD0pnaQcrw4{1F@Uo7Jl5zJy zuH7d7x8wiJTLiu-T)R}_z=uEQ6i?BQ`6Y${&$%KIjAEcmPm=hlU`j}}i!p|F_2l%A zjS4y(*bW&g>;S`H<+$CB02nV=R+^{yIun&cDJ+GIitotFZT|aumPyLRVedI-sgT>%HRY(vJwh(`^D&YHQa@iJ0IDx>#`Eu7�qSoQ)6{p;K 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

HwDk6T0L;=TQwIYaD%) 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 z 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

Z0r3)9zu=RW@8@aX|xAVYkRP6QL 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

8)>Wb`deDt8^cWrj#-0)d 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 G<^KZ_U74i- diff --git a/sb-explorer.slnx b/sb-explorer.slnx new file mode 100644 index 0000000..c08b55d --- /dev/null +++ b/sb-explorer.slnx @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/service-bus-config.json b/service-bus-config.json deleted file mode 100644 index 7b07677..0000000 --- a/service-bus-config.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "UserConfig": { - "Namespaces": [ - { - "Name": "serivcebus-emulator", - "Queues": [ - { - "Name": "queue.1", - "Properties": { - "DeadLetteringOnMessageExpiration": false, - "DefaultMessageTimeToLive": "PT1H", - "DuplicateDetectionHistoryTimeWindow": "PT20S", - "ForwardDeadLetteredMessagesTo": "", - "ForwardTo": "", - "LockDuration": "PT1M", - "MaxDeliveryCount": 10, - "RequiresDuplicateDetection": false, - "RequiresSession": false - } - }, - { - "Name": "queue.2", - "Properties": { - "DeadLetteringOnMessageExpiration": false, - "DefaultMessageTimeToLive": "PT1H", - "DuplicateDetectionHistoryTimeWindow": "PT20S", - "ForwardDeadLetteredMessagesTo": "", - "ForwardTo": "", - "LockDuration": "PT1M", - "MaxDeliveryCount": 10, - "RequiresDuplicateDetection": false, - "RequiresSession": false - } - }, - { - "Name": "queue.3", - "Properties": { - "DeadLetteringOnMessageExpiration": false, - "DefaultMessageTimeToLive": "PT1H", - "DuplicateDetectionHistoryTimeWindow": "PT20S", - "ForwardDeadLetteredMessagesTo": "", - "ForwardTo": "", - "LockDuration": "PT1M", - "MaxDeliveryCount": 10, - "RequiresDuplicateDetection": false, - "RequiresSession": false - } - }, - { - "Name": "queue.4", - "Properties": { - "DeadLetteringOnMessageExpiration": false, - "DefaultMessageTimeToLive": "PT1H", - "DuplicateDetectionHistoryTimeWindow": "PT20S", - "ForwardDeadLetteredMessagesTo": "", - "ForwardTo": "", - "LockDuration": "PT1M", - "MaxDeliveryCount": 10, - "RequiresDuplicateDetection": false, - "RequiresSession": false - } - } - ], - "Topics": [ - { - "Name": "topic.1", - "Properties": { - "DefaultMessageTimeToLive": "PT1H", - "DuplicateDetectionHistoryTimeWindow": "PT20S", - "RequiresDuplicateDetection": false - }, - "Subscriptions": [ - { - "Name": "subscription.1", - "Properties": { - "DeadLetteringOnMessageExpiration": false, - "DefaultMessageTimeToLive": "PT1H", - "LockDuration": "PT1M", - "MaxDeliveryCount": 10, - "ForwardDeadLetteredMessagesTo": "", - "ForwardTo": "", - "RequiresSession": false - }, - "Rules": [ - { - "Name": "app-prop-filter-1", - "Properties": { - "FilterType": "Correlation", - "CorrelationFilter": { - "ContentType": "application/text", - "CorrelationId": "id1", - "Label": "subject1", - "MessageId": "msgid1", - "ReplyTo": "someQueue", - "ReplyToSessionId": "sessionId", - "SessionId": "session1", - "To": "xyz" - } - } - } - ] - }, - { - "Name": "subscription.2", - "Properties": { - "DeadLetteringOnMessageExpiration": false, - "DefaultMessageTimeToLive": "PT1H", - "LockDuration": "PT1M", - "MaxDeliveryCount": 10, - "ForwardDeadLetteredMessagesTo": "", - "ForwardTo": "", - "RequiresSession": false - }, - "Rules": [ - { - "Name": "user-prop-filter-1", - "Properties": { - "FilterType": "Correlation", - "CorrelationFilter": { - "Properties": { - "prop3": "value3" - } - } - } - } - ] - }, - { - "Name": "subscription.3", - "Properties": { - "DeadLetteringOnMessageExpiration": false, - "DefaultMessageTimeToLive": "PT1H", - "LockDuration": "PT1M", - "MaxDeliveryCount": 10, - "ForwardDeadLetteredMessagesTo": "", - "ForwardTo": "", - "RequiresSession": false - } - } - ] - } - ] - } - ], - "Logging": { - "Type": "Console" - } - } -} \ No newline at end of file diff --git a/src/ServiceBusEmulatorExplorer/AppJsonContext.cs b/src/ServiceBusEmulatorExplorer/AppJsonContext.cs new file mode 100644 index 0000000..7272bf2 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/AppJsonContext.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace ServiceBusEmulatorExplorer; + +[JsonSerializable(typeof(List))] +[JsonSerializable(typeof(QueueInfo))] +[JsonSerializable(typeof(TopicInfo))] +[JsonSerializable(typeof(List))] +[JsonSerializable(typeof(SubscriptionInfo))] +[JsonSerializable(typeof(List))] +[JsonSerializable(typeof(MessageInfo))] +[JsonSerializable(typeof(PagedMessages))] +[JsonSerializable(typeof(SendMessageRequest))] +[JsonSerializable(typeof(CreateTopicRequest))] +[JsonSerializable(typeof(CreateSubscriptionRequest))] +[JsonSerializable(typeof(CreateQueueRequest))] +[JsonSerializable(typeof(BulkDlqDeleteRequest))] +public partial class AppJsonContext : JsonSerializerContext; diff --git a/src/ServiceBusEmulatorExplorer/Dockerfile b/src/ServiceBusEmulatorExplorer/Dockerfile new file mode 100644 index 0000000..59be449 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/Dockerfile @@ -0,0 +1,43 @@ +FROM mcr.microsoft.com/dotnet/runtime-deps:10.0-noble-chiseled AS base +WORKDIR /app +EXPOSE 8080 + +FROM mcr.microsoft.com/dotnet/sdk:10.0-noble AS build + +# Install Node.js 20 via NodeSource + AOT dependencies +RUN apt-get update && \ + apt-get install -y --no-install-recommends ca-certificates curl clang zlib1g-dev && \ + curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \ + apt-get install -y --no-install-recommends nodejs && \ + rm -rf /var/lib/apt/lists/* + +ARG BUILD_CONFIGURATION=Release +WORKDIR /src + +# Restore .NET dependencies with RID for AOT +COPY ["src/ServiceBusEmulatorExplorer/ServiceBusEmulatorExplorer.csproj", "src/ServiceBusEmulatorExplorer/"] +RUN dotnet restore "src/ServiceBusEmulatorExplorer/ServiceBusEmulatorExplorer.csproj" -r linux-x64 + +# Restore npm dependencies +COPY ["app/sb-explorer-ui/package.json", "app/sb-explorer-ui/"] +COPY ["app/sb-explorer-ui/package-lock.json", "app/sb-explorer-ui/"] +WORKDIR /src/app/sb-explorer-ui +RUN npm ci --include=dev + +# Copy everything else +WORKDIR /src +COPY . . + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +ARG VERSION=0.0.0 +WORKDIR /src/src/ServiceBusEmulatorExplorer +RUN dotnet publish "ServiceBusEmulatorExplorer.csproj" -c $BUILD_CONFIGURATION -r linux-x64 -p:Version=$VERSION -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . + +ENV ASPNETCORE_URLS=http://+:8080 + +ENTRYPOINT ["./ServiceBusEmulatorExplorer.Api"] \ No newline at end of file diff --git a/src/ServiceBusEmulatorExplorer/Endpoints/DeadLetterEndpoints.cs b/src/ServiceBusEmulatorExplorer/Endpoints/DeadLetterEndpoints.cs new file mode 100644 index 0000000..9cb599b --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/Endpoints/DeadLetterEndpoints.cs @@ -0,0 +1,79 @@ +using System.Diagnostics; +using Azure.Messaging.ServiceBus; + +namespace ServiceBusEmulatorExplorer.Endpoints; + +public static class DeadLetterEndpoints +{ + public static IEndpointRouteBuilder MapDeadLetterEndpoints(this IEndpointRouteBuilder app) + { + var group = app.MapGroup("deadletter") + .WithTags("Dead Letter"); + + group.MapPost("/queue/{name}/delete", BulkDeleteQueueDlq) + .WithName("BulkDeleteQueueDlq") + .WithSummary("Bulk delete queue DLQ") + .Produces(StatusCodes.Status200OK); + + group.MapPost("/subscription/{topic}/{sub}/delete", BulkDeleteSubscriptionDlq) + .WithName("BulkDeleteSubscriptionDlq") + .WithSummary("Bulk delete subscription DLQ") + .Produces(StatusCodes.Status200OK); + + return app; + } + + private static async Task BulkDeleteQueueDlq(string name, ServiceBusEndpointCache cache, + BulkDlqDeleteRequest? request = null) + { + var receiver = cache.GetReceiver( + queue: name, + receiverOptions: new() + { + SubQueue = SubQueue.DeadLetter, + ReceiveMode = ServiceBusReceiveMode.ReceiveAndDelete, + }); + + using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); + + try + { + await receiver.ReceiveMessagesAsync(cts.Token).ToListAsync(cts.Token); + } + catch (Exception e) + { + Activity.Current?.AddException(e); + } + + return Results.Ok(); + } + + private static async Task BulkDeleteSubscriptionDlq( + string topic, + string sub, + ServiceBusEndpointCache cache, + BulkDlqDeleteRequest? request = null) + { + var receiver = cache.GetTopicReceiver( + topic: topic, + subscription: sub, + receiverOptions: new() + { + SubQueue = SubQueue.DeadLetter, + ReceiveMode = ServiceBusReceiveMode.ReceiveAndDelete, + }); + + using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); + + try + { + await receiver.ReceiveMessagesAsync(cts.Token).ToListAsync(cts.Token); + } + catch (Exception e) + { + Activity.Current?.AddException(e); + } + + return Results.Ok(); + } +} \ No newline at end of file diff --git a/src/ServiceBusEmulatorExplorer/Endpoints/QueueEndpoints.cs b/src/ServiceBusEmulatorExplorer/Endpoints/QueueEndpoints.cs new file mode 100644 index 0000000..f722680 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/Endpoints/QueueEndpoints.cs @@ -0,0 +1,174 @@ +using Azure; +using Azure.Messaging.ServiceBus; +using Azure.Messaging.ServiceBus.Administration; +using Microsoft.AspNetCore.Mvc; + +namespace ServiceBusEmulatorExplorer.Endpoints; + +public static class QueueEndpoints +{ + public static IEndpointRouteBuilder MapQueueEndpoints(this IEndpointRouteBuilder app) + { + var group = app.MapGroup("queues") + .WithTags("Queues"); + + group.MapGet("/", ListQueues) + .WithName("ListQueues") + .WithSummary("List queues") + .Produces>(); + + group.MapPost("/", CreateQueue) + .WithName("CreateQueue") + .WithSummary("Create queue") + .Produces(StatusCodes.Status200OK); + + group.MapDelete("/{name}", DeleteQueue) + .WithName("DeleteQueue") + .WithSummary("Delete queue") + .Produces(StatusCodes.Status200OK); + + group.MapGet("/{name}/messages", PeekQueueMessages) + .WithName("PeekQueueMessages") + .WithSummary("Peek queue messages") + .Produces(); + + group.MapPost("/{name}/messages", SendQueueMessage) + .WithName("SendQueueMessage") + .WithSummary("Send message to queue") + .Produces(StatusCodes.Status200OK); + + return app; + } + + private static async Task ListQueues([FromServices] ServiceBusAdministrationClient client) + { + var queuesRuntimeProperties = client.GetQueuesRuntimePropertiesAsync(); + + if (queuesRuntimeProperties is null) + { + return Results.NotFound(); + } + + var queues = new List(); + + await foreach (var item in queuesRuntimeProperties) + { + var queue = await client.GetQueueAsync(item.Name)!; + + var queueInfo = new QueueInfo( + item.Name, + EntityStatus.Active, + item.ActiveMessageCount, + item.DeadLetterMessageCount, + item.ScheduledMessageCount, + queue.Value.MaxDeliveryCount, + queue.Value.LockDuration.ToString(), + queue.Value.DefaultMessageTimeToLive.ToString(), + item.CreatedAt); + + queues.Add(queueInfo); + } + + return Results.Ok(queues); + } + + private static async Task CreateQueue(CreateQueueRequest request, ServiceBusAdministrationClient client) + { + var options = new CreateQueueOptions(request.Name) + { + DefaultMessageTimeToLive = request.DefaultTtl switch + { + _ when TimeSpan.TryParse(request.DefaultTtl, out var parsedTtl) => parsedTtl, + _ => TimeSpan.FromDays(14) + }, + LockDuration = request.LockDuration switch + { + _ when TimeSpan.TryParse(request.LockDuration, out var parsedLockDuration) => parsedLockDuration, + _ => TimeSpan.FromMinutes(1) + }, + MaxDeliveryCount = request.MaxDeliveryCount ?? 10 + }; + + Response? response = await client.CreateQueueAsync(options); + + return response switch + { + { HasValue: true } => Results.Ok(response.Value.Name), + _ => Results.Problem("Failed to create queue", statusCode: StatusCodes.Status500InternalServerError, title: "Internal Server Error") + }; + } + + private static async Task DeleteQueue(string name, ServiceBusAdministrationClient client) + { + var response = await client.DeleteQueueAsync(name); + + return Results.StatusCode(response.Status); + } + + private static async Task PeekQueueMessages( + string name, + [FromQuery] CaseInsensitiveEnum mode, + [FromQuery] CaseInsensitiveEnum state, + ServiceBusEndpointCache endpointCache, + int skip = 0, + int take = 25) + { + var receiverOptions = new ServiceBusReceiverOptions + { + ReceiveMode = ServiceBusReceiveMode.PeekLock, + SubQueue = state == MessageState.Deadletter ? SubQueue.DeadLetter : SubQueue.None + }; + + var receiver = endpointCache.GetReceiver(name, receiverOptions); + + using var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(10)); + + IReadOnlyList? messages = []; + try + { + messages = await receiver.PeekMessagesAsync( + maxMessages: take, + fromSequenceNumber: long.MinValue + skip, cancellationToken: cancellationTokenSource.Token); + } + catch (Exception) + { + // ignored + } + + var messageInfos = messages.Select(message => new MessageInfo( + message.MessageId, + message.Body.ToString().Length <= 50 ? message.Body.ToString() : message.Body.ToString()[..50], + message.Body.ToString(), + message.EnqueuedTime.UtcDateTime, + message.ExpiresAt.UtcDateTime, + message.DeliveryCount, + message.ContentType, + message.SessionId, + message.GetRawAmqpMessage().MessageAnnotations.ToDictionary(kvp => kvp.Key, kvp => kvp.Value), + message.ApplicationProperties.ToDictionary(kvp => kvp.Key, kvp => kvp.Value))).ToList(); + + var pagedMessages = new PagedMessages(messageInfos, messageInfos.Count, messageInfos.Count != 0); + + return Results.Ok(pagedMessages); + } + + private static async Task SendQueueMessage(string name, SendMessageRequest request, + ServiceBusEndpointCache endpointCache) + { + var message = new ServiceBusMessage(request.Body) + { + ContentType = request.ContentType, + MessageId = Guid.NewGuid().ToString(), + }; + + foreach (var requestUserProperty in request.UserProperties ?? []) + { + message.ApplicationProperties[requestUserProperty.Key] = requestUserProperty.Value.ToString(); + } + + var sender = endpointCache.GetSender(name); + await sender.SendMessageAsync(message); + + return Results.Ok(); + } +} diff --git a/src/ServiceBusEmulatorExplorer/Endpoints/SubscriptionEndpoints.cs b/src/ServiceBusEmulatorExplorer/Endpoints/SubscriptionEndpoints.cs new file mode 100644 index 0000000..8d7df9d --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/Endpoints/SubscriptionEndpoints.cs @@ -0,0 +1,161 @@ +using Azure.Messaging.ServiceBus; +using Azure.Messaging.ServiceBus.Administration; + +namespace ServiceBusEmulatorExplorer.Endpoints; + +public static class SubscriptionEndpoints +{ + public static IEndpointRouteBuilder MapSubscriptionEndpoints(this IEndpointRouteBuilder app) + { + var group = app.MapGroup("topics/{topic}/subscriptions") + .WithTags("Subscriptions"); + + group.MapGet("/", ListSubscriptions) + .WithName("ListSubscriptions") + .WithSummary("List subscriptions on topic") + .Produces>(); + + group.MapPost("/", CreateSubscription) + .WithName("CreateSubscription") + .WithSummary("Create subscription") + .Produces(StatusCodes.Status200OK); + + group.MapDelete("/{sub}", DeleteSubscription) + .WithName("DeleteSubscription") + .WithSummary("Delete subscription") + .Produces(StatusCodes.Status200OK); + + group.MapGet("/{sub}/messages", PeekSubscriptionMessages) + .WithName("PeekSubscriptionMessages") + .WithSummary("Peek subscription messages") + .Produces(); + + return app; + } + + private static async Task ListSubscriptions(string topic, ServiceBusAdministrationClient client) + { + var subscriptionsRuntimeProperties = client.GetSubscriptionsRuntimePropertiesAsync(topic); + if (subscriptionsRuntimeProperties is null) + { + return Results.NotFound(); + } + + var subscriptions = new List(); + + await foreach (var item in subscriptionsRuntimeProperties) + { + var subscription = await client.GetSubscriptionRuntimePropertiesAsync(topic, item.SubscriptionName)!; + + if (subscription is null) + { + continue; + } + + var subscriptionInfo = new SubscriptionInfo( + item.SubscriptionName, + EntityStatus.Active, + subscription.Value.ActiveMessageCount, + item.DeadLetterMessageCount + ); + + subscriptions.Add(subscriptionInfo); + } + + return Results.Ok(subscriptions); + } + + private static async Task CreateSubscription(string topic, CreateSubscriptionRequest request, + ServiceBusAdministrationClient client) + { + + try + { + var currentSubscription = await client.GetSubscriptionAsync(topic, request.Name); + + if (currentSubscription is not null) + { + return Results.Problem( + $"Subscription with name '{request.Name}' already exists on topic '{topic}'.", + statusCode: StatusCodes.Status409Conflict, + title: "Conflict"); + } + } + catch (ServiceBusException e) when(e.Reason == ServiceBusFailureReason.MessagingEntityNotFound) + { + //ignore not found + } + + await client.CreateSubscriptionAsync(new CreateSubscriptionOptions(topic, request.Name)); + return Results.Ok(); + } + + private static async Task DeleteSubscription(string topic, string sub, + ServiceBusAdministrationClient client) + { + var currentSubscription = await client.GetSubscriptionAsync(topic, sub); + + if (currentSubscription is null) + { + return Results.Problem( + $"Subscription with name '{sub}' does not exist on topic '{topic}'.", + statusCode: StatusCodes.Status404NotFound, + title: "Not Found"); + } + + await client.DeleteSubscriptionAsync(topic, sub); + return Results.Ok(); + } + + private static async Task PeekSubscriptionMessages( + string topic, + string sub, + CaseInsensitiveEnum mode, + CaseInsensitiveEnum state, + ServiceBusEndpointCache endpointCache, + int skip = 0, + int take = 25) + { + var options = new ServiceBusReceiverOptions + { + SubQueue = state.Value switch + { + MessageState.Deadletter => SubQueue.DeadLetter, + _ => SubQueue.None + }, + ReceiveMode = ServiceBusReceiveMode.PeekLock + }; + + var receiver = endpointCache.GetTopicReceiver(topic, sub, options); + + + using var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(10)); + IReadOnlyList? messages = []; + try + { + messages = await receiver.PeekMessagesAsync( + maxMessages: take, + fromSequenceNumber: long.MinValue + skip, cancellationToken: cancellationTokenSource.Token); + } + catch (Exception) + { + // ignored + } + + var messageInfos = messages.Select(message => new MessageInfo( + message.MessageId, + message.Body.ToString().Length <= 50 ? message.Body.ToString() : message.Body.ToString()[..50], + message.Body.ToString(), + message.EnqueuedTime.UtcDateTime, + message.ExpiresAt.UtcDateTime, + message.DeliveryCount, + message.ContentType, + message.SessionId, + message.GetRawAmqpMessage().MessageAnnotations.ToDictionary(kvp => kvp.Key, kvp => kvp.Value), + message.ApplicationProperties.ToDictionary(kvp => kvp.Key, kvp => kvp.Value))).ToList(); + + var pagedMessages = new PagedMessages(messageInfos, messageInfos.Count, messageInfos.Count != 0); + + return Results.Ok(pagedMessages); + } +} diff --git a/src/ServiceBusEmulatorExplorer/Endpoints/TopicEndpoints.cs b/src/ServiceBusEmulatorExplorer/Endpoints/TopicEndpoints.cs new file mode 100644 index 0000000..f85237a --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/Endpoints/TopicEndpoints.cs @@ -0,0 +1,109 @@ +using Azure.Messaging.ServiceBus; +using Azure.Messaging.ServiceBus.Administration; + +namespace ServiceBusEmulatorExplorer.Endpoints; + +public static class TopicEndpoints +{ + public static IEndpointRouteBuilder MapTopicEndpoints(this IEndpointRouteBuilder app) + { + var group = app.MapGroup("topics") + .WithTags("Topics"); + + group.MapGet("/", ListTopics) + .WithName("ListTopics") + .WithSummary("List topics") + .Produces>(); + + group.MapPost("/", CreateTopic) + .WithName("CreateTopic") + .WithSummary("Create topic") + .Produces(StatusCodes.Status201Created); + + group.MapDelete("/{name}", DeleteTopic) + .WithName("DeleteTopic") + .WithSummary("Delete topic") + .Produces(StatusCodes.Status200OK); + + group.MapPost("/{topic}/messages", SendTopicMessage) + .WithName("SendTopicMessage") + .WithSummary("Send message to topic") + .Produces(StatusCodes.Status200OK); + + return app; + } + + private static async Task ListTopics(ServiceBusAdministrationClient client) + { + var topicsRuntimeProperties = client.GetTopicsRuntimePropertiesAsync(); + if (topicsRuntimeProperties is null) + { + return Results.NotFound(); + } + + var topics = new List(); + + await foreach (var item in topicsRuntimeProperties) + { + + + + var topicInfo = new TopicInfo( + item.Name, + EntityStatus.Active, + 0, + 0 + ); + + topics.Add(topicInfo); + } + + return Results.Ok(topics); + } + + private static async Task CreateTopic(CreateTopicRequest request, ServiceBusAdministrationClient client) => + await client.CreateTopicAsync(new CreateTopicOptions(request.Name)) switch + { + { HasValue: true } => Results.Ok(), + _ => Results.BadRequest() + }; + + private static async Task DeleteTopic(string name, ServiceBusAdministrationClient client) + { + var exists = await client.GetTopicAsync(name); + if (exists is null) + { + return Results.Problem("Topic does not exist", statusCode: StatusCodes.Status400BadRequest, title: "Bad Request"); + } + + return (await client.DeleteTopicAsync(name)) switch + { + { IsError: false } => Results.Ok(), + _ => Results.Problem("Failed to delete topic", statusCode: StatusCodes.Status500InternalServerError, title: "Internal Server Error") + }; + } + + private static async Task SendTopicMessage(string topic, SendMessageRequest request, + ServiceBusAdministrationClient adminClient, ServiceBusClient client) + { + var exists = await adminClient.GetTopicAsync(topic); + if (exists is null) + { + return Results.Problem("Topic does not exist", statusCode: StatusCodes.Status400BadRequest, title: "Bad Request"); + } + + var message = new ServiceBusMessage(request.Body) + { + ContentType = request.ContentType + }; + + foreach (var (key, value) in request.UserProperties ?? []) + { + message.ApplicationProperties[key] = value; + } + + await using var sender = client.CreateSender(topic); + await sender.SendMessageAsync(message); + return Results.Ok(); + } +} diff --git a/src/ServiceBusEmulatorExplorer/Extensions/BuilderExtensions.cs b/src/ServiceBusEmulatorExplorer/Extensions/BuilderExtensions.cs new file mode 100644 index 0000000..ed43427 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/Extensions/BuilderExtensions.cs @@ -0,0 +1,88 @@ +using OpenTelemetry.Exporter; +using OpenTelemetry.Logs; +using OpenTelemetry.Metrics; +using OpenTelemetry.Resources; +using OpenTelemetry.Trace; + +namespace ServiceBusEmulatorExplorer.Extensions; + +public static class BuilderExtensions +{ + public static IHostApplicationBuilder AddOpenTelemetry(this IHostApplicationBuilder builder) + { + var resourceBuilder = ResourceBuilder + .CreateDefault() + .AddService(serviceName: builder.Environment.ApplicationName, + serviceVersion: typeof(Program).Assembly.GetName().Version?.ToString() ?? "1.0.0") + .AddAttributes([new KeyValuePair("deployment.environment", builder.Environment.EnvironmentName)]); + + var otlpConfig = builder.Configuration.GetSection(OtlpConfig.SectionName).Get() ?? + throw new InvalidOperationException("OtlpConfig section is missing"); + + builder.Logging.AddOpenTelemetry(logging => + { + logging.SetResourceBuilder(resourceBuilder); + logging.IncludeScopes = true; + logging.ParseStateValues = true; + + + if (!string.IsNullOrEmpty(otlpConfig.Endpoint)) + { + logging.AddOtlpExporter(opts => + { + opts.Endpoint = new Uri($"{otlpConfig.Endpoint}/v1/logs"); + opts.Protocol = OtlpExportProtocol.HttpProtobuf; + }); + } + + if (otlpConfig.EnableConsoleExporter) + { + logging.AddConsoleExporter(); + } + }); + + builder.Services.AddOpenTelemetry() + .WithTracing(tracing => + { + tracing.SetResourceBuilder(resourceBuilder); + tracing.SetSampler(new ParentBasedSampler(new AlwaysOnSampler())); + tracing.AddAspNetCoreInstrumentation(); + tracing.AddHttpClientInstrumentation(); + + if (!string.IsNullOrEmpty(otlpConfig.Endpoint)) + { + tracing.AddOtlpExporter(opts => + { + opts.Endpoint = new Uri($"{otlpConfig.Endpoint}/v1/traces"); + opts.Protocol = OtlpExportProtocol.HttpProtobuf; + }); + } + + if (otlpConfig.EnableConsoleExporter) + { + tracing.AddConsoleExporter(); + } + }) + .WithMetrics(metrics => + { + metrics.SetResourceBuilder(resourceBuilder); + metrics.AddAspNetCoreInstrumentation(); + metrics.AddRuntimeInstrumentation(); + if (!string.IsNullOrEmpty(otlpConfig.Endpoint)) + { + metrics.AddOtlpExporter(opts => + { + opts.Endpoint = new Uri($"{otlpConfig.Endpoint}/v1/metrics"); + opts.Protocol = OtlpExportProtocol.HttpProtobuf; + }); + } + + if (otlpConfig.EnableConsoleExporter) + { + metrics.AddConsoleExporter(); + } + }); + + return builder; + } +} \ No newline at end of file diff --git a/src/ServiceBusEmulatorExplorer/Helpers.cs b/src/ServiceBusEmulatorExplorer/Helpers.cs new file mode 100644 index 0000000..227f5e6 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/Helpers.cs @@ -0,0 +1,22 @@ +namespace ServiceBusEmulatorExplorer; + +public class Helpers +{ + +} + +public readonly record struct CaseInsensitiveEnum(T Value) where T : struct, Enum +{ + public static bool TryParse(string? value, out CaseInsensitiveEnum result) + { + if (Enum.TryParse(value, ignoreCase: true, out var parsed)) + { + result = new CaseInsensitiveEnum(parsed); + return true; + } + result = default; + return false; + } + + public static implicit operator T(CaseInsensitiveEnum e) => e.Value; +} diff --git a/src/ServiceBusEmulatorExplorer/Models.cs b/src/ServiceBusEmulatorExplorer/Models.cs new file mode 100644 index 0000000..d71d074 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/Models.cs @@ -0,0 +1,104 @@ +using System.Text.Json.Serialization; + +namespace ServiceBusEmulatorExplorer; + +[JsonConverter(typeof(JsonStringEnumConverter))] +public enum EntityStatus +{ + Active, + Disabled, + SendDisabled, + ReceiveDisabled +} + +[JsonConverter(typeof(JsonStringEnumConverter))] +public enum MessageState +{ + Active, + Deadletter +} + +[JsonConverter(typeof(JsonStringEnumConverter))] +public enum PeekMode +{ + Peek +} + +public record QueueInfo( + string Name, + EntityStatus Status, + long ActiveMessageCount, + long DeadLetterMessageCount, + long? ScheduledMessageCount = null, + long? MaxDeliveryCount = null, + string? LockDuration = null, + string? DefaultTtl = null, + DateTimeOffset? CreatedAt = null +); + +public record TopicInfo( + string Name, + EntityStatus Status, + int ActiveMessageCount, + int DeadLetterMessageCount, + int? ScheduledMessageCount = null, + DateTime? CreatedAt = null +); + +public record SubscriptionInfo( + string Name, + EntityStatus Status, + long ActiveMessageCount, + long DeadLetterMessageCount, + long? ScheduledMessageCount = null, + long? MaxDeliveryCount = null, + string? LockDuration = null, + string? DefaultTtl = null +); + +public record MessageInfo( + string MessageId, + string BodyPreview, + string? Body = null, + DateTime? EnqueuedTime = null, + DateTime? ExpiresAt = null, + int? DeliveryCount = null, + string? ContentType = null, + string? SessionId = null, + Dictionary? UserProperties = null, + Dictionary? SystemProperties = null +); + +public record PagedMessages( + IReadOnlyList Items, + int? Total = null, + bool? HasMore = null +); + +public record SendMessageRequest( + string Body, + string? ContentType = null, + Dictionary? UserProperties = null +); + +public record CreateQueueRequest( + string Name, + int? MaxDeliveryCount = null, + string? LockDuration = null, + string? DefaultTtl = null +); + +public record CreateTopicRequest( + string Name +); + +public record CreateSubscriptionRequest( + string Name, + int? MaxDeliveryCount = null, + string? LockDuration = null, + string? DefaultTtl = null +); + +public record BulkDlqDeleteRequest( + List? MessageIds = null +); diff --git a/src/ServiceBusEmulatorExplorer/OtlpConfig.cs b/src/ServiceBusEmulatorExplorer/OtlpConfig.cs new file mode 100644 index 0000000..d05d2c4 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/OtlpConfig.cs @@ -0,0 +1,8 @@ +namespace ServiceBusEmulatorExplorer; + +public class OtlpConfig +{ + public static string SectionName => "Otlp"; + public string Endpoint { get; set; } = string.Empty; + public bool EnableConsoleExporter { get; set; } +} \ No newline at end of file diff --git a/src/ServiceBusEmulatorExplorer/Program.cs b/src/ServiceBusEmulatorExplorer/Program.cs new file mode 100644 index 0000000..2071a5d --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/Program.cs @@ -0,0 +1,137 @@ +using System.Text.Json; +using System.Text.Json.Serialization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.WebUtilities; +using Microsoft.Extensions.Azure; +using Scalar.AspNetCore; +using ServiceBusEmulatorExplorer.Endpoints; +using ServiceBusEmulatorExplorer; +using ServiceBusEmulatorExplorer.Extensions; + +#if DEBUG +var builder = WebApplication.CreateBuilder(args); +#else +var builder = WebApplication.CreateSlimBuilder(args); +#endif + + +builder + .Configuration.AddJsonFile("appsettings.json", optional: false) + .AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json", optional: true) + .AddEnvironmentVariables(); + +var serviceBusConfig = builder.Configuration.GetSection(ServiceBusConfig.SectionName).Get() ?? + throw new InvalidOperationException("ServiceBusConfig section is missing"); + +builder.Services + .AddOpenApi() + .AddEndpointsApiExplorer() + .AddProblemDetails(options => options.CustomizeProblemDetails = context => + { + context.ProblemDetails.Extensions["traceId"] = context.HttpContext.TraceIdentifier; + }) + .AddExceptionHandler(); + +builder.AddOpenTelemetry(); + +builder.Services.AddHealthChecks(); + +builder.Services.ConfigureHttpJsonOptions(options => +{ + options.SerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; + options.SerializerOptions.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.CamelCase)); + options.SerializerOptions.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.CamelCase)); + options.SerializerOptions.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.CamelCase)); + options.SerializerOptions.TypeInfoResolverChain.Insert(0, AppJsonContext.Default); +}); + + +builder.Services.AddAzureClients(clientBuilder => +{ + clientBuilder.AddServiceBusClient(serviceBusConfig.ConnectionString); + clientBuilder.AddServiceBusAdministrationClient(serviceBusConfig.AdministrationConnectionString); +}); + +builder.Services.AddSpaStaticFiles(options => { options.RootPath = "wwwroot"; }); + +builder.Services.AddSingleton(); + + +builder.Services.AddCors(options => +{ + options.AddPolicy("AllowFrontend", policy => + { + policy.AllowAnyOrigin() + .AllowAnyHeader() + .AllowAnyMethod(); + }); +}); + + +var app = builder.Build(); +app.UseDefaultFiles(); +app.UseStaticFiles(); +if (!app.Environment.IsDevelopment()) +{ + app.UseSpaStaticFiles(); +} + +app.UseCors("AllowFrontend"); +app.MapOpenApi(); +app.MapScalarApiReference(); + +app.UseExceptionHandler(); +app.UseStatusCodePages(async statusCodeContext => +{ + var httpContext = statusCodeContext.HttpContext; + if (httpContext.Response.HasStarted) + { + return; + } + + var problemDetailsService = httpContext.RequestServices.GetRequiredService(); + var statusCode = httpContext.Response.StatusCode; + var problemDetails = new ProblemDetails + { + Status = statusCode, + Title = ReasonPhrases.GetReasonPhrase(statusCode) + }; + + await problemDetailsService.WriteAsync(new ProblemDetailsContext + { + HttpContext = httpContext, + ProblemDetails = problemDetails + }); +}); + +app.UseHttpsRedirection(); + +app.MapGroup("/api") + .MapQueueEndpoints() + .MapTopicEndpoints() + .MapSubscriptionEndpoints() + .MapDeadLetterEndpoints(); + +app.UseHealthChecks("/health"); + +if (app.Environment.IsDevelopment()) +{ + app.UseWhen(context => + !context.Request.Path.StartsWithSegments("/api") + && !context.Request.Path.StartsWithSegments("/scalar") + && !context.Request.Path.StartsWithSegments("/openapi"), spaApp => + { + spaApp.UseSpa(spa => + { + spa.Options.SourcePath = "../app/sb-explorer-ui"; + var proxyUrl = builder.Configuration["SpaProxyServerUrl"] ?? "http://localhost:5173"; + spa.UseProxyToSpaDevelopmentServer(proxyUrl); + }); + }); +} +else +{ + app.MapFallbackToFile("index.html"); +} + +app.Run(); \ No newline at end of file diff --git a/src/ServiceBusEmulatorExplorer/Properties/launchSettings.json b/src/ServiceBusEmulatorExplorer/Properties/launchSettings.json new file mode 100644 index 0000000..526b0a6 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/Properties/launchSettings.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5123", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7229;http://localhost:5123", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy" + } + } + } +} diff --git a/src/ServiceBusEmulatorExplorer/ServiceBusConfig.cs b/src/ServiceBusEmulatorExplorer/ServiceBusConfig.cs new file mode 100644 index 0000000..ba42f3b --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/ServiceBusConfig.cs @@ -0,0 +1,9 @@ +namespace ServiceBusEmulatorExplorer; + +public class ServiceBusConfig +{ + public const string SectionName = "ServiceBus"; + public string ConnectionString { get; set; } = null!; + public string AdministrationConnectionString { get; set; } = null!; + public string? EmulatorConfigFilePath { get; set; } +} \ No newline at end of file diff --git a/src/ServiceBusEmulatorExplorer/ServiceBusEmulatorExplorer.csproj b/src/ServiceBusEmulatorExplorer/ServiceBusEmulatorExplorer.csproj new file mode 100644 index 0000000..d7fd642 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/ServiceBusEmulatorExplorer.csproj @@ -0,0 +1,84 @@ + + + + net10.0 + enable + enable + ServiceBusEmulatorExplorer + Linux + latest + ServiceBusEmulatorExplorer.Api + ../../app/sb-explorer-ui/ + http://localhost:5173 + npm run dev + true + true + link + true + + + 0.0.0 + $(Version) + $(Version) + $(Version) + + + + true + linux-musl-x64 + none + + + + + + + + + + + + + + + + + + + + + .dockerignore + + + + + + + + + + + + + + + + + + + + + + + + + + + wwwroot/%(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + true + + + + + diff --git a/src/ServiceBusEmulatorExplorer/ServiceBusEndpointCache.cs b/src/ServiceBusEmulatorExplorer/ServiceBusEndpointCache.cs new file mode 100644 index 0000000..95abc97 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/ServiceBusEndpointCache.cs @@ -0,0 +1,37 @@ +using System.Collections.Concurrent; +using Azure.Messaging.ServiceBus; + +namespace ServiceBusEmulatorExplorer; + +public sealed class ServiceBusEndpointCache(ServiceBusClient client) : IAsyncDisposable +{ + private readonly ConcurrentDictionary _senders = new(); + private readonly ConcurrentDictionary _receivers = new(); + + public ServiceBusSender GetSender(string queue) => + _senders.GetOrAdd(queue, client.CreateSender); + + public ServiceBusReceiver GetReceiver(string queue, ServiceBusReceiverOptions receiverOptions) + { + var key = $"{queue}-{receiverOptions.ReceiveMode}-{receiverOptions.SubQueue}"; + return _receivers.GetOrAdd(key, _ => client.CreateReceiver(queue, receiverOptions)); + } + + public ServiceBusReceiver GetTopicReceiver( + string topic, + string subscription, + ServiceBusReceiverOptions receiverOptions) + { + var entityPath = $"{topic}/Subscriptions/{subscription}"; + var key = $"{entityPath}-{receiverOptions.ReceiveMode}-{receiverOptions.SubQueue}"; + return _receivers.GetOrAdd(key, _ => client.CreateReceiver(topic, subscription, receiverOptions)); + } + + public async ValueTask DisposeAsync() + { + foreach (var sender in _senders.Values) + await sender.DisposeAsync(); + foreach (var receiver in _receivers.Values) + await receiver.DisposeAsync(); + } +} \ No newline at end of file diff --git a/src/ServiceBusEmulatorExplorer/ServiceBusExceptionHandler.cs b/src/ServiceBusEmulatorExplorer/ServiceBusExceptionHandler.cs new file mode 100644 index 0000000..4aa4e52 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/ServiceBusExceptionHandler.cs @@ -0,0 +1,135 @@ +using System.Text.RegularExpressions; +using Azure; +using Azure.Messaging.ServiceBus; +using Microsoft.AspNetCore.Diagnostics; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.WebUtilities; + +namespace ServiceBusEmulatorExplorer; + +public sealed class ServiceBusExceptionHandler : IExceptionHandler +{ + public async ValueTask TryHandleAsync(HttpContext httpContext, Exception exception, CancellationToken cancellationToken) + { + if (httpContext.Response.HasStarted) + { + return false; + } + + if (exception is ServiceBusException serviceBusException) + { + var (statusCode, title, detail) = MapServiceBusFailure(serviceBusException); + var problemDetails = new ProblemDetails + { + Status = statusCode, + Title = title, + Detail = detail + }; + + await WriteProblemDetailsAsync(httpContext, problemDetails, exception); + return true; + } + + if (exception is RequestFailedException requestFailedException) + { + var statusCode = requestFailedException.Status; + var title = ReasonPhrases.GetReasonPhrase(statusCode); + var problemDetails = new ProblemDetails + { + Status = statusCode, + Title = string.IsNullOrWhiteSpace(title) ? "Bad Request" : title, + Detail = FormatServiceBusDetail(requestFailedException.Message) + }; + + await WriteProblemDetailsAsync(httpContext, problemDetails, exception); + return true; + } + + if (exception is ArgumentException argumentException) + { + var problemDetails = new ProblemDetails + { + Status = StatusCodes.Status400BadRequest, + Title = "Bad Request", + Detail = FormatServiceBusDetail(argumentException.Message) + }; + + await WriteProblemDetailsAsync(httpContext, problemDetails, exception); + return true; + } + + return false; + } + + private static (int statusCode, string title, string detail) MapServiceBusFailure(ServiceBusException exception) + { + var (statusCode, title) = exception.Reason switch + { + ServiceBusFailureReason.MessagingEntityAlreadyExists => (StatusCodes.Status409Conflict, "Conflict"), + ServiceBusFailureReason.MessagingEntityNotFound => (StatusCodes.Status404NotFound, "Not Found"), + ServiceBusFailureReason.MessagingEntityDisabled => (StatusCodes.Status409Conflict, "Conflict"), + ServiceBusFailureReason.MessageSizeExceeded => (StatusCodes.Status413PayloadTooLarge, "Payload Too Large"), + ServiceBusFailureReason.QuotaExceeded => (StatusCodes.Status429TooManyRequests, "Quota Exceeded"), + ServiceBusFailureReason.ServiceBusy => (StatusCodes.Status503ServiceUnavailable, "Service Unavailable"), + ServiceBusFailureReason.ServiceTimeout => (StatusCodes.Status504GatewayTimeout, "Gateway Timeout"), + + _ => (StatusCodes.Status400BadRequest, exception.Reason.ToString()), + }; + + var detail = exception.Reason switch + { + ServiceBusFailureReason.MessagingEntityAlreadyExists => "Entity already exists.", + ServiceBusFailureReason.MessagingEntityNotFound => "Entity not found.", + ServiceBusFailureReason.MessagingEntityDisabled => "Entity is disabled.", + ServiceBusFailureReason.MessageSizeExceeded => "Message size exceeds the allowed limit.", + ServiceBusFailureReason.QuotaExceeded => "The Service Bus quota has been exceeded.", + ServiceBusFailureReason.ServiceBusy => "Service Bus is busy. Try again later.", + ServiceBusFailureReason.ServiceTimeout => "Service Bus timed out. Try again.", + _ => FormatServiceBusDetail(exception.Message) + }; + + return (statusCode, title, detail); + } + + private static string FormatServiceBusDetail(string message) + { + if (string.IsNullOrWhiteSpace(message)) + { + return "Service Bus request failed."; + } + + var detailMatch = Regex.Match(message, "(?.*)", RegexOptions.Singleline); + var detail = detailMatch.Success ? detailMatch.Groups["detail"].Value : message; + detail = Regex.Replace(detail, "SubCode=\\d+\\.?\\s*", string.Empty, RegexOptions.IgnoreCase); + detail = StripDetailSuffix(detail, "TrackingId:"); + detail = StripDetailSuffix(detail, "SystemTracker:"); + detail = StripDetailSuffix(detail, "Timestamp:"); + detail = StripDetailSuffix(detail, "Content:"); + detail = detail.Trim(); + if (detail.Length <= 220) + { + return detail; + } + + return detail[..217] + "..."; + } + + private static string StripDetailSuffix(string detail, string token) + { + var index = detail.IndexOf(token, StringComparison.OrdinalIgnoreCase); + return index >= 0 ? detail[..index].Trim() : detail; + } + + private static async Task WriteProblemDetailsAsync(HttpContext httpContext, ProblemDetails problemDetails, Exception exception) + { + httpContext.Response.StatusCode = problemDetails.Status ?? StatusCodes.Status500InternalServerError; + + var problemDetailsService = httpContext.RequestServices.GetRequiredService(); + await problemDetailsService.WriteAsync(new ProblemDetailsContext + { + HttpContext = httpContext, + ProblemDetails = problemDetails, + Exception = exception + }); + } +} diff --git a/appsettings.Development.json b/src/ServiceBusEmulatorExplorer/appsettings.Development.json similarity index 100% rename from appsettings.Development.json rename to src/ServiceBusEmulatorExplorer/appsettings.Development.json diff --git a/appsettings.json b/src/ServiceBusEmulatorExplorer/appsettings.json similarity index 61% rename from appsettings.json rename to src/ServiceBusEmulatorExplorer/appsettings.json index e77f7b1..13f1eca 100644 --- a/appsettings.json +++ b/src/ServiceBusEmulatorExplorer/appsettings.json @@ -6,13 +6,14 @@ } }, "AllowedHosts": "*", + "Otlp": { + "Endpoint": "https://otel.k8s.pasturegrove.dev", + "Headers": "" + }, "ServiceBus": { "ConnectionString": "Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;", + "AdministrationConnectionString": "Endpoint=sb://localhost:5300;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;", "RefreshIntervalMs": 5000, "EmulatorConfigFilePath": "service-bus-config.json" - }, - "Redis": { - "ConnectionString": "localhost:6379,password=pass@w0rd1", - "InstanceName": "SbExplorer" } } diff --git a/src/ServiceBusEmulatorExplorer/sb-explorer.http b/src/ServiceBusEmulatorExplorer/sb-explorer.http new file mode 100644 index 0000000..98e6404 --- /dev/null +++ b/src/ServiceBusEmulatorExplorer/sb-explorer.http @@ -0,0 +1,6 @@ +@sb_explorer_HostAddress = http://localhost:5123 + +GET {{sb_explorer_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/test/ServiceBusEmulatorExplorer.Tests/GlobalSetup.cs b/test/ServiceBusEmulatorExplorer.Tests/GlobalSetup.cs new file mode 100644 index 0000000..a501228 --- /dev/null +++ b/test/ServiceBusEmulatorExplorer.Tests/GlobalSetup.cs @@ -0,0 +1,22 @@ +// Here you could define global logic that would affect all tests + +// You can use attributes at the assembly level to apply to all tests in the assembly +[assembly: Retry(3)] +[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + +namespace ServiceBusEmulatorExplorer.Tests; + +public class GlobalHooks +{ + [Before(TestSession)] + public static void SetUp() + { + Console.WriteLine(@"Or you can define methods that do stuff before..."); + } + + [After(TestSession)] + public static void CleanUp() + { + Console.WriteLine(@"...and after!"); + } +} diff --git a/test/ServiceBusEmulatorExplorer.Tests/ServiceBusEmulatorExplorer.Tests.csproj b/test/ServiceBusEmulatorExplorer.Tests/ServiceBusEmulatorExplorer.Tests.csproj new file mode 100644 index 0000000..2db2704 --- /dev/null +++ b/test/ServiceBusEmulatorExplorer.Tests/ServiceBusEmulatorExplorer.Tests.csproj @@ -0,0 +1,19 @@ + + + + enable + enable + Exe + net10.0 + + + + + + + + + + + + \ No newline at end of file diff --git a/test/ServiceBusEmulatorExplorer.Tests/TestServiceBusClient.cs b/test/ServiceBusEmulatorExplorer.Tests/TestServiceBusClient.cs new file mode 100644 index 0000000..e234f11 --- /dev/null +++ b/test/ServiceBusEmulatorExplorer.Tests/TestServiceBusClient.cs @@ -0,0 +1,318 @@ +using System.Diagnostics.CodeAnalysis; +using Azure; +using Azure.Core; +using Azure.Messaging.ServiceBus; +using Azure.Messaging.ServiceBus.Administration; +#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. + +namespace ServiceBusEmulatorExplorer.Tests; + +[SuppressMessage("Compiler", "CS8625:Cannot convert null literal to non-nullable reference type.")] +public class TestServiceBusClient : ServiceBusClient +{ + private readonly Dictionary _queueReceivers = []; + private readonly Dictionary _topicReceivers = []; + private readonly Dictionary _senders = []; + + + public override ServiceBusSender CreateSender(string queueOrTopicName) + { + var sender = new TestServiceBusSender(queueOrTopicName); + _senders[queueOrTopicName] = sender; + + return sender; + } + + public override ServiceBusSender CreateSender(string queueOrTopicName, ServiceBusSenderOptions options) => CreateSender(queueOrTopicName); + + public override ServiceBusReceiver CreateReceiver(string queueName, + ServiceBusReceiverOptions receiverOptions = null) + { + var receiver = new TestServiceBusReceiver(queueName, this); + _queueReceivers[queueName] = receiver; + + return receiver; + } + + public override ServiceBusReceiver CreateReceiver(string topicName, string subscriptionName, + ServiceBusReceiverOptions options) + { + var key = $"{topicName}/Subscriptions/{subscriptionName}"; + var receiver = new TestServiceBusReceiver(key, this); + _topicReceivers[key] = receiver; + + return receiver; + } + + + private class TestServiceBusSender(string entityPath) : ServiceBusSender + { + public override string EntityPath => entityPath; + + internal List Messages { get; } = []; + + + public override Task SendMessageAsync(ServiceBusMessage message, CancellationToken cancellationToken = new()) + { + Messages.Add(message); + return Task.CompletedTask; + } + } + + public class TestServiceBusReceiver(string entityPath, TestServiceBusClient client) : ServiceBusReceiver + { + public override string EntityPath => entityPath; + + + public override Task> PeekMessagesAsync(int maxMessages, long? fromSequenceNumber = null, + CancellationToken cancellationToken = new()) + { + var sender = client._senders.GetValueOrDefault(entityPath) ?? throw new InvalidOperationException($"No sender found for entity path '{entityPath}'"); + + var messages = sender.Messages + .Skip((int)(fromSequenceNumber ?? 0)) + .Take(maxMessages) + .Select(m => ServiceBusModelFactory.ServiceBusReceivedMessage( + body: m.Body, + messageId: m.MessageId, + sequenceNumber: sender.Messages.IndexOf(m) + 1)) + .ToList() + .AsReadOnly(); + + return Task.FromResult>(messages); + + } + } +} + +public class TestServiceBusAdministrationClient : ServiceBusAdministrationClient +{ + private readonly Dictionary _queues = []; + private readonly Dictionary _topics = []; + private readonly Dictionary _subscriptions = []; + + public override Task DeleteQueueAsync(string name, CancellationToken cancellationToken = new()) + { + if (_queues.GetValueOrDefault(name) is not null) + { + _queues.Remove(name); + return Task.FromResult(new TestResponse(200)); + } + + return Task.FromResult(new TestResponse(404)); + } + + public override Task> GetQueueAsync(string name, CancellationToken cancellationToken = new()) + { + if (_queues.GetValueOrDefault(name) is null) + { + return Task.FromResult(Response.FromValue(null!, new TestResponse(404))); + } + + var queueProperties = ServiceBusModelFactory.QueueProperties( + name: name, + lockDuration: TimeSpan.FromMinutes(1), + maxDeliveryCount: 10, + defaultMessageTimeToLive: TimeSpan.FromDays(14), + autoDeleteOnIdle: TimeSpan.MaxValue, + duplicateDetectionHistoryTimeWindow: TimeSpan.FromDays(1), + userMetadata:""); + + return Task.FromResult(Response.FromValue(queueProperties, new TestResponse(200))); + } + + public override Task> CreateQueueAsync(string name, CancellationToken cancellationToken = new()) => CreateQueueAsync(new CreateQueueOptions(name), cancellationToken); + + public override Task> CreateQueueAsync(CreateQueueOptions options, CancellationToken cancellationToken = new()) + { + if (_queues.GetValueOrDefault(options.Name) is not null) + { + return Task.FromResult(Response.FromValue(null!, new TestResponse(409))); + } + + var queueProperties = ServiceBusModelFactory.QueueProperties( + name: options.Name, + lockDuration: options.LockDuration, + maxDeliveryCount: options.MaxDeliveryCount, + defaultMessageTimeToLive: options.DefaultMessageTimeToLive, + autoDeleteOnIdle: TimeSpan.MaxValue, + duplicateDetectionHistoryTimeWindow: TimeSpan.FromDays(1), + userMetadata:""); + + _queues[options.Name] = options; + + return Task.FromResult(Response.FromValue(queueProperties, new TestResponse(201))); + } + + public override AsyncPageable GetQueuesRuntimePropertiesAsync(CancellationToken cancellationToken = new()) => + AsyncPageable.FromPages( + [ + Page.FromValues( + _queues.Select(q => ServiceBusModelFactory.QueueRuntimeProperties( + name: q.Key, + activeMessageCount: 0, + deadLetterMessageCount: 0, + scheduledMessageCount: 0, + transferMessageCount: 0, + transferDeadLetterMessageCount: 0, + sizeInBytes: 0, + createdAt: DateTimeOffset.UtcNow, + updatedAt: DateTimeOffset.UtcNow, + accessedAt: DateTimeOffset.UtcNow)).ToList(), + continuationToken: null, + response: new TestResponse(200)) + ]); + + + public override Task> CreateSubscriptionAsync(CreateSubscriptionOptions options, + CancellationToken cancellationToken = new()) + { + if(!_topics.ContainsKey(options.TopicName)) + { + return Task.FromResult( + Response.FromValue(null!, new TestResponse(404))); + } + + var subscriptionProperties = ServiceBusModelFactory.SubscriptionProperties( + topicName: options.TopicName, + subscriptionName: options.SubscriptionName, + lockDuration: options.LockDuration, + defaultMessageTimeToLive: options.DefaultMessageTimeToLive, + autoDeleteOnIdle: TimeSpan.MaxValue); + + _subscriptions[$"{options.TopicName}/Subscriptions/{options.SubscriptionName}"] = options; + return Task.FromResult(Response.FromValue(subscriptionProperties, new TestResponse(201))); + } + + public override Task DeleteSubscriptionAsync(string topicName, string subscriptionName, + CancellationToken cancellationToken = new()) + { + var key = $"{topicName}/Subscriptions/{subscriptionName}"; + if (_subscriptions.GetValueOrDefault(key) is not null) + { + _subscriptions.Remove(key); + return Task.FromResult(new TestResponse(200)); + } + + return Task.FromResult(new TestResponse(404)); + } + + public override Task> GetSubscriptionAsync(string topicName, string subscriptionName, + CancellationToken cancellationToken = new()) + { + var key = $"{topicName}/Subscriptions/{subscriptionName}"; + if (_subscriptions.GetValueOrDefault(key) is null) + { + return Task.FromResult( + Response.FromValue(null!, new TestResponse(404))); + } + + var subscriptionProperties = ServiceBusModelFactory.SubscriptionProperties( + topicName: topicName, + subscriptionName: subscriptionName, + lockDuration: TimeSpan.FromMinutes(1), + defaultMessageTimeToLive: TimeSpan.FromDays(14), + autoDeleteOnIdle: TimeSpan.MaxValue); + + return Task.FromResult(Response.FromValue(subscriptionProperties, new TestResponse(200))); + } + + public override AsyncPageable GetSubscriptionsRuntimePropertiesAsync(string topicName, + CancellationToken cancellationToken = new()) + { + throw new NotImplementedException(); + } + + public override AsyncPageable GetTopicsRuntimePropertiesAsync(CancellationToken cancellationToken = new()) => + AsyncPageable.FromPages( + [ + Page.FromValues( + _topics.Select(t => ServiceBusModelFactory.TopicRuntimeProperties( + name: t.Key, + sizeInBytes: 0, + createdAt: DateTimeOffset.UtcNow, + updatedAt: DateTimeOffset.UtcNow, + accessedAt: DateTimeOffset.UtcNow)).ToList(), + continuationToken: null, + response: new TestResponse(200)) + ]); + + public override Task> CreateTopicAsync(CreateTopicOptions options, CancellationToken cancellationToken = new()) + { + if (_topics.GetValueOrDefault(options.Name) is not null) + { + return Task.FromResult( + Response.FromValue(null!, new TestResponse(409))); + } + + var topicProperties = ServiceBusModelFactory.TopicProperties( + name: options.Name, + defaultMessageTimeToLive: options.DefaultMessageTimeToLive, + autoDeleteOnIdle: TimeSpan.MaxValue, + duplicateDetectionHistoryTimeWindow: TimeSpan.FromDays(1)); + _topics[options.Name] = options; + return Task.FromResult(Response.FromValue(topicProperties, new TestResponse(201))); + } + + public override Task DeleteTopicAsync(string name, CancellationToken cancellationToken = new()) + { + if (_topics.GetValueOrDefault(name) is not null) + { + _topics.Remove(name); + return Task.FromResult(new TestResponse(200)); + } + + return Task.FromResult(new TestResponse(404)); + } + + public override Task> GetTopicAsync(string name, CancellationToken cancellationToken = new()) + { + if (_topics.GetValueOrDefault(name) is null) + { + return Task.FromResult( + Response.FromValue(null!, new TestResponse(404))); + } + + var topicProperties = ServiceBusModelFactory.TopicProperties( + name: name, + defaultMessageTimeToLive: TimeSpan.FromDays(14), + autoDeleteOnIdle: TimeSpan.MaxValue, + duplicateDetectionHistoryTimeWindow: TimeSpan.FromDays(1)); + + return Task.FromResult(Response.FromValue(topicProperties, new TestResponse(200))); + } + + private class TestResponse(int status) : Response + { + public override int Status => status; + + public override string ReasonPhrase => throw new NotImplementedException(); + + public override Stream? ContentStream { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + public override string ClientRequestId { get; set; } = Guid.NewGuid().ToString(); + + public override void Dispose() + { + } + + protected override bool TryGetHeader(string name, [NotNullWhen(true)] out string? value) + { + throw new NotImplementedException(); + } + + protected override bool TryGetHeaderValues(string name, [NotNullWhen(true)] out IEnumerable? values) + { + throw new NotImplementedException(); + } + + protected override bool ContainsHeader(string name) + { + throw new NotImplementedException(); + } + + protected override IEnumerable EnumerateHeaders() + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/test/ServiceBusEmulatorExplorer.Tests/Tests.cs b/test/ServiceBusEmulatorExplorer.Tests/Tests.cs new file mode 100644 index 0000000..1bc5779 --- /dev/null +++ b/test/ServiceBusEmulatorExplorer.Tests/Tests.cs @@ -0,0 +1,61 @@ +using System.Net; +using System.Net.Http.Json; + +namespace ServiceBusEmulatorExplorer.Tests; + +public class Tests : TestBase +{ + [Test] + public async Task Basic() + { + var client = Factory.CreateClient(); + var response = await client.GetAsync("/health"); + + await Assert.That(response.IsSuccessStatusCode).IsEqualTo(true); + } + + [Test] + public async Task QueueCrudOperations() + { + var client = Factory.CreateClient(); + var response = await client.PostAsync("/api/queues", JsonContent.Create(new { name = "test-queue" })); + + await Assert.That(response.IsSuccessStatusCode).IsEqualTo(true); + + var getResponse = await client.GetAsync("/api/queues/"); + await Assert.That(getResponse.StatusCode).IsEqualTo(HttpStatusCode.OK); + + var queues = await getResponse.Content.ReadFromJsonAsync>(); + + await Assert.That(queues).Contains(x => x.Name == "test-queue"); + + var deleteResponse = await client.DeleteAsync("/api/queues/test-queue"); + await Assert.That(deleteResponse.IsSuccessStatusCode).IsEqualTo(true); + + var getAfterDeleteResponse = await client.GetAsync("/api/queues/"); + await Assert.That(getAfterDeleteResponse.StatusCode).IsEqualTo(HttpStatusCode.OK); + + var queuesAfterDelete = await getAfterDeleteResponse.Content.ReadFromJsonAsync>(); + await Assert.That(queuesAfterDelete).DoesNotContain(x => x.Name == "test-queue"); + } + + [Test] + public async Task TopicCrudOperations() + { + var client = Factory.CreateClient(); + var response = await client.PostAsync("/api/topics", JsonContent.Create(new { name = "test-topic" })); + await Assert.That(response.IsSuccessStatusCode).IsEqualTo(true); + + var getResponse = await client.GetAsync("/api/topics/"); + await Assert.That(getResponse.StatusCode).IsEqualTo(HttpStatusCode.OK); + + var topics = await getResponse.Content.ReadFromJsonAsync>(); + await Assert.That(topics).Contains(x => x.Name == "test-topic"); + var deleteResponse = await client.DeleteAsync("/api/topics/test-topic"); + await Assert.That(deleteResponse.IsSuccessStatusCode).IsEqualTo(true); + var getAfterDeleteResponse = await client.GetAsync("/api/topics/"); + await Assert.That(getAfterDeleteResponse.StatusCode).IsEqualTo(HttpStatusCode.OK); + var topicsAfterDelete = await getAfterDeleteResponse.Content.ReadFromJsonAsync>(); + await Assert.That(topicsAfterDelete).DoesNotContain(x => x.Name == "test-topic"); + } +} \ No newline at end of file diff --git a/test/ServiceBusEmulatorExplorer.Tests/WebApplicationFactory.cs b/test/ServiceBusEmulatorExplorer.Tests/WebApplicationFactory.cs new file mode 100644 index 0000000..4a4a10b --- /dev/null +++ b/test/ServiceBusEmulatorExplorer.Tests/WebApplicationFactory.cs @@ -0,0 +1,22 @@ +using Azure.Messaging.ServiceBus; +using Azure.Messaging.ServiceBus.Administration; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.TestHost; +using Microsoft.Extensions.DependencyInjection; +using TUnit.AspNetCore; + +namespace ServiceBusEmulatorExplorer.Tests; + +public class WebApplicationFactory : TestWebApplicationFactory +{ + protected override void ConfigureWebHost(IWebHostBuilder builder) + { + builder.ConfigureTestServices(services => + { + services.AddSingleton(); + services.AddSingleton(); + }); + } +} + +public abstract class TestBase : WebApplicationTest; \ No newline at end of file diff --git a/wwwroot/favicon.ico b/wwwroot/favicon.ico deleted file mode 100644 index 12392236657563eb8cc764f235e66d568b3a0fbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 Date: Sun, 25 Jan 2026 19:15:17 +0000 Subject: [PATCH 2/5] Add README.md and update favicon to servicebus.png --- README.md | 284 +++++++++++++++++++++++ app/sb-explorer-ui/index.html | 2 +- app/sb-explorer-ui/public/servicebus.png | Bin 0 -> 281992 bytes 3 files changed, 285 insertions(+), 1 deletion(-) create mode 100644 README.md create mode 100644 app/sb-explorer-ui/public/servicebus.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..1dd98ff --- /dev/null +++ b/README.md @@ -0,0 +1,284 @@ +# Service Bus Emulator Explorer + +A web-based UI for managing and exploring Azure Service Bus Emulator instances. This tool provides an intuitive interface to interact with queues, topics, subscriptions, and messages in the Azure Service Bus Emulator. + +![Queues-overview](docs/queues-overview.png) + +## 🚀 Features + +### Queue Management + +- **List and Create Queues**: View all queues with runtime properties (active/dead-letter message counts, size) +- **Send Messages**: Send messages to queues with custom properties and content +- **Peek Messages**: Preview messages in queues without consuming them +- **Delete Queues**: Remove queues from the emulator +- **Dead Letter Queue Management**: Bulk delete dead-letter messages + +### Topic & Subscription Management + +- **List and Create Topics**: Manage topics with real-time statistics +- **Send Messages to Topics**: Publish messages to topics for distribution to subscriptions +- **Subscription Management**: Create and manage subscriptions on topics +- **Peek Subscription Messages**: Preview messages in subscriptions +- **Delete Topics/Subscriptions**: Clean up resources + +### Message Operations + +- **Message Peeking**: View message content and properties without consuming +- **Dead Letter Queue Support**: View and manage dead-letter messages for both queues and subscriptions +- **Bulk Operations**: Bulk delete operations for dead-letter messages +- **Message Editor**: In-browser editor for message content with syntax highlighting + +### Developer Experience + +- **Modern React UI**: Built with React 19, Vite, and Fluent UI/Mantine components +- **Real-time Updates**: Automatic refresh of entity statistics +- **API Documentation**: OpenAPI/Scalar API documentation available +- **Monaco Editor**: In-browser code editor for message content +- **Observability**: Built-in OpenTelemetry support + +## 📋 Prerequisites + +- Docker and Docker Compose +- .NET 10.0 SDK (for local development) +- Node.js 18+ and npm/yarn (for frontend development) + +## 🛠️ Setup + +### Using Docker Compose (Recommended) + +1. **Clone the repository** + + ```bash + git clone + cd Service-Bus-Emulator-Explorer + ``` + +2. **Set environment variables** + + Create a `.env` file in the root directory: + + ```env + ACCEPT_EULA=Y + SQL_PASSWORD=YourStrongPassword123! + ``` + +3. **Start the services** + + ```bash + docker-compose up + ``` + + This will start: + - Service Bus Emulator on ports `5672` (AMQP) and `5300` (Admin) + - SQL Server (required by the emulator) + - Service Bus Explorer UI on port `8080` + +4. **Access the application** + - Web UI: + - API: + - API Documentation: + +### Local Development Setup + +#### Backend (.NET) + +1. **Navigate to the backend directory** + + ```bash + cd src/ServiceBusEmulatorExplorer + ``` + +2. **Configure connection strings** + + Update `appsettings.Development.json`: + + ```json + { + "ServiceBus": { + "ConnectionString": "Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;", + "AdministrationConnectionString": "Endpoint=sb://localhost:5300;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;", + "RefreshIntervalMs": 5000 + } + } + ``` + +3. **Run the backend** + + ```bash + dotnet run + ``` + + The API will be available at + +#### Frontend (React) + +1. **Navigate to the frontend directory** + + ```bash + cd app/sb-explorer-ui + ``` + +2. **Install dependencies** + + ```bash + npm install + ``` + +3. **Run the development server** + + ```bash + npm run dev + ``` + + The UI will be available at + +4. **Build for production** + + ```bash + npm run build + ``` + +## 🔧 Configuration + +### Backend Configuration (`appsettings.json`) + +```json +{ + "ServiceBus": { + "ConnectionString": "Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;", + "AdministrationConnectionString": "Endpoint=sb://localhost:5300;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;", + "RefreshIntervalMs": 5000, + "EmulatorConfigFilePath": "service-bus-config.json" + }, + "Otlp": { + "Endpoint": "https://your-otel-endpoint", + "Headers": "" + } +} +``` + +### Observability Configuration + +- `Otlp:Endpoint`: OTLP collector endpoint for OpenTelemetry +- `Otlp:Headers`: Additional headers for OTLP exporter +- `Otlp:EnableConsoleExporter`: Enable console exporter for debugging + +### Frontend Configuration + +Environment variables for the frontend (via `.env` or build scripts): + +- `VITE_API_BASE_URL`: Backend API base URL (default: `/api`) +- `VITE_USE_MOCK`: Enable/disable mock data (for development) + +## 📚 API Endpoints + +### Queues + +- `GET /api/queues` - List all queues +- `POST /api/queues` - Create a new queue +- `DELETE /api/queues/{name}` - Delete a queue +- `GET /api/queues/{name}/messages` - Peek messages in a queue +- `POST /api/queues/{name}/messages` - Send message to a queue + +### Topics + +- `GET /api/topics` - List all topics +- `POST /api/topics` - Create a new topic +- `DELETE /api/topics/{name}` - Delete a topic +- `POST /api/topics/{topic}/messages` - Send message to a topic + +### Subscriptions + +- `GET /api/topics/{topic}/subscriptions` - List subscriptions +- `POST /api/topics/{topic}/subscriptions` - Create a subscription +- `DELETE /api/topics/{topic}/subscriptions/{sub}` - Delete a subscription +- `GET /api/topics/{topic}/subscriptions/{sub}/messages` - Peek subscription messages + +### Dead Letter + +- `POST /api/deadletter/queue/{name}/delete` - Bulk delete queue DLQ messages +- `POST /api/deadletter/subscription/{topic}/{sub}/delete` - Bulk delete subscription DLQ messages + +## 🧪 Testing + +Run the test suite: + +```bash +cd test/ServiceBusEmulatorExplorer.Tests +dotnet test +``` + +## 🏗️ Project Structure + +``` +Service-Bus-Emulator-Explorer/ +├── app/ +│ └── sb-explorer-ui/ # React frontend +│ ├── src/ +│ │ ├── api/ # API client and hooks +│ │ ├── components/ # React components +│ │ └── routes/ # Page components +│ └── package.json +├── src/ +│ └── ServiceBusEmulatorExplorer/ # .NET backend +│ ├── Endpoints/ # API endpoints +│ ├── Extensions/ # Service extensions +│ └── Program.cs # Application entry point +├── test/ +│ └── ServiceBusEmulatorExplorer.Tests/ # Unit tests +├── compose.yaml # Docker Compose configuration +└── sb-explorer.slnx # .NET solution file +``` + +## 🐳 Docker + +### Build Custom Image + +```bash +docker build -t sb-explorer:local -f src/ServiceBusEmulatorExplorer/Dockerfile . +``` + +### Run with Custom Image + +Update `compose.yaml` to use your local image: + +```yaml +services: + sb-explorer: + image: sb-explorer:local + # ... rest of configuration +``` + +## 🔍 Troubleshooting + +### Service Bus Emulator Won't Start + +- Ensure Docker is running +- Check that ports 5672 and 5300 are not in use +- Verify SQL password meets complexity requirements (uppercase, lowercase, numbers, special characters) +- Set `ACCEPT_EULA=Y` in your environment + +### Connection Issues + +- Verify the Service Bus emulator is running: `docker ps` +- Check connection strings in `appsettings.json` +- Ensure the emulator is accessible on the configured ports + +### Frontend Can't Connect to Backend + +- Verify backend is running on the expected port +- Check `VITE_API_BASE_URL` environment variable +- Review CORS configuration in `Program.cs` + +## 📄 License + +The frontend and backend code are licensed under the MIT License. See the [LICENSE](LICENSE) file for details. + +## 🤖 Acknowledgements + +The majority of the frontend code was written by OpenAI's ChatGPT codex model. + +## ⚠️ Limitations + +The administration client for the emulator does not expose all of the properties in some of the models, so some parts of the application may not show all available properties or invalid information. diff --git a/app/sb-explorer-ui/index.html b/app/sb-explorer-ui/index.html index 4e37640..8be4655 100644 --- a/app/sb-explorer-ui/index.html +++ b/app/sb-explorer-ui/index.html @@ -2,7 +2,7 @@ - + sb-explorer-ui diff --git a/app/sb-explorer-ui/public/servicebus.png b/app/sb-explorer-ui/public/servicebus.png new file mode 100644 index 0000000000000000000000000000000000000000..83a619a22ea34bd4248ab7ab286ac0c7987b6d95 GIT binary patch literal 281992 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[lH?~lA%hlzY%Q}7! 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

$4U4IoT=X!yU8qA%#5i{S49CF%?a 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 literal 0 HcmV?d00001 From 7678130c8b2e7c2abdf33431fe9af099ed9b5830 Mon Sep 17 00:00:00 2001 From: Tom Biddulph Date: Sun, 25 Jan 2026 19:15:22 +0000 Subject: [PATCH 3/5] Add queues overview diagram --- docs/queues-overview.png | Bin 0 -> 212966 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/queues-overview.png diff --git a/docs/queues-overview.png b/docs/queues-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..591a82ab02e226b8529f0d0c7f086e3d1082ed81 GIT binary patch literal 212966 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

sjqsE!N2{I{)Db|9n)-6W)uzeehx7+k!Cv`n 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 H?brVU-_!*= literal 0 HcmV?d00001 From 2862aefd560baceb814bf3cf012ae2d11f2e60df Mon Sep 17 00:00:00 2001 From: Tom Biddulph Date: Sun, 25 Jan 2026 19:16:14 +0000 Subject: [PATCH 4/5] Remove Redis service and associated configurations from compose file --- compose-services.yaml | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/compose-services.yaml b/compose-services.yaml index 3718464..7c5df81 100644 --- a/compose-services.yaml +++ b/compose-services.yaml @@ -3,10 +3,9 @@ services: container_name: "servicebus-emulator" image: mcr.microsoft.com/azure-messaging/servicebus-emulator:latest pull_policy: always - volumes: - - "${CONFIG_PATH}:/ServiceBus_Emulator/ConfigFiles/Config.json" ports: - "5672:5672" + - "5300:5300" environment: SQL_SERVER: sql MSSQL_SA_PASSWORD: "${SQL_PASSWORD}" # Password should be same as what is set for SQL @@ -27,17 +26,5 @@ services: environment: ACCEPT_EULA: ${ACCEPT_EULA} MSSQL_SA_PASSWORD: "${SQL_PASSWORD}" - redis: - image: redis:8.0-M02-alpine - restart: always - ports: - - "6379:6379" - command: redis-server --save 60 1 --loglevel warning --requirepass pass@w0rd1 - volumes: - - ./data:/data - networks: - sb-emulator: - aliases: - - "redis" networks: sb-emulator: From 70a0f71b5ba62e27efe6e8d89b572d10221ed118 Mon Sep 17 00:00:00 2001 From: Tom Biddulph Date: Sun, 25 Jan 2026 19:24:04 +0000 Subject: [PATCH 5/5] Update build and publish configurations for versioning in CI/CD workflows --- .github/workflows/ci.yml | 8 +++++++- .github/workflows/release.yml | 8 +++++++- src/ServiceBusEmulatorExplorer/Dockerfile | 8 +++++++- .../ServiceBusEmulatorExplorer.csproj | 2 -- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 550823e..ec403c4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,7 +70,12 @@ jobs: run: dotnet restore -r linux-musl-x64 - name: Build .NET solution - run: dotnet build --no-restore --configuration Release -p:Version=${{ needs.version.outputs.semVer }} + run: | + dotnet build --no-restore --configuration Release \ + -p:Version=${{ needs.version.outputs.majorMinorPatch }} \ + -p:AssemblyVersion=${{ needs.version.outputs.majorMinorPatch }}.0 \ + -p:FileVersion=${{ needs.version.outputs.majorMinorPatch }}.0 \ + -p:InformationalVersion=${{ needs.version.outputs.semVer }} - name: Run tests run: dotnet run --project test/ServiceBusEmulatorExplorer.Tests/ServiceBusEmulatorExplorer.Tests.csproj --configuration Release @@ -106,6 +111,7 @@ jobs: push: true build-args: | VERSION=${{ needs.version.outputs.semVer }} + ASSEMBLY_VERSION=${{ needs.version.outputs.majorMinorPatch }}.0 tags: | ghcr.io/${{ github.repository }}:${{ needs.version.outputs.semVer }} ghcr.io/${{ github.repository }}:latest diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d5936a7..9b7e04c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,7 +60,12 @@ jobs: run: dotnet restore -r linux-musl-x64 - name: Build .NET solution - run: dotnet build --no-restore --configuration Release -p:Version=${{ needs.version.outputs.semVer }} + run: | + dotnet build --no-restore --configuration Release \ + -p:Version=${{ needs.version.outputs.majorMinorPatch }} \ + -p:AssemblyVersion=${{ needs.version.outputs.majorMinorPatch }}.0 \ + -p:FileVersion=${{ needs.version.outputs.majorMinorPatch }}.0 \ + -p:InformationalVersion=${{ needs.version.outputs.semVer }} - name: Run tests run: dotnet run --project test/ServiceBusEmulatorExplorer.Tests/ServiceBusEmulatorExplorer.Tests.csproj --configuration Release @@ -94,6 +99,7 @@ jobs: push: true build-args: | VERSION=${{ needs.version.outputs.semVer }} + ASSEMBLY_VERSION=${{ needs.version.outputs.majorMinorPatch }}.0 tags: | ghcr.io/${{ github.repository }}:${{ needs.version.outputs.semVer }} ghcr.io/${{ github.repository }}:${{ needs.version.outputs.majorMinorPatch }} diff --git a/src/ServiceBusEmulatorExplorer/Dockerfile b/src/ServiceBusEmulatorExplorer/Dockerfile index 59be449..3308c9f 100644 --- a/src/ServiceBusEmulatorExplorer/Dockerfile +++ b/src/ServiceBusEmulatorExplorer/Dockerfile @@ -31,8 +31,14 @@ COPY . . FROM build AS publish ARG BUILD_CONFIGURATION=Release ARG VERSION=0.0.0 +ARG ASSEMBLY_VERSION=0.0.0.0 WORKDIR /src/src/ServiceBusEmulatorExplorer -RUN dotnet publish "ServiceBusEmulatorExplorer.csproj" -c $BUILD_CONFIGURATION -r linux-x64 -p:Version=$VERSION -o /app/publish +RUN dotnet publish "ServiceBusEmulatorExplorer.csproj" -c $BUILD_CONFIGURATION -r linux-x64 \ + -p:Version=${VERSION} \ + -p:AssemblyVersion=${ASSEMBLY_VERSION} \ + -p:FileVersion=${ASSEMBLY_VERSION} \ + -p:InformationalVersion=${VERSION} \ + -o /app/publish FROM base AS final WORKDIR /app diff --git a/src/ServiceBusEmulatorExplorer/ServiceBusEmulatorExplorer.csproj b/src/ServiceBusEmulatorExplorer/ServiceBusEmulatorExplorer.csproj index d7fd642..717d379 100644 --- a/src/ServiceBusEmulatorExplorer/ServiceBusEmulatorExplorer.csproj +++ b/src/ServiceBusEmulatorExplorer/ServiceBusEmulatorExplorer.csproj @@ -18,8 +18,6 @@ 0.0.0 - $(Version) - $(Version) $(Version)