diff --git a/.github/agents/dependency-update.md b/.github/agents/dependency-update.md index 1c2d7731cce..7b2b97a1e5d 100644 --- a/.github/agents/dependency-update.md +++ b/.github/agents/dependency-update.md @@ -90,10 +90,10 @@ higher-numbered lines exist there. **TypeScript is held at 5.9.3 in the libraries.** 7.x is the Go rewrite (`microsoft/typescript-go`), not an incremental release. `Boilerplate.Client.Core` is the canary and is already on 7.0.2 — if a bump is wanted, move one library project, build it, and only then the -rest. Do not move all twenty-four at once. +rest. Do not move all twenty-one at once. -**Vitest is held at `^3`** in `src/Bmotion/Tests/bit-bmotion-js`, `src/Bswup/Tests/bit-bswup-js`, -`src/Bsqlite/Tests/bit-bsqlite-js` and `src/BevTools/Tests/bit-bevtools-js`. +**Vitest is held at `^3`** in `src/Utilities/Bmotion/Tests/bit-bmotion-js`, `src/Bswup/Tests/bit-bswup-js`, +`src/Utilities/Bsqlite/Tests/bit-bsqlite-js` and `src/Utilities/BevTools/Tests/bit-bevtools-js`. **`devops-actions/variable-substitution` is held at v1.2** (`ae7b1f36…`). v2.0.0 committed 31 symlinks into its vendored `node_modules`; the runner cannot stage them and every job dies before @@ -311,11 +311,14 @@ Finish every sweep with an issue, a PR and a full CI run. `upstream` is `bitfoun 4. PR from `:` into `upstream/develop`, title `Update project dependencies (#)`. The body starts with `closes #` and carries the report: Changed, Breaking or important, Held back, Missed / drifted, Not verified. -5. Run `all.ci.yml` on the fork against the branch and give its URL with the PR link: +5. Run `all.ci.yml` and `all.ci.utilities.yml` on the fork against the branch and give both URLs + with the PR link: ```bash gh workflow run all.ci.yml --repo /bitplatform --ref + gh workflow run all.ci.utilities.yml --repo /bitplatform --ref gh run list --repo /bitplatform --workflow all.ci.yml --branch --limit 1 --json url --jq '.[0].url' + gh run list --repo /bitplatform --workflow all.ci.utilities.yml --branch --limit 1 --json url --jq '.[0].url' ``` A red job goes into the PR as a comment, with the failing step and its first error line. diff --git a/.github/workflows/all.ci.utilities.yml b/.github/workflows/all.ci.utilities.yml new file mode 100644 index 00000000000..e4784fcf1c1 --- /dev/null +++ b/.github/workflows/all.ci.utilities.yml @@ -0,0 +1,245 @@ +name: All Utilities CI + +on: + workflow_dispatch: + inputs: + nuget_packages: + description: NuGet packages + type: boolean + default: true + +env: + DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true + +permissions: + contents: read + +jobs: + + build_nuget_packages: + name: build utilities nuget packages locally + if: ${{ inputs.nuget_packages }} + runs-on: ubuntu-24.04 + + steps: + - name: Checkout source code + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Setup .NET + uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 + with: + global-json-file: src/global.json + + - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 + with: + node-version: 24 + + - name: Build and pack Bmotion + run: | + dotnet build src/Utilities/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj --output ./packages --configuration Release + + - name: Build and pack Bmage + run: | + dotnet build src/Utilities/Bmage/Bit.Bmage/Bit.Bmage.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bmage/Bit.Bmage/Bit.Bmage.csproj --output ./packages --configuration Release + + - name: Build and pack Bsqlite + run: | + dotnet build src/Utilities/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj --output ./packages --configuration Release + + - name: Build and pack Bsqlite.Testing + run: | + dotnet build src/Utilities/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj --output ./packages --configuration Release + + - name: Build and pack Bink + run: | + dotnet build src/Utilities/Bink/Bit.Bink/Bit.Bink.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bink/Bit.Bink/Bit.Bink.csproj --output ./packages --configuration Release + + - name: Build and pack Balette + run: | + dotnet build src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj --output ./packages --configuration Release + + - name: Build and pack BbScanner + run: | + dotnet build src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj --output ./packages --configuration Release + + - name: Build and pack BlazeDb + run: | + dotnet build src/Utilities/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj --output ./packages --configuration Release + + - name: Build and pack BlazeDb.EntityFrameworkCore + run: | + dotnet build src/Utilities/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj --output ./packages --configuration Release + + - name: Build and pack Blow + run: | + dotnet build src/Utilities/Blow/Bit.Blow/Bit.Blow.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Blow/Bit.Blow/Bit.Blow.csproj --output ./packages --configuration Release + + - name: Build and pack Bcrdt + run: | + dotnet build src/Utilities/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj --output ./packages --configuration Release + + - name: Build and pack Bcrdt.SignalR + run: | + dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj --output ./packages --configuration Release + + - name: Build and pack Bcrdt.Server + run: | + dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj --output ./packages --configuration Release + + - name: Build and pack Bcrdt.Testing + run: | + dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj --output ./packages --configuration Release + + - name: Build and pack Blex + run: | + dotnet build src/Utilities/Blex/Bit.Blex/Bit.Blex.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Blex/Bit.Blex/Bit.Blex.csproj --output ./packages --configuration Release + + - name: Build and pack Blex.Maui + run: | + dotnet build src/Utilities/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj --output ./packages --configuration Release + + - name: Build and pack Blex.Testing + run: | + dotnet build src/Utilities/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj --output ./packages --configuration Release + + - name: Build and pack Bonboarding + run: | + dotnet build src/Utilities/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj --output ./packages --configuration Release + + - name: Build and pack Bdnd + run: | + dotnet build src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj --output ./packages --configuration Release + + - name: Build and pack Borm + run: | + dotnet build src/Utilities/Borm/Bit.Borm/Bit.Borm.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Borm/Bit.Borm/Bit.Borm.csproj --output ./packages --configuration Release + + - name: Build and pack Borm.FluentValidation + run: | + dotnet build src/Utilities/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj --output ./packages --configuration Release + + - name: Build and pack Bortable + run: | + dotnet build src/Utilities/Bortable/Bit.Bortable/Bit.Bortable.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bortable/Bit.Bortable/Bit.Bortable.csproj --output ./packages --configuration Release + + - name: Build and pack Belemetry + run: | + dotnet build src/Utilities/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj --output ./packages --configuration Release + + - name: Build and pack Belemetry.EntityFrameworkCore + run: | + dotnet build src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj --output ./packages --configuration Release + + - name: Build and pack Belemetry.Hangfire + run: | + dotnet build src/Utilities/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj --output ./packages --configuration Release + + - name: Build and pack BevTools + run: | + dotnet build src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj --output ./packages --configuration Release + + - name: Build and pack BevTools.Server + run: | + dotnet build src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj --output ./packages --configuration Release + + - name: Upload NuGet packages artifact + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 + with: + name: utilities-nuget-packages + path: ./packages/*.nupkg + retention-days: 30 + + + + bmotion: + name: bmotion + uses: ./.github/workflows/bit.ci.Bmotion.yml + + bmage: + name: bmage + uses: ./.github/workflows/bit.ci.Bmage.yml + + bsqlite: + name: bsqlite + uses: ./.github/workflows/bit.ci.Bsqlite.yml + + bink: + name: bink + uses: ./.github/workflows/bit.ci.Bink.yml + + balette: + name: balette + uses: ./.github/workflows/bit.ci.Balette.yml + + bbscanner: + name: bbscanner + uses: ./.github/workflows/bit.ci.BbScanner.yml + + blazedb: + name: blazedb + uses: ./.github/workflows/bit.ci.BlazeDb.yml + + blow: + name: blow + uses: ./.github/workflows/bit.ci.Blow.yml + + bcrdt: + name: bcrdt + uses: ./.github/workflows/bit.ci.Bcrdt.yml + + blex: + name: blex + uses: ./.github/workflows/bit.ci.Blex.yml + + bonboarding: + name: bonboarding + uses: ./.github/workflows/bit.ci.Bonboarding.yml + + bdnd: + name: bdnd + uses: ./.github/workflows/bit.ci.Bdnd.yml + + borm: + name: borm + uses: ./.github/workflows/bit.ci.Borm.yml + + bortable: + name: bortable + uses: ./.github/workflows/bit.ci.Bortable.yml + + belemetry: + name: belemetry + uses: ./.github/workflows/bit.ci.Belemetry.yml + + bevtools: + name: bevtools + uses: ./.github/workflows/bit.ci.BevTools.yml diff --git a/.github/workflows/all.ci.yml b/.github/workflows/all.ci.yml index 9071294ff72..1c0c62c72b0 100644 --- a/.github/workflows/all.ci.yml +++ b/.github/workflows/all.ci.yml @@ -3,6 +3,14 @@ name: All CI on: workflow_dispatch: inputs: + nuget_packages: + description: NuGet packages + type: boolean + default: true + prerelease_packages: + description: Bit packages of the latest Prerelease nuget packages run instead of nuget.org (the Boilerplate, BlazorEmpty and website jobs) + type: boolean + default: false boilerplate_postgres: description: Boilerplate tests with PostgreSQL type: boolean @@ -19,10 +27,6 @@ on: description: Boilerplate configurations type: boolean default: true - nuget_packages: - description: NuGet packages - type: boolean - default: true blazorui: description: BlazorUI solution type: boolean @@ -39,10 +43,6 @@ on: description: Brouter solution type: boolean default: true - prerelease_packages: - description: Bit packages of the latest Prerelease nuget packages run instead of nuget.org (the Boilerplate, BlazorEmpty and website jobs) - type: boolean - default: false env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -532,146 +532,6 @@ jobs: dotnet build src/Besql/Bit.Besql/Bit.Besql.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false dotnet pack src/Besql/Bit.Besql/Bit.Besql.csproj --output ./packages --configuration Release - - name: Build and pack Bmotion - run: | - dotnet build src/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj --output ./packages --configuration Release - - - name: Build and pack Bmage.Core - run: | - dotnet build src/Bmage/Bit.Bmage.Core/Bit.Bmage.Core.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bmage/Bit.Bmage.Core/Bit.Bmage.Core.csproj --output ./packages --configuration Release - - - name: Build and pack Bmage - run: | - dotnet build src/Bmage/Bit.Bmage/Bit.Bmage.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bmage/Bit.Bmage/Bit.Bmage.csproj --output ./packages --configuration Release - - - name: Build and pack Bmage.Editor - run: | - dotnet build src/Bmage/Bit.Bmage.Editor/Bit.Bmage.Editor.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bmage/Bit.Bmage.Editor/Bit.Bmage.Editor.csproj --output ./packages --configuration Release - - - name: Build and pack Bsqlite - run: | - dotnet build src/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj --output ./packages --configuration Release - - - name: Build and pack Bsqlite.Storage.Opfs - run: | - dotnet build src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Bit.Bsqlite.Storage.Opfs.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Bit.Bsqlite.Storage.Opfs.csproj --output ./packages --configuration Release - - - name: Build and pack Bsqlite.Storage.IndexedDb - run: | - dotnet build src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Bit.Bsqlite.Storage.IndexedDb.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Bit.Bsqlite.Storage.IndexedDb.csproj --output ./packages --configuration Release - - - name: Build and pack Bsqlite.Storage.CacheStorage - run: | - dotnet build src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/Bit.Bsqlite.Storage.CacheStorage.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/Bit.Bsqlite.Storage.CacheStorage.csproj --output ./packages --configuration Release - - - name: Build and pack Bsqlite.Testing - run: | - dotnet build src/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj --output ./packages --configuration Release - - - name: Build and pack Bink - run: | - dotnet build src/Bink/Bit.Bink/Bit.Bink.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bink/Bit.Bink/Bit.Bink.csproj --output ./packages --configuration Release - - - name: Build and pack Balette - run: | - dotnet build src/Balette/Bit.Balette/Bit.Balette.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Balette/Bit.Balette/Bit.Balette.csproj --output ./packages --configuration Release - - - name: Build and pack BbScanner - run: | - dotnet build src/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj --output ./packages --configuration Release - - - name: Build and pack BlazeDb - run: | - dotnet build src/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj --output ./packages --configuration Release - - - name: Build and pack BlazeDb.Generators - run: | - dotnet build src/BlazeDb/Bit.BlazeDb.Generators/Bit.BlazeDb.Generators.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/BlazeDb/Bit.BlazeDb.Generators/Bit.BlazeDb.Generators.csproj --output ./packages --configuration Release - - - name: Build and pack BlazeDb.Browser - run: | - dotnet build src/BlazeDb/Bit.BlazeDb.Browser/Bit.BlazeDb.Browser.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/BlazeDb/Bit.BlazeDb.Browser/Bit.BlazeDb.Browser.csproj --output ./packages --configuration Release - - - name: Build and pack BlazeDb.EntityFrameworkCore - run: | - dotnet build src/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj --output ./packages --configuration Release - - - name: Build and pack Blow - run: | - dotnet build src/Blow/Bit.Blow/Bit.Blow.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Blow/Bit.Blow/Bit.Blow.csproj --output ./packages --configuration Release - - - name: Build and pack Bcrdt - run: | - dotnet build src/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj --output ./packages --configuration Release - - - name: Build and pack Bcrdt.Blazor - run: | - dotnet build src/Bcrdt/Bit.Bcrdt.Blazor/Bit.Bcrdt.Blazor.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bcrdt/Bit.Bcrdt.Blazor/Bit.Bcrdt.Blazor.csproj --output ./packages --configuration Release - - - name: Build and pack Bcrdt.SignalR - run: | - dotnet build src/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj --output ./packages --configuration Release - - - name: Build and pack Bcrdt.Server - run: | - dotnet build src/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj --output ./packages --configuration Release - - - name: Build and pack Bcrdt.Testing - run: | - dotnet build src/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj --output ./packages --configuration Release - - - name: Build and pack Blex - run: | - dotnet build src/Blex/Bit.Blex/Bit.Blex.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Blex/Bit.Blex/Bit.Blex.csproj --output ./packages --configuration Release - - - name: Build and pack Blex.Generators - run: | - dotnet build src/Blex/Bit.Blex.Generators/Bit.Blex.Generators.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Blex/Bit.Blex.Generators/Bit.Blex.Generators.csproj --output ./packages --configuration Release - - - name: Build and pack Blex.Blazor - run: | - dotnet build src/Blex/Bit.Blex.Blazor/Bit.Blex.Blazor.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Blex/Bit.Blex.Blazor/Bit.Blex.Blazor.csproj --output ./packages --configuration Release - - - name: Build and pack Blex.Maui - run: | - dotnet build src/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj --output ./packages --configuration Release - - - name: Build and pack Blex.Testing - run: | - dotnet build src/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj --output ./packages --configuration Release - - - name: Build and pack Bonboarding - run: | - dotnet build src/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj --output ./packages --configuration Release - - name: Build and pack CodeAnalyzers run: | dotnet build src/CodeAnalyzers/Bit.CodeAnalyzers/Bit.CodeAnalyzers.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false @@ -725,50 +585,6 @@ jobs: if: ${{ inputs.brouter }} uses: ./.github/workflows/bit.ci.Brouter.yml - bmotion: - name: bmotion - uses: ./.github/workflows/bit.ci.Bmotion.yml - - bmage: - name: bmage - uses: ./.github/workflows/bit.ci.Bmage.yml - - bsqlite: - name: bsqlite - uses: ./.github/workflows/bit.ci.Bsqlite.yml - - bink: - name: bink - uses: ./.github/workflows/bit.ci.Bink.yml - - balette: - name: balette - uses: ./.github/workflows/bit.ci.Balette.yml - - bbscanner: - name: bbscanner - uses: ./.github/workflows/bit.ci.BbScanner.yml - - blazedb: - name: blazedb - uses: ./.github/workflows/bit.ci.BlazeDb.yml - - blow: - name: blow - uses: ./.github/workflows/bit.ci.Blow.yml - - bcrdt: - name: bcrdt - uses: ./.github/workflows/bit.ci.Bcrdt.yml - - blex: - name: blex - uses: ./.github/workflows/bit.ci.Blex.yml - - bonboarding: - name: bonboarding - uses: ./.github/workflows/bit.ci.Bonboarding.yml - besql: name: besql uses: ./.github/workflows/bit.ci.Besql.yml diff --git a/.github/workflows/balette.demo.cd.yml b/.github/workflows/balette.demo.cd.yml index 41b0c186232..008d6f81ef8 100644 --- a/.github/workflows/balette.demo.cd.yml +++ b/.github/workflows/balette.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/bbscanner.demo.cd.yml b/.github/workflows/bbscanner.demo.cd.yml index 77dc9f5a1cb..7e15c25548b 100644 --- a/.github/workflows/bbscanner.demo.cd.yml +++ b/.github/workflows/bbscanner.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/bcrdt.demo.cd.yml b/.github/workflows/bcrdt.demo.cd.yml index b3af7609f5c..0bc16adfd26 100644 --- a/.github/workflows/bcrdt.demo.cd.yml +++ b/.github/workflows/bcrdt.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/bdnd.demo.cd.yml b/.github/workflows/bdnd.demo.cd.yml index b3007f4680b..e499ed5b8cb 100644 --- a/.github/workflows/bdnd.demo.cd.yml +++ b/.github/workflows/bdnd.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/belemetry.demo.cd.yml b/.github/workflows/belemetry.demo.cd.yml index e29b977d34b..6b4d04421db 100644 --- a/.github/workflows/belemetry.demo.cd.yml +++ b/.github/workflows/belemetry.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Belemetry/Demo/Server/Bit.Belemetry.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Belemetry/Demo/Server/Bit.Belemetry.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/bevtools.demo.cd.yml b/.github/workflows/bevtools.demo.cd.yml index a250dd9b566..90131b236f7 100644 --- a/.github/workflows/bevtools.demo.cd.yml +++ b/.github/workflows/bevtools.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/BevTools/Demo/Server/Bit.BevTools.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/BevTools/Demo/Server/Bit.BevTools.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/bink.demo.cd.yml b/.github/workflows/bink.demo.cd.yml index c74620a8619..95da6082c83 100644 --- a/.github/workflows/bink.demo.cd.yml +++ b/.github/workflows/bink.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Bink/Bit.Bink.Demo/Server/Bit.Bink.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Bink/Demo/Server/Bit.Bink.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/bit.ci.Balette.e2e.yml b/.github/workflows/bit.ci.Balette.e2e.yml index 92d2e6879c1..ad6a6e8f61d 100644 --- a/.github/workflows/bit.ci.Balette.e2e.yml +++ b/.github/workflows/bit.ci.Balette.e2e.yml @@ -3,7 +3,7 @@ name: bit platform CI - Balette E2E # The demo app in Chromium: opening and closing, typing and ranking, keyboard navigation, nested pages, modes and # async sources, global shortcuts and sequences, theming and every demo page, against the Release build that # ships. It takes far longer than the build-and-unit pipeline (bit.ci.Balette.yml), so it runs only when started -# by hand. See src/Balette/Tests/Bit.Balette.Tests.E2E/README.md for what the browser suite proves and how to run +# by hand. See src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/README.md for what the browser suite proves and how to run # it locally. on: @@ -39,16 +39,16 @@ jobs: - name: Build the demo and the E2E suite run: | - dotnet build src/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj -c Release - dotnet build src/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj -c Release + dotnet build src/Utilities/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj -c Release + dotnet build src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Balette/Tests/Bit.Balette.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Balette/Tests/Bit.Balette.Tests.E2E && + cd src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename balette-e2e.trx diff --git a/.github/workflows/bit.ci.Balette.yml b/.github/workflows/bit.ci.Balette.yml index 15a97e06ad7..5e03847b2c5 100644 --- a/.github/workflows/bit.ci.Balette.yml +++ b/.github/workflows/bit.ci.Balette.yml @@ -8,7 +8,7 @@ on: workflow_call: pull_request: paths: - - 'src/Balette/**' + - 'src/Utilities/Balette/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -51,15 +51,15 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Balette && dotnet workload restore + run: cd src/Utilities/Balette && dotnet workload restore - name: dotnet build - run: dotnet build src/Balette/Bit.Balette.slnx + run: dotnet build src/Utilities/Balette/Bit.Balette.slnx - name: dotnet test (model, search + component tests, net8.0/net9.0/net10.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/Balette/Tests/Bit.Balette.Tests && dotnet test --no-build + run: cd src/Utilities/Balette/Tests/Bit.Balette.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Balette/Tests/Bit.Balette.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp && dotnet test --no-build diff --git a/.github/workflows/bit.ci.BbScanner.e2e.yml b/.github/workflows/bit.ci.BbScanner.e2e.yml index ff08cbaddeb..43ced75df61 100644 --- a/.github/workflows/bit.ci.BbScanner.e2e.yml +++ b/.github/workflows/bit.ci.BbScanner.e2e.yml @@ -3,7 +3,7 @@ name: bit platform CI - BbScanner E2E # The demo app in Chromium whose camera is a generated video file: continuous scanning of four symbologies, the # camera lifecycle, permissions, keyboard and layout, and every demo page, against the Release build that ships. # It takes far longer than the build-and-unit pipeline (bit.ci.BbScanner.yml), so it runs only when started by -# hand. See src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/README.md for what the suite proves and how to run it +# hand. See src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/README.md for what the suite proves and how to run it # locally. on: @@ -39,16 +39,16 @@ jobs: - name: Build the demo and the E2E suite run: | - dotnet build src/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj -c Release - dotnet build src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj -c Release + dotnet build src/Utilities/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj -c Release + dotnet build src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/BbScanner/Tests/Bit.BbScanner.Tests.E2E && + cd src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bbscanner-e2e.trx diff --git a/.github/workflows/bit.ci.BbScanner.yml b/.github/workflows/bit.ci.BbScanner.yml index 6dd3374f717..08bb4d7d38f 100644 --- a/.github/workflows/bit.ci.BbScanner.yml +++ b/.github/workflows/bit.ci.BbScanner.yml @@ -8,7 +8,7 @@ on: workflow_call: pull_request: paths: - - 'src/BbScanner/**' + - 'src/Utilities/BbScanner/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -51,15 +51,15 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/BbScanner && dotnet workload restore + run: cd src/Utilities/BbScanner && dotnet workload restore - name: dotnet build - run: dotnet build src/BbScanner/Bit.BbScanner.slnx + run: dotnet build src/Utilities/BbScanner/Bit.BbScanner.slnx - name: dotnet test (decoder + component tests, net8.0/net9.0/net10.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/BbScanner/Tests/Bit.BbScanner.Tests && dotnet test --no-build + run: cd src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Bcrdt.e2e.yml b/.github/workflows/bit.ci.Bcrdt.e2e.yml index 32bb52dd206..cc60e5e4964 100644 --- a/.github/workflows/bit.ci.Bcrdt.e2e.yml +++ b/.github/workflows/bit.ci.Bcrdt.e2e.yml @@ -3,7 +3,7 @@ name: bit platform CI - Bcrdt E2E # The browser suite: the demo (prerendered, then running on WebAssembly) driven in Chromium with Playwright - the # side-by-side replicas of every demo page merging in one tab, and two browser contexts meeting on the live page # through the demo server's SignalR hub and WebSocket endpoint. It takes far longer than the build-and-unit pipeline -# (bit.ci.Bcrdt.yml), so it runs only when started by hand. See src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/README.md for +# (bit.ci.Bcrdt.yml), so it runs only when started by hand. See src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/README.md for # what it proves and how to run it locally. on: @@ -34,26 +34,26 @@ jobs: with: global-json-file: src/global.json - # Bit.Bcrdt.Blazor compiles its TypeScript (bit-bcrdt.ts) with npm-installed tsc and esbuild as part of its build. + # Bit.Bcrdt compiles its TypeScript (bit-bcrdt.ts) with npm-installed tsc and esbuild as part of its build. - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: node-version: 24 - name: dotnet workload restore - run: cd src/Bcrdt && dotnet workload restore + run: cd src/Utilities/Bcrdt && dotnet workload restore - name: Build the demo and the E2E suite run: | - dotnet build src/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj -c Release - dotnet build src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj -c Release + dotnet build src/Utilities/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj -c Release + dotnet build src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E && + cd src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bcrdt-e2e.trx diff --git a/.github/workflows/bit.ci.Bcrdt.yml b/.github/workflows/bit.ci.Bcrdt.yml index fa3a524a32f..89ba805eedc 100644 --- a/.github/workflows/bit.ci.Bcrdt.yml +++ b/.github/workflows/bit.ci.Bcrdt.yml @@ -8,7 +8,7 @@ on: workflow_call: pull_request: paths: - - 'src/Bcrdt/**' + - 'src/Utilities/Bcrdt/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -51,27 +51,27 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Bcrdt && dotnet workload restore + run: cd src/Utilities/Bcrdt && dotnet workload restore - name: dotnet build - run: dotnet build src/Bcrdt/Bit.Bcrdt.slnx + run: dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.slnx - name: dotnet test (engine, transports, relays and components - net8.0/net9.0/net10.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/Bcrdt/Tests/Bit.Bcrdt.Tests && dotnet test --no-build + run: cd src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp && dotnet test --no-build # Packing on every run means a broken nuspec or a stale readme path is caught here rather than at release time. - # Each project is built in Release with GeneratePackageOnBuild off before it is packed, as all.ci.yml and - # nuget.org.yml do: Bit.Build.props turns that property on for Release, and a bare `dotnet pack` of a + # Each project is built in Release with GeneratePackageOnBuild off before it is packed, as all.ci.utilities.yml + # and nuget.org.yml do: Bit.Build.props turns that property on for Release, and a bare `dotnet pack` of a # multi-targeted project with it on fails with NU5026 (the pack-on-build step runs before every TFM's assembly is # on disk). - name: dotnet pack run: | - for project in Bit.Bcrdt Bit.Bcrdt.Blazor Bit.Bcrdt.SignalR Bit.Bcrdt.Server Bit.Bcrdt.Testing; do - dotnet build src/Bcrdt/$project/$project.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Bcrdt/$project/$project.csproj --output ./packages --configuration Release + for project in Bit.Bcrdt Bit.Bcrdt.SignalR Bit.Bcrdt.Server Bit.Bcrdt.Testing; do + dotnet build src/Utilities/Bcrdt/$project/$project.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Bcrdt/$project/$project.csproj --output ./packages --configuration Release done diff --git a/.github/workflows/bit.ci.Bdnd.e2e.yml b/.github/workflows/bit.ci.Bdnd.e2e.yml index 540ceac8f43..0df83011842 100644 --- a/.github/workflows/bit.ci.Bdnd.e2e.yml +++ b/.github/workflows/bit.ci.Bdnd.e2e.yml @@ -2,7 +2,7 @@ name: bit platform CI - Bdnd E2E # The browser suite: the demo (prerendered, then running on WebAssembly) driven in Chromium with Playwright. It # takes far longer than the build-and-unit pipeline (bit.ci.Bdnd.yml), so it runs only when started by hand. See -# src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/README.md for what it proves and how to run it locally. +# src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/README.md for what it proves and how to run it locally. on: workflow_dispatch: @@ -37,20 +37,20 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Bdnd && dotnet workload restore + run: cd src/Utilities/Bdnd && dotnet workload restore - name: Build the demo and the E2E suite run: | - dotnet build src/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj -c Release - dotnet build src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj -c Release + dotnet build src/Utilities/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj -c Release + dotnet build src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Bdnd/Tests/Bit.Bdnd.Tests.E2E && + cd src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bdnd-e2e.trx diff --git a/.github/workflows/bit.ci.Bdnd.yml b/.github/workflows/bit.ci.Bdnd.yml index 16824df015e..92e9530e27d 100644 --- a/.github/workflows/bit.ci.Bdnd.yml +++ b/.github/workflows/bit.ci.Bdnd.yml @@ -7,7 +7,7 @@ on: workflow_call: pull_request: paths: - - 'src/Bdnd/**' + - 'src/Utilities/Bdnd/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -48,15 +48,15 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Bdnd && dotnet workload restore + run: cd src/Utilities/Bdnd && dotnet workload restore - name: dotnet build - run: dotnet build src/Bdnd/Bit.Bdnd.slnx + run: dotnet build src/Utilities/Bdnd/Bit.Bdnd.slnx - name: dotnet test # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/Bdnd/Tests/Bit.Bdnd.Tests && dotnet test --no-build + run: cd src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Belemetry.e2e.yml b/.github/workflows/bit.ci.Belemetry.e2e.yml index 0619082479c..104aa50531d 100644 --- a/.github/workflows/bit.ci.Belemetry.e2e.yml +++ b/.github/workflows/bit.ci.Belemetry.e2e.yml @@ -1,7 +1,7 @@ name: bit platform CI - Belemetry E2E # On demand only (Actions > bit platform CI - Belemetry E2E > Run workflow). The regular build and test pipeline is -# bit.ci.Belemetry.yml. See src/Belemetry/Tests/Bit.Belemetry.Tests.E2E/README.md for what each job proves and how +# bit.ci.Belemetry.yml. See src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/README.md for what each job proves and how # to run it locally. on: @@ -51,13 +51,13 @@ jobs: node-version: 24 - name: Build the web harness host - run: dotnet build src/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj -c Release -f ${{ matrix.framework }} + run: dotnet build src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj -c Release -f ${{ matrix.framework }} - name: Build the E2E suite - run: dotnet build src/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj -c Release + run: dotnet build src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Belemetry/Tests/Bit.Belemetry.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests env: @@ -66,7 +66,7 @@ jobs: BELEMETRY_E2E_SKIP_BUILD: 1 # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Belemetry/Tests/Bit.Belemetry.Tests.E2E && + cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E && dotnet test -c Release --no-build --filter "FullyQualifiedName!~HybridModeTests" --report-trx --report-trx-filename belemetry-e2e-web-${{ matrix.framework }}.trx @@ -115,14 +115,14 @@ jobs: Write-Host "WebView2 Runtime $version" - name: Build the hybrid harness host - run: dotnet build src/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Hybrid/Bit.Belemetry.Tests.Harness.Hybrid.csproj -c Release + run: dotnet build src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Hybrid/Bit.Belemetry.Tests.Harness.Hybrid.csproj -c Release # The hybrid app exports to the receiver of the static SSR web host, which the suite starts from this build output. - name: Build the web harness host - run: dotnet build src/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj -c Release -f net10.0 + run: dotnet build src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Harness.Web/Bit.Belemetry.Tests.Harness.Web.csproj -c Release -f net10.0 - name: Build the E2E suite - run: dotnet build src/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj -c Release + run: dotnet build src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj -c Release # No Playwright browser download: it attaches to the WebView2 Runtime installed above. - name: Run hybrid E2E tests @@ -130,7 +130,7 @@ jobs: BELEMETRY_E2E_CONFIGURATION: Release BELEMETRY_E2E_SKIP_BUILD: 1 run: > - cd src/Belemetry/Tests/Bit.Belemetry.Tests.E2E && + cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E && dotnet test -c Release --no-build --filter "FullyQualifiedName~HybridModeTests" --report-trx --report-trx-filename belemetry-e2e-hybrid.trx @@ -179,19 +179,19 @@ jobs: run: dotnet workload install wasm-tools - name: Publish the web harness host (fails on trim/AOT warnings from Bit.Belemetry) - run: bash src/Belemetry/Tests/Bit.Belemetry.Tests.E2E/publish-gate.sh ${{ github.workspace }}/artifacts/harness-${{ matrix.name }} ${{ matrix.properties }} + run: bash src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/publish-gate.sh ${{ github.workspace }}/artifacts/harness-${{ matrix.name }} ${{ matrix.properties }} - name: Build the E2E suite - run: dotnet build src/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj -c Release + run: dotnet build src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/Bit.Belemetry.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Belemetry/Tests/Bit.Belemetry.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests against the published host env: BELEMETRY_E2E_PUBLISHED_HOST: ${{ github.workspace }}/artifacts/harness-${{ matrix.name }} run: > - cd src/Belemetry/Tests/Bit.Belemetry.Tests.E2E && + cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.E2E && dotnet test -c Release --no-build --filter "FullyQualifiedName!~HybridModeTests" --report-trx --report-trx-filename belemetry-publish-${{ matrix.name }}.trx diff --git a/.github/workflows/bit.ci.Belemetry.yml b/.github/workflows/bit.ci.Belemetry.yml index 59b7b4d828f..e45a6feb243 100644 --- a/.github/workflows/bit.ci.Belemetry.yml +++ b/.github/workflows/bit.ci.Belemetry.yml @@ -8,7 +8,7 @@ on: workflow_call: pull_request: paths: - - 'src/Belemetry/**' + - 'src/Utilities/Belemetry/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -49,27 +49,27 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Belemetry && dotnet workload restore + run: cd src/Utilities/Belemetry && dotnet workload restore - name: dotnet build - run: dotnet build src/Belemetry/Bit.Belemetry.slnx + run: dotnet build src/Utilities/Belemetry/Bit.Belemetry.slnx # The test steps run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - name: dotnet test - run: cd src/Belemetry/Tests/Bit.Belemetry.Tests && dotnet test --no-build + run: cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests && dotnet test --no-build - name: dotnet test (Entity Framework Core instrumentation, net8.0/net9.0/net10.0) - run: cd src/Belemetry/Tests/Bit.Belemetry.Tests.EntityFrameworkCore && dotnet test --no-build + run: cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.EntityFrameworkCore && dotnet test --no-build - name: dotnet test (Hangfire instrumentation, net8.0/net9.0/net10.0) - run: cd src/Belemetry/Tests/Bit.Belemetry.Tests.Hangfire && dotnet test --no-build + run: cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hangfire && dotnet test --no-build - name: npm test (browser script) - run: cd src/Belemetry/Tests/bit-belemetry-js && npm ci && npm test + run: cd src/Utilities/Belemetry/Tests/bit-belemetry-js && npm ci && npm test - name: dotnet test (MCP server and OTLP receiver) - run: cd src/Belemetry/Tests/Bit.Belemetry.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Mcp && dotnet test --no-build - name: dotnet test (hosting - every render mode over HTTP, net8.0/net9.0/net10.0) - run: cd src/Belemetry/Tests/Bit.Belemetry.Tests.Hosting && dotnet test --no-build + run: cd src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests.Hosting && dotnet test --no-build diff --git a/.github/workflows/bit.ci.BevTools.yml b/.github/workflows/bit.ci.BevTools.yml index bd68608add5..640a298e985 100644 --- a/.github/workflows/bit.ci.BevTools.yml +++ b/.github/workflows/bit.ci.BevTools.yml @@ -5,7 +5,7 @@ on: workflow_call: pull_request: paths: - - 'src/BevTools/**' + - 'src/Utilities/BevTools/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -46,23 +46,23 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/BevTools && dotnet workload restore + run: cd src/Utilities/BevTools && dotnet workload restore - name: dotnet build - run: dotnet build src/BevTools/Bit.BevTools.slnx + run: dotnet build src/Utilities/BevTools/Bit.BevTools.slnx - name: dotnet test (instrumentation, stores, diagnostics, panels - net8.0/net9.0/net10.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/BevTools/Tests/Bit.BevTools.Tests && dotnet test --no-build + run: cd src/Utilities/BevTools/Tests/Bit.BevTools.Tests && dotnet test --no-build - name: JS tests (bit-bevtools.js browser bridge) run: | - cd src/BevTools/Tests/bit-bevtools-js + cd src/Utilities/BevTools/Tests/bit-bevtools-js npm ci || npm install npm test # A smoke run only: numbers from shared CI runners are noise, but the harness must keep compiling and finishing. - name: Benchmark harness smoke run - run: dotnet run -c Release --project src/BevTools/Tests/Bit.BevTools.Benchmarks + run: dotnet run -c Release --project src/Utilities/BevTools/Tests/Bit.BevTools.Benchmarks timeout-minutes: 15 diff --git a/.github/workflows/bit.ci.Bink.e2e.yml b/.github/workflows/bit.ci.Bink.e2e.yml index 9f2e87a6b7e..0267a4d341d 100644 --- a/.github/workflows/bit.ci.Bink.e2e.yml +++ b/.github/workflows/bit.ci.Bink.e2e.yml @@ -2,7 +2,7 @@ name: bit platform CI - Bink E2E # The demo app in Chromium: drawing with mouse, touch and pen input, keyboard handling, display scaling and every # demo page, against the Release build that ships. It takes far longer than the build-and-unit pipeline -# (bit.ci.Bink.yml), so it runs only when started by hand. See src/Bink/Tests/Bit.Bink.Tests.E2E/README.md for +# (bit.ci.Bink.yml), so it runs only when started by hand. See src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/README.md for # what the browser suite proves and how to run it locally. on: @@ -38,16 +38,16 @@ jobs: - name: Build the demo and the E2E suite run: | - dotnet build src/Bink/Bit.Bink.Demo/Server/Bit.Bink.Demo.Server.csproj -c Release - dotnet build src/Bink/Tests/Bit.Bink.Tests.E2E/Bit.Bink.Tests.E2E.csproj -c Release + dotnet build src/Utilities/Bink/Demo/Server/Bit.Bink.Demo.Server.csproj -c Release + dotnet build src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/Bit.Bink.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Bink/Tests/Bit.Bink.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Bink/Tests/Bit.Bink.Tests.E2E && + cd src/Utilities/Bink/Tests/Bit.Bink.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bink-e2e.trx diff --git a/.github/workflows/bit.ci.Bink.yml b/.github/workflows/bit.ci.Bink.yml index 1a5f34e46ac..c62aa533bcd 100644 --- a/.github/workflows/bit.ci.Bink.yml +++ b/.github/workflows/bit.ci.Bink.yml @@ -8,7 +8,7 @@ on: workflow_call: pull_request: paths: - - 'src/Bink/**' + - 'src/Utilities/Bink/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -51,15 +51,15 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Bink && dotnet workload restore + run: cd src/Utilities/Bink && dotnet workload restore - name: dotnet build - run: dotnet build src/Bink/Bit.Bink.slnx + run: dotnet build src/Utilities/Bink/Bit.Bink.slnx - name: dotnet test (engine + component tests, net8.0/net9.0/net10.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/Bink/Tests/Bit.Bink.Tests && dotnet test --no-build + run: cd src/Utilities/Bink/Tests/Bit.Bink.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Bink/Tests/Bit.Bink.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Bink/Tests/Bit.Bink.Tests.Mcp && dotnet test --no-build diff --git a/.github/workflows/bit.ci.BlazeDb.e2e.yml b/.github/workflows/bit.ci.BlazeDb.e2e.yml index 5fb80b92575..45918140df3 100644 --- a/.github/workflows/bit.ci.BlazeDb.e2e.yml +++ b/.github/workflows/bit.ci.BlazeDb.e2e.yml @@ -3,7 +3,7 @@ name: bit platform CI - BlazeDb E2E # The demo app in Chromium: OPFS persistence across reloads, the Web Lock election between tabs, the browser modules # (OPFS, IndexedDB, WebCrypto, BroadcastChannel) and every demo page, against the Release build that ships. It takes # far longer than the build-and-unit pipeline (bit.ci.BlazeDb.yml), so it runs only when started by hand. See -# src/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/README.md for what the suite proves and how to run it locally. +# src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/README.md for what the suite proves and how to run it locally. on: workflow_dispatch: @@ -38,16 +38,16 @@ jobs: - name: Build the demo and the E2E suite run: | - dotnet build src/BlazeDb/Demo/Server/Bit.BlazeDb.Demo.Server.csproj -c Release - dotnet build src/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Bit.BlazeDb.Tests.E2E.csproj -c Release + dotnet build src/Utilities/BlazeDb/Demo/Server/Bit.BlazeDb.Demo.Server.csproj -c Release + dotnet build src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/Bit.BlazeDb.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E && + cd src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename blazedb-e2e.trx diff --git a/.github/workflows/bit.ci.BlazeDb.yml b/.github/workflows/bit.ci.BlazeDb.yml index 4fbd3193784..936d4a7d35f 100644 --- a/.github/workflows/bit.ci.BlazeDb.yml +++ b/.github/workflows/bit.ci.BlazeDb.yml @@ -8,7 +8,7 @@ on: workflow_call: pull_request: paths: - - 'src/BlazeDb/**' + - 'src/Utilities/BlazeDb/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -51,15 +51,15 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/BlazeDb && dotnet workload restore + run: cd src/Utilities/BlazeDb && dotnet workload restore - name: dotnet build - run: dotnet build src/BlazeDb/Bit.BlazeDb.slnx + run: dotnet build src/Utilities/BlazeDb/Bit.BlazeDb.slnx - name: dotnet test (engine + EF Core provider, net8.0/net9.0/net10.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/BlazeDb/Tests/Bit.BlazeDb.Tests && dotnet test --no-build + run: cd src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/BlazeDb/Tests/Bit.BlazeDb.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/BlazeDb/Tests/Bit.BlazeDb.Tests.Mcp && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Blex.e2e.yml b/.github/workflows/bit.ci.Blex.e2e.yml index 222fb7f6d72..6fe2e5ce9e4 100644 --- a/.github/workflows/bit.ci.Blex.e2e.yml +++ b/.github/workflows/bit.ci.Blex.e2e.yml @@ -2,7 +2,7 @@ name: bit platform CI - Blex E2E # The cross-host suites: every web render mode in Chromium on net10.0/net9.0/net8.0, Blazor Hybrid in WebView2, # and trimmed/AOT publishes. They take far longer than the build-and-unit pipeline (bit.ci.Blex.yml), so they -# run only when started by hand. See src/Blex/Tests/Bit.Blex.Tests.E2E/README.md for what each job proves and +# run only when started by hand. See src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/README.md for what each job proves and # how to run it locally. on: @@ -52,13 +52,13 @@ jobs: node-version: 24 - name: Build the web harness host - run: dotnet build src/Blex/Tests/Bit.Blex.Tests.Harness.Web/Bit.Blex.Tests.Harness.Web.csproj -c Release -f ${{ matrix.framework }} + run: dotnet build src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Web/Bit.Blex.Tests.Harness.Web.csproj -c Release -f ${{ matrix.framework }} - name: Build the E2E suite - run: dotnet build src/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj -c Release + run: dotnet build src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Blex/Tests/Bit.Blex.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests env: @@ -67,7 +67,7 @@ jobs: BLEX_E2E_SKIP_BUILD: 1 # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Blex/Tests/Bit.Blex.Tests.E2E && + cd src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E && dotnet test -c Release --no-build --filter "FullyQualifiedName!~HybridModeTests" --report-trx --report-trx-filename blex-e2e-web-${{ matrix.framework }}.trx @@ -117,10 +117,10 @@ jobs: Write-Host "WebView2 Runtime $version" - name: Build the hybrid harness host - run: dotnet build src/Blex/Tests/Bit.Blex.Tests.Harness.Hybrid/Bit.Blex.Tests.Harness.Hybrid.csproj -c Release + run: dotnet build src/Utilities/Blex/Tests/Bit.Blex.Tests.Harness.Hybrid/Bit.Blex.Tests.Harness.Hybrid.csproj -c Release - name: Build the E2E suite - run: dotnet build src/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj -c Release + run: dotnet build src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj -c Release # No Playwright browser download: it attaches to the WebView2 Runtime installed above. - name: Run hybrid E2E tests @@ -128,7 +128,7 @@ jobs: BLEX_E2E_CONFIGURATION: Release BLEX_E2E_SKIP_BUILD: 1 run: > - cd src/Blex/Tests/Bit.Blex.Tests.E2E && + cd src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E && dotnet test -c Release --no-build --filter "FullyQualifiedName~HybridModeTests" --report-trx --report-trx-filename blex-e2e-hybrid.trx @@ -177,19 +177,19 @@ jobs: run: dotnet workload install wasm-tools - name: Publish the web harness host (fails on trim/AOT warnings from Bit.Blex) - run: bash src/Blex/Tests/Bit.Blex.Tests.E2E/publish-gate.sh ${{ github.workspace }}/artifacts/harness-${{ matrix.name }} ${{ matrix.properties }} + run: bash src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/publish-gate.sh ${{ github.workspace }}/artifacts/harness-${{ matrix.name }} ${{ matrix.properties }} - name: Build the E2E suite - run: dotnet build src/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj -c Release + run: dotnet build src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/Bit.Blex.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Blex/Tests/Bit.Blex.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests against the published host env: BLEX_E2E_PUBLISHED_HOST: ${{ github.workspace }}/artifacts/harness-${{ matrix.name }} run: > - cd src/Blex/Tests/Bit.Blex.Tests.E2E && + cd src/Utilities/Blex/Tests/Bit.Blex.Tests.E2E && dotnet test -c Release --no-build --filter "FullyQualifiedName!~HybridModeTests" --report-trx --report-trx-filename blex-publish-${{ matrix.name }}.trx diff --git a/.github/workflows/bit.ci.Blex.yml b/.github/workflows/bit.ci.Blex.yml index e295afc12aa..b4707c063c0 100644 --- a/.github/workflows/bit.ci.Blex.yml +++ b/.github/workflows/bit.ci.Blex.yml @@ -8,7 +8,7 @@ on: workflow_call: pull_request: paths: - - 'src/Blex/**' + - 'src/Utilities/Blex/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -51,27 +51,27 @@ jobs: node-version: 24 - name: dotnet build - run: dotnet build src/Blex/Bit.Blex.slnx + run: dotnet build src/Utilities/Blex/Bit.Blex.slnx - name: dotnet test (runtime, Blazor, MAUI and generated code - net8.0/net9.0/net10.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/Blex/Tests/Bit.Blex.Tests && dotnet test --no-build + run: cd src/Utilities/Blex/Tests/Bit.Blex.Tests && dotnet test --no-build - name: dotnet test (source generator) - run: cd src/Blex/Tests/Bit.Blex.Tests.Generators && dotnet test --no-build + run: cd src/Utilities/Blex/Tests/Bit.Blex.Tests.Generators && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Blex/Tests/Bit.Blex.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Blex/Tests/Bit.Blex.Tests.Mcp && dotnet test --no-build # Packing on every run means a broken nuspec, a missing analyzer or a stale readme path is caught # here rather than at release time. Each project is built in Release with GeneratePackageOnBuild - # off before it is packed, as all.ci.yml and nuget.org.yml do: Bit.Build.props turns that - # property on for Release, and a bare `dotnet pack` of a multi-targeted project with it on fails - # with NU5026 (the pack-on-build step runs before every TFM's assembly is on disk). + # off before it is packed, as all.ci.utilities.yml and nuget.org.yml do: Bit.Build.props turns + # that property on for Release, and a bare `dotnet pack` of a multi-targeted project with it on + # fails with NU5026 (the pack-on-build step runs before every TFM's assembly is on disk). - name: dotnet pack run: | - for project in Bit.Blex Bit.Blex.Generators Bit.Blex.Blazor Bit.Blex.Maui Bit.Blex.Testing; do - dotnet build src/Blex/$project/$project.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - dotnet pack src/Blex/$project/$project.csproj --output ./packages --configuration Release + for project in Bit.Blex Bit.Blex.Maui Bit.Blex.Testing; do + dotnet build src/Utilities/Blex/$project/$project.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + dotnet pack src/Utilities/Blex/$project/$project.csproj --output ./packages --configuration Release done diff --git a/.github/workflows/bit.ci.Blow.e2e.yml b/.github/workflows/bit.ci.Blow.e2e.yml index 0f1a0230fbd..f157c777a8c 100644 --- a/.github/workflows/bit.ci.Blow.e2e.yml +++ b/.github/workflows/bit.ci.Blow.e2e.yml @@ -2,7 +2,7 @@ name: bit platform CI - Blow E2E # The browser suite: the demo (prerendered, then running on WebAssembly) driven in Chromium with Playwright. It # takes far longer than the build-and-unit pipeline (bit.ci.Blow.yml), so it runs only when started by hand. See -# src/Blow/Tests/Bit.Blow.Tests.E2E/README.md for what it proves and how to run it locally. +# src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/README.md for what it proves and how to run it locally. on: workflow_dispatch: @@ -37,20 +37,20 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Blow && dotnet workload restore + run: cd src/Utilities/Blow && dotnet workload restore - name: Build the demo and the E2E suite run: | - dotnet build src/Blow/Demo/Server/Bit.Blow.Demo.Server.csproj -c Release - dotnet build src/Blow/Tests/Bit.Blow.Tests.E2E/Bit.Blow.Tests.E2E.csproj -c Release + dotnet build src/Utilities/Blow/Demo/Server/Bit.Blow.Demo.Server.csproj -c Release + dotnet build src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/Bit.Blow.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Blow/Tests/Bit.Blow.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Blow/Tests/Bit.Blow.Tests.E2E && + cd src/Utilities/Blow/Tests/Bit.Blow.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename blow-e2e.trx diff --git a/.github/workflows/bit.ci.Blow.yml b/.github/workflows/bit.ci.Blow.yml index 9622077e520..1a3f5708089 100644 --- a/.github/workflows/bit.ci.Blow.yml +++ b/.github/workflows/bit.ci.Blow.yml @@ -7,7 +7,7 @@ on: workflow_call: pull_request: paths: - - 'src/Blow/**' + - 'src/Utilities/Blow/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -48,15 +48,15 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Blow && dotnet workload restore + run: cd src/Utilities/Blow && dotnet workload restore - name: dotnet build - run: dotnet build src/Blow/Bit.Blow.slnx + run: dotnet build src/Utilities/Blow/Bit.Blow.slnx - name: dotnet test # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/Blow/Tests/Bit.Blow.Tests && dotnet test --no-build + run: cd src/Utilities/Blow/Tests/Bit.Blow.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Blow/Tests/Bit.Blow.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Blow/Tests/Bit.Blow.Tests.Mcp && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Bmage.e2e.yml b/.github/workflows/bit.ci.Bmage.e2e.yml index 457adb4c3af..c6850aaab2a 100644 --- a/.github/workflows/bit.ci.Bmage.e2e.yml +++ b/.github/workflows/bit.ci.Bmage.e2e.yml @@ -1,7 +1,7 @@ name: bit platform CI - Bmage E2E # The demo website driven in Chromium. It takes far longer than the build-and-unit pipeline (bit.ci.Bmage.yml), so -# it runs only when started by hand. See src/Bmage/Tests/Bit.Bmage.Tests.E2E/README.md for what the suite covers and +# it runs only when started by hand. See src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/README.md for what the suite covers and # how to run it locally. on: @@ -38,13 +38,13 @@ jobs: node-version: 24 - name: Build the demo website - run: dotnet build src/Bmage/Bit.Bmage.Demo/Server/Bit.Bmage.Demo.Server.csproj -c Release + run: dotnet build src/Utilities/Bmage/Demo/Server/Bit.Bmage.Demo.Server.csproj -c Release - name: Build the E2E suite - run: dotnet build src/Bmage/Tests/Bit.Bmage.Tests.E2E/Bit.Bmage.Tests.E2E.csproj -c Release + run: dotnet build src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/Bit.Bmage.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Bmage/Tests/Bit.Bmage.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests env: @@ -52,7 +52,7 @@ jobs: BMAGE_E2E_SKIP_BUILD: 1 # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Bmage/Tests/Bit.Bmage.Tests.E2E && + cd src/Utilities/Bmage/Tests/Bit.Bmage.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bmage-e2e.trx diff --git a/.github/workflows/bit.ci.Bmage.yml b/.github/workflows/bit.ci.Bmage.yml index 37aa73613d7..4ed21b6f426 100644 --- a/.github/workflows/bit.ci.Bmage.yml +++ b/.github/workflows/bit.ci.Bmage.yml @@ -7,7 +7,7 @@ on: workflow_call: pull_request: paths: - - 'src/Bmage/**' + - 'src/Utilities/Bmage/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -50,19 +50,19 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Bmage && dotnet workload restore + run: cd src/Utilities/Bmage && dotnet workload restore - name: InstallNodejsDependencies continue-on-error: true # Error MSB4057, not all csproj files have InstallNodejsDependencies target. - run: dotnet build src/Bmage/Bit.Bmage.slnx -t:InstallNodejsDependencies -m:1 -f net10.0 + run: dotnet build src/Utilities/Bmage/Bit.Bmage.slnx -t:InstallNodejsDependencies -m:1 -f net10.0 - name: dotnet build - run: dotnet build src/Bmage/Bit.Bmage.slnx + run: dotnet build src/Utilities/Bmage/Bit.Bmage.slnx # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - name: dotnet test (engine tests, every target framework) - run: cd src/Bmage/Tests/Bit.Bmage.Tests && dotnet test --no-build + run: cd src/Utilities/Bmage/Tests/Bit.Bmage.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Bmage/Tests/Bit.Bmage.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Bmage/Tests/Bit.Bmage.Tests.Mcp && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Bmotion.e2e.yml b/.github/workflows/bit.ci.Bmotion.e2e.yml index c462e4e6e3a..a136b799475 100644 --- a/.github/workflows/bit.ci.Bmotion.e2e.yml +++ b/.github/workflows/bit.ci.Bmotion.e2e.yml @@ -11,7 +11,7 @@ permissions: jobs: # The browser suite: every harness page in a real Chromium, once per render mode - and on every runtime the - # library ships for where the runtime is what differs. See src/Bmotion/Tests/Bit.Bmotion.Tests.E2E/README.md. + # library ships for where the runtime is what differs. See src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/README.md. e2e: name: Bmotion E2E - ${{ matrix.host }} (${{ matrix.framework }}) runs-on: ubuntu-24.04 @@ -56,16 +56,16 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Bmotion && dotnet workload restore + run: cd src/Utilities/Bmotion && dotnet workload restore - name: Build the harness host - run: dotnet build src/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web/Bit.Bmotion.Tests.Harness.Web.csproj -c Release -f ${{ matrix.framework }} + run: dotnet build src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Harness.Web/Bit.Bmotion.Tests.Harness.Web.csproj -c Release -f ${{ matrix.framework }} - name: Build the E2E suite - run: dotnet build src/Bmotion/Tests/Bit.Bmotion.Tests.E2E/Bit.Bmotion.Tests.E2E.csproj -c Release + run: dotnet build src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/Bit.Bmotion.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Bmotion/Tests/Bit.Bmotion.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests env: @@ -75,7 +75,7 @@ jobs: BMOTION_E2E_SKIP_BUILD: 1 # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Bmotion/Tests/Bit.Bmotion.Tests.E2E && + cd src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bmotion-e2e-${{ matrix.host }}-${{ matrix.framework }}.trx diff --git a/.github/workflows/bit.ci.Bmotion.yml b/.github/workflows/bit.ci.Bmotion.yml index 4fd92396433..0ff57df1136 100644 --- a/.github/workflows/bit.ci.Bmotion.yml +++ b/.github/workflows/bit.ci.Bmotion.yml @@ -5,7 +5,7 @@ on: workflow_call: pull_request: paths: - - 'src/Bmotion/**' + - 'src/Utilities/Bmotion/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -46,27 +46,27 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Bmotion && dotnet workload restore + run: cd src/Utilities/Bmotion && dotnet workload restore - name: InstallNodejsDependencies continue-on-error: true # Error MSB4057, not all csproj files have InstallNodejsDependencies target. - run: dotnet build src/Bmotion/Bit.Bmotion.slnx -t:InstallNodejsDependencies -m:1 -f net10.0 + run: dotnet build src/Utilities/Bmotion/Bit.Bmotion.slnx -t:InstallNodejsDependencies -m:1 -f net10.0 - name: dotnet build - run: dotnet build src/Bmotion/Bit.Bmotion.slnx + run: dotnet build src/Utilities/Bmotion/Bit.Bmotion.slnx - name: dotnet test (C# engine + component tests) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). Every target framework the # library ships for: .NET 8, 9 and 10 each get their own run of the suite. - run: cd src/Bmotion/Tests/Bit.Bmotion.Tests && dotnet test --no-build + run: cd src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Bmotion/Tests/Bit.Bmotion.Tests.Mcp && dotnet test -f net10.0 --no-build + run: cd src/Utilities/Bmotion/Tests/Bit.Bmotion.Tests.Mcp && dotnet test -f net10.0 --no-build - name: JS tests (bit-bmotion.js drag/scroll math) run: | - cd src/Bmotion/Tests/bit-bmotion-js + cd src/Utilities/Bmotion/Tests/bit-bmotion-js npm ci || npm install npm test diff --git a/.github/workflows/bit.ci.Bonboarding.yml b/.github/workflows/bit.ci.Bonboarding.yml index 11b8f433c67..447705b381e 100644 --- a/.github/workflows/bit.ci.Bonboarding.yml +++ b/.github/workflows/bit.ci.Bonboarding.yml @@ -5,7 +5,7 @@ on: workflow_call: pull_request: paths: - - 'src/Bonboarding/**' + - 'src/Utilities/Bonboarding/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -46,15 +46,15 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Bonboarding && dotnet workload restore + run: cd src/Utilities/Bonboarding && dotnet workload restore - name: dotnet build - run: dotnet build src/Bonboarding/Bit.Bonboarding.slnx + run: dotnet build src/Utilities/Bonboarding/Bit.Bonboarding.slnx - name: dotnet test # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/Bonboarding/Tests/Bit.Bonboarding.Tests && dotnet test --no-build + run: cd src/Utilities/Bonboarding/Tests/Bit.Bonboarding.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Bonboarding/Tests/Bit.Bonboarding.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Bonboarding/Tests/Bit.Bonboarding.Tests.Mcp && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Borm.e2e.yml b/.github/workflows/bit.ci.Borm.e2e.yml index 12b8da1a9d7..6afc49bc786 100644 --- a/.github/workflows/bit.ci.Borm.e2e.yml +++ b/.github/workflows/bit.ci.Borm.e2e.yml @@ -2,7 +2,7 @@ name: bit platform CI - Borm E2E # The browser suite: the demo (prerendered, then running on WebAssembly) driven in Chromium with Playwright. It # takes far longer than the build-and-unit pipeline (bit.ci.Borm.yml), so it runs only when started by hand. See -# src/Borm/Tests/Bit.Borm.Tests.E2E/README.md for what it proves and how to run it locally. +# src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/README.md for what it proves and how to run it locally. on: workflow_dispatch: @@ -37,20 +37,20 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Borm && dotnet workload restore + run: cd src/Utilities/Borm && dotnet workload restore - name: Build the demo and the E2E suite run: | - dotnet build src/Borm/Demo/Server/Bit.Borm.Demo.Server.csproj -c Release - dotnet build src/Borm/Tests/Bit.Borm.Tests.E2E/Bit.Borm.Tests.E2E.csproj -c Release + dotnet build src/Utilities/Borm/Demo/Server/Bit.Borm.Demo.Server.csproj -c Release + dotnet build src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/Bit.Borm.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Borm/Tests/Bit.Borm.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Borm/Tests/Bit.Borm.Tests.E2E && + cd src/Utilities/Borm/Tests/Bit.Borm.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename borm-e2e.trx diff --git a/.github/workflows/bit.ci.Borm.yml b/.github/workflows/bit.ci.Borm.yml index bbe269c53d2..e0f85cc3ede 100644 --- a/.github/workflows/bit.ci.Borm.yml +++ b/.github/workflows/bit.ci.Borm.yml @@ -7,7 +7,7 @@ on: workflow_call: pull_request: paths: - - 'src/Borm/**' + - 'src/Utilities/Borm/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -48,15 +48,15 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Borm && dotnet workload restore + run: cd src/Utilities/Borm && dotnet workload restore - name: dotnet build - run: dotnet build src/Borm/Bit.Borm.slnx + run: dotnet build src/Utilities/Borm/Bit.Borm.slnx - name: dotnet test # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/Borm/Tests/Bit.Borm.Tests && dotnet test --no-build + run: cd src/Utilities/Borm/Tests/Bit.Borm.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Borm/Tests/Bit.Borm.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Borm/Tests/Bit.Borm.Tests.Mcp && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Bortable.e2e.yml b/.github/workflows/bit.ci.Bortable.e2e.yml index f1ca7511f4e..f0cdb99c4ef 100644 --- a/.github/workflows/bit.ci.Bortable.e2e.yml +++ b/.github/workflows/bit.ci.Bortable.e2e.yml @@ -2,7 +2,7 @@ name: bit platform CI - Bortable E2E # The browser suite: the demo (prerendered, then running on WebAssembly) driven in Chromium with Playwright. It # takes far longer than the build-and-unit pipeline (bit.ci.Bortable.yml), so it runs only when started by hand. See -# src/Bortable/Tests/Bit.Bortable.Tests.E2E/README.md for what it proves and how to run it locally. +# src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/README.md for what it proves and how to run it locally. on: workflow_dispatch: @@ -37,20 +37,20 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Bortable && dotnet workload restore + run: cd src/Utilities/Bortable && dotnet workload restore - name: Build the demo and the E2E suite run: | - dotnet build src/Bortable/Demo/Server/Bit.Bortable.Demo.Server.csproj -c Release - dotnet build src/Bortable/Tests/Bit.Bortable.Tests.E2E/Bit.Bortable.Tests.E2E.csproj -c Release + dotnet build src/Utilities/Bortable/Demo/Server/Bit.Bortable.Demo.Server.csproj -c Release + dotnet build src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/Bit.Bortable.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Bortable/Tests/Bit.Bortable.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Bortable/Tests/Bit.Bortable.Tests.E2E && + cd src/Utilities/Bortable/Tests/Bit.Bortable.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bortable-e2e.trx diff --git a/.github/workflows/bit.ci.Bortable.yml b/.github/workflows/bit.ci.Bortable.yml index b7847125459..baad2c6b142 100644 --- a/.github/workflows/bit.ci.Bortable.yml +++ b/.github/workflows/bit.ci.Bortable.yml @@ -7,7 +7,7 @@ on: workflow_call: pull_request: paths: - - 'src/Bortable/**' + - 'src/Utilities/Bortable/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -48,15 +48,15 @@ jobs: node-version: 24 - name: dotnet workload restore - run: cd src/Bortable && dotnet workload restore + run: cd src/Utilities/Bortable && dotnet workload restore - name: dotnet build - run: dotnet build src/Bortable/Bit.Bortable.slnx + run: dotnet build src/Utilities/Bortable/Bit.Bortable.slnx - name: dotnet test # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/Bortable/Tests/Bit.Bortable.Tests && dotnet test --no-build + run: cd src/Utilities/Bortable/Tests/Bit.Bortable.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Bortable/Tests/Bit.Bortable.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Bortable/Tests/Bit.Bortable.Tests.Mcp && dotnet test --no-build diff --git a/.github/workflows/bit.ci.Bsqlite.e2e.yml b/.github/workflows/bit.ci.Bsqlite.e2e.yml index 1119711044b..e9b1fb51e2a 100644 --- a/.github/workflows/bit.ci.Bsqlite.e2e.yml +++ b/.github/workflows/bit.ci.Bsqlite.e2e.yml @@ -2,7 +2,7 @@ name: bit platform CI - Bsqlite E2E # The worker, the engine builds and every VFS in Chromium, plus every page of the demo website. It takes far longer # than the build-and-unit pipeline (bit.ci.Bsqlite.yml), so it runs only when started by hand. See -# src/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/README.md for what the browser suite proves and how to run it locally. +# src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/README.md for what the browser suite proves and how to run it locally. on: workflow_dispatch: @@ -53,16 +53,16 @@ jobs: # Building the E2E suite builds the libraries too (it serves their compiled modules), but not the demo. - name: Build the demo and the E2E suite run: | - dotnet build src/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj -c Release - dotnet build src/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Bit.Bsqlite.Tests.E2E.csproj -c Release + dotnet build src/Utilities/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj -c Release + dotnet build src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/Bit.Bsqlite.Tests.E2E.csproj -c Release - name: Install Playwright Chromium - run: pwsh src/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium + run: pwsh src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium - name: Run E2E tests # Run from inside src so src/global.json's Microsoft.Testing.Platform runner setting applies. run: > - cd src/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E && + cd src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bsqlite-e2e.trx diff --git a/.github/workflows/bit.ci.Bsqlite.yml b/.github/workflows/bit.ci.Bsqlite.yml index f2a18265aad..f3fbbca6d8f 100644 --- a/.github/workflows/bit.ci.Bsqlite.yml +++ b/.github/workflows/bit.ci.Bsqlite.yml @@ -8,7 +8,7 @@ on: workflow_call: pull_request: paths: - - 'src/Bsqlite/**' + - 'src/Utilities/Bsqlite/**' env: DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: true @@ -46,31 +46,30 @@ jobs: with: dotnet-version: 8.0.x - # Node runs the TypeScript build, and the restore of the storage packages runs it to rewrite the imports of - # the wa-sqlite VFSes they vendor - so it has to be there before the first restore. + # Node runs the TypeScript build, so it has to be there before the first build. - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: node-version: 24 - name: dotnet workload restore - run: cd src/Bsqlite && dotnet workload restore + run: cd src/Utilities/Bsqlite && dotnet workload restore # The restore also fetches the pinned wa-sqlite engine and VFSes and the build verifies their checksums (see - # src/Bsqlite/Bit.Bsqlite/engine/wa-sqlite.lock.props); none of it is committed. + # src/Utilities/Bsqlite/Bit.Bsqlite/engine/wa-sqlite.lock.props); none of it is committed. - name: dotnet build - run: dotnet build src/Bsqlite/Bit.Bsqlite.slnx + run: dotnet build src/Utilities/Bsqlite/Bit.Bsqlite.slnx - name: dotnet test (ADO.NET, EF Core and storage tests, net8.0/net9.0/net10.0) # Run from inside src so src/global.json's "test" runner setting applies # (from the repo root the SDK falls back to the unsupported VSTest path). - run: cd src/Bsqlite/Tests/Bit.Bsqlite.Tests && dotnet test --no-build + run: cd src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests && dotnet test --no-build - name: dotnet test (MCP server) - run: cd src/Bsqlite/Tests/Bit.Bsqlite.Tests.Mcp && dotnet test --no-build + run: cd src/Utilities/Bsqlite/Tests/Bit.Bsqlite.Tests.Mcp && dotnet test --no-build - name: JS tests (decimal arithmetic, change-notification filter, function-table patch) # The wasm-table tests read the engine builds the restore above vendored into Bit.Bsqlite/wwwroot/engine. run: | - cd src/Bsqlite/Tests/bit-bsqlite-js + cd src/Utilities/Bsqlite/Tests/bit-bsqlite-js npm ci || npm install npm test diff --git a/.github/workflows/blazedb.demo.cd.yml b/.github/workflows/blazedb.demo.cd.yml index 3e6a49538a5..71329584265 100644 --- a/.github/workflows/blazedb.demo.cd.yml +++ b/.github/workflows/blazedb.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/BlazeDb/Demo/Server/Bit.BlazeDb.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/BlazeDb/Demo/Server/Bit.BlazeDb.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/blex.demo.cd.yml b/.github/workflows/blex.demo.cd.yml index 297f25bc4e0..137316e0ba9 100644 --- a/.github/workflows/blex.demo.cd.yml +++ b/.github/workflows/blex.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Blex/Demo/Server/Bit.Blex.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Blex/Demo/Server/Bit.Blex.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/blow.demo.cd.yml b/.github/workflows/blow.demo.cd.yml index 0c95a275e7b..b883197c55d 100644 --- a/.github/workflows/blow.demo.cd.yml +++ b/.github/workflows/blow.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Blow/Demo/Server/Bit.Blow.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Blow/Demo/Server/Bit.Blow.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/bmage.demo.cd.yml b/.github/workflows/bmage.demo.cd.yml index b0976ddde4e..1c7ebae2b95 100644 --- a/.github/workflows/bmage.demo.cd.yml +++ b/.github/workflows/bmage.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Bmage/Bit.Bmage.Demo/Server/Bit.Bmage.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Bmage/Demo/Server/Bit.Bmage.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/bmotion.demo.cd.yml b/.github/workflows/bmotion.demo.cd.yml index e2c9c8aa145..39992e4b8a0 100644 --- a/.github/workflows/bmotion.demo.cd.yml +++ b/.github/workflows/bmotion.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Bmotion/Bit.Bmotion.Demo/Server/Bit.Bmotion.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Bmotion/Demo/Server/Bit.Bmotion.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/bonboarding.demo.cd.yml b/.github/workflows/bonboarding.demo.cd.yml index 56cc94bbf1a..519c9821e8a 100644 --- a/.github/workflows/bonboarding.demo.cd.yml +++ b/.github/workflows/bonboarding.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Bonboarding/Demo/Server/Bit.Bonboarding.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Bonboarding/Demo/Server/Bit.Bonboarding.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/borm.demo.cd.yml b/.github/workflows/borm.demo.cd.yml index 5aa31335a0e..6d2d2368757 100644 --- a/.github/workflows/borm.demo.cd.yml +++ b/.github/workflows/borm.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Borm/Demo/Server/Bit.Borm.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Borm/Demo/Server/Bit.Borm.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/bortable.demo.cd.yml b/.github/workflows/bortable.demo.cd.yml index 7418753fcd2..9c7a4b02f43 100644 --- a/.github/workflows/bortable.demo.cd.yml +++ b/.github/workflows/bortable.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Bortable/Demo/Server/Bit.Bortable.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Bortable/Demo/Server/Bit.Bortable.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/bsqlite.demo.cd.yml b/.github/workflows/bsqlite.demo.cd.yml index 8ecc6ad4aad..6c04ca01b98 100644 --- a/.github/workflows/bsqlite.demo.cd.yml +++ b/.github/workflows/bsqlite.demo.cd.yml @@ -33,7 +33,7 @@ jobs: run: cd src && dotnet workload install wasm-tools - name: Publish - run: dotnet publish src/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true + run: dotnet publish src/Utilities/Bsqlite/Demo/Server/Bit.Bsqlite.Demo.Server.csproj -c Release -o server -p:Version="${{ vars.APP_VERSION}}" -p:InvariantGlobalization=true # Server-owned; C:\inetpub keeps its own copies. - name: Strip server-owned files from bundle diff --git a/.github/workflows/nuget.org.yml b/.github/workflows/nuget.org.yml index 52d6b4542a7..5066d446413 100644 --- a/.github/workflows/nuget.org.yml +++ b/.github/workflows/nuget.org.yml @@ -6,23 +6,23 @@ on: branches: - 'main' paths: - - 'src/Balette/**' - - 'src/BbScanner/**' - - 'src/Bdnd/**' - - 'src/BevTools/**' - - 'src/Belemetry/**' + - 'src/Utilities/Balette/**' + - 'src/Utilities/BbScanner/**' + - 'src/Utilities/Bdnd/**' + - 'src/Utilities/BevTools/**' + - 'src/Utilities/Belemetry/**' - 'src/BlazorUI/**' - - 'src/Bink/**' - - 'src/BlazeDb/**' - - 'src/Blow/**' - - 'src/Borm/**' - - 'src/Bcrdt/**' - - 'src/Blex/**' - - 'src/Bmage/**' - - 'src/Bsqlite/**' - - 'src/Bmotion/**' - - 'src/Bonboarding/**' - - 'src/Bortable/**' + - 'src/Utilities/Bink/**' + - 'src/Utilities/BlazeDb/**' + - 'src/Utilities/Blow/**' + - 'src/Utilities/Borm/**' + - 'src/Utilities/Bcrdt/**' + - 'src/Utilities/Blex/**' + - 'src/Utilities/Bmage/**' + - 'src/Utilities/Bsqlite/**' + - 'src/Utilities/Bmotion/**' + - 'src/Utilities/Bonboarding/**' + - 'src/Utilities/Bortable/**' - 'src/Brouter/**' - 'src/Bswup/**' - 'src/Butil/**' @@ -161,195 +161,140 @@ jobs: - name: dotnet pack Besql run: dotnet pack src/Besql/Bit.Besql/Bit.Besql.csproj --output . --configuration Release - - name: dotnet build BevTools.Abstractions - run: dotnet build src/BevTools/Bit.BevTools.Abstractions/Bit.BevTools.Abstractions.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack BevTools.Abstractions - run: dotnet pack src/BevTools/Bit.BevTools.Abstractions/Bit.BevTools.Abstractions.csproj --output . --configuration Release - - name: dotnet build BevTools - run: dotnet build src/BevTools/Bit.BevTools/Bit.BevTools.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack BevTools - run: dotnet pack src/BevTools/Bit.BevTools/Bit.BevTools.csproj --output . --configuration Release + run: dotnet pack src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj --output . --configuration Release - name: dotnet build BevTools.Server - run: dotnet build src/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack BevTools.Server - run: dotnet pack src/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj --output . --configuration Release + run: dotnet pack src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj --output . --configuration Release - name: dotnet build Bmotion - run: dotnet build src/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bmotion - run: dotnet pack src/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj --output . --configuration Release - - - name: dotnet build Bmage.Core - run: dotnet build src/Bmage/Bit.Bmage.Core/Bit.Bmage.Core.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bmage.Core - run: dotnet pack src/Bmage/Bit.Bmage.Core/Bit.Bmage.Core.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj --output . --configuration Release - name: dotnet build Bmage - run: dotnet build src/Bmage/Bit.Bmage/Bit.Bmage.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bmage/Bit.Bmage/Bit.Bmage.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bmage - run: dotnet pack src/Bmage/Bit.Bmage/Bit.Bmage.csproj --output . --configuration Release - - - name: dotnet build Bmage.Editor - run: dotnet build src/Bmage/Bit.Bmage.Editor/Bit.Bmage.Editor.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bmage.Editor - run: dotnet pack src/Bmage/Bit.Bmage.Editor/Bit.Bmage.Editor.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bmage/Bit.Bmage/Bit.Bmage.csproj --output . --configuration Release - name: dotnet build Bsqlite - run: dotnet build src/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bsqlite - run: dotnet pack src/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj --output . --configuration Release - - - name: dotnet build Bsqlite.Storage.Opfs - run: dotnet build src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Bit.Bsqlite.Storage.Opfs.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bsqlite.Storage.Opfs - run: dotnet pack src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Bit.Bsqlite.Storage.Opfs.csproj --output . --configuration Release - - - name: dotnet build Bsqlite.Storage.IndexedDb - run: dotnet build src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Bit.Bsqlite.Storage.IndexedDb.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bsqlite.Storage.IndexedDb - run: dotnet pack src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Bit.Bsqlite.Storage.IndexedDb.csproj --output . --configuration Release - - - name: dotnet build Bsqlite.Storage.CacheStorage - run: dotnet build src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/Bit.Bsqlite.Storage.CacheStorage.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bsqlite.Storage.CacheStorage - run: dotnet pack src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/Bit.Bsqlite.Storage.CacheStorage.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj --output . --configuration Release - name: dotnet build Bsqlite.Testing - run: dotnet build src/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bsqlite.Testing - run: dotnet pack src/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj --output . --configuration Release - name: dotnet build Bink - run: dotnet build src/Bink/Bit.Bink/Bit.Bink.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bink/Bit.Bink/Bit.Bink.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bink - run: dotnet pack src/Bink/Bit.Bink/Bit.Bink.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bink/Bit.Bink/Bit.Bink.csproj --output . --configuration Release - name: dotnet build Balette - run: dotnet build src/Balette/Bit.Balette/Bit.Balette.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Balette - run: dotnet pack src/Balette/Bit.Balette/Bit.Balette.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj --output . --configuration Release - name: dotnet build BbScanner - run: dotnet build src/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack BbScanner - run: dotnet pack src/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj --output . --configuration Release + run: dotnet pack src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj --output . --configuration Release - name: dotnet build Bdnd - run: dotnet build src/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bdnd - run: dotnet pack src/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj --output . --configuration Release - name: dotnet build BlazeDb - run: dotnet build src/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack BlazeDb - run: dotnet pack src/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj --output . --configuration Release - - - name: dotnet build BlazeDb.Generators - run: dotnet build src/BlazeDb/Bit.BlazeDb.Generators/Bit.BlazeDb.Generators.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack BlazeDb.Generators - run: dotnet pack src/BlazeDb/Bit.BlazeDb.Generators/Bit.BlazeDb.Generators.csproj --output . --configuration Release - - - name: dotnet build BlazeDb.Browser - run: dotnet build src/BlazeDb/Bit.BlazeDb.Browser/Bit.BlazeDb.Browser.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack BlazeDb.Browser - run: dotnet pack src/BlazeDb/Bit.BlazeDb.Browser/Bit.BlazeDb.Browser.csproj --output . --configuration Release + run: dotnet pack src/Utilities/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj --output . --configuration Release - name: dotnet build BlazeDb.EntityFrameworkCore - run: dotnet build src/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack BlazeDb.EntityFrameworkCore - run: dotnet pack src/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj --output . --configuration Release + run: dotnet pack src/Utilities/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj --output . --configuration Release - name: dotnet build Blow - run: dotnet build src/Blow/Bit.Blow/Bit.Blow.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Blow/Bit.Blow/Bit.Blow.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Blow - run: dotnet pack src/Blow/Bit.Blow/Bit.Blow.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Blow/Bit.Blow/Bit.Blow.csproj --output . --configuration Release - name: dotnet build Borm - run: dotnet build src/Borm/Bit.Borm/Bit.Borm.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Borm/Bit.Borm/Bit.Borm.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Borm - run: dotnet pack src/Borm/Bit.Borm/Bit.Borm.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Borm/Bit.Borm/Bit.Borm.csproj --output . --configuration Release - name: dotnet build Borm.FluentValidation - run: dotnet build src/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Borm.FluentValidation - run: dotnet pack src/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj --output . --configuration Release - name: dotnet build Bcrdt - run: dotnet build src/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bcrdt - run: dotnet pack src/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj --output . --configuration Release - - - name: dotnet build Bcrdt.Blazor - run: dotnet build src/Bcrdt/Bit.Bcrdt.Blazor/Bit.Bcrdt.Blazor.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bcrdt.Blazor - run: dotnet pack src/Bcrdt/Bit.Bcrdt.Blazor/Bit.Bcrdt.Blazor.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj --output . --configuration Release - name: dotnet build Bcrdt.SignalR - run: dotnet build src/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bcrdt.SignalR - run: dotnet pack src/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj --output . --configuration Release - name: dotnet build Bcrdt.Server - run: dotnet build src/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bcrdt.Server - run: dotnet pack src/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj --output . --configuration Release - name: dotnet build Bcrdt.Testing - run: dotnet build src/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bcrdt.Testing - run: dotnet pack src/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj --output . --configuration Release - name: dotnet build Blex - run: dotnet build src/Blex/Bit.Blex/Bit.Blex.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Blex/Bit.Blex/Bit.Blex.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Blex - run: dotnet pack src/Blex/Bit.Blex/Bit.Blex.csproj --output . --configuration Release - - - name: dotnet build Blex.Generators - run: dotnet build src/Blex/Bit.Blex.Generators/Bit.Blex.Generators.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Blex.Generators - run: dotnet pack src/Blex/Bit.Blex.Generators/Bit.Blex.Generators.csproj --output . --configuration Release - - - name: dotnet build Blex.Blazor - run: dotnet build src/Blex/Bit.Blex.Blazor/Bit.Blex.Blazor.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Blex.Blazor - run: dotnet pack src/Blex/Bit.Blex.Blazor/Bit.Blex.Blazor.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Blex/Bit.Blex/Bit.Blex.csproj --output . --configuration Release - name: dotnet build Blex.Maui - run: dotnet build src/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Blex.Maui - run: dotnet pack src/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj --output . --configuration Release - name: dotnet build Blex.Testing - run: dotnet build src/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Blex.Testing - run: dotnet pack src/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj --output . --configuration Release - name: dotnet build Bonboarding - run: dotnet build src/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bonboarding - run: dotnet pack src/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj --output . --configuration Release - name: dotnet build Bortable - run: dotnet build src/Bortable/Bit.Bortable/Bit.Bortable.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bortable/Bit.Bortable/Bit.Bortable.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bortable - run: dotnet pack src/Bortable/Bit.Bortable/Bit.Bortable.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bortable/Bit.Bortable/Bit.Bortable.csproj --output . --configuration Release - name: dotnet build Belemetry - run: dotnet build src/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Belemetry - run: dotnet pack src/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj --output . --configuration Release - name: dotnet build Belemetry.EntityFrameworkCore - run: dotnet build src/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Belemetry.EntityFrameworkCore - run: dotnet pack src/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj --output . --configuration Release - name: dotnet build Belemetry.Hangfire - run: dotnet build src/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Belemetry.Hangfire - run: dotnet pack src/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj --output . --configuration Release - name: dotnet build CodeAnalyzers run: dotnet build src/CodeAnalyzers/Bit.CodeAnalyzers/Bit.CodeAnalyzers.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false diff --git a/.github/workflows/prerelease.nuget.org.yml b/.github/workflows/prerelease.nuget.org.yml index c7c945ac24f..55482898e2f 100644 --- a/.github/workflows/prerelease.nuget.org.yml +++ b/.github/workflows/prerelease.nuget.org.yml @@ -133,195 +133,140 @@ jobs: - name: dotnet pack Besql run: dotnet pack src/Besql/Bit.Besql/Bit.Besql.csproj --output . --configuration Release - - name: dotnet build BevTools.Abstractions - run: dotnet build src/BevTools/Bit.BevTools.Abstractions/Bit.BevTools.Abstractions.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack BevTools.Abstractions - run: dotnet pack src/BevTools/Bit.BevTools.Abstractions/Bit.BevTools.Abstractions.csproj --output . --configuration Release - - name: dotnet build BevTools - run: dotnet build src/BevTools/Bit.BevTools/Bit.BevTools.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack BevTools - run: dotnet pack src/BevTools/Bit.BevTools/Bit.BevTools.csproj --output . --configuration Release + run: dotnet pack src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj --output . --configuration Release - name: dotnet build BevTools.Server - run: dotnet build src/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack BevTools.Server - run: dotnet pack src/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj --output . --configuration Release + run: dotnet pack src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj --output . --configuration Release - name: dotnet build Bmotion - run: dotnet build src/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bmotion - run: dotnet pack src/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj --output . --configuration Release - - - name: dotnet build Bmage.Core - run: dotnet build src/Bmage/Bit.Bmage.Core/Bit.Bmage.Core.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bmage.Core - run: dotnet pack src/Bmage/Bit.Bmage.Core/Bit.Bmage.Core.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bmotion/Bit.Bmotion/Bit.Bmotion.csproj --output . --configuration Release - name: dotnet build Bmage - run: dotnet build src/Bmage/Bit.Bmage/Bit.Bmage.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bmage/Bit.Bmage/Bit.Bmage.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bmage - run: dotnet pack src/Bmage/Bit.Bmage/Bit.Bmage.csproj --output . --configuration Release - - - name: dotnet build Bmage.Editor - run: dotnet build src/Bmage/Bit.Bmage.Editor/Bit.Bmage.Editor.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bmage.Editor - run: dotnet pack src/Bmage/Bit.Bmage.Editor/Bit.Bmage.Editor.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bmage/Bit.Bmage/Bit.Bmage.csproj --output . --configuration Release - name: dotnet build Bsqlite - run: dotnet build src/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bsqlite - run: dotnet pack src/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj --output . --configuration Release - - - name: dotnet build Bsqlite.Storage.Opfs - run: dotnet build src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Bit.Bsqlite.Storage.Opfs.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bsqlite.Storage.Opfs - run: dotnet pack src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Bit.Bsqlite.Storage.Opfs.csproj --output . --configuration Release - - - name: dotnet build Bsqlite.Storage.IndexedDb - run: dotnet build src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Bit.Bsqlite.Storage.IndexedDb.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bsqlite.Storage.IndexedDb - run: dotnet pack src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Bit.Bsqlite.Storage.IndexedDb.csproj --output . --configuration Release - - - name: dotnet build Bsqlite.Storage.CacheStorage - run: dotnet build src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/Bit.Bsqlite.Storage.CacheStorage.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bsqlite.Storage.CacheStorage - run: dotnet pack src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/Bit.Bsqlite.Storage.CacheStorage.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bsqlite/Bit.Bsqlite/Bit.Bsqlite.csproj --output . --configuration Release - name: dotnet build Bsqlite.Testing - run: dotnet build src/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bsqlite.Testing - run: dotnet pack src/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bsqlite/Bit.Bsqlite.Testing/Bit.Bsqlite.Testing.csproj --output . --configuration Release - name: dotnet build Bink - run: dotnet build src/Bink/Bit.Bink/Bit.Bink.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bink/Bit.Bink/Bit.Bink.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bink - run: dotnet pack src/Bink/Bit.Bink/Bit.Bink.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bink/Bit.Bink/Bit.Bink.csproj --output . --configuration Release - name: dotnet build Balette - run: dotnet build src/Balette/Bit.Balette/Bit.Balette.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Balette - run: dotnet pack src/Balette/Bit.Balette/Bit.Balette.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj --output . --configuration Release - name: dotnet build BbScanner - run: dotnet build src/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack BbScanner - run: dotnet pack src/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj --output . --configuration Release + run: dotnet pack src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj --output . --configuration Release - name: dotnet build Bdnd - run: dotnet build src/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bdnd - run: dotnet pack src/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj --output . --configuration Release - name: dotnet build BlazeDb - run: dotnet build src/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack BlazeDb - run: dotnet pack src/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj --output . --configuration Release - - - name: dotnet build BlazeDb.Generators - run: dotnet build src/BlazeDb/Bit.BlazeDb.Generators/Bit.BlazeDb.Generators.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack BlazeDb.Generators - run: dotnet pack src/BlazeDb/Bit.BlazeDb.Generators/Bit.BlazeDb.Generators.csproj --output . --configuration Release - - - name: dotnet build BlazeDb.Browser - run: dotnet build src/BlazeDb/Bit.BlazeDb.Browser/Bit.BlazeDb.Browser.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack BlazeDb.Browser - run: dotnet pack src/BlazeDb/Bit.BlazeDb.Browser/Bit.BlazeDb.Browser.csproj --output . --configuration Release + run: dotnet pack src/Utilities/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj --output . --configuration Release - name: dotnet build BlazeDb.EntityFrameworkCore - run: dotnet build src/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack BlazeDb.EntityFrameworkCore - run: dotnet pack src/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj --output . --configuration Release + run: dotnet pack src/Utilities/BlazeDb/Bit.BlazeDb.EntityFrameworkCore/Bit.BlazeDb.EntityFrameworkCore.csproj --output . --configuration Release - name: dotnet build Blow - run: dotnet build src/Blow/Bit.Blow/Bit.Blow.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Blow/Bit.Blow/Bit.Blow.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Blow - run: dotnet pack src/Blow/Bit.Blow/Bit.Blow.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Blow/Bit.Blow/Bit.Blow.csproj --output . --configuration Release - name: dotnet build Borm - run: dotnet build src/Borm/Bit.Borm/Bit.Borm.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Borm/Bit.Borm/Bit.Borm.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Borm - run: dotnet pack src/Borm/Bit.Borm/Bit.Borm.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Borm/Bit.Borm/Bit.Borm.csproj --output . --configuration Release - name: dotnet build Borm.FluentValidation - run: dotnet build src/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Borm.FluentValidation - run: dotnet pack src/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Borm/Bit.Borm.FluentValidation/Bit.Borm.FluentValidation.csproj --output . --configuration Release - name: dotnet build Bcrdt - run: dotnet build src/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bcrdt - run: dotnet pack src/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj --output . --configuration Release - - - name: dotnet build Bcrdt.Blazor - run: dotnet build src/Bcrdt/Bit.Bcrdt.Blazor/Bit.Bcrdt.Blazor.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Bcrdt.Blazor - run: dotnet pack src/Bcrdt/Bit.Bcrdt.Blazor/Bit.Bcrdt.Blazor.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj --output . --configuration Release - name: dotnet build Bcrdt.SignalR - run: dotnet build src/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bcrdt.SignalR - run: dotnet pack src/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj --output . --configuration Release - name: dotnet build Bcrdt.Server - run: dotnet build src/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bcrdt.Server - run: dotnet pack src/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj --output . --configuration Release - name: dotnet build Bcrdt.Testing - run: dotnet build src/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bcrdt.Testing - run: dotnet pack src/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj --output . --configuration Release - name: dotnet build Blex - run: dotnet build src/Blex/Bit.Blex/Bit.Blex.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Blex/Bit.Blex/Bit.Blex.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Blex - run: dotnet pack src/Blex/Bit.Blex/Bit.Blex.csproj --output . --configuration Release - - - name: dotnet build Blex.Generators - run: dotnet build src/Blex/Bit.Blex.Generators/Bit.Blex.Generators.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Blex.Generators - run: dotnet pack src/Blex/Bit.Blex.Generators/Bit.Blex.Generators.csproj --output . --configuration Release - - - name: dotnet build Blex.Blazor - run: dotnet build src/Blex/Bit.Blex.Blazor/Bit.Blex.Blazor.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - - name: dotnet pack Blex.Blazor - run: dotnet pack src/Blex/Bit.Blex.Blazor/Bit.Blex.Blazor.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Blex/Bit.Blex/Bit.Blex.csproj --output . --configuration Release - name: dotnet build Blex.Maui - run: dotnet build src/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Blex.Maui - run: dotnet pack src/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Blex/Bit.Blex.Maui/Bit.Blex.Maui.csproj --output . --configuration Release - name: dotnet build Blex.Testing - run: dotnet build src/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Blex.Testing - run: dotnet pack src/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Blex/Bit.Blex.Testing/Bit.Blex.Testing.csproj --output . --configuration Release - name: dotnet build Bonboarding - run: dotnet build src/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bonboarding - run: dotnet pack src/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bonboarding/Bit.Bonboarding/Bit.Bonboarding.csproj --output . --configuration Release - name: dotnet build Bortable - run: dotnet build src/Bortable/Bit.Bortable/Bit.Bortable.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Bortable/Bit.Bortable/Bit.Bortable.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Bortable - run: dotnet pack src/Bortable/Bit.Bortable/Bit.Bortable.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Bortable/Bit.Bortable/Bit.Bortable.csproj --output . --configuration Release - name: dotnet build Belemetry - run: dotnet build src/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Belemetry - run: dotnet pack src/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Belemetry/Bit.Belemetry/Bit.Belemetry.csproj --output . --configuration Release - name: dotnet build Belemetry.EntityFrameworkCore - run: dotnet build src/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Belemetry.EntityFrameworkCore - run: dotnet pack src/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj --output . --configuration Release - name: dotnet build Belemetry.Hangfire - run: dotnet build src/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false + run: dotnet build src/Utilities/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false - name: dotnet pack Belemetry.Hangfire - run: dotnet pack src/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj --output . --configuration Release + run: dotnet pack src/Utilities/Belemetry/Bit.Belemetry.Hangfire/Bit.Belemetry.Hangfire.csproj --output . --configuration Release - name: dotnet build CodeAnalyzers run: dotnet build src/CodeAnalyzers/Bit.CodeAnalyzers/Bit.CodeAnalyzers.csproj -c Release -p:GeneratePackageOnBuild=false -p:WarningLevel=0 -p:RunCodeAnalysis=false diff --git a/.gitignore b/.gitignore index b426f2a62df..562ce47e346 100644 --- a/.gitignore +++ b/.gitignore @@ -273,57 +273,57 @@ _book /src/Brouter/Bit.Brouter/Scripts/**/*.js /src/Brouter/Bit.Brouter/wwwroot/**/*.js -/src/Bmotion/Bit.Bmotion/Scripts/**/*.js -/src/Bmotion/Bit.Bmotion/wwwroot/**/*.js +/src/Utilities/Bmotion/Bit.Bmotion/Scripts/**/*.js +/src/Utilities/Bmotion/Bit.Bmotion/wwwroot/**/*.js -/src/BevTools/Bit.BevTools/Scripts/**/*.js -/src/BevTools/Bit.BevTools/wwwroot/**/*.js +/src/Utilities/BevTools/Bit.BevTools/Scripts/**/*.js +/src/Utilities/BevTools/Bit.BevTools/wwwroot/**/*.js -/src/Bmage/Bit.Bmage/Scripts/**/*.js -/src/Bmage/Bit.Bmage/wwwroot/**/*.js +/src/Utilities/Bmage/Bit.Bmage/Scripts/**/*.js +/src/Utilities/Bmage/Bit.Bmage/wwwroot/**/*.js # The compiled modules, plus the pinned wa-sqlite engine and VFSes the restore vendors next to them and the build -# verifies by checksum (see src/Bsqlite/Bit.Bsqlite/engine/wa-sqlite.lock.props): none of it is committed. -/src/Bsqlite/Bit.Bsqlite*/Scripts/**/*.js -/src/Bsqlite/Bit.Bsqlite*/wwwroot/ - -/src/Bink/Bit.Bink/Scripts/**/*.js -/src/Bink/Bit.Bink/wwwroot/**/*.js -/src/Bink/Bit.Bink/wwwroot/**/*.css - -/src/Balette/Bit.Balette/Scripts/**/*.js -/src/Balette/Bit.Balette/wwwroot/**/*.js -/src/Balette/Bit.Balette/wwwroot/**/*.css -/src/BbScanner/Bit.BbScanner/Scripts/**/*.js -/src/BbScanner/Bit.BbScanner/wwwroot/**/*.js -/src/BbScanner/Bit.BbScanner/wwwroot/**/*.css -/src/BlazeDb/Bit.BlazeDb.Browser/Scripts/**/*.js -/src/BlazeDb/Bit.BlazeDb.Browser/wwwroot/**/*.js - -/src/Bdnd/Bit.Bdnd/Scripts/**/*.js -/src/Bdnd/Bit.Bdnd/wwwroot/**/*.js - -/src/Blow/Bit.Blow/Scripts/**/*.js -/src/Blow/Bit.Blow/wwwroot/**/*.js -/src/Blow/Bit.Blow/wwwroot/**/*.css - -/src/Borm/Bit.Borm/wwwroot/**/*.css -/src/Bcrdt/Bit.Bcrdt.Blazor/Scripts/**/*.js -/src/Bcrdt/Bit.Bcrdt.Blazor/wwwroot/**/*.js - -/src/Blex/Bit.Blex.Blazor/Scripts/**/*.js -/src/Blex/Bit.Blex.Blazor/wwwroot/**/*.js - -/src/Bonboarding/Bit.Bonboarding/Scripts/**/*.js -/src/Bonboarding/Bit.Bonboarding/wwwroot/**/*.js -/src/Bonboarding/Bit.Bonboarding/wwwroot/**/*.css - -/src/Bortable/Bit.Bortable/Scripts/**/*.js -/src/Bortable/Bit.Bortable/wwwroot/**/*.js -/src/Bortable/Bit.Bortable/wwwroot/**/*.css - -/src/Belemetry/Bit.Belemetry/Scripts/**/*.js -/src/Belemetry/Bit.Belemetry/wwwroot/**/*.js +# verifies by checksum (see src/Utilities/Bsqlite/Bit.Bsqlite/engine/wa-sqlite.lock.props): none of it is committed. +/src/Utilities/Bsqlite/Bit.Bsqlite/Scripts/**/*.js +/src/Utilities/Bsqlite/Bit.Bsqlite/wwwroot/ + +/src/Utilities/Bink/Bit.Bink/Scripts/**/*.js +/src/Utilities/Bink/Bit.Bink/wwwroot/**/*.js +/src/Utilities/Bink/Bit.Bink/wwwroot/**/*.css + +/src/Utilities/Balette/Bit.Balette/Scripts/**/*.js +/src/Utilities/Balette/Bit.Balette/wwwroot/**/*.js +/src/Utilities/Balette/Bit.Balette/wwwroot/**/*.css +/src/Utilities/BbScanner/Bit.BbScanner/Scripts/**/*.js +/src/Utilities/BbScanner/Bit.BbScanner/wwwroot/**/*.js +/src/Utilities/BbScanner/Bit.BbScanner/wwwroot/**/*.css +/src/Utilities/BlazeDb/Bit.BlazeDb/Scripts/**/*.js +/src/Utilities/BlazeDb/Bit.BlazeDb/wwwroot/**/*.js + +/src/Utilities/Bdnd/Bit.Bdnd/Scripts/**/*.js +/src/Utilities/Bdnd/Bit.Bdnd/wwwroot/**/*.js + +/src/Utilities/Blow/Bit.Blow/Scripts/**/*.js +/src/Utilities/Blow/Bit.Blow/wwwroot/**/*.js +/src/Utilities/Blow/Bit.Blow/wwwroot/**/*.css + +/src/Utilities/Borm/Bit.Borm/wwwroot/**/*.css +/src/Utilities/Bcrdt/Bit.Bcrdt/Scripts/**/*.js +/src/Utilities/Bcrdt/Bit.Bcrdt/wwwroot/**/*.js + +/src/Utilities/Blex/Bit.Blex/Scripts/**/*.js +/src/Utilities/Blex/Bit.Blex/wwwroot/**/*.js + +/src/Utilities/Bonboarding/Bit.Bonboarding/Scripts/**/*.js +/src/Utilities/Bonboarding/Bit.Bonboarding/wwwroot/**/*.js +/src/Utilities/Bonboarding/Bit.Bonboarding/wwwroot/**/*.css + +/src/Utilities/Bortable/Bit.Bortable/Scripts/**/*.js +/src/Utilities/Bortable/Bit.Bortable/wwwroot/**/*.js +/src/Utilities/Bortable/Bit.Bortable/wwwroot/**/*.css + +/src/Utilities/Belemetry/Bit.Belemetry/Scripts/**/*.js +/src/Utilities/Belemetry/Bit.Belemetry/wwwroot/**/*.js /src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/BitFileUploaderFiles/*.* /src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/wwwroot/scripts/app.js diff --git a/README.md b/README.md index c59ff1719ee..e29fb7090c6 100644 --- a/README.md +++ b/README.md @@ -38,33 +38,33 @@ bit new MyApp ## UI - [***bit BlazorUI***](https://blazorui.bitplatform.dev) (`Bit.BlazorUI`): 90+ high-performance, accessible components with Dark and Light themes and RTL support, split across `Bit.BlazorUI`, `Bit.BlazorUI.Extras` (DataGrid, Chart, PdfViewer, RichTextEditor, Map, FullCalendar, CountryPicker, TimeZonePicker, and more), `Bit.BlazorUI.Icons` and `Bit.BlazorUI.Assets`. -- [***BbScanner***](src/BbScanner/README.md) (`Bit.BbScanner`): A dependency-free barcode scanner for Blazor that reads QR Code, Data Matrix, Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E and ITF from the camera or from still images. The decoding is written from scratch in C#; the browser only opens the camera and copies pixels. -- [***Bdnd***](src/Bdnd/README.md) (`Bit.Bdnd`): A declarative drag-and-drop library for Blazor inspired by React DnD, with typed items matched to drop targets by type, custom drag previews, drag handles, sortable lists, nested sources and targets, and native file, text and link drops. The drag state lives in C#; the browser only configures the native drag and tracks hover. -- [***Bink***](src/Bink/README.md) (`Bit.Bink`): A Blazor-native drawing and ink library, with pressure- and tilt-aware strokes, brushes, erasers, shapes, annotations, selection, layers, undo/redo, real-time collaboration and SVG/PNG export. The document model and the drawing engine run in C#; the browser only captures input and paints. -- [***Balette***](src/Balette/README.md) (`Bit.Balette`): A Blazor-native, keyboard-first command palette (`Ctrl+K` / `⌘K`), with fzf-style fuzzy search, nested pages, prefix modes, async sources, recents and frecency, global shortcuts and sequences, prompts, multi-select and full theming. Matching and ranking run in C#; the browser only opens the dialog and listens for keys. -- [***Blow***](src/Blow/README.md) (`Bit.Blow`): A Blazor-native library for node-based UIs, editors, flow charts and diagrams - a Blazor counterpart to React Flow - with a pannable, zoomable canvas, draggable, resizable and connectable nodes, sub-flows, auto-layout, alignment guides, undo/redo, copy/paste and full keyboard accessibility. Interaction, layout and geometry run in C#; the browser only measures the DOM. -- [***Borm***](src/Borm/README.md) (`Bit.Borm`): A schema-driven form engine for Blazor. Describe a form once - from a C# type and its DataAnnotations, a strongly typed fluent builder or a JSON Schema document - and it renders, validates and tracks it, with conditional visibility, requiredness and read-only fields, computed values, async and cascading options, multi-step wizards, repeaters, FluentValidation (`Bit.Borm.FluentValidation`) and full theming. Every decision runs in C#; the renderers are plain, accessible HTML with no JavaScript. -- [***Bmage***](src/Bmage/README.md) (`Bit.Bmage`): Browser-side image processing for Blazor. Load, crop, resize, adjust, annotate and export images on the user's device from strongly typed C#, with a full image editor component (`Bit.Bmage.Editor`) and a browser-independent engine (`Bit.Bmage.Core`). -- [***Bmotion***](src/Bmotion/README.md) (`Bit.Bmotion`): A Blazor-native animation library inspired by Motion (Framer Motion), with springs, gestures, keyframes, variants, drag, layout (FLIP) and exit animations. The animation math runs in C#, so there's no JavaScript to wire up. -- [***Bonboarding***](src/Bonboarding/README.md) (`Bit.Bonboarding`): A Blazor-native onboarding and product tour library, with spotlights, collision-aware placement, branching and multi-page tours, persistence and built-in accessibility. Every decision is made in C#; the browser layer only measures and observes. -- [***Bortable***](src/Bortable/README.md) (`Bit.Bortable`): A Blazor-native drag-and-drop sortable list inspired by SortableJS - reorder items within a list or drag them between lists that share a group, with live reordering, FLIP animations, clone and move pull modes, swap thresholds, drag handles, filters, nested lists, swap mode and multi-drag. The sorting engine runs in C# on the browser's native drag events; the browser only hit-tests and animates. +- [***BbScanner***](src/Utilities/BbScanner/README.md) (`Bit.BbScanner`): A dependency-free barcode scanner for Blazor that reads QR Code, Data Matrix, Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E and ITF from the camera or from still images. The decoding is written from scratch in C#; the browser only opens the camera and copies pixels. +- [***Bdnd***](src/Utilities/Bdnd/README.md) (`Bit.Bdnd`): A declarative drag-and-drop library for Blazor inspired by React DnD, with typed items matched to drop targets by type, custom drag previews, drag handles, sortable lists, nested sources and targets, and native file, text and link drops. The drag state lives in C#; the browser only configures the native drag and tracks hover. +- [***Bink***](src/Utilities/Bink/README.md) (`Bit.Bink`): A Blazor-native drawing and ink library, with pressure- and tilt-aware strokes, brushes, erasers, shapes, annotations, selection, layers, undo/redo, real-time collaboration and SVG/PNG export. The document model and the drawing engine run in C#; the browser only captures input and paints. +- [***Balette***](src/Utilities/Balette/README.md) (`Bit.Balette`): A Blazor-native, keyboard-first command palette (`Ctrl+K` / `⌘K`), with fzf-style fuzzy search, nested pages, prefix modes, async sources, recents and frecency, global shortcuts and sequences, prompts, multi-select and full theming. Matching and ranking run in C#; the browser only opens the dialog and listens for keys. +- [***Blow***](src/Utilities/Blow/README.md) (`Bit.Blow`): A Blazor-native library for node-based UIs, editors, flow charts and diagrams - a Blazor counterpart to React Flow - with a pannable, zoomable canvas, draggable, resizable and connectable nodes, sub-flows, auto-layout, alignment guides, undo/redo, copy/paste and full keyboard accessibility. Interaction, layout and geometry run in C#; the browser only measures the DOM. +- [***Borm***](src/Utilities/Borm/README.md) (`Bit.Borm`): A schema-driven form engine for Blazor. Describe a form once - from a C# type and its DataAnnotations, a strongly typed fluent builder or a JSON Schema document - and it renders, validates and tracks it, with conditional visibility, requiredness and read-only fields, computed values, async and cascading options, multi-step wizards, repeaters, FluentValidation (`Bit.Borm.FluentValidation`) and full theming. Every decision runs in C#; the renderers are plain, accessible HTML with no JavaScript. +- [***Bmage***](src/Utilities/Bmage/README.md) (`Bit.Bmage`): Browser-side image processing for Blazor. Load, crop, resize, adjust, annotate and export images on the user's device from strongly typed C#, with a full image editor component (`BmageEditor`) and a browser-independent engine that also runs headlessly on a server. +- [***Bmotion***](src/Utilities/Bmotion/README.md) (`Bit.Bmotion`): A Blazor-native animation library inspired by Motion (Framer Motion), with springs, gestures, keyframes, variants, drag, layout (FLIP) and exit animations. The animation math runs in C#, so there's no JavaScript to wire up. +- [***Bonboarding***](src/Utilities/Bonboarding/README.md) (`Bit.Bonboarding`): A Blazor-native onboarding and product tour library, with spotlights, collision-aware placement, branching and multi-page tours, persistence and built-in accessibility. Every decision is made in C#; the browser layer only measures and observes. +- [***Bortable***](src/Utilities/Bortable/README.md) (`Bit.Bortable`): A Blazor-native drag-and-drop sortable list inspired by SortableJS - reorder items within a list or drag them between lists that share a group, with live reordering, FLIP animations, clone and move pull modes, swap thresholds, drag handles, filters, nested lists, swap mode and multi-drag. The sorting engine runs in C# on the browser's native drag events; the browser only hit-tests and animates. ## App infrastructure - [***Brouter***](src/Brouter/README.md) (`Bit.Brouter`): A modern, declarative, nestable router for Blazor with async guards, data loaders, named routes, query string binding and global navigation hooks. It's the default router in bit Boilerplate. - [***Butil***](src/Butil/README.md) (`Bit.Butil`): The browser platform in C#. The DOM, storage, media, sensors, crypto, workers and more, exposed as injectable, strongly-typed services, so you don't have to drop back to JavaScript. -- [***Blex***](src/Blex/README.md) (`Bit.Blex`): Reactive state management for Blazor and .NET MAUI. A source generator turns plain `[BlexState]` fields and `[BlexAction]` methods into observable stores, with computed state, effects, middleware, persistence, undo/redo and Redux DevTools time-travel built in. -- [***BlazeDb***](src/BlazeDb/README.md) (`Bit.BlazeDb`): A memory-first, SQL-free embedded database for Blazor WebAssembly. Rows live in managed memory as the objects you declared, reads are method calls into source-generated hash and ordered indexes, and commits go to a write-ahead log flushed in the background to OPFS, IndexedDB or files - with transactions, encryption at rest, multi-tab replicas and an EF Core provider. -- [***Bcrdt***](src/Bcrdt/README.md) (`Bit.Bcrdt`): Real-time collaborative editing for .NET and Blazor - a native C# CRDT engine for text, lists, maps and sets, with a sync protocol that survives loss, duplication and long offline sessions, presence and cursors, offline-first persistence, selective undo and Blazor components, over SignalR, WebSockets or any transport. No JavaScript CRDT library underneath; the server only relays. +- [***Blex***](src/Utilities/Blex/README.md) (`Bit.Blex`): Reactive state management for Blazor and .NET MAUI. A source generator turns plain `[BlexState]` fields and `[BlexAction]` methods into observable stores, with computed state, effects, middleware, persistence, undo/redo and Redux DevTools time-travel built in. +- [***BlazeDb***](src/Utilities/BlazeDb/README.md) (`Bit.BlazeDb`): A memory-first, SQL-free embedded database for Blazor WebAssembly. Rows live in managed memory as the objects you declared, reads are method calls into source-generated hash and ordered indexes, and commits go to a write-ahead log flushed in the background to OPFS, IndexedDB or files - with transactions, encryption at rest, multi-tab replicas and an EF Core provider. +- [***Bcrdt***](src/Utilities/Bcrdt/README.md) (`Bit.Bcrdt`): Real-time collaborative editing for .NET and Blazor - a native C# CRDT engine for text, lists, maps and sets, with a sync protocol that survives loss, duplication and long offline sessions, presence and cursors, offline-first persistence, selective undo and Blazor components, over SignalR, WebSockets or any transport. No JavaScript CRDT library underneath; the server only relays. - [***Besql***](src/Besql/README.md) (`Bit.Besql`): EF Core and SQLite in the browser, for offline-capable web apps that save data locally and sync later. -- [***Bsqlite***](src/Bsqlite/README.md) (`Bit.Bsqlite`): SQLite in the browser for Blazor, with EF Core on top. The same entities and migrations run on the client as on the server, in a dedicated worker over OPFS, IndexedDB, Cache Storage or memory, with live queries, a complete ADO.NET surface and storage selection that never loses data silently. +- [***Bsqlite***](src/Utilities/Bsqlite/README.md) (`Bit.Bsqlite`): SQLite in the browser for Blazor, with EF Core on top. The same entities and migrations run on the client as on the server, in a dedicated worker over OPFS, IndexedDB, Cache Storage or memory, with live queries, a complete ADO.NET surface and storage selection that never loses data silently. - [***Bswup***](src/Bswup/README.md) (`Bit.Bswup`): Turns your Blazor app into a PWA with service-worker update progress, and works with prerendering for an experience like GitHub's or Reddit's. ## Build & tooling - [***bit CLI***](src/Cli/README.md) (`Bit.Cli`): Creates bitplatform projects (`bit new`), sets up cloned ones (`bit setup`), cleans build outputs, renames or removes projects, translates `.resx` files with an LLM, and decodes stack traces minified by Bit.Minifier. - [***Minifier***](src/Minifier/README.md) (`Bit.Minifier`): Shrinks the .NET assemblies a Blazor WebAssembly app downloads by stripping non-public names and compiler-only attributes after trimming. Install it and publish in Release; there's nothing else to set up. -- [***BevTools***](src/BevTools/README.md) (`Bit.BevTools`): In-app developer tools for Blazor. A live component tree, a render profiler that explains why each component rendered, an activity timeline, state diffs, network, JS interop, errors, DI and circuit diagnostics, with no changes to your app's code. +- [***BevTools***](src/Utilities/BevTools/README.md) (`Bit.BevTools`): In-app developer tools for Blazor. A live component tree, a render profiler that explains why each component rendered, an activity timeline, state diffs, network, JS interop, errors, DI and circuit diagnostics, with no changes to your app's code. - [***BlazorES2019***](src/BlazorES2019/README.md) (`Bit.BlazorES2019`): An ES2019 build of the Blazor scripts, so apps also run on older browsers and WebViews (for example Safari before 16.4). - [***Code Analyzers***](src/CodeAnalyzers/README.md) (`Bit.CodeAnalyzers`) and [***Source Generators***](src/SourceGenerators/README.md) (`Bit.SourceGenerators`): Analyzers that enforce our best practices, and source generators that improve code quality and performance. diff --git a/src/Bcrdt/Bit.Bcrdt.Blazor/README.md b/src/Bcrdt/Bit.Bcrdt.Blazor/README.md deleted file mode 100644 index 86ee33b251c..00000000000 --- a/src/Bcrdt/Bit.Bcrdt.Blazor/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Bit.Bcrdt.Blazor - -Blazor integration for [bit Bcrdt](https://www.nuget.org/packages/Bit.Bcrdt), real-time collaborative editing written -natively in C#. - -## Quick start - -```bash -dotnet add package Bit.Bcrdt.Blazor -``` - -```csharp -builder.Services.AddBitBcrdtServices(collaboration => collaboration.UseInMemoryStore()); -``` - -```razor -@using Bit.Bcrdt -@using Bit.Bcrdt.Blazor - - - - - - -@code { - private readonly BcrdtCollaboratorInfo _me = new("u-1", "Ada", BcrdtPresenceService.SuggestColor("u-1")); -} -``` - -That is a working collaborative editor with live presence, automatic reconnection and offline support. Add a -transport - `Bit.Bcrdt.SignalR`, or the WebSocket transport built into `Bit.Bcrdt` - to reach other users. - -## What is in it - -- `BcrdtCollaborationScope` opens a document for its content, cascades it, and closes it again. -- `BcrdtTextArea` edits a `BcrdtText`: what the user types becomes the minimal CRDT edit, remote edits arrive without - moving the caret or overwriting keystrokes still in flight, and the caret is published through presence. -- `BcrdtPresenceView` lists the people on a document. -- `BcrdtComponentBase` marshals change notifications onto the renderer and coalesces them onto a frame budget, and - disposes its subscriptions with the component - the base for your own collaborative components. - -No stylesheet to reference and no script to add: the one small module `BcrdtTextArea` needs is imported on demand. -Works in Blazor WebAssembly, Server, Web App (including prerendering) and Hybrid on .NET 8, 9 and 10. - -## Documentation - -The full guide is in the [Bcrdt README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Bcrdt). See it -running at [bcrdt.bitplatform.dev](https://bcrdt.bitplatform.dev). diff --git a/src/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj b/src/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj deleted file mode 100644 index ba7b37a9813..00000000000 --- a/src/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - net10.0;net9.0;net8.0 - Bit.Bcrdt - enable - true - Real-time collaborative editing for .NET and Blazor, written natively in C#: a YATA-based CRDT engine (text, arrays, maps and sets), a synchronization protocol with jittered reconnection, presence and awareness, offline-first persistence, selective undo, input bindings and the in-memory and WebSocket transports - with no JavaScript CRDT library and no interop in the engine. - $(Description) - $(PackageTags);Blazor;CRDT;Collaboration;Realtime;YATA;Offline-first;Presence;Undo;Sync - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/BevTools/Bit.BevTools.Abstractions/Bit.BevTools.Abstractions.csproj b/src/BevTools/Bit.BevTools.Abstractions/Bit.BevTools.Abstractions.csproj deleted file mode 100644 index 17fd69763ab..00000000000 --- a/src/BevTools/Bit.BevTools.Abstractions/Bit.BevTools.Abstractions.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - net10.0;net9.0;net8.0 - Bit.BevTools - enable - true - The public integration contract of bit BevTools: timeline events, state providers, diagnostic rules, commands, panels and capability descriptors. Has no Blazor dependency, so a library can expose itself to BevTools without referencing it. - $(PackageTags);Blazor;devtools;diagnostics - - - diff --git a/src/BevTools/Bit.BevTools.Abstractions/README.md b/src/BevTools/Bit.BevTools.Abstractions/README.md deleted file mode 100644 index 1f08c8f79c0..00000000000 --- a/src/BevTools/Bit.BevTools.Abstractions/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Bit.BevTools.Abstractions - -The public integration contract of [bit BevTools](https://github.com/bitfoundation/bitplatform/tree/develop/src/BevTools), -the in-app developer tools for Blazor. It has no Blazor dependency, so a library can describe itself to BevTools without -referencing the tool: - -- `IBevToolsExtension` / `IBevToolsExtensionBuilder` - contribute panels, state providers, diagnostic rules, commands - and value formatters, or hide internal components. -- `IBevStateProvider` - expose a state container to the State panel, with snapshots, change history and diffs. -- `IBevDiagnosticRule` - turn symptoms into findings with evidence. -- `IBevToolsCommand` - add commands to the command palette. -- `IBevToolsTimeline` / `BevToolsEvent` - write your own events into the activity timeline. -- `[BevToolsSensitive]` / `[BevToolsIgnore]` - redact members, or hide members and whole components. - -```csharp -public sealed class MyLibraryBevTools : IBevToolsExtension -{ - public string Name => "MyLibrary"; - public void Configure(IBevToolsExtensionBuilder b) => b - .AddDiagnosticRule(new MyRule()) - .HideComponentsInNamespace("MyLibrary.Internal"); -} -``` - -The application registers it with `services.AddBitBevToolsServices(o => o.Extensions.Add(new MyLibraryBevTools()))`. diff --git a/src/Bit.CI.Release.slnx b/src/Bit.CI.Release.slnx index 9e69007f8d5..1dffa98422a 100644 --- a/src/Bit.CI.Release.slnx +++ b/src/Bit.CI.Release.slnx @@ -18,30 +18,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -49,134 +25,150 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Bit.slnx b/src/Bit.slnx index b4be4ad9882..3790f2c33b6 100644 --- a/src/Bit.slnx +++ b/src/Bit.slnx @@ -30,50 +30,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -82,243 +38,279 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj b/src/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj deleted file mode 100644 index 83b383371a4..00000000000 --- a/src/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - net10.0;net9.0;net8.0 - Bit.BlazeDb - enable - true - Memory-first, SQL-free embedded database engine for .NET, designed for Blazor WebAssembly: live rows in managed memory, source-generated serializers and indexes, atomic transactions, and WAL/snapshot persistence with no SQL and no JS interop on the read path. Add Bit.BlazeDb.Generators next to it for the source generator. - $(PackageTags);Blazor;WebAssembly;Database;Embedded;NoSQL;AOT;OPFS;IndexedDB - - - - - - - - - - - diff --git a/src/Blex/Bit.Blex/Bit.Blex.csproj b/src/Blex/Bit.Blex/Bit.Blex.csproj deleted file mode 100644 index 8c94c1e6355..00000000000 --- a/src/Blex/Bit.Blex/Bit.Blex.csproj +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - net10.0;net9.0;net8.0 - true - $(PackageTags);Blazor;MAUI;State management;Redux;Flux;DevTools - Lightweight, source-generator-powered reactive state management for Blazor and .NET MAUI, with computed state, effects, middleware, persistence, undo/redo and Redux DevTools time-travel. Add Bit.Blex.Generators next to it for the source generator. - $(Description) - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Bmage/Bit.Bmage.Core/Bit.Bmage.Core.csproj b/src/Bmage/Bit.Bmage.Core/Bit.Bmage.Core.csproj deleted file mode 100644 index cc42aabf0c7..00000000000 --- a/src/Bmage/Bit.Bmage.Core/Bit.Bmage.Core.csproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - net10.0;net9.0;net8.0 - - Bit.Bmage - enable - true - Browser-independent image processing engine of bit Bmage: pixel buffers, transforms, adjustments, filters, drawing, annotations, EXIF metadata, managed PNG/JPEG/BMP/GIF codecs and composable non-destructive pipelines. - $(Description) - Bit;Bmage;image;crop;resize;exif;annotation;png;jpeg - - - - - - - - - - - - - diff --git a/src/Bmage/Bit.Bmage.Editor/Bit.Bmage.Editor.csproj b/src/Bmage/Bit.Bmage.Editor/Bit.Bmage.Editor.csproj deleted file mode 100644 index ec89e9a08f5..00000000000 --- a/src/Bmage/Bit.Bmage.Editor/Bit.Bmage.Editor.csproj +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - net10.0;net9.0;net8.0 - Bit.Bmage.Editor - enable - true - A themeable, accessible, touch-friendly Blazor image editor component built on bit Bmage: crop, rotate, adjust, filter, draw, annotate, redact, undo/redo and export. - $(Description) - Bit;Bmage;Blazor;image;editor;crop;annotation - - - - - - - - - - - - - - - - - diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/Bit.Bsqlite.Storage.CacheStorage.csproj b/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/Bit.Bsqlite.Storage.CacheStorage.csproj deleted file mode 100644 index 5a1c9df6420..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/Bit.Bsqlite.Storage.CacheStorage.csproj +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - net10.0;net9.0;net8.0 - Bit.Bsqlite.Storage.CacheStorage - enable - - false - Cache Storage for bit Bsqlite: block-based and journal-committed, and the migration path off Bit.Besql - a database Bit.Besql left in Cache Storage is imported losslessly on first open. - $(Description) - Bit;Bsqlite;Blazor;WebAssembly;SQLite;Cache Storage;Besql;Storage;Migration - - - - - - - - - - - - - - - - - - - - - - - - - - - <_BsqliteCacheStorageGeneratedJavaScript Include="wwwroot\bit-bsqlite-*.js" /> - - - - - - - - - - - - - - - - - - <_BsqliteCacheStorageStaleStamps Include="$(BaseIntermediateOutputPath)bit-bsqlite.*.stamp" /> - - - - - - - - - - diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/README.md b/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/README.md deleted file mode 100644 index 620a36c06c0..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Bit.Bsqlite.Storage.CacheStorage - -Cache Storage backend for [bit Bsqlite](https://www.nuget.org/packages/Bit.Bsqlite). Databases are -stored as 4096-byte pages in the Cache Storage API, committed through a journal. - -Its reason to exist is migration: **a database left behind by [Bit.Besql](https://github.com/bitfoundation/bitplatform/tree/develop/src/Besql) - in its -`bit-Besql` cache - is imported losslessly on first open**, so an app moving off Bit.Besql keeps its -users' data. - -## Install - -``` -dotnet add package Bit.Bsqlite.Storage.CacheStorage -``` - -```csharp -new BsqliteCacheStorageProvider(jsRuntime) // ProviderName == "cache-storage" -``` - -## Capabilities - -| | | -|---|---| -| Engine build | Async-capable — JSPI where available, Asyncify otherwise | -| Persistent | Yes | -| Multiple connections | Yes | -| Concurrent reads | Yes | -| Relaxed durability | No | -| Page size changeable | No | -| Execution contexts | Dedicated worker, window, shared worker, service worker | - -Batch-atomic writes are not offered, because the Cache API cannot commit several entries as one -operation; durability comes from the journal instead. This backend was built entirely against the -public storage contract with no changes to the core — it is the proof that the contract is usable -from outside. - -If you are not migrating from Bit.Besql, prefer `Bit.Bsqlite.Storage.Opfs` or -`Bit.Bsqlite.Storage.IndexedDb`. - -MIT. Part of [bit Bsqlite](https://github.com/bitfoundation/bitplatform/tree/develop/src/Bsqlite). diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/package-lock.json b/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/package-lock.json deleted file mode 100644 index dfb8b673143..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/package-lock.json +++ /dev/null @@ -1,511 +0,0 @@ -{ - "name": "Bit.Bsqlite.Storage.CacheStorage", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "devDependencies": { - "esbuild": "0.28.2", - "typescript": "5.9.3" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", - "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", - "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", - "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", - "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", - "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", - "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", - "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", - "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", - "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", - "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", - "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", - "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", - "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", - "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", - "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", - "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", - "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", - "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", - "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", - "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", - "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", - "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", - "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", - "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", - "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", - "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", - "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.2", - "@esbuild/android-arm": "0.28.2", - "@esbuild/android-arm64": "0.28.2", - "@esbuild/android-x64": "0.28.2", - "@esbuild/darwin-arm64": "0.28.2", - "@esbuild/darwin-x64": "0.28.2", - "@esbuild/freebsd-arm64": "0.28.2", - "@esbuild/freebsd-x64": "0.28.2", - "@esbuild/linux-arm": "0.28.2", - "@esbuild/linux-arm64": "0.28.2", - "@esbuild/linux-ia32": "0.28.2", - "@esbuild/linux-loong64": "0.28.2", - "@esbuild/linux-mips64el": "0.28.2", - "@esbuild/linux-ppc64": "0.28.2", - "@esbuild/linux-riscv64": "0.28.2", - "@esbuild/linux-s390x": "0.28.2", - "@esbuild/linux-x64": "0.28.2", - "@esbuild/netbsd-arm64": "0.28.2", - "@esbuild/netbsd-x64": "0.28.2", - "@esbuild/openbsd-arm64": "0.28.2", - "@esbuild/openbsd-x64": "0.28.2", - "@esbuild/openharmony-arm64": "0.28.2", - "@esbuild/sunos-x64": "0.28.2", - "@esbuild/win32-arm64": "0.28.2", - "@esbuild/win32-ia32": "0.28.2", - "@esbuild/win32-x64": "0.28.2" - } - }, - "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" - } - } - } -} diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/tsconfig.json b/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/tsconfig.json deleted file mode 100644 index 96b996a76aa..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.CacheStorage/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compileOnSave": true, - "compilerOptions": { - // The same target as Bit.Bsqlite's modules, which these run next to in the same worker. - "target": "ES2022", - // The VFS module is imported by Bit.Bsqlite's worker and the admin module by the .NET provider, both - // through `import()`, and their functions are called as named exports, so the output MUST stay an ES - // module: `module: ESNext` with `rootDir`/`outDir` emits each Scripts/*.ts straight to wwwroot/*.js. - "module": "ESNext", - "moduleResolution": "Bundler", - // Type-only imports of Bit.Bsqlite's declarations for the wa-sqlite engine (Scripts/engine/*.d.ts). - // They are erased from the output, so nothing outside this package is compiled or bundled into it. - "paths": { - "bit-bsqlite/*": [ "../Bit.Bsqlite/Scripts/*" ] - }, - "lib": [ "DOM", "DOM.Iterable", "ESNext" ], - "rootDir": "Scripts", - "outDir": "wwwroot", - "strict": true, - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "forceConsistentCasingInFileNames": true - }, - "include": [ "./Scripts/**/*.ts" ] -} diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Bit.Bsqlite.Storage.IndexedDb.csproj b/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Bit.Bsqlite.Storage.IndexedDb.csproj deleted file mode 100644 index 017bf00e500..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Bit.Bsqlite.Storage.IndexedDb.csproj +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - net10.0;net9.0;net8.0 - Bit.Bsqlite.Storage.IndexedDb - enable - - false - IndexedDB storage for bit Bsqlite, using wa-sqlite's IDBBatchAtomicVFS: persistent, async-capable (JSPI or Asyncify), and available where OPFS is not. - $(Description) - Bit;Bsqlite;Blazor;WebAssembly;SQLite;IndexedDB;Storage - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_BsqliteIndexedDbGeneratedJavaScript Include="wwwroot\bit-bsqlite-*.js" /> - - - - - - - - - - - - - - - - - - <_BsqliteIndexedDbStaleStamps Include="$(BaseIntermediateOutputPath)bit-bsqlite.*.stamp" /> - - - - - - - - - - diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/README.md b/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/README.md deleted file mode 100644 index 9b103dc9100..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# Bit.Bsqlite.Storage.IndexedDb - -IndexedDB storage for [bit Bsqlite](https://www.nuget.org/packages/Bit.Bsqlite), backed by -wa-sqlite's `IDBBatchAtomicVFS`. - -This is the backend that reaches browsers OPFS does not, and the only one that can run outside a -dedicated worker. Use it as the fallback behind OPFS, or on its own when reach matters more than -download size. - -## Install - -``` -dotnet add package Bit.Bsqlite.Storage.IndexedDb -``` - -```csharp -new BsqliteIndexedDbStorageProvider(jsRuntime) // ProviderName == "indexeddb" -``` - -## Capabilities - -| | | -|---|---| -| Engine build | Async-capable — JSPI where available, Asyncify otherwise | -| Persistent | Yes | -| Multiple connections | Yes | -| Concurrent reads | No — see below | -| Relaxed durability | Yes | -| Page size changeable | No | -| Execution contexts | Dedicated worker, window, shared worker, service worker | - -The page-size limit is declared, not documented-and-hoped: the core reads `Capabilities` and rejects -a `PRAGMA page_size` that the backend cannot honour, rather than letting it be silently ignored. - -**On concurrent reads:** `IDBBatchAtomicVFS` can support them, but `bit-bsqlite-idb-vfs.js` registers it without -a lock policy, so `WebLocksMixin` applies its `exclusive` default and a read takes the same lock a -write does. Readers therefore queue behind each other, and the capability says so. Multiple -*connections* are still supported — they serialize rather than run in parallel. - -**On download size:** the engine build is picked at runtime from the selected provider plus a JSPI -probe. JSPI costs about 0.9% over the synchronous build; Asyncify costs about 107%. Browsers with -JSPI pay almost nothing for this backend. - -MIT. Part of [bit Bsqlite](https://github.com/bitfoundation/bitplatform/tree/develop/src/Bsqlite). diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Scripts/IDBBatchAtomicVFS.d.ts b/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Scripts/IDBBatchAtomicVFS.d.ts deleted file mode 100644 index dba7d47be7e..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/Scripts/IDBBatchAtomicVFS.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Types for wa-sqlite's IDBBatchAtomicVFS (src/examples/IDBBatchAtomicVFS.js, wa-sqlite v1.1.2). The module -// is fetched and checksummed at restore and its imports rewritten into wwwroot/IDBBatchAtomicVFS.js (see -// vfs/FetchIndexedDbVfs.targets), next to the module that imports it; it is not compiled here. - -export declare class IDBBatchAtomicVFS { - static create(name: string, module: unknown, options?: { idbName?: string; lockPolicy?: 'exclusive' | 'shared' | 'shared+hint'; lockTimeout?: number }): Promise; - name: string; -} diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/package-lock.json b/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/package-lock.json deleted file mode 100644 index b26a2ec738d..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/package-lock.json +++ /dev/null @@ -1,511 +0,0 @@ -{ - "name": "Bit.Bsqlite.Storage.IndexedDb", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "devDependencies": { - "esbuild": "0.28.2", - "typescript": "5.9.3" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", - "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", - "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", - "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", - "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", - "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", - "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", - "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", - "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", - "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", - "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", - "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", - "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", - "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", - "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", - "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", - "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", - "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", - "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", - "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", - "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", - "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", - "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", - "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", - "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", - "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", - "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", - "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.2", - "@esbuild/android-arm": "0.28.2", - "@esbuild/android-arm64": "0.28.2", - "@esbuild/android-x64": "0.28.2", - "@esbuild/darwin-arm64": "0.28.2", - "@esbuild/darwin-x64": "0.28.2", - "@esbuild/freebsd-arm64": "0.28.2", - "@esbuild/freebsd-x64": "0.28.2", - "@esbuild/linux-arm": "0.28.2", - "@esbuild/linux-arm64": "0.28.2", - "@esbuild/linux-ia32": "0.28.2", - "@esbuild/linux-loong64": "0.28.2", - "@esbuild/linux-mips64el": "0.28.2", - "@esbuild/linux-ppc64": "0.28.2", - "@esbuild/linux-riscv64": "0.28.2", - "@esbuild/linux-s390x": "0.28.2", - "@esbuild/linux-x64": "0.28.2", - "@esbuild/netbsd-arm64": "0.28.2", - "@esbuild/netbsd-x64": "0.28.2", - "@esbuild/openbsd-arm64": "0.28.2", - "@esbuild/openbsd-x64": "0.28.2", - "@esbuild/openharmony-arm64": "0.28.2", - "@esbuild/sunos-x64": "0.28.2", - "@esbuild/win32-arm64": "0.28.2", - "@esbuild/win32-ia32": "0.28.2", - "@esbuild/win32-x64": "0.28.2" - } - }, - "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" - } - } - } -} diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/package.json b/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/package.json deleted file mode 100644 index 48e65da82f6..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "devDependencies": { - "esbuild": "0.28.2", - "typescript": "5.9.3" - } -} diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/tsconfig.json b/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/tsconfig.json deleted file mode 100644 index 96b996a76aa..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compileOnSave": true, - "compilerOptions": { - // The same target as Bit.Bsqlite's modules, which these run next to in the same worker. - "target": "ES2022", - // The VFS module is imported by Bit.Bsqlite's worker and the admin module by the .NET provider, both - // through `import()`, and their functions are called as named exports, so the output MUST stay an ES - // module: `module: ESNext` with `rootDir`/`outDir` emits each Scripts/*.ts straight to wwwroot/*.js. - "module": "ESNext", - "moduleResolution": "Bundler", - // Type-only imports of Bit.Bsqlite's declarations for the wa-sqlite engine (Scripts/engine/*.d.ts). - // They are erased from the output, so nothing outside this package is compiled or bundled into it. - "paths": { - "bit-bsqlite/*": [ "../Bit.Bsqlite/Scripts/*" ] - }, - "lib": [ "DOM", "DOM.Iterable", "ESNext" ], - "rootDir": "Scripts", - "outDir": "wwwroot", - "strict": true, - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "forceConsistentCasingInFileNames": true - }, - "include": [ "./Scripts/**/*.ts" ] -} diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/vfs/FetchIndexedDbVfs.targets b/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/vfs/FetchIndexedDbVfs.targets deleted file mode 100644 index 6b8685f3b33..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/vfs/FetchIndexedDbVfs.targets +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - $(MSBuildProjectDirectory)/obj/upstream/ - $(MSBuildProjectDirectory)/wwwroot/ - $(IndexedDbVfsUpstreamDirectory)IDBBatchAtomicVFS.js - $(IndexedDbVfsWwwrootDirectory)IDBBatchAtomicVFS.js - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/vfs/rewrite-imports.mjs b/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/vfs/rewrite-imports.mjs deleted file mode 100644 index d01ea4f9d70..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/vfs/rewrite-imports.mjs +++ /dev/null @@ -1,30 +0,0 @@ -// Rewrites wa-sqlite example imports so they resolve from a provider package. -// -// IDBBatchAtomicVFS also pulls WebLocksMixin, which OPFS CoopSync does not. The rewrite is -// mechanical and checksummed against the untouched download. - -import { readFileSync, writeFileSync } from 'node:fs'; - -const [, , input, output] = process.argv; - -if (!input || !output) { - throw new Error('Usage: rewrite-imports.mjs '); -} - -const replacements = [ - ["from '../FacadeVFS.js'", "from '../Bit.Bsqlite/engine/FacadeVFS.js'"], - ["from '../VFS.js'", "from '../Bit.Bsqlite/engine/VFS.js'"], - ["from '../WebLocksMixin.js'", "from '../Bit.Bsqlite/engine/WebLocksMixin.js'"], -]; - -let source = readFileSync(input, 'utf8'); - -for (const [from, to] of replacements) { - if (!source.includes(from)) { - throw new Error(`Expected import ${from} was not in the upstream VFS. The pin may have moved.`); - } - - source = source.replaceAll(from, to); -} - -writeFileSync(output, source); diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/vfs/wa-sqlite.lock.props b/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/vfs/wa-sqlite.lock.props deleted file mode 100644 index 554b677011c..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.IndexedDb/vfs/wa-sqlite.lock.props +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - v1.1.2 - https://raw.githubusercontent.com/rhashimoto/wa-sqlite - src/examples/IDBBatchAtomicVFS.js - 809018E8976A8001BFAC6062B1FAA2A75333BD004885C8918F926C9E596E9CC6 - - - diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Bit.Bsqlite.Storage.Opfs.csproj b/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Bit.Bsqlite.Storage.Opfs.csproj deleted file mode 100644 index aaca8c1c55f..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Bit.Bsqlite.Storage.Opfs.csproj +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - net10.0;net9.0;net8.0 - Bit.Bsqlite.Storage.Opfs - enable - - false - OPFS storage for bit Bsqlite, using wa-sqlite's OPFSCoopSyncVFS: persistent, multi-connection, worker-only and without COOP/COEP headers. - $(Description) - Bit;Bsqlite;Blazor;WebAssembly;SQLite;OPFS;Origin private file system;Storage - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_BsqliteOpfsGeneratedJavaScript Include="wwwroot\bit-bsqlite-*.js" /> - - - - - - - - - - - - - - - - - - <_BsqliteOpfsStaleStamps Include="$(BaseIntermediateOutputPath)bit-bsqlite.*.stamp" /> - - - - - - - - - - diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/README.md b/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/README.md deleted file mode 100644 index 3a94c46b776..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Bit.Bsqlite.Storage.Opfs - -OPFS storage for [bit Bsqlite](https://www.nuget.org/packages/Bit.Bsqlite), backed by wa-sqlite's -`OPFSCoopSyncVFS`. Databases live in the origin private file system as real files. - -Pick this one when you can: it is the only backend that runs on the **synchronous** engine build, -which is the smallest of the three and needs neither JSPI nor Asyncify. - -## Install - -``` -dotnet add package Bit.Bsqlite.Storage.Opfs -``` - -```csharp -new BsqliteOpfsStorageProvider(jsRuntime) // ProviderName == "opfs" -``` - -## Capabilities - -| | | -|---|---| -| Engine build | Synchronous — the smallest download | -| Persistent | Yes | -| Multiple connections | Yes | -| Concurrent reads | No | -| Relaxed durability | No | -| Page size changeable | Yes | -| Execution contexts | Dedicated worker only | - -Access handles are worker-only, so the engine stays in a dedicated worker. Probe and admin use the -async file API and can run on the window, so availability checks and import/export work from -component code. No COOP/COEP headers required. - -Chosen over `AccessHandlePoolVFS` because more than one connection may be open and the `.db` stays a -real file — exporting is just a read. - -MIT. Part of [bit Bsqlite](https://github.com/bitfoundation/bitplatform/tree/develop/src/Bsqlite). diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Scripts/OPFSCoopSyncVFS.d.ts b/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Scripts/OPFSCoopSyncVFS.d.ts deleted file mode 100644 index 5f0f473e7dc..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/Scripts/OPFSCoopSyncVFS.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Types for wa-sqlite's OPFSCoopSyncVFS (src/examples/OPFSCoopSyncVFS.js, wa-sqlite v1.1.2). The module is -// fetched and checksummed at restore and its imports rewritten into wwwroot/OPFSCoopSyncVFS.js (see -// vfs/FetchOpfsVfs.targets), next to the module that imports it; it is not compiled here. - -export declare class OPFSCoopSyncVFS { - static create(name: string, module: unknown): Promise; - name: string; -} diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/package-lock.json b/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/package-lock.json deleted file mode 100644 index 35601ddc2ae..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/package-lock.json +++ /dev/null @@ -1,511 +0,0 @@ -{ - "name": "Bit.Bsqlite.Storage.Opfs", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "devDependencies": { - "esbuild": "0.28.2", - "typescript": "5.9.3" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", - "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", - "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", - "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", - "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", - "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", - "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", - "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", - "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", - "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", - "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", - "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", - "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", - "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", - "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", - "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", - "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", - "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", - "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", - "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", - "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", - "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", - "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", - "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", - "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", - "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", - "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/esbuild": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", - "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.2", - "@esbuild/android-arm": "0.28.2", - "@esbuild/android-arm64": "0.28.2", - "@esbuild/android-x64": "0.28.2", - "@esbuild/darwin-arm64": "0.28.2", - "@esbuild/darwin-x64": "0.28.2", - "@esbuild/freebsd-arm64": "0.28.2", - "@esbuild/freebsd-x64": "0.28.2", - "@esbuild/linux-arm": "0.28.2", - "@esbuild/linux-arm64": "0.28.2", - "@esbuild/linux-ia32": "0.28.2", - "@esbuild/linux-loong64": "0.28.2", - "@esbuild/linux-mips64el": "0.28.2", - "@esbuild/linux-ppc64": "0.28.2", - "@esbuild/linux-riscv64": "0.28.2", - "@esbuild/linux-s390x": "0.28.2", - "@esbuild/linux-x64": "0.28.2", - "@esbuild/netbsd-arm64": "0.28.2", - "@esbuild/netbsd-x64": "0.28.2", - "@esbuild/openbsd-arm64": "0.28.2", - "@esbuild/openbsd-x64": "0.28.2", - "@esbuild/openharmony-arm64": "0.28.2", - "@esbuild/sunos-x64": "0.28.2", - "@esbuild/win32-arm64": "0.28.2", - "@esbuild/win32-ia32": "0.28.2", - "@esbuild/win32-x64": "0.28.2" - } - }, - "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" - } - } - } -} diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/package.json b/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/package.json deleted file mode 100644 index 48e65da82f6..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "devDependencies": { - "esbuild": "0.28.2", - "typescript": "5.9.3" - } -} diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/tsconfig.json b/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/tsconfig.json deleted file mode 100644 index 96b996a76aa..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compileOnSave": true, - "compilerOptions": { - // The same target as Bit.Bsqlite's modules, which these run next to in the same worker. - "target": "ES2022", - // The VFS module is imported by Bit.Bsqlite's worker and the admin module by the .NET provider, both - // through `import()`, and their functions are called as named exports, so the output MUST stay an ES - // module: `module: ESNext` with `rootDir`/`outDir` emits each Scripts/*.ts straight to wwwroot/*.js. - "module": "ESNext", - "moduleResolution": "Bundler", - // Type-only imports of Bit.Bsqlite's declarations for the wa-sqlite engine (Scripts/engine/*.d.ts). - // They are erased from the output, so nothing outside this package is compiled or bundled into it. - "paths": { - "bit-bsqlite/*": [ "../Bit.Bsqlite/Scripts/*" ] - }, - "lib": [ "DOM", "DOM.Iterable", "ESNext" ], - "rootDir": "Scripts", - "outDir": "wwwroot", - "strict": true, - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "forceConsistentCasingInFileNames": true - }, - "include": [ "./Scripts/**/*.ts" ] -} diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/vfs/FetchOpfsVfs.targets b/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/vfs/FetchOpfsVfs.targets deleted file mode 100644 index 38e52ff85ee..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/vfs/FetchOpfsVfs.targets +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - $(MSBuildProjectDirectory)/obj/upstream/ - $(MSBuildProjectDirectory)/wwwroot/ - $(OpfsVfsUpstreamDirectory)OPFSCoopSyncVFS.js - $(OpfsVfsWwwrootDirectory)OPFSCoopSyncVFS.js - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/vfs/rewrite-imports.mjs b/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/vfs/rewrite-imports.mjs deleted file mode 100644 index ac7ba315324..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/vfs/rewrite-imports.mjs +++ /dev/null @@ -1,31 +0,0 @@ -// Rewrites wa-sqlite example imports so they resolve from a provider package. -// -// Upstream files live in src/examples/ and import '../FacadeVFS.js'. That path does not exist -// next to this package's wwwroot; the base classes are served from Bsqlite. The rewrite -// is mechanical and checksummed against the untouched download, so a silent upstream edit fails -// the build rather than shipping a VFS that cannot load. - -import { readFileSync, writeFileSync } from 'node:fs'; - -const [, , input, output] = process.argv; - -if (!input || !output) { - throw new Error('Usage: rewrite-imports.mjs '); -} - -const replacements = [ - ["from '../FacadeVFS.js'", "from '../Bit.Bsqlite/engine/FacadeVFS.js'"], - ["from '../VFS.js'", "from '../Bit.Bsqlite/engine/VFS.js'"], -]; - -let source = readFileSync(input, 'utf8'); - -for (const [from, to] of replacements) { - if (!source.includes(from)) { - throw new Error(`Expected import ${from} was not in the upstream VFS. The pin may have moved.`); - } - - source = source.replaceAll(from, to); -} - -writeFileSync(output, source); diff --git a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/vfs/wa-sqlite.lock.props b/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/vfs/wa-sqlite.lock.props deleted file mode 100644 index bfb54569f5f..00000000000 --- a/src/Bsqlite/Bit.Bsqlite.Storage.Opfs/vfs/wa-sqlite.lock.props +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - v1.1.2 - https://raw.githubusercontent.com/rhashimoto/wa-sqlite - src/examples/OPFSCoopSyncVFS.js - 0D733FF90D684E1884C2B14C701C13B6F849C4E4548A5C64F2DA4BF12B4FD101 - - - diff --git a/src/Bsqlite/Bit.Bsqlite/package.json b/src/Bsqlite/Bit.Bsqlite/package.json deleted file mode 100644 index 48e65da82f6..00000000000 --- a/src/Bsqlite/Bit.Bsqlite/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "devDependencies": { - "esbuild": "0.28.2", - "typescript": "5.9.3" - } -} diff --git a/src/Bsqlite/Tests/Bit.Bsqlite.Tests/Interop/BsqliteSessionFactoryTests.cs b/src/Bsqlite/Tests/Bit.Bsqlite.Tests/Interop/BsqliteSessionFactoryTests.cs deleted file mode 100644 index 9da76c066d2..00000000000 --- a/src/Bsqlite/Tests/Bit.Bsqlite.Tests/Interop/BsqliteSessionFactoryTests.cs +++ /dev/null @@ -1,356 +0,0 @@ -using System.Data; -using Bit.Bsqlite.Data; -using Bit.Bsqlite.Storage; - -namespace Bit.Bsqlite.Interop.Tests; - -/// -/// The session factory is the only place that both chooses a backend and opens it, so the rule -/// "the binding is written only after the open succeeds" is asserted here rather than left as a -/// comment on two collaborating types. -/// -[TestClass] -public sealed class BsqliteSessionFactoryTests -{ - public TestContext TestContext { get; set; } = null!; - - private CancellationToken Ct => TestContext.CancellationToken; - - [TestMethod] - public async Task Open_UsesTheResolvedProvider_AndCommitsTheBinding() - { - var opfs = Available("opfs", BsqliteEngineBuild.Synchronous); - var store = new BsqliteInMemoryStorageBindingStore(); - var transports = new RecordingTransportFactory(); - var factory = Factory(store, transports, s => s.Prefer("opfs"), opfs); - - await using var session = await factory.OpenAsync("app.db", Ct); - - Assert.AreEqual("opfs", session.Resolution.Provider.Name); - Assert.AreEqual("opfs", await store.GetProviderNameAsync("app.db", Ct)); - Assert.AreEqual("app.db", transports.Last.OpenedAs); - Assert.AreEqual(opfs, transports.Created[0].Provider); - Assert.AreEqual(ConnectionState.Open, session.Connection.State); - } - - [TestMethod] - public async Task Open_PassesTheProvidersBuildAndVfs_ThroughTheTransportFactory() - { - var indexed = Available( - "indexeddb", - BsqliteEngineBuild.AsyncCapable, - vfs: new BsqliteJsModule("./_content/Bit.Bsqlite.Storage.IndexedDb/bit-bsqlite-idb-vfs.js")); - - var capturing = new RecordingTransportFactory(); - var factory = Factory( - new BsqliteInMemoryStorageBindingStore(), - capturing, - s => s.Prefer("indexeddb"), - indexed); - - await using var session = await factory.OpenAsync("app.db", Ct); - - var seen = capturing.Created[0].Provider; - Assert.AreSame(indexed, seen); - Assert.AreEqual(BsqliteEngineBuild.AsyncCapable, seen.Capabilities.RequiredBuild); - Assert.AreEqual("./_content/Bit.Bsqlite.Storage.IndexedDb/bit-bsqlite-idb-vfs.js", seen.VfsModule!.ModuleUrl); - } - - [TestMethod] - public async Task FailedOpen_DoesNotCommitABinding_AndDisposesTheTransport() - { - var store = new BsqliteInMemoryStorageBindingStore(); - var transports = new RecordingTransportFactory( - () => new ScriptedTransport - { - OpenThrows = new BsqliteException("disk I/O error", sqliteErrorCode: 10), - }); - var factory = Factory(store, transports, s => s.Prefer("opfs"), Available("opfs")); - - var error = await Assert.ThrowsExactlyAsync( - () => factory.OpenAsync("app.db", Ct)); - - Assert.AreEqual(10, error.SqliteErrorCode); - Assert.IsNull(await store.GetProviderNameAsync("app.db", Ct)); - Assert.IsTrue(transports.Last.Disposed); - } - - [TestMethod] - public async Task ExistingData_OpensOnTheBoundBackend_NotThePreferredOne() - { - var indexed = Available("indexeddb", BsqliteEngineBuild.AsyncCapable); - var opfs = Available("opfs", BsqliteEngineBuild.Synchronous); - var store = new BsqliteInMemoryStorageBindingStore(); - await store.SetProviderNameAsync("app.db", "indexeddb", Ct); - - var transports = new RecordingTransportFactory(); - var factory = Factory( - store, - transports, - s => s.Prefer("opfs").Fallback("indexeddb"), - opfs, - indexed); - - await using var session = await factory.OpenAsync("app.db", Ct); - - Assert.AreEqual("indexeddb", session.Resolution.Provider.Name); - Assert.IsTrue(session.Resolution.WasDecidedByExistingData); - Assert.AreSame(indexed, transports.Created[0].Provider); - } - - [TestMethod] - public async Task AutomaticOnOpen_WithoutABetterProvider_JustOpens() - { - var store = new BsqliteInMemoryStorageBindingStore(); - var factory = Factory( - store, - new RecordingTransportFactory(), - s => s.Prefer("opfs").WithMigrationMode(BsqliteStorageMigrationMode.AutomaticOnOpen), - Available("opfs")); - - await using var session = await factory.OpenAsync("app.db", Ct); - - Assert.AreEqual("opfs", session.Resolution.Provider.Name); - Assert.AreEqual("opfs", await store.GetProviderNameAsync("app.db", Ct)); - } - - [TestMethod] - public async Task AutomaticOnOpen_MovesTheDatabaseToTheBetterProvider_BeforeOpening() - { - var slow = new PersistentTestProvider("slow"); - var fast = new PersistentTestProvider("fast"); - byte[] image = [.. "SQLite format 3\0"u8, 1, 2, 3]; - await slow.Admin.ImportAsync("app.db", image, Ct); - - var store = new BsqliteInMemoryStorageBindingStore(); - await store.SetProviderNameAsync("app.db", "slow", Ct); - - var transports = new RecordingTransportFactory(); - var factory = Factory( - store, - transports, - s => s.Prefer("fast").Fallback("slow").WithMigrationMode(BsqliteStorageMigrationMode.AutomaticOnOpen), - fast, - slow); - - await using var session = await factory.OpenAsync("app.db", Ct); - - Assert.AreEqual("fast", session.Resolution.Provider.Name); - Assert.AreSame(fast, transports.Created[0].Provider); - Assert.AreEqual("fast", await store.GetProviderNameAsync("app.db", Ct)); - CollectionAssert.AreEqual(image, await fast.Admin.ExportAsync("app.db", Ct)); - Assert.IsFalse(await slow.Admin.ExistsAsync("app.db", Ct)); - } - - /// - /// An opportunistic move that fails is not a reason to keep the user from data that is still - /// exactly where it was. The open proceeds on the bound backend, the binding is unchanged, and - /// the resolution still says a better backend exists. - /// - [TestMethod] - public async Task AutomaticOnOpen_WhenTheMoveFails_StillOpensWhereTheDataIs() - { - var slow = new PersistentTestProvider("slow"); - var fast = new PersistentTestProvider("fast", refusesImports: true); - await slow.Admin.ImportAsync("app.db", "SQLite format 3\0"u8.ToArray(), Ct); - - var store = new BsqliteInMemoryStorageBindingStore(); - await store.SetProviderNameAsync("app.db", "slow", Ct); - - var transports = new RecordingTransportFactory(); - var factory = Factory( - store, - transports, - s => s.Prefer("fast").Fallback("slow").WithMigrationMode(BsqliteStorageMigrationMode.AutomaticOnOpen), - fast, - slow); - - await using var session = await factory.OpenAsync("app.db", Ct); - - Assert.AreEqual("slow", session.Resolution.Provider.Name); - Assert.AreSame(fast, session.Resolution.BetterProviderAvailable); - Assert.AreEqual("slow", await store.GetProviderNameAsync("app.db", Ct)); - Assert.IsTrue(await slow.Admin.ExistsAsync("app.db", Ct)); - } - - /// - /// The copy was verified and bound, then deleting the source failed with the source still whole - - /// another tab holding it open, say. The flip is undone, so the database opens on the source and - /// the binding agrees: writes made now are where the next load reads. - /// - [TestMethod] - public async Task AutomaticOnOpen_WhenDeletingTheSourceFails_AndItSurvived_OpensOnTheSource_AndKeepsItBound() - { - var slow = new PersistentTestProvider("slow", deletes: DeleteBehavior.FailsLeavingIt); - var fast = new PersistentTestProvider("fast"); - await slow.Admin.ImportAsync("app.db", "SQLite format 3"u8.ToArray(), Ct); - - var store = new BsqliteInMemoryStorageBindingStore(); - await store.SetProviderNameAsync("app.db", "slow", Ct); - - var factory = Factory( - store, - new RecordingTransportFactory(), - s => s.Prefer("fast").Fallback("slow").WithMigrationMode(BsqliteStorageMigrationMode.AutomaticOnOpen), - fast, - slow); - - await using var session = await factory.OpenAsync("app.db", Ct); - - Assert.AreEqual("slow", session.Resolution.Provider.Name); - Assert.AreEqual("slow", await store.GetProviderNameAsync("app.db", Ct)); - Assert.IsTrue(await slow.Admin.ExistsAsync("app.db", Ct)); - Assert.IsFalse(await fast.Admin.ExistsAsync("app.db", Ct), "The unbound copy is dropped."); - } - - /// - /// Deleting the source failed part-way, so the verified copy is the only whole database left. It - /// stays bound, and the session opens on it rather than on what remains of the source. - /// - [TestMethod] - public async Task AutomaticOnOpen_WhenDeletingTheSourceFailsPartway_OpensOnTheTarget() - { - var slow = new PersistentTestProvider("slow", deletes: DeleteBehavior.FailsAfterDeleting); - var fast = new PersistentTestProvider("fast"); - byte[] image = [.. "SQLite format 3"u8, 7]; - await slow.Admin.ImportAsync("app.db", image, Ct); - - var store = new BsqliteInMemoryStorageBindingStore(); - await store.SetProviderNameAsync("app.db", "slow", Ct); - - var transports = new RecordingTransportFactory(); - var factory = Factory( - store, - transports, - s => s.Prefer("fast").Fallback("slow").WithMigrationMode(BsqliteStorageMigrationMode.AutomaticOnOpen), - fast, - slow); - - await using var session = await factory.OpenAsync("app.db", Ct); - - Assert.AreEqual("fast", session.Resolution.Provider.Name); - Assert.AreSame(fast, transports.Created[0].Provider); - Assert.AreEqual("fast", await store.GetProviderNameAsync("app.db", Ct)); - CollectionAssert.AreEqual(image, await fast.Admin.ExportAsync("app.db", Ct)); - } - - [TestMethod] - public async Task Dispose_TearsDownTheTransport() - { - var transports = new RecordingTransportFactory(); - var factory = Factory( - new BsqliteInMemoryStorageBindingStore(), - transports, - s => s.Prefer("opfs"), - Available("opfs")); - - var session = await factory.OpenAsync("app.db", Ct); - await session.DisposeAsync(); - - Assert.IsTrue(transports.Last.Disposed); - } - - private enum DeleteBehavior - { - Deletes, - - /// Throws with the database untouched - an OPFS file another tab holds open. - FailsLeavingIt, - - /// Removes the database, then throws - a related file that could not go. - FailsAfterDeleting, - } - - /// - /// A persistent, available backend with a real (in-memory) admin surface, so a migration can be - /// run against it. Optionally refuses every import, which is what an origin out of quota does, - /// and fails deletes the ways lists. - /// - private sealed class PersistentTestProvider( - string name, - bool refusesImports = false, - DeleteBehavior deletes = DeleteBehavior.Deletes) - : IBsqliteStorageProvider - { - public string Name { get; } = name; - - public BsqliteStorageCapabilities Capabilities { get; } = new() - { - RequiredBuild = BsqliteEngineBuild.Synchronous, - IsPersistent = true, - }; - - public BsqliteJsModule? VfsModule => null; - - public IBsqliteStorageAdmin Admin { get; } = new MemoryAdmin(refusesImports, deletes); - - public ValueTask ProbeAsync(CancellationToken cancellationToken = default) - => ValueTask.FromResult(BsqliteProbeResult.Available()); - - private sealed class MemoryAdmin(bool refusesImports, DeleteBehavior deletes) : IBsqliteStorageAdmin - { - private readonly Dictionary _images = new(StringComparer.Ordinal); - - public ValueTask ExistsAsync(string databaseName, CancellationToken cancellationToken = default) - => ValueTask.FromResult(_images.ContainsKey(databaseName)); - - public ValueTask> ListAsync(CancellationToken cancellationToken = default) - => ValueTask.FromResult>([.. _images.Keys]); - - public ValueTask DeleteAsync(string databaseName, CancellationToken cancellationToken = default) - { - if (deletes is DeleteBehavior.FailsLeavingIt) - { - throw new IOException("The file is in use."); - } - - _images.Remove(databaseName); - - return deletes is DeleteBehavior.FailsAfterDeleting - ? throw new IOException("The journal is in use.") - : ValueTask.CompletedTask; - } - - public ValueTask ExportAsync(string databaseName, CancellationToken cancellationToken = default) - => _images.TryGetValue(databaseName, out var image) - ? ValueTask.FromResult(image.ToArray()) - : throw new FileNotFoundException(databaseName); - - public ValueTask ImportAsync( - string databaseName, - ReadOnlyMemory contents, - CancellationToken cancellationToken = default) - { - if (refusesImports) - { - throw new BsqliteQuotaExceededException("The origin is out of storage."); - } - - _images[databaseName] = contents.ToArray(); - return ValueTask.CompletedTask; - } - } - } - - private static ConfigurableProvider Available( - string name, - BsqliteEngineBuild build = BsqliteEngineBuild.Synchronous, - BsqliteJsModule? vfs = null) - => new() - { - Name = name, - RequiredBuild = build, - Vfs = vfs, - }; - - private static BsqliteSessionFactory Factory( - BsqliteInMemoryStorageBindingStore store, - IBsqliteTransportFactory transports, - Action configure, - params IBsqliteStorageProvider[] providers) - => new( - new BsqliteStorageProviderResolver(providers, store), - transports, - BsqliteStorageSelectionBuilder.Create(configure), - store); -} diff --git a/src/Bsqlite/docs/storage.md b/src/Bsqlite/docs/storage.md deleted file mode 100644 index a564b014fc5..00000000000 --- a/src/Bsqlite/docs/storage.md +++ /dev/null @@ -1,62 +0,0 @@ -# Storage - -A storage backend is a `IBsqliteStorageProvider`: a .NET half that declares capabilities and answers probes, and a JavaScript VFS the worker registers with the engine. The contract is public; the core consumes nothing else. - -## First-party backends - -| Name | Package | Engine build | Persistent | Notes | -|---|---|---|---|---| -| `opfs` | `Bit.Bsqlite.Storage.Opfs` | Synchronous | Yes | `OPFSCoopSyncVFS`. Fastest. Several connections and tabs, coordinated through Web Locks. No `ATTACH`. Worker-only, no COOP/COEP needed. | -| `indexeddb` | `Bit.Bsqlite.Storage.IndexedDb` | Async-capable | Yes | `IDBBatchAtomicVFS`. Works where OPFS does not (older Safari, some embedded views). Page size fixed at 4096. `cache_size` raised to 8 MiB so batch-atomic commits skip the journal. | -| `cache-storage` | `Bit.Bsqlite.Storage.CacheStorage` | Async-capable | Yes | 4096-byte pages in the Cache API. Imports a database left by [Bit.Besql](https://github.com/bitfoundation/bitplatform/tree/develop/src/Besql) on first open. | -| `in-memory` | `Bit.Bsqlite` (namespace `Bit.Bsqlite.Storage.InMemory`) | Synchronous | No | The engine's own memory VFS. Tests, demos, and a declared last resort. | - -The engine build matters: a VFS that suspends to read storage (IndexedDB, Cache Storage) needs the JSPI build where the browser has it (Chrome 137+) and the Asyncify build otherwise. The synchronous build is the smallest and serves OPFS and in-memory. Exactly one is downloaded per session. - -## Selection - -```csharp -.UseStorage(s => s - .Prefer("opfs") - .Fallback("indexeddb") - .Fallback("in-memory") - .AllowNonPersistentFallback() - .WithMigrationMode(BsqliteStorageMigrationMode.KeepExisting)) -``` - -Two rules shape everything: - -1. **Existing data outranks preference.** A database created on IndexedDB stays on IndexedDB when OPFS later becomes available. If the backend that holds the data cannot be reached, the open fails rather than producing an empty database elsewhere. The binding is recorded in `IBsqliteStorageBindingStore` (in `localStorage` by default) only after the open succeeds. A database with no binding - after an application clears `localStorage` on sign-out, say - is looked for on every available persistent backend before it is treated as new; found, it opens there, is bound again (`Resolution.WasFoundWithoutBinding`), and a warning is logged. -2. **Nothing is substituted silently.** A fallback is logged. Falling back to a non-persistent backend needs `AllowNonPersistentFallback()`, and is never bound: the data is gone by the next load, so the binding would protect nothing, and would keep every later visit off a persistent backend that has come back. Total failure throws `BsqliteStorageUnavailableException` listing every candidate and why it was rejected. - -`session.Resolution` records the decision: the chosen provider, the probe, every attempt, whether it was the first choice, and whether a better backend is available for an existing database. - -## Migration - -`BsqliteStorageMigrationMode.AutomaticOnOpen` moves a database to a better-ranked backend before opening it. `Manual` and `KeepExisting` leave it and report through `Resolution.BetterProviderAvailable`. - -A migration is: probe the target, check quota headroom, export, verify the SQLite header, import, read the copy back and compare it byte for byte, flip the binding, delete the source. A failure before the flip leaves the source and the binding untouched. If deleting the source fails - another tab still holding an OPFS file open, say - the flip is undone when the source is still whole, and kept when it is not; the error is rethrown either way, and the binding says where the database now lives. `AutomaticOnOpen` resolves again after any failure, so the session always opens where the binding points. The demo's storage switcher drives the same `BsqliteStorageMigrator` by hand. - -## Admin - -`provider.Admin` works on databases as files, with no engine running: `ExistsAsync`, `ListAsync`, `DeleteAsync`, `ExportAsync`, `ImportAsync`. Close the session first when the database may be open: - -```csharp -await Database.WhileClosedAsync(async ct => -{ - await provider.Admin.ImportAsync("app.db", bytes, ct); - await bindings.SetProviderNameAsync("app.db", provider.Name, ct); -}); -``` - -For a backup of a database that stays open, use `connection.ExportAsync()` instead: it snapshots through `sqlite3_serialize` under the engine's own lock. - -`BsqlitePersistence.RequestAsync(js)` asks the browser to exempt the origin from storage eviction. It is origin-wide, not per backend. - -## Writing a provider - -1. Implement `IBsqliteStorageProvider`: a stable `Name`, `Capabilities` (which engine build the VFS needs, whether data persists, and the rest), `VfsModule` pointing at an ES module, `Admin`, and `ProbeAsync` that reports unavailability rather than throwing. -2. Write the VFS against the base classes served from `_content/Bit.Bsqlite/engine/` (`VFS.js`, `FacadeVFS.js`, `WebLocksMixin.js`), imported relatively - `../Bit.Bsqlite/engine/VFS.js` from your package's own `_content` folder - so the application can be served under a sub-path. Export `register({ module, sqlite3, databaseName })` returning `{ vfsName, onOpenSql? }`. -3. Inherit `BsqliteStorageProviderConformanceTests` and `BsqliteStorageEngineConformanceTests` (namespace `Bit.Bsqlite.Storage.ConformanceTests`, package `Bit.Bsqlite.Testing`) in your MSTest project, with `[TestClass]` on each derived class. They check that the declared capabilities are coherent and that the admin surface behaves the way migration assumes. - -Capability flags the core enforces for you: `SupportsMultiDatabaseTransactions` gates `ATTACH`, `CanChangePageSize` gates `PRAGMA page_size`, `IsPersistent` gates fallback. Declare the least capable answer when unsure. diff --git a/src/Balette/Bit.Balette.slnx b/src/Utilities/Balette/Bit.Balette.slnx similarity index 80% rename from src/Balette/Bit.Balette.slnx rename to src/Utilities/Balette/Bit.Balette.slnx index 45cecf075f7..bcf0c96d216 100644 --- a/src/Balette/Bit.Balette.slnx +++ b/src/Utilities/Balette/Bit.Balette.slnx @@ -1,9 +1,9 @@  - - - - + + + + diff --git a/src/Balette/Bit.Balette/BaletteOptions.cs b/src/Utilities/Balette/Bit.Balette/BaletteOptions.cs similarity index 100% rename from src/Balette/Bit.Balette/BaletteOptions.cs rename to src/Utilities/Balette/Bit.Balette/BaletteOptions.cs diff --git a/src/Balette/Bit.Balette/Bit.Balette.csproj b/src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj similarity index 99% rename from src/Balette/Bit.Balette/Bit.Balette.csproj rename to src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj index 795ada4c82a..b2d907b03ff 100644 --- a/src/Balette/Bit.Balette/Bit.Balette.csproj +++ b/src/Utilities/Balette/Bit.Balette/Bit.Balette.csproj @@ -1,6 +1,6 @@  - + net10.0;net9.0;net8.0 diff --git a/src/Balette/Bit.Balette/BitBalette.cs b/src/Utilities/Balette/Bit.Balette/BitBalette.cs similarity index 100% rename from src/Balette/Bit.Balette/BitBalette.cs rename to src/Utilities/Balette/Bit.Balette/BitBalette.cs diff --git a/src/Balette/Bit.Balette/Components/Balette.razor b/src/Utilities/Balette/Bit.Balette/Components/Balette.razor similarity index 100% rename from src/Balette/Bit.Balette/Components/Balette.razor rename to src/Utilities/Balette/Bit.Balette/Components/Balette.razor diff --git a/src/Balette/Bit.Balette/Components/Balette.razor.cs b/src/Utilities/Balette/Bit.Balette/Components/Balette.razor.cs similarity index 100% rename from src/Balette/Bit.Balette/Components/Balette.razor.cs rename to src/Utilities/Balette/Bit.Balette/Components/Balette.razor.cs diff --git a/src/Balette/Bit.Balette/Components/BaletteCommands.razor b/src/Utilities/Balette/Bit.Balette/Components/BaletteCommands.razor similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteCommands.razor rename to src/Utilities/Balette/Bit.Balette/Components/BaletteCommands.razor diff --git a/src/Balette/Bit.Balette/Components/BaletteCommands.razor.cs b/src/Utilities/Balette/Bit.Balette/Components/BaletteCommands.razor.cs similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteCommands.razor.cs rename to src/Utilities/Balette/Bit.Balette/Components/BaletteCommands.razor.cs diff --git a/src/Balette/Bit.Balette/Components/BaletteGroup.razor b/src/Utilities/Balette/Bit.Balette/Components/BaletteGroup.razor similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteGroup.razor rename to src/Utilities/Balette/Bit.Balette/Components/BaletteGroup.razor diff --git a/src/Balette/Bit.Balette/Components/BaletteGroup.razor.cs b/src/Utilities/Balette/Bit.Balette/Components/BaletteGroup.razor.cs similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteGroup.razor.cs rename to src/Utilities/Balette/Bit.Balette/Components/BaletteGroup.razor.cs diff --git a/src/Balette/Bit.Balette/Components/BaletteHighlightedText.razor b/src/Utilities/Balette/Bit.Balette/Components/BaletteHighlightedText.razor similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteHighlightedText.razor rename to src/Utilities/Balette/Bit.Balette/Components/BaletteHighlightedText.razor diff --git a/src/Balette/Bit.Balette/Components/BaletteHighlightedText.razor.cs b/src/Utilities/Balette/Bit.Balette/Components/BaletteHighlightedText.razor.cs similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteHighlightedText.razor.cs rename to src/Utilities/Balette/Bit.Balette/Components/BaletteHighlightedText.razor.cs diff --git a/src/Balette/Bit.Balette/Components/BaletteItem.razor b/src/Utilities/Balette/Bit.Balette/Components/BaletteItem.razor similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteItem.razor rename to src/Utilities/Balette/Bit.Balette/Components/BaletteItem.razor diff --git a/src/Balette/Bit.Balette/Components/BaletteItem.razor.cs b/src/Utilities/Balette/Bit.Balette/Components/BaletteItem.razor.cs similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteItem.razor.cs rename to src/Utilities/Balette/Bit.Balette/Components/BaletteItem.razor.cs diff --git a/src/Balette/Bit.Balette/Components/BaletteRow.cs b/src/Utilities/Balette/Bit.Balette/Components/BaletteRow.cs similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteRow.cs rename to src/Utilities/Balette/Bit.Balette/Components/BaletteRow.cs diff --git a/src/Balette/Bit.Balette/Components/BaletteShortcutHint.razor b/src/Utilities/Balette/Bit.Balette/Components/BaletteShortcutHint.razor similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteShortcutHint.razor rename to src/Utilities/Balette/Bit.Balette/Components/BaletteShortcutHint.razor diff --git a/src/Balette/Bit.Balette/Components/BaletteShortcutHint.razor.cs b/src/Utilities/Balette/Bit.Balette/Components/BaletteShortcutHint.razor.cs similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteShortcutHint.razor.cs rename to src/Utilities/Balette/Bit.Balette/Components/BaletteShortcutHint.razor.cs diff --git a/src/Balette/Bit.Balette/Components/BaletteTrigger.razor b/src/Utilities/Balette/Bit.Balette/Components/BaletteTrigger.razor similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteTrigger.razor rename to src/Utilities/Balette/Bit.Balette/Components/BaletteTrigger.razor diff --git a/src/Balette/Bit.Balette/Components/BaletteTrigger.razor.cs b/src/Utilities/Balette/Bit.Balette/Components/BaletteTrigger.razor.cs similarity index 100% rename from src/Balette/Bit.Balette/Components/BaletteTrigger.razor.cs rename to src/Utilities/Balette/Bit.Balette/Components/BaletteTrigger.razor.cs diff --git a/src/Balette/Bit.Balette/History/BaletteBrowserStorageHistoryStore.cs b/src/Utilities/Balette/Bit.Balette/History/BaletteBrowserStorageHistoryStore.cs similarity index 100% rename from src/Balette/Bit.Balette/History/BaletteBrowserStorageHistoryStore.cs rename to src/Utilities/Balette/Bit.Balette/History/BaletteBrowserStorageHistoryStore.cs diff --git a/src/Balette/Bit.Balette/History/BaletteHistory.cs b/src/Utilities/Balette/Bit.Balette/History/BaletteHistory.cs similarity index 100% rename from src/Balette/Bit.Balette/History/BaletteHistory.cs rename to src/Utilities/Balette/Bit.Balette/History/BaletteHistory.cs diff --git a/src/Balette/Bit.Balette/History/IBaletteHistoryStore.cs b/src/Utilities/Balette/Bit.Balette/History/IBaletteHistoryStore.cs similarity index 100% rename from src/Balette/Bit.Balette/History/IBaletteHistoryStore.cs rename to src/Utilities/Balette/Bit.Balette/History/IBaletteHistoryStore.cs diff --git a/src/Balette/Bit.Balette/Localization/BaletteStrings.cs b/src/Utilities/Balette/Bit.Balette/Localization/BaletteStrings.cs similarity index 100% rename from src/Balette/Bit.Balette/Localization/BaletteStrings.cs rename to src/Utilities/Balette/Bit.Balette/Localization/BaletteStrings.cs diff --git a/src/Balette/Bit.Balette/Models/BaletteCommand.cs b/src/Utilities/Balette/Bit.Balette/Models/BaletteCommand.cs similarity index 100% rename from src/Balette/Bit.Balette/Models/BaletteCommand.cs rename to src/Utilities/Balette/Bit.Balette/Models/BaletteCommand.cs diff --git a/src/Balette/Bit.Balette/Models/BaletteCommandBuilder.cs b/src/Utilities/Balette/Bit.Balette/Models/BaletteCommandBuilder.cs similarity index 100% rename from src/Balette/Bit.Balette/Models/BaletteCommandBuilder.cs rename to src/Utilities/Balette/Bit.Balette/Models/BaletteCommandBuilder.cs diff --git a/src/Balette/Bit.Balette/Models/BaletteCommandContext.cs b/src/Utilities/Balette/Bit.Balette/Models/BaletteCommandContext.cs similarity index 100% rename from src/Balette/Bit.Balette/Models/BaletteCommandContext.cs rename to src/Utilities/Balette/Bit.Balette/Models/BaletteCommandContext.cs diff --git a/src/Balette/Bit.Balette/Models/BaletteCommandMode.cs b/src/Utilities/Balette/Bit.Balette/Models/BaletteCommandMode.cs similarity index 100% rename from src/Balette/Bit.Balette/Models/BaletteCommandMode.cs rename to src/Utilities/Balette/Bit.Balette/Models/BaletteCommandMode.cs diff --git a/src/Balette/Bit.Balette/Models/BaletteCommandResult.cs b/src/Utilities/Balette/Bit.Balette/Models/BaletteCommandResult.cs similarity index 100% rename from src/Balette/Bit.Balette/Models/BaletteCommandResult.cs rename to src/Utilities/Balette/Bit.Balette/Models/BaletteCommandResult.cs diff --git a/src/Balette/Bit.Balette/Models/BaletteKeyboardShortcut.cs b/src/Utilities/Balette/Bit.Balette/Models/BaletteKeyboardShortcut.cs similarity index 100% rename from src/Balette/Bit.Balette/Models/BaletteKeyboardShortcut.cs rename to src/Utilities/Balette/Bit.Balette/Models/BaletteKeyboardShortcut.cs diff --git a/src/Balette/Bit.Balette/README.md b/src/Utilities/Balette/Bit.Balette/README.md similarity index 98% rename from src/Balette/Bit.Balette/README.md rename to src/Utilities/Balette/Bit.Balette/README.md index 617bbf8be99..354331a97c6 100644 --- a/src/Balette/Bit.Balette/README.md +++ b/src/Utilities/Balette/Bit.Balette/README.md @@ -75,5 +75,5 @@ pages. The full guide - commands, declarative markup, handlers and results, nested pages, search and ranking, modes, async sources, history, the keyboard, theming, templates, localization, accessibility and hosting models - is in the -[Balette README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Balette). See it running at +[Balette README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Balette). See it running at [balette.bitplatform.dev](https://balette.bitplatform.dev). diff --git a/src/Balette/Bit.Balette/Scripts/bit-balette.ts b/src/Utilities/Balette/Bit.Balette/Scripts/bit-balette.ts similarity index 100% rename from src/Balette/Bit.Balette/Scripts/bit-balette.ts rename to src/Utilities/Balette/Bit.Balette/Scripts/bit-balette.ts diff --git a/src/Balette/Bit.Balette/Search/BaletteFuzzyMatcher.cs b/src/Utilities/Balette/Bit.Balette/Search/BaletteFuzzyMatcher.cs similarity index 100% rename from src/Balette/Bit.Balette/Search/BaletteFuzzyMatcher.cs rename to src/Utilities/Balette/Bit.Balette/Search/BaletteFuzzyMatcher.cs diff --git a/src/Balette/Bit.Balette/Search/BaletteMatch.cs b/src/Utilities/Balette/Bit.Balette/Search/BaletteMatch.cs similarity index 100% rename from src/Balette/Bit.Balette/Search/BaletteMatch.cs rename to src/Utilities/Balette/Bit.Balette/Search/BaletteMatch.cs diff --git a/src/Balette/Bit.Balette/Search/BaletteRanker.cs b/src/Utilities/Balette/Bit.Balette/Search/BaletteRanker.cs similarity index 100% rename from src/Balette/Bit.Balette/Search/BaletteRanker.cs rename to src/Utilities/Balette/Bit.Balette/Search/BaletteRanker.cs diff --git a/src/Balette/Bit.Balette/Search/IBaletteMatcher.cs b/src/Utilities/Balette/Bit.Balette/Search/IBaletteMatcher.cs similarity index 100% rename from src/Balette/Bit.Balette/Search/IBaletteMatcher.cs rename to src/Utilities/Balette/Bit.Balette/Search/IBaletteMatcher.cs diff --git a/src/Balette/Bit.Balette/Search/IBaletteSource.cs b/src/Utilities/Balette/Bit.Balette/Search/IBaletteSource.cs similarity index 100% rename from src/Balette/Bit.Balette/Search/IBaletteSource.cs rename to src/Utilities/Balette/Bit.Balette/Search/IBaletteSource.cs diff --git a/src/Balette/Bit.Balette/Services/BaletteService.cs b/src/Utilities/Balette/Bit.Balette/Services/BaletteService.cs similarity index 100% rename from src/Balette/Bit.Balette/Services/BaletteService.cs rename to src/Utilities/Balette/Bit.Balette/Services/BaletteService.cs diff --git a/src/Balette/Bit.Balette/Services/IBaletteService.cs b/src/Utilities/Balette/Bit.Balette/Services/IBaletteService.cs similarity index 100% rename from src/Balette/Bit.Balette/Services/IBaletteService.cs rename to src/Utilities/Balette/Bit.Balette/Services/IBaletteService.cs diff --git a/src/Balette/Bit.Balette/Styles/bit-balette.css b/src/Utilities/Balette/Bit.Balette/Styles/bit-balette.css similarity index 100% rename from src/Balette/Bit.Balette/Styles/bit-balette.css rename to src/Utilities/Balette/Bit.Balette/Styles/bit-balette.css diff --git a/src/Balette/Bit.Balette/_Imports.razor b/src/Utilities/Balette/Bit.Balette/_Imports.razor similarity index 100% rename from src/Balette/Bit.Balette/_Imports.razor rename to src/Utilities/Balette/Bit.Balette/_Imports.razor diff --git a/src/Balette/Bit.Balette/package-lock.json b/src/Utilities/Balette/Bit.Balette/package-lock.json similarity index 100% rename from src/Balette/Bit.Balette/package-lock.json rename to src/Utilities/Balette/Bit.Balette/package-lock.json diff --git a/src/Balette/Bit.Balette/package.json b/src/Utilities/Balette/Bit.Balette/package.json similarity index 100% rename from src/Balette/Bit.Balette/package.json rename to src/Utilities/Balette/Bit.Balette/package.json diff --git a/src/Balette/Bit.Balette/tsconfig.json b/src/Utilities/Balette/Bit.Balette/tsconfig.json similarity index 100% rename from src/Balette/Bit.Balette/tsconfig.json rename to src/Utilities/Balette/Bit.Balette/tsconfig.json diff --git a/src/Balette/Demo/Client/Bit.Balette.Demo.Client.csproj b/src/Utilities/Balette/Demo/Client/Bit.Balette.Demo.Client.csproj similarity index 100% rename from src/Balette/Demo/Client/Bit.Balette.Demo.Client.csproj rename to src/Utilities/Balette/Demo/Client/Bit.Balette.Demo.Client.csproj diff --git a/src/Balette/Demo/Client/Extensions/IServiceCollectionExtensions.cs b/src/Utilities/Balette/Demo/Client/Extensions/IServiceCollectionExtensions.cs similarity index 100% rename from src/Balette/Demo/Client/Extensions/IServiceCollectionExtensions.cs rename to src/Utilities/Balette/Demo/Client/Extensions/IServiceCollectionExtensions.cs diff --git a/src/Balette/Demo/Client/Layout/MainLayout.razor b/src/Utilities/Balette/Demo/Client/Layout/MainLayout.razor similarity index 100% rename from src/Balette/Demo/Client/Layout/MainLayout.razor rename to src/Utilities/Balette/Demo/Client/Layout/MainLayout.razor diff --git a/src/Balette/Demo/Client/Layout/NavMenu.razor b/src/Utilities/Balette/Demo/Client/Layout/NavMenu.razor similarity index 94% rename from src/Balette/Demo/Client/Layout/NavMenu.razor rename to src/Utilities/Balette/Demo/Client/Layout/NavMenu.razor index 496825893e1..4e78480dc07 100644 --- a/src/Balette/Demo/Client/Layout/NavMenu.razor +++ b/src/Utilities/Balette/Demo/Client/Layout/NavMenu.razor @@ -26,6 +26,6 @@ MCP server - Source on GitHub + Source on GitHub NuGet package diff --git a/src/Balette/Demo/Client/Pages/Commands.razor b/src/Utilities/Balette/Demo/Client/Pages/Commands.razor similarity index 100% rename from src/Balette/Demo/Client/Pages/Commands.razor rename to src/Utilities/Balette/Demo/Client/Pages/Commands.razor diff --git a/src/Balette/Demo/Client/Pages/Home.razor b/src/Utilities/Balette/Demo/Client/Pages/Home.razor similarity index 99% rename from src/Balette/Demo/Client/Pages/Home.razor rename to src/Utilities/Balette/Demo/Client/Pages/Home.razor index e0f5d658e28..6e8149854fa 100644 --- a/src/Balette/Demo/Client/Pages/Home.razor +++ b/src/Utilities/Balette/Demo/Client/Pages/Home.razor @@ -143,7 +143,7 @@ builder.Services.AddBitBaletteServices(); The stylesheet is not added for you: linking it yourself puts it before your own overrides in the cascade, and leaving it out is how Unstyled starts from bare markup. The source code, the documentation and the code of this demo are on - GitHub. + GitHub.

@code { diff --git a/src/Balette/Demo/Client/Pages/Keyboard.razor b/src/Utilities/Balette/Demo/Client/Pages/Keyboard.razor similarity index 100% rename from src/Balette/Demo/Client/Pages/Keyboard.razor rename to src/Utilities/Balette/Demo/Client/Pages/Keyboard.razor diff --git a/src/Balette/Demo/Client/Pages/McpServer.razor b/src/Utilities/Balette/Demo/Client/Pages/McpServer.razor similarity index 100% rename from src/Balette/Demo/Client/Pages/McpServer.razor rename to src/Utilities/Balette/Demo/Client/Pages/McpServer.razor diff --git a/src/Balette/Demo/Client/Pages/Modes.razor b/src/Utilities/Balette/Demo/Client/Pages/Modes.razor similarity index 100% rename from src/Balette/Demo/Client/Pages/Modes.razor rename to src/Utilities/Balette/Demo/Client/Pages/Modes.razor diff --git a/src/Balette/Demo/Client/Pages/NotFound.razor b/src/Utilities/Balette/Demo/Client/Pages/NotFound.razor similarity index 100% rename from src/Balette/Demo/Client/Pages/NotFound.razor rename to src/Utilities/Balette/Demo/Client/Pages/NotFound.razor diff --git a/src/Balette/Demo/Client/Pages/PagesAndFlows.razor b/src/Utilities/Balette/Demo/Client/Pages/PagesAndFlows.razor similarity index 100% rename from src/Balette/Demo/Client/Pages/PagesAndFlows.razor rename to src/Utilities/Balette/Demo/Client/Pages/PagesAndFlows.razor diff --git a/src/Balette/Demo/Client/Pages/Performance.razor b/src/Utilities/Balette/Demo/Client/Pages/Performance.razor similarity index 100% rename from src/Balette/Demo/Client/Pages/Performance.razor rename to src/Utilities/Balette/Demo/Client/Pages/Performance.razor diff --git a/src/Balette/Demo/Client/Pages/SearchAndRanking.razor b/src/Utilities/Balette/Demo/Client/Pages/SearchAndRanking.razor similarity index 100% rename from src/Balette/Demo/Client/Pages/SearchAndRanking.razor rename to src/Utilities/Balette/Demo/Client/Pages/SearchAndRanking.razor diff --git a/src/Balette/Demo/Client/Pages/Theming.razor b/src/Utilities/Balette/Demo/Client/Pages/Theming.razor similarity index 100% rename from src/Balette/Demo/Client/Pages/Theming.razor rename to src/Utilities/Balette/Demo/Client/Pages/Theming.razor diff --git a/src/Balette/Demo/Client/Program.cs b/src/Utilities/Balette/Demo/Client/Program.cs similarity index 100% rename from src/Balette/Demo/Client/Program.cs rename to src/Utilities/Balette/Demo/Client/Program.cs diff --git a/src/Balette/Demo/Client/Routes.razor b/src/Utilities/Balette/Demo/Client/Routes.razor similarity index 100% rename from src/Balette/Demo/Client/Routes.razor rename to src/Utilities/Balette/Demo/Client/Routes.razor diff --git a/src/Balette/Demo/Client/Services/DemoCommands.cs b/src/Utilities/Balette/Demo/Client/Services/DemoCommands.cs similarity index 99% rename from src/Balette/Demo/Client/Services/DemoCommands.cs rename to src/Utilities/Balette/Demo/Client/Services/DemoCommands.cs index daabd63886c..5562a80fa90 100644 --- a/src/Balette/Demo/Client/Services/DemoCommands.cs +++ b/src/Utilities/Balette/Demo/Client/Services/DemoCommands.cs @@ -7,7 +7,7 @@ /// public static class DemoCommands { - public const string GitHubUrl = "https://github.com/bitfoundation/bitplatform/tree/develop/src/Balette"; + public const string GitHubUrl = "https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Balette"; public const string NuGetUrl = "https://www.nuget.org/packages/Bit.Balette"; diff --git a/src/Balette/Demo/Client/Services/DemoState.cs b/src/Utilities/Balette/Demo/Client/Services/DemoState.cs similarity index 100% rename from src/Balette/Demo/Client/Services/DemoState.cs rename to src/Utilities/Balette/Demo/Client/Services/DemoState.cs diff --git a/src/Balette/Demo/Client/Services/FakeData.cs b/src/Utilities/Balette/Demo/Client/Services/FakeData.cs similarity index 100% rename from src/Balette/Demo/Client/Services/FakeData.cs rename to src/Utilities/Balette/Demo/Client/Services/FakeData.cs diff --git a/src/Balette/Demo/Client/Services/SourceLog.cs b/src/Utilities/Balette/Demo/Client/Services/SourceLog.cs similarity index 100% rename from src/Balette/Demo/Client/Services/SourceLog.cs rename to src/Utilities/Balette/Demo/Client/Services/SourceLog.cs diff --git a/src/Balette/Demo/Client/_Imports.razor b/src/Utilities/Balette/Demo/Client/_Imports.razor similarity index 100% rename from src/Balette/Demo/Client/_Imports.razor rename to src/Utilities/Balette/Demo/Client/_Imports.razor diff --git a/src/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj b/src/Utilities/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj similarity index 100% rename from src/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj rename to src/Utilities/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj diff --git a/src/Balette/Demo/Server/Components/App.razor b/src/Utilities/Balette/Demo/Server/Components/App.razor similarity index 100% rename from src/Balette/Demo/Server/Components/App.razor rename to src/Utilities/Balette/Demo/Server/Components/App.razor diff --git a/src/Balette/Demo/Server/Components/Pages/Error.razor b/src/Utilities/Balette/Demo/Server/Components/Pages/Error.razor similarity index 100% rename from src/Balette/Demo/Server/Components/Pages/Error.razor rename to src/Utilities/Balette/Demo/Server/Components/Pages/Error.razor diff --git a/src/Balette/Demo/Server/Components/_Imports.razor b/src/Utilities/Balette/Demo/Server/Components/_Imports.razor similarity index 100% rename from src/Balette/Demo/Server/Components/_Imports.razor rename to src/Utilities/Balette/Demo/Server/Components/_Imports.razor diff --git a/src/Balette/Demo/Server/Controllers/McpController.cs b/src/Utilities/Balette/Demo/Server/Controllers/McpController.cs similarity index 100% rename from src/Balette/Demo/Server/Controllers/McpController.cs rename to src/Utilities/Balette/Demo/Server/Controllers/McpController.cs diff --git a/src/Balette/Demo/Server/Controllers/McpPrompts.cs b/src/Utilities/Balette/Demo/Server/Controllers/McpPrompts.cs similarity index 100% rename from src/Balette/Demo/Server/Controllers/McpPrompts.cs rename to src/Utilities/Balette/Demo/Server/Controllers/McpPrompts.cs diff --git a/src/Balette/Demo/Server/Controllers/McpResources.cs b/src/Utilities/Balette/Demo/Server/Controllers/McpResources.cs similarity index 100% rename from src/Balette/Demo/Server/Controllers/McpResources.cs rename to src/Utilities/Balette/Demo/Server/Controllers/McpResources.cs diff --git a/src/Balette/Demo/Server/Dtos/BaletteMcpDtos.cs b/src/Utilities/Balette/Demo/Server/Dtos/BaletteMcpDtos.cs similarity index 100% rename from src/Balette/Demo/Server/Dtos/BaletteMcpDtos.cs rename to src/Utilities/Balette/Demo/Server/Dtos/BaletteMcpDtos.cs diff --git a/src/Balette/Demo/Server/Program.cs b/src/Utilities/Balette/Demo/Server/Program.cs similarity index 99% rename from src/Balette/Demo/Server/Program.cs rename to src/Utilities/Balette/Demo/Server/Program.cs index d68aa1a5992..cf17c6b9062 100644 --- a/src/Balette/Demo/Server/Program.cs +++ b/src/Utilities/Balette/Demo/Server/Program.cs @@ -34,7 +34,7 @@ Title = "Bit.Balette", Version = BaletteServerInstructions.BaletteVersion, Description = "Documentation, public API, theme variables, setup guides and search inspection for the Bit.Balette command palette library for Blazor.", - WebsiteUrl = "https://github.com/bitfoundation/bitplatform/tree/develop/src/Balette" + WebsiteUrl = "https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Balette" }; // Returned from `initialize` and put in front of the model before it has called anything. diff --git a/src/Balette/Demo/Server/Properties/launchSettings.json b/src/Utilities/Balette/Demo/Server/Properties/launchSettings.json similarity index 100% rename from src/Balette/Demo/Server/Properties/launchSettings.json rename to src/Utilities/Balette/Demo/Server/Properties/launchSettings.json diff --git a/src/Balette/Demo/Server/Services/BaletteApiCatalog.cs b/src/Utilities/Balette/Demo/Server/Services/BaletteApiCatalog.cs similarity index 100% rename from src/Balette/Demo/Server/Services/BaletteApiCatalog.cs rename to src/Utilities/Balette/Demo/Server/Services/BaletteApiCatalog.cs diff --git a/src/Balette/Demo/Server/Services/BaletteCompletions.cs b/src/Utilities/Balette/Demo/Server/Services/BaletteCompletions.cs similarity index 100% rename from src/Balette/Demo/Server/Services/BaletteCompletions.cs rename to src/Utilities/Balette/Demo/Server/Services/BaletteCompletions.cs diff --git a/src/Balette/Demo/Server/Services/BaletteSearchIndex.cs b/src/Utilities/Balette/Demo/Server/Services/BaletteSearchIndex.cs similarity index 100% rename from src/Balette/Demo/Server/Services/BaletteSearchIndex.cs rename to src/Utilities/Balette/Demo/Server/Services/BaletteSearchIndex.cs diff --git a/src/Balette/Demo/Server/Services/BaletteSearchLab.cs b/src/Utilities/Balette/Demo/Server/Services/BaletteSearchLab.cs similarity index 100% rename from src/Balette/Demo/Server/Services/BaletteSearchLab.cs rename to src/Utilities/Balette/Demo/Server/Services/BaletteSearchLab.cs diff --git a/src/Balette/Demo/Server/Services/BaletteServerInstructions.cs b/src/Utilities/Balette/Demo/Server/Services/BaletteServerInstructions.cs similarity index 100% rename from src/Balette/Demo/Server/Services/BaletteServerInstructions.cs rename to src/Utilities/Balette/Demo/Server/Services/BaletteServerInstructions.cs diff --git a/src/Balette/Demo/Server/Services/BaletteSetupGuide.cs b/src/Utilities/Balette/Demo/Server/Services/BaletteSetupGuide.cs similarity index 100% rename from src/Balette/Demo/Server/Services/BaletteSetupGuide.cs rename to src/Utilities/Balette/Demo/Server/Services/BaletteSetupGuide.cs diff --git a/src/Balette/Demo/Server/Services/BaletteSourceCatalog.cs b/src/Utilities/Balette/Demo/Server/Services/BaletteSourceCatalog.cs similarity index 100% rename from src/Balette/Demo/Server/Services/BaletteSourceCatalog.cs rename to src/Utilities/Balette/Demo/Server/Services/BaletteSourceCatalog.cs diff --git a/src/Balette/Demo/Server/Services/BaletteStylesheetClasses.cs b/src/Utilities/Balette/Demo/Server/Services/BaletteStylesheetClasses.cs similarity index 100% rename from src/Balette/Demo/Server/Services/BaletteStylesheetClasses.cs rename to src/Utilities/Balette/Demo/Server/Services/BaletteStylesheetClasses.cs diff --git a/src/Balette/Demo/Server/Services/BaletteThemeCatalog.cs b/src/Utilities/Balette/Demo/Server/Services/BaletteThemeCatalog.cs similarity index 100% rename from src/Balette/Demo/Server/Services/BaletteThemeCatalog.cs rename to src/Utilities/Balette/Demo/Server/Services/BaletteThemeCatalog.cs diff --git a/src/Balette/Demo/Server/Services/BaletteXmlDocs.cs b/src/Utilities/Balette/Demo/Server/Services/BaletteXmlDocs.cs similarity index 100% rename from src/Balette/Demo/Server/Services/BaletteXmlDocs.cs rename to src/Utilities/Balette/Demo/Server/Services/BaletteXmlDocs.cs diff --git a/src/Balette/Demo/Server/appsettings.json b/src/Utilities/Balette/Demo/Server/appsettings.json similarity index 100% rename from src/Balette/Demo/Server/appsettings.json rename to src/Utilities/Balette/Demo/Server/appsettings.json diff --git a/src/Balette/Demo/Server/wwwroot/app.css b/src/Utilities/Balette/Demo/Server/wwwroot/app.css similarity index 100% rename from src/Balette/Demo/Server/wwwroot/app.css rename to src/Utilities/Balette/Demo/Server/wwwroot/app.css diff --git a/src/Balette/Demo/Server/wwwroot/favicon.svg b/src/Utilities/Balette/Demo/Server/wwwroot/favicon.svg similarity index 100% rename from src/Balette/Demo/Server/wwwroot/favicon.svg rename to src/Utilities/Balette/Demo/Server/wwwroot/favicon.svg diff --git a/src/Balette/README.md b/src/Utilities/Balette/README.md similarity index 100% rename from src/Balette/README.md rename to src/Utilities/Balette/README.md diff --git a/src/Balette/Tests/Bit.Balette.Benchmarks/Bit.Balette.Benchmarks.csproj b/src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/Bit.Balette.Benchmarks.csproj similarity index 93% rename from src/Balette/Tests/Bit.Balette.Benchmarks/Bit.Balette.Benchmarks.csproj rename to src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/Bit.Balette.Benchmarks.csproj index d041c0757c0..cf1729a30b3 100644 --- a/src/Balette/Tests/Bit.Balette.Benchmarks/Bit.Balette.Benchmarks.csproj +++ b/src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/Bit.Balette.Benchmarks.csproj @@ -17,7 +17,7 @@ key: the keystroke benchmarks call the internal parse-once BaletteQuery overload and the ranker's limited overload, exactly as the palette component does, rather than the slower public entry points. --> true - ..\..\..\AssemblyOriginatorKeyFile.snk + ..\..\..\..\AssemblyOriginatorKeyFile.snk
diff --git a/src/Balette/Tests/Bit.Balette.Benchmarks/PaletteBenchmarks.cs b/src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/PaletteBenchmarks.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Benchmarks/PaletteBenchmarks.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/PaletteBenchmarks.cs diff --git a/src/Balette/Tests/Bit.Balette.Benchmarks/Program.cs b/src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/Program.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Benchmarks/Program.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/Program.cs diff --git a/src/Balette/Tests/Bit.Balette.Benchmarks/README.md b/src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/README.md similarity index 95% rename from src/Balette/Tests/Bit.Balette.Benchmarks/README.md rename to src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/README.md index 9e061dca39a..45b220a26fb 100644 --- a/src/Balette/Tests/Bit.Balette.Benchmarks/README.md +++ b/src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/README.md @@ -29,16 +29,16 @@ matcher therefore sees real word boundaries, shared prefixes and near misses. ```bash # From the repository's src folder. Release is required - a Debug build's numbers are meaningless. -dotnet run -c Release --project Balette/Tests/Bit.Balette.Benchmarks +dotnet run -c Release --project Utilities/Balette/Tests/Bit.Balette.Benchmarks # A single set, selected with BenchmarkDotNet's glob filter: -dotnet run -c Release --project Balette/Tests/Bit.Balette.Benchmarks -- --filter "*Keystroke*" +dotnet run -c Release --project Utilities/Balette/Tests/Bit.Balette.Benchmarks -- --filter "*Keystroke*" # How the numbers below were captured (3 measured iterations per case, about 7 minutes for the whole suite): -dotnet run -c Release --project Balette/Tests/Bit.Balette.Benchmarks -- --filter "*" --job short +dotnet run -c Release --project Utilities/Balette/Tests/Bit.Balette.Benchmarks -- --filter "*" --job short # A quick smoke run (one iteration, in-process, numbers not meaningful): -dotnet run -c Release --project Balette/Tests/Bit.Balette.Benchmarks -- --filter "*FuzzyMatcher*" --job dry --inProcess +dotnet run -c Release --project Utilities/Balette/Tests/Bit.Balette.Benchmarks -- --filter "*FuzzyMatcher*" --job dry --inProcess ``` Run with no `--filter` to get an interactive picker. Results (Markdown, CSV and HTML reports) are written to diff --git a/src/Balette/Tests/Bit.Balette.Benchmarks/Workloads.cs b/src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/Workloads.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Benchmarks/Workloads.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Benchmarks/Workloads.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/AssemblySetup.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/AssemblySetup.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/AssemblySetup.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/AssemblySetup.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/DemoPagesTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/DemoPagesTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/DemoPagesTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/DemoPagesTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/FlowTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/FlowTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/FlowTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/FlowTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/GlobalShortcutTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/GlobalShortcutTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/GlobalShortcutTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/GlobalShortcutTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/BaletteTest.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/BaletteTest.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/BaletteTest.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/BaletteTest.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/ChildProcess.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/ChildProcess.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/ChildProcess.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/ChildProcess.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/DemoHost.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/DemoHost.cs similarity index 94% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/DemoHost.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/DemoHost.cs index ea50ddf6e65..6e4e6bdef4d 100644 --- a/src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/DemoHost.cs +++ b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/DemoHost.cs @@ -31,7 +31,7 @@ public static async Task StartAsync() if (File.Exists(assembly) is false) throw new FileNotFoundException( $"The demo server has not been built in the {E2EEnvironment.Configuration} configuration. Build it first with " + - $"'dotnet build src/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj -c {E2EEnvironment.Configuration}'", assembly); + $"'dotnet build src/Utilities/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj -c {E2EEnvironment.Configuration}'", assembly); var baseUrl = $"http://127.0.0.1:{ChildProcess.FreePort()}"; diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/E2EEnvironment.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/E2EEnvironment.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/E2EEnvironment.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/E2EEnvironment.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/PlaywrightSession.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/PlaywrightSession.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/PlaywrightSession.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/RepoLayout.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/RepoLayout.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Infrastructure/RepoLayout.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/ModesAndSourcesTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/ModesAndSourcesTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/ModesAndSourcesTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/ModesAndSourcesTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/OpenAndCloseTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/OpenAndCloseTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/OpenAndCloseTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/OpenAndCloseTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/README.md b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/README.md similarity index 93% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/README.md rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/README.md index 6b643a56271..e8ff71193e6 100644 --- a/src/Balette/Tests/Bit.Balette.Tests.E2E/README.md +++ b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/README.md @@ -41,7 +41,7 @@ unanswered, and the test would otherwise time out pointing at the wrong thing. ## Running locally -From `src/Balette` (inside `src`, so `src/global.json` selects the Microsoft.Testing.Platform runner): +From `src/Utilities/Balette` (inside `src`, so `src/global.json` selects the Microsoft.Testing.Platform runner): ```bash # The suite runs the demo server's build output: build it first, in the configuration the tests run in. @@ -61,10 +61,10 @@ dotnet test --filter "FullyQualifiedName~Backspace_on_an_empty_query" CI does the same in Release (`.github/workflows/bit.ci.Balette.e2e.yml`): ```bash -dotnet build src/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj -c Release -dotnet build src/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj -c Release -pwsh src/Balette/Tests/Bit.Balette.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium -cd src/Balette/Tests/Bit.Balette.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename balette-e2e.trx +dotnet build src/Utilities/Balette/Demo/Server/Bit.Balette.Demo.Server.csproj -c Release +dotnet build src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/Bit.Balette.Tests.E2E.csproj -c Release +pwsh src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium +cd src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename balette-e2e.trx ``` That workflow only runs when started by hand (Actions > "bit platform CI - Balette E2E" > Run workflow). The pull-request pipeline, `bit.ci.Balette.yml`, runs the build, model, search, component and MCP tests only. diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/SearchAndNavigationTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/SearchAndNavigationTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/SearchAndNavigationTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/SearchAndNavigationTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.E2E/ThemingAndLayoutTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/ThemingAndLayoutTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.E2E/ThemingAndLayoutTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.E2E/ThemingAndLayoutTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.Mcp/Bit.Balette.Tests.Mcp.csproj b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/Bit.Balette.Tests.Mcp.csproj similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.Mcp/Bit.Balette.Tests.Mcp.csproj rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/Bit.Balette.Tests.Mcp.csproj diff --git a/src/Balette/Tests/Bit.Balette.Tests.Mcp/McpCall.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpCall.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.Mcp/McpCall.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpCall.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.Mcp/McpOracleTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpOracleTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.Mcp/McpOracleTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpOracleTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.Mcp/McpResourcePromptTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpResourcePromptTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.Mcp/McpResourcePromptTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpResourcePromptTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.Mcp/McpSearchLabTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpSearchLabTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.Mcp/McpSearchLabTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpSearchLabTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.Mcp/McpSearchTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpSearchTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.Mcp/McpSearchTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpSearchTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.Mcp/McpSurfaceTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpSurfaceTests.cs similarity index 99% rename from src/Balette/Tests/Bit.Balette.Tests.Mcp/McpSurfaceTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpSurfaceTests.cs index 99e7a17b036..2688ecd0dd6 100644 --- a/src/Balette/Tests/Bit.Balette.Tests.Mcp/McpSurfaceTests.cs +++ b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpSurfaceTests.cs @@ -60,7 +60,7 @@ public void The_server_introduces_itself_as_the_library_at_its_own_version() Assert.AreEqual(BaletteServerInstructions.BaletteVersion, info.Version); Assert.AreNotEqual("unknown", info.Version); Assert.DoesNotContain("+", info.Version, "The build metadata should have been stripped from the version."); - Assert.AreEqual("https://github.com/bitfoundation/bitplatform/tree/develop/src/Balette", info.WebsiteUrl); + Assert.AreEqual("https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Balette", info.WebsiteUrl); } [TestMethod] diff --git a/src/Balette/Tests/Bit.Balette.Tests.Mcp/McpTestHost.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpTestHost.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.Mcp/McpTestHost.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpTestHost.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.Mcp/McpToolTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpToolTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.Mcp/McpToolTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/McpToolTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests.Mcp/ToolNames.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/ToolNames.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests.Mcp/ToolNames.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests.Mcp/ToolNames.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests/AssertSequence.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests/AssertSequence.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests/AssertSequence.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests/AssertSequence.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests/Bit.Balette.Tests.csproj b/src/Utilities/Balette/Tests/Bit.Balette.Tests/Bit.Balette.Tests.csproj similarity index 89% rename from src/Balette/Tests/Bit.Balette.Tests/Bit.Balette.Tests.csproj rename to src/Utilities/Balette/Tests/Bit.Balette.Tests/Bit.Balette.Tests.csproj index cc35279da29..cd10570ecdb 100644 --- a/src/Balette/Tests/Bit.Balette.Tests/Bit.Balette.Tests.csproj +++ b/src/Utilities/Balette/Tests/Bit.Balette.Tests/Bit.Balette.Tests.csproj @@ -10,7 +10,7 @@ true false true - ..\..\..\AssemblyOriginatorKeyFile.snk + ..\..\..\..\AssemblyOriginatorKeyFile.snk diff --git a/src/Balette/Tests/Bit.Balette.Tests/CommandModelTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests/CommandModelTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests/CommandModelTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests/CommandModelTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests/Components/BaletteComponentTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests/Components/BaletteComponentTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests/Components/BaletteComponentTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests/Components/BaletteComponentTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests/Components/BaletteFlowTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests/Components/BaletteFlowTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests/Components/BaletteFlowTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests/Components/BaletteFlowTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests/FuzzyMatcherTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests/FuzzyMatcherTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests/FuzzyMatcherTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests/FuzzyMatcherTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests/GlobalUsings.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests/GlobalUsings.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests/GlobalUsings.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests/GlobalUsings.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests/KeyboardShortcutTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests/KeyboardShortcutTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests/KeyboardShortcutTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests/KeyboardShortcutTests.cs diff --git a/src/Balette/Tests/Bit.Balette.Tests/SourceTests.cs b/src/Utilities/Balette/Tests/Bit.Balette.Tests/SourceTests.cs similarity index 100% rename from src/Balette/Tests/Bit.Balette.Tests/SourceTests.cs rename to src/Utilities/Balette/Tests/Bit.Balette.Tests/SourceTests.cs diff --git a/src/BbScanner/Bit.BbScanner.slnx b/src/Utilities/BbScanner/Bit.BbScanner.slnx similarity index 82% rename from src/BbScanner/Bit.BbScanner.slnx rename to src/Utilities/BbScanner/Bit.BbScanner.slnx index e812f68e8b0..78a171a04a6 100644 --- a/src/BbScanner/Bit.BbScanner.slnx +++ b/src/Utilities/BbScanner/Bit.BbScanner.slnx @@ -1,9 +1,9 @@  - - - - + + + + diff --git a/src/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj b/src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj similarity index 99% rename from src/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj rename to src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj index 9e38902cae7..e294321cfdf 100644 --- a/src/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj +++ b/src/Utilities/BbScanner/Bit.BbScanner/Bit.BbScanner.csproj @@ -1,6 +1,6 @@  - + net10.0;net9.0;net8.0 diff --git a/src/BbScanner/Bit.BbScanner/Components/BbScanner.razor b/src/Utilities/BbScanner/Bit.BbScanner/Components/BbScanner.razor similarity index 100% rename from src/BbScanner/Bit.BbScanner/Components/BbScanner.razor rename to src/Utilities/BbScanner/Bit.BbScanner/Components/BbScanner.razor diff --git a/src/BbScanner/Bit.BbScanner/Components/BbScanner.razor.cs b/src/Utilities/BbScanner/Bit.BbScanner/Components/BbScanner.razor.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Components/BbScanner.razor.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Components/BbScanner.razor.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbBarcodeFormat.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbBarcodeFormat.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbBarcodeFormat.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbBarcodeFormat.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbBarcodeResult.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbBarcodeResult.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbBarcodeResult.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbBarcodeResult.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbBarcodeResultMetadata.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbBarcodeResultMetadata.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbBarcodeResultMetadata.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbBarcodeResultMetadata.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbCameraDevice.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbCameraDevice.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbCameraDevice.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbCameraDevice.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbCameraFacing.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbCameraFacing.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbCameraFacing.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbCameraFacing.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbCameraInfo.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbCameraInfo.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbCameraInfo.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbCameraInfo.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbScanPoint.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbScanPoint.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbScanPoint.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbScanPoint.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbScanRect.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbScanRect.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbScanRect.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbScanRect.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbScanRegion.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbScanRegion.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbScanRegion.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbScanRegion.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbScannerErrorKind.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbScannerErrorKind.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbScannerErrorKind.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbScannerErrorKind.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbScannerException.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbScannerException.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbScannerException.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbScannerException.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbScannerJsonContext.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbScannerJsonContext.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbScannerJsonContext.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbScannerJsonContext.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbScannerOptions.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbScannerOptions.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbScannerOptions.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbScannerOptions.cs diff --git a/src/BbScanner/Bit.BbScanner/Core/BbScannerStatus.cs b/src/Utilities/BbScanner/Bit.BbScanner/Core/BbScannerStatus.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Core/BbScannerStatus.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Core/BbScannerStatus.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/BbSymbolDecodeResult.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/BbSymbolDecodeResult.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/BbSymbolDecodeResult.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/BbSymbolDecodeResult.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbBitSource.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbBitSource.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbBitSource.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbBitSource.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbCharacterSetEci.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbCharacterSetEci.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbCharacterSetEci.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbCharacterSetEci.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbDarkRegionFinder.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbDarkRegionFinder.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbDarkRegionFinder.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbDarkRegionFinder.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbDecoderResult.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbDecoderResult.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbDecoderResult.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbDecoderResult.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbDetectorResult.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbDetectorResult.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbDetectorResult.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbDetectorResult.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbGenericGF.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbGenericGF.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbGenericGF.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbGenericGF.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbGfPoly.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbGfPoly.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbGfPoly.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbGfPoly.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbGridSampler.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbGridSampler.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbGridSampler.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbGridSampler.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbMathUtils.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbMathUtils.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbMathUtils.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbMathUtils.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbPerspectiveTransform.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbPerspectiveTransform.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbPerspectiveTransform.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbPerspectiveTransform.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbReedSolomonDecoder.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbReedSolomonDecoder.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbReedSolomonDecoder.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbReedSolomonDecoder.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Common/BbWhiteRectangleDetector.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbWhiteRectangleDetector.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Common/BbWhiteRectangleDetector.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Common/BbWhiteRectangleDetector.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixBitMatrixParser.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixBitMatrixParser.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixBitMatrixParser.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixBitMatrixParser.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixBitStreamParser.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixBitStreamParser.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixBitStreamParser.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixBitStreamParser.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixDataBlocks.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixDataBlocks.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixDataBlocks.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixDataBlocks.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixDetector.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixDetector.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixDetector.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixDetector.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixReader.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixReader.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixReader.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixReader.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixVersion.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixVersion.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixVersion.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/DataMatrix/BbDataMatrixVersion.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/IBbMatrixDecoder.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/IBbMatrixDecoder.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/IBbMatrixDecoder.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/IBbMatrixDecoder.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/IBbRowDecoder.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/IBbRowDecoder.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/IBbRowDecoder.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/IBbRowDecoder.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/OneD/BbCode128Reader.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/OneD/BbCode128Reader.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/OneD/BbCode128Reader.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/OneD/BbCode128Reader.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/OneD/BbCode39Reader.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/OneD/BbCode39Reader.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/OneD/BbCode39Reader.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/OneD/BbCode39Reader.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/OneD/BbEanUpcReader.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/OneD/BbEanUpcReader.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/OneD/BbEanUpcReader.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/OneD/BbEanUpcReader.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/OneD/BbItfReader.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/OneD/BbItfReader.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/OneD/BbItfReader.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/OneD/BbItfReader.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/OneD/BbLinearPatterns.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/OneD/BbLinearPatterns.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/OneD/BbLinearPatterns.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/OneD/BbLinearPatterns.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbModulusGF.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbModulusGF.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbModulusGF.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbModulusGF.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbModulusPoly.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbModulusPoly.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbModulusPoly.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbModulusPoly.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417BitStreamParser.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417BitStreamParser.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417BitStreamParser.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417BitStreamParser.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417Detector.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417Detector.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417Detector.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417Detector.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417ErrorCorrection.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417ErrorCorrection.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417ErrorCorrection.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417ErrorCorrection.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417Reader.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417Reader.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417Reader.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417Reader.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417SymbolTable.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417SymbolTable.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417SymbolTable.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/Pdf417/BbPdf417SymbolTable.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrAlignmentPatternFinder.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrAlignmentPatternFinder.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrAlignmentPatternFinder.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrAlignmentPatternFinder.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrBitMatrixParser.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrBitMatrixParser.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrBitMatrixParser.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrBitMatrixParser.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrBitStreamParser.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrBitStreamParser.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrBitStreamParser.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrBitStreamParser.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrCodeReader.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrCodeReader.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrCodeReader.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrCodeReader.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDataBlocks.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDataBlocks.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDataBlocks.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDataBlocks.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDataMask.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDataMask.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDataMask.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDataMask.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDecoder.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDecoder.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDecoder.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDecoder.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDetector.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDetector.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDetector.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrDetector.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrErrorCorrectionLevel.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrErrorCorrectionLevel.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrErrorCorrectionLevel.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrErrorCorrectionLevel.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFinderPattern.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFinderPattern.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFinderPattern.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFinderPattern.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFinderPatternFinder.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFinderPatternFinder.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFinderPatternFinder.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFinderPatternFinder.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFormatInformation.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFormatInformation.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFormatInformation.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrFormatInformation.cs diff --git a/src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrVersion.cs b/src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrVersion.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrVersion.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Decoding/QrCode/BbQrVersion.cs diff --git a/src/BbScanner/Bit.BbScanner/Imaging/BbAdaptiveRowBinarizer.cs b/src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbAdaptiveRowBinarizer.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Imaging/BbAdaptiveRowBinarizer.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbAdaptiveRowBinarizer.cs diff --git a/src/BbScanner/Bit.BbScanner/Imaging/BbBitMatrix.cs b/src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbBitMatrix.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Imaging/BbBitMatrix.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbBitMatrix.cs diff --git a/src/BbScanner/Bit.BbScanner/Imaging/BbBitRow.cs b/src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbBitRow.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Imaging/BbBitRow.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbBitRow.cs diff --git a/src/BbScanner/Bit.BbScanner/Imaging/BbGlobalHistogramBinarizer.cs b/src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbGlobalHistogramBinarizer.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Imaging/BbGlobalHistogramBinarizer.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbGlobalHistogramBinarizer.cs diff --git a/src/BbScanner/Bit.BbScanner/Imaging/BbHybridBinarizer.cs b/src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbHybridBinarizer.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Imaging/BbHybridBinarizer.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbHybridBinarizer.cs diff --git a/src/BbScanner/Bit.BbScanner/Imaging/BbLuminanceBuffer.cs b/src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbLuminanceBuffer.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Imaging/BbLuminanceBuffer.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbLuminanceBuffer.cs diff --git a/src/BbScanner/Bit.BbScanner/Imaging/BbLuminanceView.cs b/src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbLuminanceView.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Imaging/BbLuminanceView.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbLuminanceView.cs diff --git a/src/BbScanner/Bit.BbScanner/Imaging/BbPixelConverter.cs b/src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbPixelConverter.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Imaging/BbPixelConverter.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbPixelConverter.cs diff --git a/src/BbScanner/Bit.BbScanner/Imaging/BbPixelFormat.cs b/src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbPixelFormat.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Imaging/BbPixelFormat.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Imaging/BbPixelFormat.cs diff --git a/src/BbScanner/Bit.BbScanner/Imaging/IBbBinarizer.cs b/src/Utilities/BbScanner/Bit.BbScanner/Imaging/IBbBinarizer.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Imaging/IBbBinarizer.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Imaging/IBbBinarizer.cs diff --git a/src/BbScanner/Bit.BbScanner/Interop/BbScannerJsInterop.cs b/src/Utilities/BbScanner/Bit.BbScanner/Interop/BbScannerJsInterop.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Interop/BbScannerJsInterop.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Interop/BbScannerJsInterop.cs diff --git a/src/BbScanner/Bit.BbScanner/Pipeline/BbBarcodeDecoder.cs b/src/Utilities/BbScanner/Bit.BbScanner/Pipeline/BbBarcodeDecoder.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Pipeline/BbBarcodeDecoder.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Pipeline/BbBarcodeDecoder.cs diff --git a/src/BbScanner/Bit.BbScanner/Pipeline/BbDuplicateFilter.cs b/src/Utilities/BbScanner/Bit.BbScanner/Pipeline/BbDuplicateFilter.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Pipeline/BbDuplicateFilter.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Pipeline/BbDuplicateFilter.cs diff --git a/src/BbScanner/Bit.BbScanner/Pipeline/BbScanDiagnostics.cs b/src/Utilities/BbScanner/Bit.BbScanner/Pipeline/BbScanDiagnostics.cs similarity index 100% rename from src/BbScanner/Bit.BbScanner/Pipeline/BbScanDiagnostics.cs rename to src/Utilities/BbScanner/Bit.BbScanner/Pipeline/BbScanDiagnostics.cs diff --git a/src/BbScanner/Bit.BbScanner/README.md b/src/Utilities/BbScanner/Bit.BbScanner/README.md similarity index 98% rename from src/BbScanner/Bit.BbScanner/README.md rename to src/Utilities/BbScanner/Bit.BbScanner/README.md index 39ac3013385..9bcebb76931 100644 --- a/src/BbScanner/Bit.BbScanner/README.md +++ b/src/Utilities/BbScanner/Bit.BbScanner/README.md @@ -66,5 +66,5 @@ lab and the demo's working pages. The full guide - symbologies, the component's parameters, events and methods, still images, styling, the decoder outside Blazor, hosting models, errors and permissions, what it reads, performance and architecture - is in the -[BbScanner README](https://github.com/bitfoundation/bitplatform/tree/develop/src/BbScanner). See it running at +[BbScanner README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/BbScanner). See it running at [bbscanner.bitplatform.dev](https://bbscanner.bitplatform.dev). diff --git a/src/BbScanner/Bit.BbScanner/Scripts/Bit.BbScanner.lib.module.ts b/src/Utilities/BbScanner/Bit.BbScanner/Scripts/Bit.BbScanner.lib.module.ts similarity index 100% rename from src/BbScanner/Bit.BbScanner/Scripts/Bit.BbScanner.lib.module.ts rename to src/Utilities/BbScanner/Bit.BbScanner/Scripts/Bit.BbScanner.lib.module.ts diff --git a/src/BbScanner/Bit.BbScanner/Scripts/bit-bbscanner.ts b/src/Utilities/BbScanner/Bit.BbScanner/Scripts/bit-bbscanner.ts similarity index 100% rename from src/BbScanner/Bit.BbScanner/Scripts/bit-bbscanner.ts rename to src/Utilities/BbScanner/Bit.BbScanner/Scripts/bit-bbscanner.ts diff --git a/src/BbScanner/Bit.BbScanner/Styles/bit-bbscanner.css b/src/Utilities/BbScanner/Bit.BbScanner/Styles/bit-bbscanner.css similarity index 100% rename from src/BbScanner/Bit.BbScanner/Styles/bit-bbscanner.css rename to src/Utilities/BbScanner/Bit.BbScanner/Styles/bit-bbscanner.css diff --git a/src/BbScanner/Bit.BbScanner/_Imports.razor b/src/Utilities/BbScanner/Bit.BbScanner/_Imports.razor similarity index 100% rename from src/BbScanner/Bit.BbScanner/_Imports.razor rename to src/Utilities/BbScanner/Bit.BbScanner/_Imports.razor diff --git a/src/BbScanner/Bit.BbScanner/package-lock.json b/src/Utilities/BbScanner/Bit.BbScanner/package-lock.json similarity index 100% rename from src/BbScanner/Bit.BbScanner/package-lock.json rename to src/Utilities/BbScanner/Bit.BbScanner/package-lock.json diff --git a/src/BbScanner/Bit.BbScanner/package.json b/src/Utilities/BbScanner/Bit.BbScanner/package.json similarity index 100% rename from src/BbScanner/Bit.BbScanner/package.json rename to src/Utilities/BbScanner/Bit.BbScanner/package.json diff --git a/src/BbScanner/Bit.BbScanner/tsconfig.json b/src/Utilities/BbScanner/Bit.BbScanner/tsconfig.json similarity index 100% rename from src/BbScanner/Bit.BbScanner/tsconfig.json rename to src/Utilities/BbScanner/Bit.BbScanner/tsconfig.json diff --git a/src/BbScanner/Demo/Client/Bit.BbScanner.Demo.Client.csproj b/src/Utilities/BbScanner/Demo/Client/Bit.BbScanner.Demo.Client.csproj similarity index 100% rename from src/BbScanner/Demo/Client/Bit.BbScanner.Demo.Client.csproj rename to src/Utilities/BbScanner/Demo/Client/Bit.BbScanner.Demo.Client.csproj diff --git a/src/BbScanner/Demo/Client/Extensions/IServiceCollectionExtensions.cs b/src/Utilities/BbScanner/Demo/Client/Extensions/IServiceCollectionExtensions.cs similarity index 100% rename from src/BbScanner/Demo/Client/Extensions/IServiceCollectionExtensions.cs rename to src/Utilities/BbScanner/Demo/Client/Extensions/IServiceCollectionExtensions.cs diff --git a/src/BbScanner/Demo/Client/Layout/MainLayout.razor b/src/Utilities/BbScanner/Demo/Client/Layout/MainLayout.razor similarity index 100% rename from src/BbScanner/Demo/Client/Layout/MainLayout.razor rename to src/Utilities/BbScanner/Demo/Client/Layout/MainLayout.razor diff --git a/src/BbScanner/Demo/Client/Layout/NavMenu.razor b/src/Utilities/BbScanner/Demo/Client/Layout/NavMenu.razor similarity index 94% rename from src/BbScanner/Demo/Client/Layout/NavMenu.razor rename to src/Utilities/BbScanner/Demo/Client/Layout/NavMenu.razor index d560cc7a331..316f968e583 100644 --- a/src/BbScanner/Demo/Client/Layout/NavMenu.razor +++ b/src/Utilities/BbScanner/Demo/Client/Layout/NavMenu.razor @@ -43,7 +43,7 @@ diff --git a/src/BbScanner/Demo/Client/Pages/Api.razor b/src/Utilities/BbScanner/Demo/Client/Pages/Api.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/Api.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/Api.razor diff --git a/src/BbScanner/Demo/Client/Pages/Camera.razor b/src/Utilities/BbScanner/Demo/Client/Pages/Camera.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/Camera.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/Camera.razor diff --git a/src/BbScanner/Demo/Client/Pages/Customize.razor b/src/Utilities/BbScanner/Demo/Client/Pages/Customize.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/Customize.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/Customize.razor diff --git a/src/BbScanner/Demo/Client/Pages/Errors.razor b/src/Utilities/BbScanner/Demo/Client/Pages/Errors.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/Errors.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/Errors.razor diff --git a/src/BbScanner/Demo/Client/Pages/Home.razor b/src/Utilities/BbScanner/Demo/Client/Pages/Home.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/Home.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/Home.razor diff --git a/src/BbScanner/Demo/Client/Pages/Image.razor b/src/Utilities/BbScanner/Demo/Client/Pages/Image.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/Image.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/Image.razor diff --git a/src/BbScanner/Demo/Client/Pages/Lifecycle.razor b/src/Utilities/BbScanner/Demo/Client/Pages/Lifecycle.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/Lifecycle.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/Lifecycle.razor diff --git a/src/BbScanner/Demo/Client/Pages/McpServer.razor b/src/Utilities/BbScanner/Demo/Client/Pages/McpServer.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/McpServer.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/McpServer.razor diff --git a/src/BbScanner/Demo/Client/Pages/NotFound.razor b/src/Utilities/BbScanner/Demo/Client/Pages/NotFound.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/NotFound.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/NotFound.razor diff --git a/src/BbScanner/Demo/Client/Pages/Performance.razor b/src/Utilities/BbScanner/Demo/Client/Pages/Performance.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/Performance.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/Performance.razor diff --git a/src/BbScanner/Demo/Client/Pages/Region.razor b/src/Utilities/BbScanner/Demo/Client/Pages/Region.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/Region.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/Region.razor diff --git a/src/BbScanner/Demo/Client/Pages/Samples.razor b/src/Utilities/BbScanner/Demo/Client/Pages/Samples.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/Samples.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/Samples.razor diff --git a/src/BbScanner/Demo/Client/Pages/Scan.razor b/src/Utilities/BbScanner/Demo/Client/Pages/Scan.razor similarity index 100% rename from src/BbScanner/Demo/Client/Pages/Scan.razor rename to src/Utilities/BbScanner/Demo/Client/Pages/Scan.razor diff --git a/src/BbScanner/Demo/Client/Program.cs b/src/Utilities/BbScanner/Demo/Client/Program.cs similarity index 100% rename from src/BbScanner/Demo/Client/Program.cs rename to src/Utilities/BbScanner/Demo/Client/Program.cs diff --git a/src/BbScanner/Demo/Client/Routes.razor b/src/Utilities/BbScanner/Demo/Client/Routes.razor similarity index 100% rename from src/BbScanner/Demo/Client/Routes.razor rename to src/Utilities/BbScanner/Demo/Client/Routes.razor diff --git a/src/BbScanner/Demo/Client/SampleCatalog.cs b/src/Utilities/BbScanner/Demo/Client/SampleCatalog.cs similarity index 100% rename from src/BbScanner/Demo/Client/SampleCatalog.cs rename to src/Utilities/BbScanner/Demo/Client/SampleCatalog.cs diff --git a/src/BbScanner/Demo/Client/Shared/BarcodeSvg.razor b/src/Utilities/BbScanner/Demo/Client/Shared/BarcodeSvg.razor similarity index 100% rename from src/BbScanner/Demo/Client/Shared/BarcodeSvg.razor rename to src/Utilities/BbScanner/Demo/Client/Shared/BarcodeSvg.razor diff --git a/src/BbScanner/Demo/Client/Shared/DiagnosticsPanel.razor b/src/Utilities/BbScanner/Demo/Client/Shared/DiagnosticsPanel.razor similarity index 100% rename from src/BbScanner/Demo/Client/Shared/DiagnosticsPanel.razor rename to src/Utilities/BbScanner/Demo/Client/Shared/DiagnosticsPanel.razor diff --git a/src/BbScanner/Demo/Client/Shared/ResultLog.razor b/src/Utilities/BbScanner/Demo/Client/Shared/ResultLog.razor similarity index 100% rename from src/BbScanner/Demo/Client/Shared/ResultLog.razor rename to src/Utilities/BbScanner/Demo/Client/Shared/ResultLog.razor diff --git a/src/BbScanner/Demo/Client/_Imports.razor b/src/Utilities/BbScanner/Demo/Client/_Imports.razor similarity index 100% rename from src/BbScanner/Demo/Client/_Imports.razor rename to src/Utilities/BbScanner/Demo/Client/_Imports.razor diff --git a/src/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj b/src/Utilities/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj similarity index 100% rename from src/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj rename to src/Utilities/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj diff --git a/src/BbScanner/Demo/Server/Components/App.razor b/src/Utilities/BbScanner/Demo/Server/Components/App.razor similarity index 100% rename from src/BbScanner/Demo/Server/Components/App.razor rename to src/Utilities/BbScanner/Demo/Server/Components/App.razor diff --git a/src/BbScanner/Demo/Server/Components/Pages/Error.razor b/src/Utilities/BbScanner/Demo/Server/Components/Pages/Error.razor similarity index 100% rename from src/BbScanner/Demo/Server/Components/Pages/Error.razor rename to src/Utilities/BbScanner/Demo/Server/Components/Pages/Error.razor diff --git a/src/BbScanner/Demo/Server/Components/_Imports.razor b/src/Utilities/BbScanner/Demo/Server/Components/_Imports.razor similarity index 100% rename from src/BbScanner/Demo/Server/Components/_Imports.razor rename to src/Utilities/BbScanner/Demo/Server/Components/_Imports.razor diff --git a/src/BbScanner/Demo/Server/Controllers/McpController.cs b/src/Utilities/BbScanner/Demo/Server/Controllers/McpController.cs similarity index 100% rename from src/BbScanner/Demo/Server/Controllers/McpController.cs rename to src/Utilities/BbScanner/Demo/Server/Controllers/McpController.cs diff --git a/src/BbScanner/Demo/Server/Controllers/McpPrompts.cs b/src/Utilities/BbScanner/Demo/Server/Controllers/McpPrompts.cs similarity index 100% rename from src/BbScanner/Demo/Server/Controllers/McpPrompts.cs rename to src/Utilities/BbScanner/Demo/Server/Controllers/McpPrompts.cs diff --git a/src/BbScanner/Demo/Server/Controllers/McpResources.cs b/src/Utilities/BbScanner/Demo/Server/Controllers/McpResources.cs similarity index 100% rename from src/BbScanner/Demo/Server/Controllers/McpResources.cs rename to src/Utilities/BbScanner/Demo/Server/Controllers/McpResources.cs diff --git a/src/BbScanner/Demo/Server/Dtos/BbScannerMcpDtos.cs b/src/Utilities/BbScanner/Demo/Server/Dtos/BbScannerMcpDtos.cs similarity index 100% rename from src/BbScanner/Demo/Server/Dtos/BbScannerMcpDtos.cs rename to src/Utilities/BbScanner/Demo/Server/Dtos/BbScannerMcpDtos.cs diff --git a/src/BbScanner/Demo/Server/Program.cs b/src/Utilities/BbScanner/Demo/Server/Program.cs similarity index 99% rename from src/BbScanner/Demo/Server/Program.cs rename to src/Utilities/BbScanner/Demo/Server/Program.cs index c5d9992284d..b59f26163cb 100644 --- a/src/BbScanner/Demo/Server/Program.cs +++ b/src/Utilities/BbScanner/Demo/Server/Program.cs @@ -34,7 +34,7 @@ Title = "Bit.BbScanner", Version = BbScannerServerInstructions.BbScannerVersion, Description = "Documentation, public API, symbologies, setup guides and a decode lab for the Bit.BbScanner barcode scanner for Blazor.", - WebsiteUrl = "https://github.com/bitfoundation/bitplatform/tree/develop/src/BbScanner" + WebsiteUrl = "https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/BbScanner" }; // Returned from `initialize` and put in front of the model before it has called anything. diff --git a/src/BbScanner/Demo/Server/Properties/launchSettings.json b/src/Utilities/BbScanner/Demo/Server/Properties/launchSettings.json similarity index 100% rename from src/BbScanner/Demo/Server/Properties/launchSettings.json rename to src/Utilities/BbScanner/Demo/Server/Properties/launchSettings.json diff --git a/src/BbScanner/Demo/Server/Services/BbScannerApiCatalog.cs b/src/Utilities/BbScanner/Demo/Server/Services/BbScannerApiCatalog.cs similarity index 100% rename from src/BbScanner/Demo/Server/Services/BbScannerApiCatalog.cs rename to src/Utilities/BbScanner/Demo/Server/Services/BbScannerApiCatalog.cs diff --git a/src/BbScanner/Demo/Server/Services/BbScannerCompletions.cs b/src/Utilities/BbScanner/Demo/Server/Services/BbScannerCompletions.cs similarity index 100% rename from src/BbScanner/Demo/Server/Services/BbScannerCompletions.cs rename to src/Utilities/BbScanner/Demo/Server/Services/BbScannerCompletions.cs diff --git a/src/BbScanner/Demo/Server/Services/BbScannerDecodeLab.cs b/src/Utilities/BbScanner/Demo/Server/Services/BbScannerDecodeLab.cs similarity index 100% rename from src/BbScanner/Demo/Server/Services/BbScannerDecodeLab.cs rename to src/Utilities/BbScanner/Demo/Server/Services/BbScannerDecodeLab.cs diff --git a/src/BbScanner/Demo/Server/Services/BbScannerFormatCatalog.cs b/src/Utilities/BbScanner/Demo/Server/Services/BbScannerFormatCatalog.cs similarity index 100% rename from src/BbScanner/Demo/Server/Services/BbScannerFormatCatalog.cs rename to src/Utilities/BbScanner/Demo/Server/Services/BbScannerFormatCatalog.cs diff --git a/src/BbScanner/Demo/Server/Services/BbScannerSearchIndex.cs b/src/Utilities/BbScanner/Demo/Server/Services/BbScannerSearchIndex.cs similarity index 100% rename from src/BbScanner/Demo/Server/Services/BbScannerSearchIndex.cs rename to src/Utilities/BbScanner/Demo/Server/Services/BbScannerSearchIndex.cs diff --git a/src/BbScanner/Demo/Server/Services/BbScannerServerInstructions.cs b/src/Utilities/BbScanner/Demo/Server/Services/BbScannerServerInstructions.cs similarity index 100% rename from src/BbScanner/Demo/Server/Services/BbScannerServerInstructions.cs rename to src/Utilities/BbScanner/Demo/Server/Services/BbScannerServerInstructions.cs diff --git a/src/BbScanner/Demo/Server/Services/BbScannerSetupGuide.cs b/src/Utilities/BbScanner/Demo/Server/Services/BbScannerSetupGuide.cs similarity index 100% rename from src/BbScanner/Demo/Server/Services/BbScannerSetupGuide.cs rename to src/Utilities/BbScanner/Demo/Server/Services/BbScannerSetupGuide.cs diff --git a/src/BbScanner/Demo/Server/Services/BbScannerSourceCatalog.cs b/src/Utilities/BbScanner/Demo/Server/Services/BbScannerSourceCatalog.cs similarity index 100% rename from src/BbScanner/Demo/Server/Services/BbScannerSourceCatalog.cs rename to src/Utilities/BbScanner/Demo/Server/Services/BbScannerSourceCatalog.cs diff --git a/src/BbScanner/Demo/Server/Services/BbScannerStylesheetClasses.cs b/src/Utilities/BbScanner/Demo/Server/Services/BbScannerStylesheetClasses.cs similarity index 100% rename from src/BbScanner/Demo/Server/Services/BbScannerStylesheetClasses.cs rename to src/Utilities/BbScanner/Demo/Server/Services/BbScannerStylesheetClasses.cs diff --git a/src/BbScanner/Demo/Server/Services/BbScannerXmlDocs.cs b/src/Utilities/BbScanner/Demo/Server/Services/BbScannerXmlDocs.cs similarity index 100% rename from src/BbScanner/Demo/Server/Services/BbScannerXmlDocs.cs rename to src/Utilities/BbScanner/Demo/Server/Services/BbScannerXmlDocs.cs diff --git a/src/BbScanner/Demo/Server/appsettings.json b/src/Utilities/BbScanner/Demo/Server/appsettings.json similarity index 100% rename from src/BbScanner/Demo/Server/appsettings.json rename to src/Utilities/BbScanner/Demo/Server/appsettings.json diff --git a/src/BbScanner/Demo/Server/wwwroot/app.css b/src/Utilities/BbScanner/Demo/Server/wwwroot/app.css similarity index 100% rename from src/BbScanner/Demo/Server/wwwroot/app.css rename to src/Utilities/BbScanner/Demo/Server/wwwroot/app.css diff --git a/src/BbScanner/Demo/Server/wwwroot/favicon.png b/src/Utilities/BbScanner/Demo/Server/wwwroot/favicon.png similarity index 100% rename from src/BbScanner/Demo/Server/wwwroot/favicon.png rename to src/Utilities/BbScanner/Demo/Server/wwwroot/favicon.png diff --git a/src/BbScanner/README.md b/src/Utilities/BbScanner/README.md similarity index 99% rename from src/BbScanner/README.md rename to src/Utilities/BbScanner/README.md index e79a939cc24..82a1a18296f 100644 --- a/src/BbScanner/README.md +++ b/src/Utilities/BbScanner/README.md @@ -674,7 +674,7 @@ The encoders live in the test kit, not in the library: the library only reads ba decoder can be validated by round trip instead of by binary fixtures, and so that the demo can render real, scannable symbols. -From `src/BbScanner` (inside `src`, so `src/global.json` selects the Microsoft.Testing.Platform runner): +From `src/Utilities/BbScanner` (inside `src`, so `src/global.json` selects the Microsoft.Testing.Platform runner): ```bash dotnet build Bit.BbScanner.slnx diff --git a/src/BbScanner/Tests/Bit.BbScanner.Benchmarks/Bit.BbScanner.Benchmarks.csproj b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/Bit.BbScanner.Benchmarks.csproj similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Benchmarks/Bit.BbScanner.Benchmarks.csproj rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/Bit.BbScanner.Benchmarks.csproj diff --git a/src/BbScanner/Tests/Bit.BbScanner.Benchmarks/DecoderBenchmarks.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/DecoderBenchmarks.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Benchmarks/DecoderBenchmarks.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/DecoderBenchmarks.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Benchmarks/FrameFactory.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/FrameFactory.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Benchmarks/FrameFactory.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/FrameFactory.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Benchmarks/Program.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/Program.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Benchmarks/Program.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/Program.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Benchmarks/README.md b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/README.md similarity index 86% rename from src/BbScanner/Tests/Bit.BbScanner.Benchmarks/README.md rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/README.md index b22a1028a93..efe9c724bef 100644 --- a/src/BbScanner/Tests/Bit.BbScanner.Benchmarks/README.md +++ b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/README.md @@ -18,13 +18,13 @@ symbols the unit tests round trip against - so every benchmark measures a frame ```bash # From the repository's src folder. Release is required - a Debug build's numbers are meaningless. -dotnet run -c Release --project BbScanner/Tests/Bit.BbScanner.Benchmarks +dotnet run -c Release --project Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks # A single set, selected with BenchmarkDotNet's glob filter: -dotnet run -c Release --project BbScanner/Tests/Bit.BbScanner.Benchmarks -- --filter "*DecoderBenchmarks*" +dotnet run -c Release --project Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks -- --filter "*DecoderBenchmarks*" # A quick smoke run (one iteration, in-process, numbers not meaningful): -dotnet run -c Release --project BbScanner/Tests/Bit.BbScanner.Benchmarks -- --filter "*StageBenchmarks*" --job dry --inProcess +dotnet run -c Release --project Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks -- --filter "*StageBenchmarks*" --job dry --inProcess ``` Before measuring anything the harness decodes every frame once and fails when one of them no longer decodes diff --git a/src/BbScanner/Tests/Bit.BbScanner.Benchmarks/StageBenchmarks.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/StageBenchmarks.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Benchmarks/StageBenchmarks.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/StageBenchmarks.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Benchmarks/Verification.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/Verification.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Benchmarks/Verification.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Benchmarks/Verification.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.TestKit/Bit.BbScanner.TestKit.csproj b/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/Bit.BbScanner.TestKit.csproj similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.TestKit/Bit.BbScanner.TestKit.csproj rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/Bit.BbScanner.TestKit.csproj diff --git a/src/BbScanner/Tests/Bit.BbScanner.TestKit/DataMatrixEncoder.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/DataMatrixEncoder.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.TestKit/DataMatrixEncoder.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/DataMatrixEncoder.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.TestKit/ImageTransforms.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/ImageTransforms.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.TestKit/ImageTransforms.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/ImageTransforms.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.TestKit/LinearEncoders.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/LinearEncoders.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.TestKit/LinearEncoders.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/LinearEncoders.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.TestKit/Pdf417Encoder.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/Pdf417Encoder.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.TestKit/Pdf417Encoder.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/Pdf417Encoder.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.TestKit/QrEncoder.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/QrEncoder.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.TestKit/QrEncoder.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/QrEncoder.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.TestKit/ReedSolomonEncoder.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/ReedSolomonEncoder.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.TestKit/ReedSolomonEncoder.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/ReedSolomonEncoder.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.TestKit/SyntheticImage.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/SyntheticImage.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.TestKit/SyntheticImage.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.TestKit/SyntheticImage.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/AssemblySetup.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/AssemblySetup.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/AssemblySetup.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/AssemblySetup.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/BbScannerTest.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/BbScannerTest.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/BbScannerTest.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/BbScannerTest.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/CameraClips.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/CameraClips.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/CameraClips.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/CameraClips.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/ChildProcess.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/ChildProcess.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/ChildProcess.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/ChildProcess.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/DemoHost.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/DemoHost.cs similarity index 93% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/DemoHost.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/DemoHost.cs index 822162a95c1..955adf1d56b 100644 --- a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/DemoHost.cs +++ b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/DemoHost.cs @@ -27,7 +27,7 @@ public static async Task StartAsync() if (File.Exists(assembly) is false) throw new FileNotFoundException( $"The demo server has not been built in the {E2EEnvironment.Configuration} configuration. Build it first with " + - $"'dotnet build src/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj -c {E2EEnvironment.Configuration}'", assembly); + $"'dotnet build src/Utilities/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj -c {E2EEnvironment.Configuration}'", assembly); var baseUrl = $"http://127.0.0.1:{ChildProcess.FreePort()}"; diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/E2EEnvironment.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/E2EEnvironment.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/E2EEnvironment.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/E2EEnvironment.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/FakeCameraVideo.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/FakeCameraVideo.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/FakeCameraVideo.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/FakeCameraVideo.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/PlaywrightSession.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/PlaywrightSession.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/PlaywrightSession.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/RepoLayout.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/RepoLayout.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/RepoLayout.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/ScannerSession.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/ScannerSession.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/ScannerSession.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Infrastructure/ScannerSession.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/README.md b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/README.md similarity index 90% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/README.md rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/README.md index a3e89405f57..1165764e782 100644 --- a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/README.md +++ b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/README.md @@ -29,7 +29,7 @@ lighting up the camera indicator. Every page is prerendered, so each test waits ## Running locally -From `src/BbScanner` (inside `src`, so `src/global.json` selects the Microsoft.Testing.Platform runner): +From `src/Utilities/BbScanner` (inside `src`, so `src/global.json` selects the Microsoft.Testing.Platform runner): ```bash # The suite runs the demo server's build output: build it first, in the configuration the tests run in. @@ -51,10 +51,10 @@ CI runs the suite in `.github/workflows/bit.ci.BbScanner.e2e.yml`, which only ru decoder, component and MCP tests only. The E2E workflow does the same as above, in Release: ```bash -dotnet build src/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj -c Release -dotnet build src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj -c Release -pwsh src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium -cd src/BbScanner/Tests/Bit.BbScanner.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bbscanner-e2e.trx +dotnet build src/Utilities/BbScanner/Demo/Server/Bit.BbScanner.Demo.Server.csproj -c Release +dotnet build src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/Bit.BbScanner.Tests.E2E.csproj -c Release +pwsh src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium +cd src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bbscanner-e2e.trx ``` The suite starts the demo server itself (`dotnet Bit.BbScanner.Demo.Server.dll --urls http://127.0.0.1:`, diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/ScannerInterfaceTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/ScannerInterfaceTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/ScannerInterfaceTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/ScannerInterfaceTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/ScannerLifecycleTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/ScannerLifecycleTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.E2E/ScannerLifecycleTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.E2E/ScannerLifecycleTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/Bit.BbScanner.Tests.Mcp.csproj b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/Bit.BbScanner.Tests.Mcp.csproj similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/Bit.BbScanner.Tests.Mcp.csproj rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/Bit.BbScanner.Tests.Mcp.csproj diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpCall.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpCall.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpCall.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpCall.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpDecodeLabTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpDecodeLabTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpDecodeLabTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpDecodeLabTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpOracleTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpOracleTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpOracleTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpOracleTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpResourcePromptTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpResourcePromptTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpResourcePromptTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpResourcePromptTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpSearchTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpSearchTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpSearchTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpSearchTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpSurfaceTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpSurfaceTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpSurfaceTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpSurfaceTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpTestHost.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpTestHost.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpTestHost.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpTestHost.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpToolTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpToolTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpToolTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/McpToolTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/ToolNames.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/ToolNames.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/ToolNames.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests.Mcp/ToolNames.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/BarcodeDecoderTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/BarcodeDecoderTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/BarcodeDecoderTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/BarcodeDecoderTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/Bit.BbScanner.Tests.csproj b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/Bit.BbScanner.Tests.csproj similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/Bit.BbScanner.Tests.csproj rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/Bit.BbScanner.Tests.csproj diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/Components/BbScannerTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/Components/BbScannerTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/Components/BbScannerTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/Components/BbScannerTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/DataMatrixBitStreamTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/DataMatrixBitStreamTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/DataMatrixBitStreamTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/DataMatrixBitStreamTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/DataMatrixDecoderTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/DataMatrixDecoderTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/DataMatrixDecoderTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/DataMatrixDecoderTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/GlobalUsings.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/GlobalUsings.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/GlobalUsings.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/GlobalUsings.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/ImagingTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/ImagingTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/ImagingTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/ImagingTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/LinearDecoderTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/LinearDecoderTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/LinearDecoderTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/LinearDecoderTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/LinearMisreadTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/LinearMisreadTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/LinearMisreadTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/LinearMisreadTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/Pdf417DecoderTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/Pdf417DecoderTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/Pdf417DecoderTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/Pdf417DecoderTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/PublicApiTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/PublicApiTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/PublicApiTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/PublicApiTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/QrCodeDecoderTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/QrCodeDecoderTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/QrCodeDecoderTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/QrCodeDecoderTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/QrVersionTableTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/QrVersionTableTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/QrVersionTableTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/QrVersionTableTests.cs diff --git a/src/BbScanner/Tests/Bit.BbScanner.Tests/RealWorldImageTests.cs b/src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/RealWorldImageTests.cs similarity index 100% rename from src/BbScanner/Tests/Bit.BbScanner.Tests/RealWorldImageTests.cs rename to src/Utilities/BbScanner/Tests/Bit.BbScanner.Tests/RealWorldImageTests.cs diff --git a/src/Bcrdt/Bit.Bcrdt.Server/BcrdtHub.cs b/src/Utilities/Bcrdt/Bit.Bcrdt.Server/BcrdtHub.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Server/BcrdtHub.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt.Server/BcrdtHub.cs diff --git a/src/Bcrdt/Bit.Bcrdt.Server/BcrdtWebSocketEndpoint.cs b/src/Utilities/Bcrdt/Bit.Bcrdt.Server/BcrdtWebSocketEndpoint.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Server/BcrdtWebSocketEndpoint.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt.Server/BcrdtWebSocketEndpoint.cs diff --git a/src/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj b/src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj similarity index 95% rename from src/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj rename to src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj index e836e758bf0..f8de0fe436b 100644 --- a/src/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj +++ b/src/Utilities/Bcrdt/Bit.Bcrdt.Server/Bit.Bcrdt.Server.csproj @@ -1,6 +1,6 @@  - + net10.0;net9.0;net8.0 diff --git a/src/Bcrdt/Bit.Bcrdt.Server/BitBcrdtServer.cs b/src/Utilities/Bcrdt/Bit.Bcrdt.Server/BitBcrdtServer.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Server/BitBcrdtServer.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt.Server/BitBcrdtServer.cs diff --git a/src/Bcrdt/Bit.Bcrdt.Server/README.md b/src/Utilities/Bcrdt/Bit.Bcrdt.Server/README.md similarity index 96% rename from src/Bcrdt/Bit.Bcrdt.Server/README.md rename to src/Utilities/Bcrdt/Bit.Bcrdt.Server/README.md index 8f05d9d7310..17423a874d3 100644 --- a/src/Bcrdt/Bit.Bcrdt.Server/README.md +++ b/src/Utilities/Bcrdt/Bit.Bcrdt.Server/README.md @@ -27,4 +27,4 @@ app.MapBitBcrdtWebSocket("/ws/bcrdt/{documentId}"); a broker behind a load balancer. Every WebSocket client gets its own bounded outbound queue, so one slow client cannot hold up the others. -The full guide is in the [Bcrdt README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Bcrdt). +The full guide is in the [Bcrdt README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Bcrdt). diff --git a/src/Bcrdt/Bit.Bcrdt.SignalR/BcrdtSignalRTransport.cs b/src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/BcrdtSignalRTransport.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.SignalR/BcrdtSignalRTransport.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/BcrdtSignalRTransport.cs diff --git a/src/Bcrdt/Bit.Bcrdt.SignalR/BcrdtSignalRTransportFactory.cs b/src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/BcrdtSignalRTransportFactory.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.SignalR/BcrdtSignalRTransportFactory.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/BcrdtSignalRTransportFactory.cs diff --git a/src/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj b/src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj similarity index 97% rename from src/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj rename to src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj index c20cb70f12a..ae8f6fffdcf 100644 --- a/src/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj +++ b/src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/Bit.Bcrdt.SignalR.csproj @@ -1,6 +1,6 @@  - + net10.0;net9.0;net8.0 diff --git a/src/Bcrdt/Bit.Bcrdt.SignalR/BitBcrdtSignalR.cs b/src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/BitBcrdtSignalR.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.SignalR/BitBcrdtSignalR.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/BitBcrdtSignalR.cs diff --git a/src/Bcrdt/Bit.Bcrdt.SignalR/README.md b/src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/README.md similarity index 95% rename from src/Bcrdt/Bit.Bcrdt.SignalR/README.md rename to src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/README.md index 106695594a7..cfecfe58f13 100644 --- a/src/Bcrdt/Bit.Bcrdt.SignalR/README.md +++ b/src/Utilities/Bcrdt/Bit.Bcrdt.SignalR/README.md @@ -28,4 +28,4 @@ The optional `configure` argument is applied to each connection's builder, for a protocol. Leave SignalR's own automatic reconnect off: bit Bcrdt's sync provider owns reconnection, and needs to see the drop to re-run the handshake. -The full guide is in the [Bcrdt README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Bcrdt). +The full guide is in the [Bcrdt README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Bcrdt). diff --git a/src/Bcrdt/Bit.Bcrdt.Testing/BcrdtConvergenceHarness.cs b/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/BcrdtConvergenceHarness.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Testing/BcrdtConvergenceHarness.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt.Testing/BcrdtConvergenceHarness.cs diff --git a/src/Bcrdt/Bit.Bcrdt.Testing/BcrdtOperationGenerator.cs b/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/BcrdtOperationGenerator.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Testing/BcrdtOperationGenerator.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt.Testing/BcrdtOperationGenerator.cs diff --git a/src/Bcrdt/Bit.Bcrdt.Testing/BcrdtSimulatedNetwork.cs b/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/BcrdtSimulatedNetwork.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Testing/BcrdtSimulatedNetwork.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt.Testing/BcrdtSimulatedNetwork.cs diff --git a/src/Bcrdt/Bit.Bcrdt.Testing/BcrdtUpdateCorrupter.cs b/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/BcrdtUpdateCorrupter.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Testing/BcrdtUpdateCorrupter.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt.Testing/BcrdtUpdateCorrupter.cs diff --git a/src/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj b/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj similarity index 95% rename from src/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj rename to src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj index af08d31a359..809b40a22a1 100644 --- a/src/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj +++ b/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/Bit.Bcrdt.Testing.csproj @@ -1,6 +1,6 @@  - + net10.0;net9.0;net8.0 diff --git a/src/Bcrdt/Bit.Bcrdt.Testing/README.md b/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/README.md similarity index 97% rename from src/Bcrdt/Bit.Bcrdt.Testing/README.md rename to src/Utilities/Bcrdt/Bit.Bcrdt.Testing/README.md index ed38c67b0a2..94dfbf94407 100644 --- a/src/Bcrdt/Bit.Bcrdt.Testing/README.md +++ b/src/Utilities/Bcrdt/Bit.Bcrdt.Testing/README.md @@ -59,4 +59,4 @@ foreach (byte[] corrupted in BcrdtUpdateCorrupter.Truncations(update)) } ``` -The full guide is in the [Bcrdt README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Bcrdt). +The full guide is in the [Bcrdt README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Bcrdt). diff --git a/src/Bcrdt/Bit.Bcrdt.slnx b/src/Utilities/Bcrdt/Bit.Bcrdt.slnx similarity index 80% rename from src/Bcrdt/Bit.Bcrdt.slnx rename to src/Utilities/Bcrdt/Bit.Bcrdt.slnx index 8872abf21b0..76c4f211bc2 100644 --- a/src/Bcrdt/Bit.Bcrdt.slnx +++ b/src/Utilities/Bcrdt/Bit.Bcrdt.slnx @@ -1,9 +1,9 @@  - - - - + + + + @@ -17,7 +17,6 @@ - diff --git a/src/Bcrdt/Bit.Bcrdt/Adapters/BcrdtBindings.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Adapters/BcrdtBindings.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Adapters/BcrdtBindings.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Adapters/BcrdtBindings.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextInputBinding.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextInputBinding.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextInputBinding.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextInputBinding.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextProjection.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextProjection.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextProjection.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextProjection.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextSynchronizer.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextSynchronizer.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextSynchronizer.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Adapters/BcrdtTextSynchronizer.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Awareness/BcrdtAwarenessStore.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Awareness/BcrdtAwarenessStore.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Awareness/BcrdtAwarenessStore.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Awareness/BcrdtAwarenessStore.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Awareness/BcrdtPresenceService.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Awareness/BcrdtPresenceService.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Awareness/BcrdtPresenceService.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Awareness/BcrdtPresenceService.cs diff --git a/src/Bcrdt/Bit.Bcrdt/BcrdtFormatException.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/BcrdtFormatException.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/BcrdtFormatException.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/BcrdtFormatException.cs diff --git a/src/Bcrdt/Bit.Bcrdt.Blazor/Bit.Bcrdt.Blazor.csproj b/src/Utilities/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj similarity index 58% rename from src/Bcrdt/Bit.Bcrdt.Blazor/Bit.Bcrdt.Blazor.csproj rename to src/Utilities/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj index c72859a8534..73b6ad6e29a 100644 --- a/src/Bcrdt/Bit.Bcrdt.Blazor/Bit.Bcrdt.Blazor.csproj +++ b/src/Utilities/Bcrdt/Bit.Bcrdt/Bit.Bcrdt.csproj @@ -1,16 +1,16 @@  - + net10.0;net9.0;net8.0 - Bit.Bcrdt.Blazor + Bit.Bcrdt enable true false - Blazor integration for bit Bcrdt: BcrdtComponentBase, which marshals change notifications onto the renderer and coalesces them onto a frame budget; BcrdtCollaborationScope, which opens and closes a document for its content; BcrdtTextArea, a textarea that edits a collaborative text without losing keystrokes; and BcrdtPresenceView. Works in Blazor WebAssembly, Server, Web App and Hybrid. + Real-time collaborative editing for .NET and Blazor, written natively in C#: a YATA-based CRDT engine (text, arrays, maps and sets), a synchronization protocol with jittered reconnection, presence and awareness, offline-first persistence, selective undo, input bindings and the in-memory and WebSocket transports - with no JavaScript CRDT library and no interop in the engine. Includes the Blazor components: BcrdtComponentBase, which marshals change notifications onto the renderer and coalesces them onto a frame budget; BcrdtCollaborationScope, which opens and closes a document for its content; BcrdtTextArea, a textarea that edits a collaborative text without losing keystrokes; and BcrdtPresenceView. Works in Blazor WebAssembly, Server, Web App and Hybrid. $(Description) - $(PackageTags);Blazor;CRDT;Collaboration;Realtime;Presence;Collaborative editing + $(PackageTags);Blazor;CRDT;Collaboration;Realtime;YATA;Offline-first;Presence;Undo;Sync;Collaborative editing @@ -20,18 +20,28 @@ + + + - + + - - + + + + + + + + ( - "import", "./_content/Bit.Bcrdt.Blazor/bit-bcrdt.js"); + "import", "./_content/Bit.Bcrdt/bit-bcrdt.js"); if (_isDisposed) { diff --git a/src/Bcrdt/Bit.Bcrdt.Blazor/Components/BcrdtTextArea.razor.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Blazor/BcrdtTextArea.razor.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Blazor/Components/BcrdtTextArea.razor.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Blazor/BcrdtTextArea.razor.cs diff --git a/src/Bcrdt/Bit.Bcrdt.Blazor/_Imports.razor b/src/Utilities/Bcrdt/Bit.Bcrdt/Blazor/_Imports.razor similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Blazor/_Imports.razor rename to src/Utilities/Bcrdt/Bit.Bcrdt/Blazor/_Imports.razor diff --git a/src/Bcrdt/Bit.Bcrdt/Buffers/BcrdtBufferReader.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Buffers/BcrdtBufferReader.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Buffers/BcrdtBufferReader.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Buffers/BcrdtBufferReader.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Buffers/BcrdtBufferWriter.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Buffers/BcrdtBufferWriter.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Buffers/BcrdtBufferWriter.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Buffers/BcrdtBufferWriter.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Buffers/BcrdtCrc32.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Buffers/BcrdtCrc32.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Buffers/BcrdtCrc32.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Buffers/BcrdtCrc32.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Buffers/BcrdtWtf8.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Buffers/BcrdtWtf8.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Buffers/BcrdtWtf8.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Buffers/BcrdtWtf8.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Collaboration/BcrdtCollaborationService.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Collaboration/BcrdtCollaborationService.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Collaboration/BcrdtCollaborationService.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Collaboration/BcrdtCollaborationService.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Collaboration/BcrdtCollaborativeDocument.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Collaboration/BcrdtCollaborativeDocument.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Collaboration/BcrdtCollaborativeDocument.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Collaboration/BcrdtCollaborativeDocument.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Content/BcrdtContentAny.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Content/BcrdtContentAny.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Content/BcrdtContentAny.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Content/BcrdtContentAny.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Content/BcrdtContentString.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Content/BcrdtContentString.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Content/BcrdtContentString.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Content/BcrdtContentString.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Content/BcrdtContentType.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Content/BcrdtContentType.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Content/BcrdtContentType.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Content/BcrdtContentType.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Content/BcrdtSimpleContents.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Content/BcrdtSimpleContents.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Content/BcrdtSimpleContents.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Content/BcrdtSimpleContents.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Content/IBcrdtContent.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Content/IBcrdtContent.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Content/IBcrdtContent.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Content/IBcrdtContent.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Document/BcrdtDeleteSet.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Document/BcrdtDeleteSet.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Document/BcrdtDeleteSet.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Document/BcrdtDeleteSet.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Document/BcrdtDocument.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Document/BcrdtDocument.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Document/BcrdtDocument.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Document/BcrdtDocument.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Document/BcrdtRelativePosition.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Document/BcrdtRelativePosition.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Document/BcrdtRelativePosition.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Document/BcrdtRelativePosition.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Document/BcrdtSnapshot.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Document/BcrdtSnapshot.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Document/BcrdtSnapshot.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Document/BcrdtSnapshot.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Document/BcrdtTransaction.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Document/BcrdtTransaction.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Document/BcrdtTransaction.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Document/BcrdtTransaction.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateCodec.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateCodec.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateCodec.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateCodec.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateDecoder.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateDecoder.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateDecoder.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateDecoder.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateEncoder.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateEncoder.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateEncoder.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateEncoder.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateOperations.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateOperations.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateOperations.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Encoding/BcrdtUpdateOperations.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Events/BcrdtDeltaOperation.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Events/BcrdtDeltaOperation.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Events/BcrdtDeltaOperation.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Events/BcrdtDeltaOperation.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Events/BcrdtEvent.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Events/BcrdtEvent.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Events/BcrdtEvent.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Events/BcrdtEvent.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Events/BcrdtTypedEvents.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Events/BcrdtTypedEvents.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Events/BcrdtTypedEvents.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Events/BcrdtTypedEvents.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Identity/BcrdtItemId.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Identity/BcrdtItemId.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Identity/BcrdtItemId.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Identity/BcrdtItemId.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Identity/BcrdtStateVector.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Identity/BcrdtStateVector.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Identity/BcrdtStateVector.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Identity/BcrdtStateVector.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Identity/IBcrdtClientIdProvider.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Identity/IBcrdtClientIdProvider.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Identity/IBcrdtClientIdProvider.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Identity/IBcrdtClientIdProvider.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Internal/BcrdtAbstractStruct.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtAbstractStruct.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Internal/BcrdtAbstractStruct.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtAbstractStruct.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Internal/BcrdtAttributeComparer.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtAttributeComparer.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Internal/BcrdtAttributeComparer.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtAttributeComparer.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Internal/BcrdtItem.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtItem.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Internal/BcrdtItem.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtItem.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Internal/BcrdtSearchMarker.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtSearchMarker.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Internal/BcrdtSearchMarker.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtSearchMarker.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Internal/BcrdtStructStore.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtStructStore.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Internal/BcrdtStructStore.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtStructStore.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Internal/BcrdtTextOperations.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtTextOperations.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Internal/BcrdtTextOperations.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtTextOperations.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Internal/BcrdtTypeOperations.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtTypeOperations.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Internal/BcrdtTypeOperations.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Internal/BcrdtTypeOperations.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Persistence/BcrdtDocumentPersistence.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Persistence/BcrdtDocumentPersistence.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Persistence/BcrdtDocumentPersistence.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Persistence/BcrdtDocumentPersistence.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Persistence/BcrdtFileSystemDocumentStore.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Persistence/BcrdtFileSystemDocumentStore.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Persistence/BcrdtFileSystemDocumentStore.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Persistence/BcrdtFileSystemDocumentStore.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Persistence/BcrdtInMemoryDocumentStore.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Persistence/BcrdtInMemoryDocumentStore.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Persistence/BcrdtInMemoryDocumentStore.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Persistence/BcrdtInMemoryDocumentStore.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Persistence/IBcrdtDocumentStore.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Persistence/IBcrdtDocumentStore.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Persistence/IBcrdtDocumentStore.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Persistence/IBcrdtDocumentStore.cs diff --git a/src/Bcrdt/Bit.Bcrdt/README.md b/src/Utilities/Bcrdt/Bit.Bcrdt/README.md similarity index 55% rename from src/Bcrdt/Bit.Bcrdt/README.md rename to src/Utilities/Bcrdt/Bit.Bcrdt/README.md index 37e8a7618d8..8e757bdd9f1 100644 --- a/src/Bcrdt/Bit.Bcrdt/README.md +++ b/src/Utilities/Bcrdt/Bit.Bcrdt/README.md @@ -1,9 +1,9 @@ # Bit.Bcrdt -Real-time collaborative editing for .NET, written natively in C#: a CRDT engine, a synchronization protocol, presence, -offline-first persistence and selective undo. There is no JavaScript CRDT library underneath and no port of one - the -engine, the wire format and the merge algorithm are all C#, and none of it needs JavaScript interop, so it runs the -same in Blazor WebAssembly, Server and Hybrid, in a worker or in a console app. +Real-time collaborative editing for .NET and Blazor, written natively in C#: a CRDT engine, a synchronization protocol, +presence, offline-first persistence, selective undo and Blazor components. There is no JavaScript CRDT library +underneath and no port of one - the engine, the wire format and the merge algorithm are all C#, and none of it needs +JavaScript interop, so it runs the same in Blazor WebAssembly, Server and Hybrid, in a worker or in a console app. ## Quick start @@ -31,8 +31,36 @@ using (var transaction = document.BeginTransaction()) ``` Two people running that against the same document identifier both end up with the same document, whether they were -online at the time or not. For Blazor components add `Bit.Bcrdt.Blazor`; for the SignalR transport add -`Bit.Bcrdt.SignalR`; for the relay a server maps, add `Bit.Bcrdt.Server`. +online at the time or not. For the SignalR transport add `Bit.Bcrdt.SignalR`; for the relay a server maps, add +`Bit.Bcrdt.Server`. + +## Blazor + +```razor +@using Bit.Bcrdt +@using Bit.Bcrdt.Blazor + + + + + + +@code { + private readonly BcrdtCollaboratorInfo _me = new("u-1", "Ada", BcrdtPresenceService.SuggestColor("u-1")); +} +``` + +That is a working collaborative editor with live presence, automatic reconnection and offline support. + +- `BcrdtCollaborationScope` opens a document for its content, cascades it, and closes it again. +- `BcrdtTextArea` edits a `BcrdtText`: what the user types becomes the minimal CRDT edit, remote edits arrive without + moving the caret or overwriting keystrokes still in flight, and the caret is published through presence. +- `BcrdtPresenceView` lists the people on a document. +- `BcrdtComponentBase` marshals change notifications onto the renderer and coalesces them onto a frame budget, and + disposes its subscriptions with the component - the base for your own collaborative components. + +No stylesheet to reference and no script to add: the one small module `BcrdtTextArea` needs is imported on demand. +Works in Blazor WebAssembly, Server, Web App (including prerendering) and Hybrid. ## Features @@ -59,5 +87,5 @@ and a merge inspector that runs the real engine. The full guide - choosing a data type, documents and transactions, input bindings, presence, offline and reconnection, persistence, undo, hosting models, transports and relays, extending the library and the architecture - -is in the [Bcrdt README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Bcrdt). See it running at +is in the [Bcrdt README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Bcrdt). See it running at [bcrdt.bitplatform.dev](https://bcrdt.bitplatform.dev). diff --git a/src/Bcrdt/Bit.Bcrdt.Blazor/Scripts/bit-bcrdt.ts b/src/Utilities/Bcrdt/Bit.Bcrdt/Scripts/bit-bcrdt.ts similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Blazor/Scripts/bit-bcrdt.ts rename to src/Utilities/Bcrdt/Bit.Bcrdt/Scripts/bit-bcrdt.ts diff --git a/src/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncExchange.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncExchange.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncExchange.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncExchange.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncProtocol.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncProtocol.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncProtocol.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncProtocol.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncProvider.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncProvider.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncProvider.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Synchronization/BcrdtSyncProvider.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Synchronization/IBcrdtTransport.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Synchronization/IBcrdtTransport.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Synchronization/IBcrdtTransport.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Synchronization/IBcrdtTransport.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Transports/BcrdtInMemoryNetwork.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Transports/BcrdtInMemoryNetwork.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Transports/BcrdtInMemoryNetwork.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Transports/BcrdtInMemoryNetwork.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Transports/BcrdtRoomRegistry.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Transports/BcrdtRoomRegistry.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Transports/BcrdtRoomRegistry.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Transports/BcrdtRoomRegistry.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Transports/BcrdtWebSocketTransport.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Transports/BcrdtWebSocketTransport.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Transports/BcrdtWebSocketTransport.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Transports/BcrdtWebSocketTransport.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Transports/BcrdtWebSocketTransportFactory.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Transports/BcrdtWebSocketTransportFactory.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Transports/BcrdtWebSocketTransportFactory.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Transports/BcrdtWebSocketTransportFactory.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Types/BcrdtAbstractType.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Types/BcrdtAbstractType.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Types/BcrdtAbstractType.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Types/BcrdtAbstractType.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Types/BcrdtArray.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Types/BcrdtArray.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Types/BcrdtArray.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Types/BcrdtArray.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Types/BcrdtMap.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Types/BcrdtMap.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Types/BcrdtMap.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Types/BcrdtMap.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Types/BcrdtSet.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Types/BcrdtSet.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Types/BcrdtSet.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Types/BcrdtSet.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Types/BcrdtText.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Types/BcrdtText.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Types/BcrdtText.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Types/BcrdtText.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Undo/BcrdtUndoManager.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Undo/BcrdtUndoManager.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Undo/BcrdtUndoManager.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Undo/BcrdtUndoManager.cs diff --git a/src/Bcrdt/Bit.Bcrdt/Values/BcrdtAnyCodec.cs b/src/Utilities/Bcrdt/Bit.Bcrdt/Values/BcrdtAnyCodec.cs similarity index 100% rename from src/Bcrdt/Bit.Bcrdt/Values/BcrdtAnyCodec.cs rename to src/Utilities/Bcrdt/Bit.Bcrdt/Values/BcrdtAnyCodec.cs diff --git a/src/Blex/Bit.Blex.Blazor/package-lock.json b/src/Utilities/Bcrdt/Bit.Bcrdt/package-lock.json similarity index 99% rename from src/Blex/Bit.Blex.Blazor/package-lock.json rename to src/Utilities/Bcrdt/Bit.Bcrdt/package-lock.json index 84b2c67aba0..886f873dc6e 100644 --- a/src/Blex/Bit.Blex.Blazor/package-lock.json +++ b/src/Utilities/Bcrdt/Bit.Bcrdt/package-lock.json @@ -1,5 +1,5 @@ { - "name": "Bit.Blex.Blazor", + "name": "Bit.Bcrdt", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/src/Bcrdt/Bit.Bcrdt.Blazor/package.json b/src/Utilities/Bcrdt/Bit.Bcrdt/package.json similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Blazor/package.json rename to src/Utilities/Bcrdt/Bit.Bcrdt/package.json diff --git a/src/Bcrdt/Bit.Bcrdt.Blazor/tsconfig.json b/src/Utilities/Bcrdt/Bit.Bcrdt/tsconfig.json similarity index 100% rename from src/Bcrdt/Bit.Bcrdt.Blazor/tsconfig.json rename to src/Utilities/Bcrdt/Bit.Bcrdt/tsconfig.json diff --git a/src/Bcrdt/Demo/Client/Bit.Bcrdt.Demo.Client.csproj b/src/Utilities/Bcrdt/Demo/Client/Bit.Bcrdt.Demo.Client.csproj similarity index 93% rename from src/Bcrdt/Demo/Client/Bit.Bcrdt.Demo.Client.csproj rename to src/Utilities/Bcrdt/Demo/Client/Bit.Bcrdt.Demo.Client.csproj index 8b92e759304..b5d7c6c8cb5 100644 --- a/src/Bcrdt/Demo/Client/Bit.Bcrdt.Demo.Client.csproj +++ b/src/Utilities/Bcrdt/Demo/Client/Bit.Bcrdt.Demo.Client.csproj @@ -19,7 +19,6 @@ - diff --git a/src/Bcrdt/Demo/Client/Collaboration/ConflictLabSession.cs b/src/Utilities/Bcrdt/Demo/Client/Collaboration/ConflictLabSession.cs similarity index 100% rename from src/Bcrdt/Demo/Client/Collaboration/ConflictLabSession.cs rename to src/Utilities/Bcrdt/Demo/Client/Collaboration/ConflictLabSession.cs diff --git a/src/Bcrdt/Demo/Client/Collaboration/DemoJson.cs b/src/Utilities/Bcrdt/Demo/Client/Collaboration/DemoJson.cs similarity index 100% rename from src/Bcrdt/Demo/Client/Collaboration/DemoJson.cs rename to src/Utilities/Bcrdt/Demo/Client/Collaboration/DemoJson.cs diff --git a/src/Bcrdt/Demo/Client/Collaboration/DemoReplica.cs b/src/Utilities/Bcrdt/Demo/Client/Collaboration/DemoReplica.cs similarity index 100% rename from src/Bcrdt/Demo/Client/Collaboration/DemoReplica.cs rename to src/Utilities/Bcrdt/Demo/Client/Collaboration/DemoReplica.cs diff --git a/src/Bcrdt/Demo/Client/Collaboration/DemoTransportFactory.cs b/src/Utilities/Bcrdt/Demo/Client/Collaboration/DemoTransportFactory.cs similarity index 100% rename from src/Bcrdt/Demo/Client/Collaboration/DemoTransportFactory.cs rename to src/Utilities/Bcrdt/Demo/Client/Collaboration/DemoTransportFactory.cs diff --git a/src/Bcrdt/Demo/Client/Collaboration/DemoWorkspace.cs b/src/Utilities/Bcrdt/Demo/Client/Collaboration/DemoWorkspace.cs similarity index 100% rename from src/Bcrdt/Demo/Client/Collaboration/DemoWorkspace.cs rename to src/Utilities/Bcrdt/Demo/Client/Collaboration/DemoWorkspace.cs diff --git a/src/Bcrdt/Demo/Client/Collaboration/LiveRelay.cs b/src/Utilities/Bcrdt/Demo/Client/Collaboration/LiveRelay.cs similarity index 100% rename from src/Bcrdt/Demo/Client/Collaboration/LiveRelay.cs rename to src/Utilities/Bcrdt/Demo/Client/Collaboration/LiveRelay.cs diff --git a/src/Bcrdt/Demo/Client/Collaboration/ReplicaPageBase.cs b/src/Utilities/Bcrdt/Demo/Client/Collaboration/ReplicaPageBase.cs similarity index 100% rename from src/Bcrdt/Demo/Client/Collaboration/ReplicaPageBase.cs rename to src/Utilities/Bcrdt/Demo/Client/Collaboration/ReplicaPageBase.cs diff --git a/src/Bcrdt/Demo/Client/Components/ConnectionBadge.razor b/src/Utilities/Bcrdt/Demo/Client/Components/ConnectionBadge.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Components/ConnectionBadge.razor rename to src/Utilities/Bcrdt/Demo/Client/Components/ConnectionBadge.razor diff --git a/src/Bcrdt/Demo/Client/Components/ReplicaPanel.razor b/src/Utilities/Bcrdt/Demo/Client/Components/ReplicaPanel.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Components/ReplicaPanel.razor rename to src/Utilities/Bcrdt/Demo/Client/Components/ReplicaPanel.razor diff --git a/src/Bcrdt/Demo/Client/Extensions/IServiceCollectionExtensions.cs b/src/Utilities/Bcrdt/Demo/Client/Extensions/IServiceCollectionExtensions.cs similarity index 100% rename from src/Bcrdt/Demo/Client/Extensions/IServiceCollectionExtensions.cs rename to src/Utilities/Bcrdt/Demo/Client/Extensions/IServiceCollectionExtensions.cs diff --git a/src/Bcrdt/Demo/Client/Layout/MainLayout.razor b/src/Utilities/Bcrdt/Demo/Client/Layout/MainLayout.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Layout/MainLayout.razor rename to src/Utilities/Bcrdt/Demo/Client/Layout/MainLayout.razor diff --git a/src/Bcrdt/Demo/Client/Layout/NavMenu.razor b/src/Utilities/Bcrdt/Demo/Client/Layout/NavMenu.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Layout/NavMenu.razor rename to src/Utilities/Bcrdt/Demo/Client/Layout/NavMenu.razor diff --git a/src/Bcrdt/Demo/Client/Pages/CollaborativeForm.razor b/src/Utilities/Bcrdt/Demo/Client/Pages/CollaborativeForm.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Pages/CollaborativeForm.razor rename to src/Utilities/Bcrdt/Demo/Client/Pages/CollaborativeForm.razor diff --git a/src/Bcrdt/Demo/Client/Pages/CollaborativeList.razor b/src/Utilities/Bcrdt/Demo/Client/Pages/CollaborativeList.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Pages/CollaborativeList.razor rename to src/Utilities/Bcrdt/Demo/Client/Pages/CollaborativeList.razor diff --git a/src/Bcrdt/Demo/Client/Pages/CollaborativeText.razor b/src/Utilities/Bcrdt/Demo/Client/Pages/CollaborativeText.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Pages/CollaborativeText.razor rename to src/Utilities/Bcrdt/Demo/Client/Pages/CollaborativeText.razor diff --git a/src/Bcrdt/Demo/Client/Pages/ConflictLab.razor b/src/Utilities/Bcrdt/Demo/Client/Pages/ConflictLab.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Pages/ConflictLab.razor rename to src/Utilities/Bcrdt/Demo/Client/Pages/ConflictLab.razor diff --git a/src/Bcrdt/Demo/Client/Pages/Home.razor b/src/Utilities/Bcrdt/Demo/Client/Pages/Home.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Pages/Home.razor rename to src/Utilities/Bcrdt/Demo/Client/Pages/Home.razor diff --git a/src/Bcrdt/Demo/Client/Pages/Internals.razor b/src/Utilities/Bcrdt/Demo/Client/Pages/Internals.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Pages/Internals.razor rename to src/Utilities/Bcrdt/Demo/Client/Pages/Internals.razor diff --git a/src/Bcrdt/Demo/Client/Pages/Live.razor b/src/Utilities/Bcrdt/Demo/Client/Pages/Live.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Pages/Live.razor rename to src/Utilities/Bcrdt/Demo/Client/Pages/Live.razor diff --git a/src/Bcrdt/Demo/Client/Pages/McpServer.razor b/src/Utilities/Bcrdt/Demo/Client/Pages/McpServer.razor similarity index 97% rename from src/Bcrdt/Demo/Client/Pages/McpServer.razor rename to src/Utilities/Bcrdt/Demo/Client/Pages/McpServer.razor index 3351d7f0a41..0ea6ec1838e 100644 --- a/src/Bcrdt/Demo/Client/Pages/McpServer.razor +++ b/src/Utilities/Bcrdt/Demo/Client/Pages/McpServer.razor @@ -10,7 +10,7 @@

This site hosts a Model Context Protocol server at /mcp, so an AI agent adding collaboration - with Bit.Bcrdt reads the library itself - the compiled API documentation of its five packages, its guide, + with Bit.Bcrdt reads the library itself - the compiled API documentation of its four packages, its guide, its real CRDT engine and decoders, and these demo pages - instead of guessing at an API it half remembers, or at what a merge will decide. Every tool is read-only.

@@ -39,7 +39,7 @@ SearchBcrdt - Everything at once - the guide, every public member of the five packages, the setup guides and the demo sources - each hit with the exact follow-up call. + Everything at once - the guide, every public member of the four packages, the setup guides and the demo sources - each hit with the exact follow-up call. GetBcrdtSetupGuide diff --git a/src/Bcrdt/Demo/Client/Pages/NotFound.razor b/src/Utilities/Bcrdt/Demo/Client/Pages/NotFound.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Pages/NotFound.razor rename to src/Utilities/Bcrdt/Demo/Client/Pages/NotFound.razor diff --git a/src/Bcrdt/Demo/Client/Pages/UndoRedo.razor b/src/Utilities/Bcrdt/Demo/Client/Pages/UndoRedo.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Pages/UndoRedo.razor rename to src/Utilities/Bcrdt/Demo/Client/Pages/UndoRedo.razor diff --git a/src/Bcrdt/Demo/Client/Program.cs b/src/Utilities/Bcrdt/Demo/Client/Program.cs similarity index 100% rename from src/Bcrdt/Demo/Client/Program.cs rename to src/Utilities/Bcrdt/Demo/Client/Program.cs diff --git a/src/Bcrdt/Demo/Client/Routes.razor b/src/Utilities/Bcrdt/Demo/Client/Routes.razor similarity index 100% rename from src/Bcrdt/Demo/Client/Routes.razor rename to src/Utilities/Bcrdt/Demo/Client/Routes.razor diff --git a/src/Bcrdt/Demo/Client/_Imports.razor b/src/Utilities/Bcrdt/Demo/Client/_Imports.razor similarity index 100% rename from src/Bcrdt/Demo/Client/_Imports.razor rename to src/Utilities/Bcrdt/Demo/Client/_Imports.razor diff --git a/src/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj b/src/Utilities/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj similarity index 96% rename from src/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj rename to src/Utilities/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj index 935063e7a22..0c7a3dd2a20 100644 --- a/src/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj +++ b/src/Utilities/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj @@ -18,8 +18,8 @@ - + @@ -68,7 +68,7 @@ - + diff --git a/src/Bcrdt/Demo/Server/Components/App.razor b/src/Utilities/Bcrdt/Demo/Server/Components/App.razor similarity index 100% rename from src/Bcrdt/Demo/Server/Components/App.razor rename to src/Utilities/Bcrdt/Demo/Server/Components/App.razor diff --git a/src/Bcrdt/Demo/Server/Components/Pages/Error.razor b/src/Utilities/Bcrdt/Demo/Server/Components/Pages/Error.razor similarity index 100% rename from src/Bcrdt/Demo/Server/Components/Pages/Error.razor rename to src/Utilities/Bcrdt/Demo/Server/Components/Pages/Error.razor diff --git a/src/Bcrdt/Demo/Server/Components/_Imports.razor b/src/Utilities/Bcrdt/Demo/Server/Components/_Imports.razor similarity index 100% rename from src/Bcrdt/Demo/Server/Components/_Imports.razor rename to src/Utilities/Bcrdt/Demo/Server/Components/_Imports.razor diff --git a/src/Bcrdt/Demo/Server/Controllers/McpController.cs b/src/Utilities/Bcrdt/Demo/Server/Controllers/McpController.cs similarity index 98% rename from src/Bcrdt/Demo/Server/Controllers/McpController.cs rename to src/Utilities/Bcrdt/Demo/Server/Controllers/McpController.cs index eed55a2f9eb..dc0a620d7e8 100644 --- a/src/Bcrdt/Demo/Server/Controllers/McpController.cs +++ b/src/Utilities/Bcrdt/Demo/Server/Controllers/McpController.cs @@ -11,7 +11,7 @@ namespace Bit.Bcrdt.Demo.Server.Controllers; /// without guessing at its API - or at what its merge will decide. /// /// Every tool answers from the shipped library or from this site's own content - the XML -/// documentation compiled into the five packages, the README, the library's own engine and decoders, +/// documentation compiled into the four packages, the README, the library's own engine and decoders, /// and the demo's source files - so an agent gets what the current version actually does rather than a /// snapshot someone wrote down. The same methods are exposed as plain HTTP GET endpoints under /// /api/mcp/..., which makes each of them inspectable from a browser. @@ -48,7 +48,7 @@ public class McpController : ControllerBase [HttpGet] [McpServerTool(Name = nameof(SearchBcrdt), Title = "Search everything about Bit.Bcrdt", ReadOnly = true, OpenWorld = false, UseStructuredContent = true)] - [Description("Searches everything known about Bit.Bcrdt at once - the reference guide, every public type and member of its five packages, the setup guides and the demo's source files - and returns the best matches, each with the exact follow-up call that returns its full text. Call it first whenever you do not already know which section or type holds the answer, then call the hit's tool verbatim. Example queries: 'concurrent map writes', 'presence cursor', 'offline reconnect', 'signalr hub absolute url', 'undo only my edits', 'custom transport'.")] + [Description("Searches everything known about Bit.Bcrdt at once - the reference guide, every public type and member of its four packages, the setup guides and the demo's source files - and returns the best matches, each with the exact follow-up call that returns its full text. Call it first whenever you do not already know which section or type holds the answer, then call the hit's tool verbatim. Example queries: 'concurrent map writes', 'presence cursor', 'offline reconnect', 'signalr hub absolute url', 'undo only my edits', 'custom transport'.")] public BcrdtSearchResultDto SearchBcrdt( [Description("What you are looking for, in the words you would use for it - a feature, a symptom, or a member name. A few words rank better than a whole sentence.")] string query, [Description("How many hits to return. Clamped to 1..50.")] int limit = 12) @@ -98,7 +98,7 @@ public string GetBcrdtGuideSection( [HttpGet] [McpServerTool(Name = nameof(GetBcrdtApi), Title = "Public API reference", ReadOnly = true, OpenWorld = false)] - [Description("Gets the public API of Bit.Bcrdt as Markdown, read out of the five shipped assemblies: one type with its constructors, Blazor parameters, properties, methods, events or enum values - each with its C# type, its real default value and its documentation, protected members of the types you derive from included. Omit the type name for the index of every public type, by package. Call it before using a member you are unsure about, e.g. 'IBcrdtCollaborationService', 'BcrdtCollaborativeDocument', 'BcrdtDocument', 'BcrdtText', 'BcrdtMap', 'BcrdtCollaborationOptions', 'BcrdtCollaborationScope', 'BcrdtComponentBase', 'BcrdtSyncProvider', 'BcrdtHub', 'BcrdtSimulatedNetwork'.")] + [Description("Gets the public API of Bit.Bcrdt as Markdown, read out of the four shipped assemblies: one type with its constructors, Blazor parameters, properties, methods, events or enum values - each with its C# type, its real default value and its documentation, protected members of the types you derive from included. Omit the type name for the index of every public type, by package. Call it before using a member you are unsure about, e.g. 'IBcrdtCollaborationService', 'BcrdtCollaborativeDocument', 'BcrdtDocument', 'BcrdtText', 'BcrdtMap', 'BcrdtCollaborationOptions', 'BcrdtCollaborationScope', 'BcrdtComponentBase', 'BcrdtSyncProvider', 'BcrdtHub', 'BcrdtSimulatedNetwork'.")] public string GetBcrdtApi( [Description("The type's name without its namespace, e.g. 'BcrdtCollaborativeDocument' or 'BcrdtCollaborationOptions'. Omit it for the index of types.")] string? typeName = null) { diff --git a/src/Bcrdt/Demo/Server/Controllers/McpPrompts.cs b/src/Utilities/Bcrdt/Demo/Server/Controllers/McpPrompts.cs similarity index 100% rename from src/Bcrdt/Demo/Server/Controllers/McpPrompts.cs rename to src/Utilities/Bcrdt/Demo/Server/Controllers/McpPrompts.cs diff --git a/src/Bcrdt/Demo/Server/Controllers/McpResources.cs b/src/Utilities/Bcrdt/Demo/Server/Controllers/McpResources.cs similarity index 98% rename from src/Bcrdt/Demo/Server/Controllers/McpResources.cs rename to src/Utilities/Bcrdt/Demo/Server/Controllers/McpResources.cs index 158a685f16f..903adf61077 100644 --- a/src/Bcrdt/Demo/Server/Controllers/McpResources.cs +++ b/src/Utilities/Bcrdt/Demo/Server/Controllers/McpResources.cs @@ -34,7 +34,7 @@ public static string GuideSection(string heading) => BcrdtSourceCatalog.GetGuideSection(heading) ?? $"The guide has no section called '{heading}'."; [McpServerResource(UriTemplate = "bcrdt://api", Name = "bcrdt-api", Title = "Bit.Bcrdt public API", MimeType = "text/markdown")] - [Description("Every public type of the five Bit.Bcrdt packages with its kind and summary, by package.")] + [Description("Every public type of the four Bit.Bcrdt packages with its kind and summary, by package.")] public static string ApiList() => BcrdtApiCatalog.RenderIndex(); [McpServerResource(UriTemplate = "bcrdt://api/{typeName}", Name = "bcrdt-api-type", Title = "Type reference", MimeType = "text/markdown")] diff --git a/src/Bcrdt/Demo/Server/Dtos/BcrdtMcpDtos.cs b/src/Utilities/Bcrdt/Demo/Server/Dtos/BcrdtMcpDtos.cs similarity index 99% rename from src/Bcrdt/Demo/Server/Dtos/BcrdtMcpDtos.cs rename to src/Utilities/Bcrdt/Demo/Server/Dtos/BcrdtMcpDtos.cs index 76a8674a38c..49d132ace57 100644 --- a/src/Bcrdt/Demo/Server/Dtos/BcrdtMcpDtos.cs +++ b/src/Utilities/Bcrdt/Demo/Server/Dtos/BcrdtMcpDtos.cs @@ -28,7 +28,7 @@ public record BcrdtGuideSectionDto public required int Lines { get; init; } } -/// A public type of one of the five Bit.Bcrdt packages. +/// A public type of one of the four Bit.Bcrdt packages. public record BcrdtApiTypeDto { public required string Name { get; init; } @@ -36,7 +36,7 @@ public record BcrdtApiTypeDto /// Component, Interface, Enum, Attribute, Delegate, Static class, Class, Struct or Record. public required string Kind { get; init; } - /// The package (assembly) the type ships in, e.g. "Bit.Bcrdt.Blazor". + /// The package (assembly) the type ships in, e.g. "Bit.Bcrdt.SignalR". public required string Package { get; init; } public string? Summary { get; init; } diff --git a/src/Bcrdt/Demo/Server/Program.cs b/src/Utilities/Bcrdt/Demo/Server/Program.cs similarity index 99% rename from src/Bcrdt/Demo/Server/Program.cs rename to src/Utilities/Bcrdt/Demo/Server/Program.cs index 90fbd142ddc..ec1df3a129d 100644 --- a/src/Bcrdt/Demo/Server/Program.cs +++ b/src/Utilities/Bcrdt/Demo/Server/Program.cs @@ -40,7 +40,7 @@ Title = "Bit.Bcrdt", Version = BcrdtServerInstructions.BcrdtVersion, Description = "Documentation, public API, setup guides, a merge lab running the real CRDT engine and an update decoder for the Bit.Bcrdt real-time collaboration library for .NET and Blazor.", - WebsiteUrl = "https://github.com/bitfoundation/bitplatform/tree/develop/src/Bcrdt" + WebsiteUrl = "https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Bcrdt" }; // Returned from `initialize` and put in front of the model before it has called anything. diff --git a/src/Bcrdt/Demo/Server/Properties/launchSettings.json b/src/Utilities/Bcrdt/Demo/Server/Properties/launchSettings.json similarity index 100% rename from src/Bcrdt/Demo/Server/Properties/launchSettings.json rename to src/Utilities/Bcrdt/Demo/Server/Properties/launchSettings.json diff --git a/src/Bcrdt/Demo/Server/Services/BcrdtApiCatalog.cs b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtApiCatalog.cs similarity index 99% rename from src/Bcrdt/Demo/Server/Services/BcrdtApiCatalog.cs rename to src/Utilities/Bcrdt/Demo/Server/Services/BcrdtApiCatalog.cs index 6204750620b..4bc29269ed0 100644 --- a/src/Bcrdt/Demo/Server/Services/BcrdtApiCatalog.cs +++ b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtApiCatalog.cs @@ -1,7 +1,6 @@ using System.Text; using System.Reflection; using System.Collections.Concurrent; -using Bit.Bcrdt.Blazor; using Bit.Bcrdt.Server; using Bit.Bcrdt.SignalR; using Bit.Bcrdt.Testing; @@ -11,7 +10,7 @@ namespace Bit.Bcrdt.Demo.Server.Services; /// -/// Builds the API reference the MCP tools serve, by reflecting over the public surface of the five +/// Builds the API reference the MCP tools serve, by reflecting over the public surface of the four /// Bit.Bcrdt packages and pairing every type and member with its XML documentation. /// /// Reflection rather than a hand-maintained table: the reference then cannot drift from the @@ -36,7 +35,6 @@ public static class BcrdtApiCatalog public static readonly Assembly[] Assemblies = [ typeof(BcrdtDocument).Assembly, - typeof(BcrdtComponentBase).Assembly, typeof(BcrdtSignalRTransport).Assembly, typeof(BcrdtHub).Assembly, typeof(BcrdtSimulatedNetwork).Assembly, diff --git a/src/Bcrdt/Demo/Server/Services/BcrdtCompletions.cs b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtCompletions.cs similarity index 100% rename from src/Bcrdt/Demo/Server/Services/BcrdtCompletions.cs rename to src/Utilities/Bcrdt/Demo/Server/Services/BcrdtCompletions.cs diff --git a/src/Bcrdt/Demo/Server/Services/BcrdtMergeLab.cs b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtMergeLab.cs similarity index 100% rename from src/Bcrdt/Demo/Server/Services/BcrdtMergeLab.cs rename to src/Utilities/Bcrdt/Demo/Server/Services/BcrdtMergeLab.cs diff --git a/src/Bcrdt/Demo/Server/Services/BcrdtSearchIndex.cs b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtSearchIndex.cs similarity index 99% rename from src/Bcrdt/Demo/Server/Services/BcrdtSearchIndex.cs rename to src/Utilities/Bcrdt/Demo/Server/Services/BcrdtSearchIndex.cs index 55d2bd01f03..7294fb1abb0 100644 --- a/src/Bcrdt/Demo/Server/Services/BcrdtSearchIndex.cs +++ b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtSearchIndex.cs @@ -4,7 +4,7 @@ namespace Bit.Bcrdt.Demo.Server.Services; /// /// One searchable index over everything this MCP server knows: the reference guide, every public -/// type and member of the five packages, the setup guides, the two labs and the demo's source files. +/// type and member of the four packages, the setup guides, the two labs and the demo's source files. /// /// Without it an agent has to guess which corpus holds the answer and what it is called there - /// "keep both edits to a description field" is a guide section, a map method, a text type and a diff --git a/src/Bcrdt/Demo/Server/Services/BcrdtServerInstructions.cs b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtServerInstructions.cs similarity index 96% rename from src/Bcrdt/Demo/Server/Services/BcrdtServerInstructions.cs rename to src/Utilities/Bcrdt/Demo/Server/Services/BcrdtServerInstructions.cs index 9c0fa8f5612..078e38c630a 100644 --- a/src/Bcrdt/Demo/Server/Services/BcrdtServerInstructions.cs +++ b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtServerInstructions.cs @@ -14,7 +14,7 @@ public static class BcrdtServerInstructions { /// /// The release the answers come from, so the text names it rather than claiming to be timeless: - /// the version the five packages ship as on NuGet. It is written down here because no assembly + /// the version the four packages ship as on NuGet. It is written down here because no assembly /// carries it - a Debug build stamps 1.0.0, a Release build the four-part 10.7.0.02 for 10.7.0-pre-02 - /// and the build checks it against ReleaseVersion in Bit.Build.props (see the ReleaseVersionLiteral /// item in the .csproj), so a release cannot forget it. @@ -27,7 +27,7 @@ public static class BcrdtServerInstructions in-memory), presence, offline-first persistence, selective undo and Blazor components - no JavaScript CRDT library. Every answer here is read out of Bit.Bcrdt {BcrdtVersion} as it is loaded in this server - the compiled XML - documentation of its five packages, its README, its real engine and decoders, and the demo's source files. Where + documentation of its four packages, its README, its real engine and decoders, and the demo's source files. Where what you remember (of Yjs, say) and what these tools say disagree, the tools are describing the build in front of you. Working rules: diff --git a/src/Bcrdt/Demo/Server/Services/BcrdtSetupGuide.cs b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtSetupGuide.cs similarity index 97% rename from src/Bcrdt/Demo/Server/Services/BcrdtSetupGuide.cs rename to src/Utilities/Bcrdt/Demo/Server/Services/BcrdtSetupGuide.cs index 8fe488a64e5..9489c48d694 100644 --- a/src/Bcrdt/Demo/Server/Services/BcrdtSetupGuide.cs +++ b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtSetupGuide.cs @@ -238,9 +238,10 @@ private static string Compose(Mode mode) private const string UiChecklist = """ ## Checklist - 1. `dotnet add package Bit.Bcrdt.Blazor` (it brings `Bit.Bcrdt`) to the project with the collaborative components - - the .Client project of a Blazor Web App - and a transport: `Bit.Bcrdt.SignalR`, or the WebSocket transport built - into `Bit.Bcrdt`, or none at all for a purely local document. The relay is `Bit.Bcrdt.Server`, on the server. + 1. `dotnet add package Bit.Bcrdt` (the engine and the Blazor components) to the project with the collaborative + components - the .Client project of a Blazor Web App - and a transport: `Bit.Bcrdt.SignalR`, or the WebSocket + transport built into `Bit.Bcrdt`, or none at all for a purely local document. The relay is `Bit.Bcrdt.Server`, + on the server. 2. Call `builder.Services.AddBitBcrdtServices(...)` in EVERY DI container that renders collaborative components - a Blazor Web App has two - through one shared extension method so both get the same configuration. It registers `IBcrdtCollaborationService` scoped: one replica per circuit in Blazor Server, one per app in WebAssembly. Never @@ -258,14 +259,15 @@ 5. Add `@using Bit.Bcrdt` and `@using Bit.Bcrdt.Blazor` to `_Imports.razor`. `OnAfterRenderAsync` on .NET 8. 7. Derive your own collaborative components from `BcrdtComponentBase` and `Track` what they render, so a change from anyone re-renders them, coalesced onto a frame. There is no script tag to add: `BcrdtTextArea` imports its small - caret module from `_content/Bit.Bcrdt.Blazor/bit-bcrdt.js` itself. + caret module from `_content/Bit.Bcrdt/bit-bcrdt.js` itself. """; private const string ConsoleChecklist = """ ## Checklist - 1. `dotnet add package Bit.Bcrdt` - the engine, the protocol and the in-memory and WebSocket transports, with no web - framework. Add `Bit.Bcrdt.SignalR` to talk to a `BcrdtHub` instead. + 1. `dotnet add package Bit.Bcrdt` - the engine, the protocol and the in-memory and WebSocket transports, none of + which needs a web framework (the Blazor components it also carries just go unused). Add `Bit.Bcrdt.SignalR` to + talk to a `BcrdtHub` instead. 2. Give every session its own `BcrdtDocument`: a client id identifies one session, never a user or a machine, and two live replicas sharing one corrupt each other's history. 3. Touch the document from one thread. Queue transport events onto the loop that owns it, as below, or construct diff --git a/src/Bcrdt/Demo/Server/Services/BcrdtSourceCatalog.cs b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtSourceCatalog.cs similarity index 100% rename from src/Bcrdt/Demo/Server/Services/BcrdtSourceCatalog.cs rename to src/Utilities/Bcrdt/Demo/Server/Services/BcrdtSourceCatalog.cs diff --git a/src/Bcrdt/Demo/Server/Services/BcrdtUpdateInspector.cs b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtUpdateInspector.cs similarity index 100% rename from src/Bcrdt/Demo/Server/Services/BcrdtUpdateInspector.cs rename to src/Utilities/Bcrdt/Demo/Server/Services/BcrdtUpdateInspector.cs diff --git a/src/Bcrdt/Demo/Server/Services/BcrdtXmlDocs.cs b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtXmlDocs.cs similarity index 99% rename from src/Bcrdt/Demo/Server/Services/BcrdtXmlDocs.cs rename to src/Utilities/Bcrdt/Demo/Server/Services/BcrdtXmlDocs.cs index 56494d0e5b1..397ab7614b6 100644 --- a/src/Bcrdt/Demo/Server/Services/BcrdtXmlDocs.cs +++ b/src/Utilities/Bcrdt/Demo/Server/Services/BcrdtXmlDocs.cs @@ -6,7 +6,7 @@ namespace Bit.Bcrdt.Demo.Server.Services; /// -/// Reads the XML documentation the five Bit.Bcrdt builds emit next to their assemblies and flattens +/// Reads the XML documentation the four Bit.Bcrdt builds emit next to their assemblies and flattens /// each entry into plain text: <see cref="T:Bit.Bcrdt.BcrdtDocument"/> becomes /// BcrdtDocument, <c> spans become their content, and paragraphs become blank /// lines. That text is the same prose a developer reads in IntelliSense, which makes it the most diff --git a/src/Bcrdt/Demo/Server/appsettings.json b/src/Utilities/Bcrdt/Demo/Server/appsettings.json similarity index 100% rename from src/Bcrdt/Demo/Server/appsettings.json rename to src/Utilities/Bcrdt/Demo/Server/appsettings.json diff --git a/src/Bcrdt/Demo/Server/wwwroot/app.css b/src/Utilities/Bcrdt/Demo/Server/wwwroot/app.css similarity index 100% rename from src/Bcrdt/Demo/Server/wwwroot/app.css rename to src/Utilities/Bcrdt/Demo/Server/wwwroot/app.css diff --git a/src/Bcrdt/Demo/Server/wwwroot/favicon.svg b/src/Utilities/Bcrdt/Demo/Server/wwwroot/favicon.svg similarity index 100% rename from src/Bcrdt/Demo/Server/wwwroot/favicon.svg rename to src/Utilities/Bcrdt/Demo/Server/wwwroot/favicon.svg diff --git a/src/Bcrdt/README.md b/src/Utilities/Bcrdt/README.md similarity index 97% rename from src/Bcrdt/README.md rename to src/Utilities/Bcrdt/README.md index 41f2092cf30..91c6349584f 100644 --- a/src/Bcrdt/README.md +++ b/src/Utilities/Bcrdt/README.md @@ -89,16 +89,16 @@ understanding what it will decide. See [Choosing a data type](#choosing-a-data-t | Package | Contents | |---|---| -| `Bit.Bcrdt` | The engine and everything that needs no web framework: identity, clocks and state vectors, the YATA engine with `BcrdtText`, `BcrdtArray`, `BcrdtMap` and `BcrdtSet`, updates, snapshots and selective undo; presence and awareness; the store abstraction with in-memory and file-system stores; the sync protocol and `BcrdtSyncProvider`; `IBcrdtCollaborationService` and `AddBitBcrdtServices`; the text-input and object bindings; and the in-memory and WebSocket client transports. | -| `Bit.Bcrdt.Blazor` | `BcrdtComponentBase`, `BcrdtCollaborationScope`, `BcrdtTextArea` and `BcrdtPresenceView`. | +| `Bit.Bcrdt` | The engine: identity, clocks and state vectors, the YATA engine with `BcrdtText`, `BcrdtArray`, `BcrdtMap` and `BcrdtSet`, updates, snapshots and selective undo; presence and awareness; the store abstraction with in-memory and file-system stores; the sync protocol and `BcrdtSyncProvider`; `IBcrdtCollaborationService` and `AddBitBcrdtServices`; the text-input and object bindings; and the in-memory and WebSocket client transports. And the Blazor components, in the `Bit.Bcrdt.Blazor` namespace: `BcrdtComponentBase`, `BcrdtCollaborationScope`, `BcrdtTextArea` and `BcrdtPresenceView`. | | `Bit.Bcrdt.SignalR` | The SignalR client transport. No ASP.NET Core server dependency, so it runs in WebAssembly and Hybrid apps. | | `Bit.Bcrdt.Server` | The ASP.NET Core relays: `BcrdtHub` for the SignalR transport and `MapBitBcrdtWebSocket` for the WebSocket transport. | | `Bit.Bcrdt.Testing` | A deterministic, seeded network simulator (loss, duplication, reordering, partitions, offline peers), random operation generators, a convergence harness and an update corrupter for fuzzing. | -Dependencies point strictly downward. The engine knows nothing about transports, storage or Blazor; the Blazor package -knows nothing about transports; the relays never decode a message. +Dependencies point strictly downward. The engine knows nothing about transports, storage or Blazor - nothing in it +touches the components that ship beside it; the components know nothing about transports; the relays never decode a +message. -All five target .NET 8, 9 and 10. +All four target .NET 8, 9 and 10. --- @@ -107,7 +107,7 @@ All five target .NET 8, 9 and 10. ### Install ```bash -dotnet add package Bit.Bcrdt.Blazor +dotnet add package Bit.Bcrdt # the engine and the Blazor components dotnet add package Bit.Bcrdt.SignalR # or use the WebSocket transport built into Bit.Bcrdt, or none ``` @@ -179,7 +179,8 @@ Everything after that is `IBcrdtCollaborationService`. That is a working collaborative editor with live presence, automatic reconnection and offline support. The textarea also publishes its caret through presence, anchored to content rather than to an index, so an application can draw -collaborators' cursors; nothing in the library draws them for you. +collaborators' cursors; nothing in the library draws them for you. There is no stylesheet to reference and no script +tag to add: the one small module `BcrdtTextArea` needs (`_content/Bit.Bcrdt/bit-bcrdt.js`) is imported on demand. - `BcrdtCollaborationScope` opens the document, renders its content with the document as context (and cascades it), shows `LoadingContent` while it opens, follows `DocumentId` when it changes, and releases the document when it goes @@ -1087,8 +1088,7 @@ called without input. Every tool is read-only, and every one is also a plain HTT | Project | Description | |---|---| -| `Bit.Bcrdt` | The engine, presence, persistence, sync, collaboration service, bindings and the in-memory and WebSocket client transports. No web-framework dependency. | -| `Bit.Bcrdt.Blazor` | Blazor components and `BcrdtComponentBase` (TypeScript in `Scripts/`, compiled into `wwwroot/` on build). | +| `Bit.Bcrdt` | The engine, presence, persistence, sync, collaboration service, bindings and the in-memory and WebSocket client transports; the Blazor components and `BcrdtComponentBase` in `Blazor/` (TypeScript in `Scripts/`, compiled into `wwwroot/` on build). | | `Bit.Bcrdt.SignalR` | The SignalR client transport. | | `Bit.Bcrdt.Server` | The ASP.NET Core relays: the SignalR hub and the WebSocket endpoint. | | `Bit.Bcrdt.Testing` | The network simulator, operation generators, convergence harness and update corrupter. | @@ -1101,12 +1101,12 @@ called without input. Every tool is read-only, and every one is also a plain HTT ## Build and test ```bash -dotnet build src/Bcrdt/Bit.Bcrdt.slnx -cd src/Bcrdt/Tests/Bit.Bcrdt.Tests && dotnet test -cd src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp && dotnet test -cd src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E && dotnet test # needs Playwright Chromium, see its README -dotnet run --project src/Bcrdt/Demo/Server # the demo, at http://localhost:5560 -dotnet run -c Release --project src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --filter "*Text*" +dotnet build src/Utilities/Bcrdt/Bit.Bcrdt.slnx +cd src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests && dotnet test +cd src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp && dotnet test +cd src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E && dotnet test # needs Playwright Chromium, see its README +dotnet run --project src/Utilities/Bcrdt/Demo/Server # the demo, at http://localhost:5560 +dotnet run -c Release --project src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --filter "*Text*" ``` Run `dotnet test` from inside `src` so `src/global.json`'s Microsoft.Testing.Platform runner setting applies. diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Bit.Bcrdt.Benchmarks.csproj b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Bit.Bcrdt.Benchmarks.csproj similarity index 93% rename from src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Bit.Bcrdt.Benchmarks.csproj rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Bit.Bcrdt.Benchmarks.csproj index 29655023aa7..fcbb4f2e366 100644 --- a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Bit.Bcrdt.Benchmarks.csproj +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Bit.Bcrdt.Benchmarks.csproj @@ -19,7 +19,7 @@ key, so a benchmark can time an internal code path directly when the public entry point would add noise to the measurement. --> true - ..\..\..\AssemblyOriginatorKeyFile.snk + ..\..\..\..\AssemblyOriginatorKeyFile.snk diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/ConcurrencyBenchmarks.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/ConcurrencyBenchmarks.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/ConcurrencyBenchmarks.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/ConcurrencyBenchmarks.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/DataTypeBenchmarks.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/DataTypeBenchmarks.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/DataTypeBenchmarks.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/DataTypeBenchmarks.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/MemoryBenchmarks.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/MemoryBenchmarks.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/MemoryBenchmarks.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/MemoryBenchmarks.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/MergeBenchmarks.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/MergeBenchmarks.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/MergeBenchmarks.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/MergeBenchmarks.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Program.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Program.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Program.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/Program.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/README.md b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/README.md similarity index 95% rename from src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/README.md rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/README.md index 03206aa5c9b..4bef66a35d4 100644 --- a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/README.md +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/README.md @@ -20,20 +20,20 @@ unoptimized assembly, and it is right to. ```bash # One class. -dotnet run -c Release --project src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --filter "*Text*" +dotnet run -c Release --project src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --filter "*Text*" # Several classes. -dotnet run -c Release --project src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --filter "*Merge*" "*Serialization*" +dotnet run -c Release --project src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --filter "*Merge*" "*Serialization*" # Everything. Takes a while: the 100 000-character and 50-replica cases are not cheap, and # `ConcurrencyBenchmarks.ConvergeAllToAll` at 50 replicas is by some margin the longest single case. -dotnet run -c Release --project src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --filter "*" +dotnet run -c Release --project src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --filter "*" # Prove the harness works without paying for statistics: one warmup, one measurement, no analysis. -dotnet run -c Release --project src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --filter "*DataType*" --job Dry +dotnet run -c Release --project src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --filter "*DataType*" --job Dry # What is available. -dotnet run -c Release --project src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --list flat +dotnet run -c Release --project src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks -- --list flat ``` Results land in `BenchmarkDotNet.Artifacts/results/` as Markdown, CSV and HTML alongside the console diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/SerializationBenchmarks.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/SerializationBenchmarks.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/SerializationBenchmarks.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/SerializationBenchmarks.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/TextEditingBenchmarks.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/TextEditingBenchmarks.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/TextEditingBenchmarks.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/TextEditingBenchmarks.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/UpdateSink.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/UpdateSink.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/UpdateSink.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Benchmarks/UpdateSink.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/AssemblySetup.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/AssemblySetup.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/AssemblySetup.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/AssemblySetup.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeFormTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeFormTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeFormTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeFormTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeListTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeListTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeListTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeListTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeTextTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeTextTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeTextTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/CollaborativeTextTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/ConflictLabTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/ConflictLabTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/ConflictLabTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/ConflictLabTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/DemoPagesTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/DemoPagesTests.cs similarity index 98% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/DemoPagesTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/DemoPagesTests.cs index fd4dc0d3bea..27fa2f5da53 100644 --- a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/DemoPagesTests.cs +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/DemoPagesTests.cs @@ -47,7 +47,7 @@ public async Task Every_demo_page_loads_interactively_without_an_error(string pa { await page.WaitForFunctionAsync( // The import map points the module at its fingerprinted file, bit-bcrdt..js, in some builds. - @"() => performance.getEntriesByType('resource').some(e => /^\/_content\/Bit\.Bcrdt\.Blazor\/bit-bcrdt(\.\w+)?\.js$/.test(new URL(e.name).pathname))", + @"() => performance.getEntriesByType('resource').some(e => /^\/_content\/Bit\.Bcrdt\/bit-bcrdt(\.\w+)?\.js$/.test(new URL(e.name).pathname))", null, new PageWaitForFunctionOptions { Timeout = 20_000 }); } diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/BcrdtTest.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/BcrdtTest.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/BcrdtTest.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/BcrdtTest.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/ChildProcess.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/ChildProcess.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/ChildProcess.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/ChildProcess.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/DemoHost.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/DemoHost.cs similarity index 94% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/DemoHost.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/DemoHost.cs index 7a25fe5a06a..f0690a0c109 100644 --- a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/DemoHost.cs +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/DemoHost.cs @@ -32,7 +32,7 @@ public static async Task StartAsync() if (File.Exists(assembly) is false) throw new FileNotFoundException( $"The demo server has not been built in the {E2EEnvironment.Configuration} configuration. Build it first with " + - $"'dotnet build src/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj -c {E2EEnvironment.Configuration}'", assembly); + $"'dotnet build src/Utilities/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj -c {E2EEnvironment.Configuration}'", assembly); var baseUrl = $"http://127.0.0.1:{ChildProcess.FreePort()}"; diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/E2EEnvironment.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/E2EEnvironment.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/E2EEnvironment.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/E2EEnvironment.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/PlaywrightSession.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/PlaywrightSession.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/PlaywrightSession.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/RepoLayout.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/RepoLayout.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Infrastructure/RepoLayout.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/InternalsTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/InternalsTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/InternalsTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/InternalsTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/LiveTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/LiveTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/LiveTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/LiveTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/README.md b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/README.md similarity index 94% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/README.md rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/README.md index 35dd5176c95..ad9f7e13d62 100644 --- a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/README.md +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/README.md @@ -45,7 +45,7 @@ every later edit unapplied, and the test would otherwise time out pointing at th ## Running locally -From `src/Bcrdt` (inside `src`, so `src/global.json` selects the Microsoft.Testing.Platform runner): +From `src/Utilities/Bcrdt` (inside `src`, so `src/global.json` selects the Microsoft.Testing.Platform runner): ```bash # The suite runs the demo server's build output: build it first, in the configuration the tests run in. @@ -68,10 +68,10 @@ than the build-and-unit pipeline in `bit.ci.Bcrdt.yml`, which runs the build, th and the pack: ```bash -dotnet build src/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj -c Release -dotnet build src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj -c Release -pwsh src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium -cd src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bcrdt-e2e.trx +dotnet build src/Utilities/Bcrdt/Demo/Server/Bit.Bcrdt.Demo.Server.csproj -c Release +dotnet build src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/Bit.Bcrdt.Tests.E2E.csproj -c Release +pwsh src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium +cd src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bcrdt-e2e.trx ``` Without PowerShell 7, the browser can be installed with Windows PowerShell diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/UndoTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/UndoTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/UndoTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.E2E/UndoTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/Bit.Bcrdt.Tests.Mcp.csproj b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/Bit.Bcrdt.Tests.Mcp.csproj similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/Bit.Bcrdt.Tests.Mcp.csproj rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/Bit.Bcrdt.Tests.Mcp.csproj diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpCall.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpCall.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpCall.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpCall.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpMergeLabTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpMergeLabTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpMergeLabTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpMergeLabTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpOracleTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpOracleTests.cs similarity index 99% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpOracleTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpOracleTests.cs index 9926867b4d9..a7396d3af15 100644 --- a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpOracleTests.cs +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpOracleTests.cs @@ -10,7 +10,7 @@ namespace Bit.Bcrdt.Tests.Mcp; /// /// The server's claims put to the things they describe: the merge lab against the engine it runs, the -/// update inspector against the encoder that made the bytes, the API index against the five assemblies, +/// update inspector against the encoder that made the bytes, the API index against the four assemblies, /// the guide index against the README, and the HTTP mirror against the protocol it mirrors. No expected /// answers are written down here - the library, its files and the protocol are the expectations. /// @@ -277,7 +277,7 @@ public void Every_exported_type_is_in_the_api_index() var indexed = BcrdtApiCatalog.Types.Select(type => type.Name).ToHashSet(StringComparer.Ordinal); CollectionAssert.AreEquivalent(exported.ToArray(), indexed.ToArray()); - CollectionAssert.AreEquivalent(new[] { "Bit.Bcrdt", "Bit.Bcrdt.Blazor", "Bit.Bcrdt.SignalR", "Bit.Bcrdt.Server", "Bit.Bcrdt.Testing" }, + CollectionAssert.AreEquivalent(new[] { "Bit.Bcrdt", "Bit.Bcrdt.SignalR", "Bit.Bcrdt.Server", "Bit.Bcrdt.Testing" }, BcrdtApiCatalog.Types.Select(type => type.Package).Distinct().ToArray()); } @@ -305,7 +305,7 @@ public void The_xml_documentation_reaches_the_server() { // The XML documentation files have to reach the server's output folder for any of this to work; // a build that stops copying them leaves every summary empty without failing anything else. Every - // public type of the five packages carries one, so a type that has none is a gap in what an agent + // public type of the four packages carries one, so a type that has none is a gap in what an agent // is told, and is named here. var withoutSummary = BcrdtApiCatalog.Types.Where(type => type.Summary is null).Select(type => $"{type.Package}: {type.Name}").ToArray(); diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpResourcePromptTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpResourcePromptTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpResourcePromptTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpResourcePromptTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSearchTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSearchTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSearchTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSearchTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSnippetTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSnippetTests.cs similarity index 99% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSnippetTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSnippetTests.cs index 51bf4f99d69..efeebaede9c 100644 --- a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSnippetTests.cs +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSnippetTests.cs @@ -238,7 +238,7 @@ private static bool HasMember(Type type, string member) => private static MetadataReference[] LoadReferences() { - // Everything the test host runs on - the shared frameworks and the demo's packages, the five Bit.Bcrdt + // Everything the test host runs on - the shared frameworks and the demo's packages, the four Bit.Bcrdt // ones among them - by simple name, so no assembly is referenced twice. var platform = ((string)AppContext.GetData("TRUSTED_PLATFORM_ASSEMBLIES")!).Split(Path.PathSeparator); var names = new HashSet(StringComparer.OrdinalIgnoreCase); diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSurfaceTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSurfaceTests.cs similarity index 99% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSurfaceTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSurfaceTests.cs index 16ca39a0e39..0caba330035 100644 --- a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSurfaceTests.cs +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpSurfaceTests.cs @@ -61,7 +61,7 @@ public void The_server_introduces_itself_as_the_library_at_its_own_version() Assert.AreEqual("bit-bcrdt", info.Name); Assert.AreEqual("Bit.Bcrdt", info.Title); Assert.AreEqual(BcrdtServerInstructions.BcrdtVersion, info.Version); - Assert.AreEqual("https://github.com/bitfoundation/bitplatform/tree/develop/src/Bcrdt", info.WebsiteUrl); + Assert.AreEqual("https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Bcrdt", info.WebsiteUrl); } [TestMethod] diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpTestHost.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpTestHost.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpTestHost.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpTestHost.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpToolTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpToolTests.cs similarity index 98% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpToolTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpToolTests.cs index 4bf11414274..a2a441f38b0 100644 --- a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpToolTests.cs +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpToolTests.cs @@ -77,11 +77,11 @@ public async Task An_unknown_heading_suggests_the_close_ones() // ---- API --------------------------------------------------------------- [TestMethod] - public async Task The_api_index_lists_the_public_types_of_all_five_packages_by_package() + public async Task The_api_index_lists_the_public_types_of_all_four_packages_by_package() { var index = await McpCall.TextAsync("GetBcrdtApi"); - foreach (var package in new[] { "Bit.Bcrdt", "Bit.Bcrdt.Blazor", "Bit.Bcrdt.SignalR", "Bit.Bcrdt.Server", "Bit.Bcrdt.Testing" }) + foreach (var package in new[] { "Bit.Bcrdt", "Bit.Bcrdt.SignalR", "Bit.Bcrdt.Server", "Bit.Bcrdt.Testing" }) { Assert.Contains($"## {package}\n", index.ReplaceLineEndings("\n")); } @@ -103,7 +103,7 @@ public async Task A_component_reference_lists_its_parameters_with_their_defaults var reference = await McpCall.TextAsync("GetBcrdtApi", new() { ["typeName"] = "BcrdtTextArea" }); Assert.StartsWith("# BcrdtTextArea (Component)", reference); - Assert.Contains("package `Bit.Bcrdt.Blazor`", reference); + Assert.Contains("package `Bit.Bcrdt`", reference); Assert.Contains("## Parameter", reference); Assert.Contains("**Field** : `string` = `\"body\"`", reference); Assert.Contains("**Rows** : `int` = `10`", reference); @@ -239,7 +239,7 @@ public async Task Every_ui_hosting_model_gets_the_wiring_that_fails_silently() { var guide = await McpCall.TextAsync("GetBcrdtSetupGuide", new() { ["hostingModel"] = model }); - Assert.Contains("dotnet add package Bit.Bcrdt.Blazor", guide, model); + Assert.Contains("`dotnet add package Bit.Bcrdt`", guide, model); Assert.Contains("AddBitBcrdtServices", guide, model); Assert.Contains("ABSOLUTE", guide, model); Assert.Contains("AddBitBcrdtHub", guide, model); diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpUpdateInspectorTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpUpdateInspectorTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpUpdateInspectorTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/McpUpdateInspectorTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/ToolNames.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/ToolNames.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/ToolNames.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests.Mcp/ToolNames.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/AppLayerRegressionTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/AppLayerRegressionTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/AppLayerRegressionTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/AppLayerRegressionTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/AwarenessTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/AwarenessTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/AwarenessTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/AwarenessTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/Bit.Bcrdt.Tests.csproj b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/Bit.Bcrdt.Tests.csproj similarity index 91% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/Bit.Bcrdt.Tests.csproj rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/Bit.Bcrdt.Tests.csproj index 44b930b8d18..ec997094f0a 100644 --- a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/Bit.Bcrdt.Tests.csproj +++ b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/Bit.Bcrdt.Tests.csproj @@ -13,7 +13,7 @@ true - ..\..\..\AssemblyOriginatorKeyFile.snk + ..\..\..\..\AssemblyOriginatorKeyFile.snk @@ -23,7 +23,6 @@ - diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/CollaborationStackTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/CollaborationStackTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/CollaborationStackTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/CollaborationStackTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/ConvergenceTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/ConvergenceTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/ConvergenceTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/ConvergenceTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/CoreEngineTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/CoreEngineTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/CoreEngineTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/CoreEngineTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/DemoTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/DemoTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/DemoTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/DemoTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/EngineRegressionTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/EngineRegressionTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/EngineRegressionTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/EngineRegressionTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/ExtensibilityTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/ExtensibilityTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/ExtensibilityTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/ExtensibilityTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/MSTestSettings.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/MSTestSettings.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/MSTestSettings.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/MSTestSettings.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/PerformanceBudgetTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/PerformanceBudgetTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/PerformanceBudgetTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/PerformanceBudgetTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/PersistenceTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/PersistenceTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/PersistenceTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/PersistenceTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/ReplicaConsistencyTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/ReplicaConsistencyTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/ReplicaConsistencyTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/ReplicaConsistencyTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/RobustnessTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/RobustnessTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/RobustnessTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/RobustnessTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/SequenceOracleTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/SequenceOracleTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/SequenceOracleTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/SequenceOracleTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/SnapshotTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/SnapshotTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/SnapshotTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/SnapshotTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/SyncRegressionTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/SyncRegressionTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/SyncRegressionTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/SyncRegressionTests.cs diff --git a/src/Bcrdt/Tests/Bit.Bcrdt.Tests/UndoRedoTests.cs b/src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/UndoRedoTests.cs similarity index 100% rename from src/Bcrdt/Tests/Bit.Bcrdt.Tests/UndoRedoTests.cs rename to src/Utilities/Bcrdt/Tests/Bit.Bcrdt.Tests/UndoRedoTests.cs diff --git a/src/Bdnd/Bit.Bdnd.slnx b/src/Utilities/Bdnd/Bit.Bdnd.slnx similarity index 77% rename from src/Bdnd/Bit.Bdnd.slnx rename to src/Utilities/Bdnd/Bit.Bdnd.slnx index a659e0034fe..ad95f6f0b28 100644 --- a/src/Bdnd/Bit.Bdnd.slnx +++ b/src/Utilities/Bdnd/Bit.Bdnd.slnx @@ -1,9 +1,9 @@  - - - - + + + + diff --git a/src/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj b/src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj similarity index 99% rename from src/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj rename to src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj index e9756c9688b..0f94251b33f 100644 --- a/src/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj +++ b/src/Utilities/Bdnd/Bit.Bdnd/Bit.Bdnd.csproj @@ -1,6 +1,6 @@  - + net10.0;net9.0;net8.0 diff --git a/src/Bdnd/Bit.Bdnd/BitBdnd.cs b/src/Utilities/Bdnd/Bit.Bdnd/BitBdnd.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/BitBdnd.cs rename to src/Utilities/Bdnd/Bit.Bdnd/BitBdnd.cs diff --git a/src/Bdnd/Bit.Bdnd/Components/BdndDragHandle.razor b/src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDragHandle.razor similarity index 100% rename from src/Bdnd/Bit.Bdnd/Components/BdndDragHandle.razor rename to src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDragHandle.razor diff --git a/src/Bdnd/Bit.Bdnd/Components/BdndDragHandle.razor.cs b/src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDragHandle.razor.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Components/BdndDragHandle.razor.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDragHandle.razor.cs diff --git a/src/Bdnd/Bit.Bdnd/Components/BdndDragLayer.razor b/src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDragLayer.razor similarity index 100% rename from src/Bdnd/Bit.Bdnd/Components/BdndDragLayer.razor rename to src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDragLayer.razor diff --git a/src/Bdnd/Bit.Bdnd/Components/BdndDragLayer.razor.cs b/src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDragLayer.razor.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Components/BdndDragLayer.razor.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDragLayer.razor.cs diff --git a/src/Bdnd/Bit.Bdnd/Components/BdndDraggable.cs b/src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDraggable.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Components/BdndDraggable.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDraggable.cs diff --git a/src/Bdnd/Bit.Bdnd/Components/BdndDropTarget.cs b/src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDropTarget.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Components/BdndDropTarget.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Components/BdndDropTarget.cs diff --git a/src/Bdnd/Bit.Bdnd/Components/BdndProvider.razor b/src/Utilities/Bdnd/Bit.Bdnd/Components/BdndProvider.razor similarity index 100% rename from src/Bdnd/Bit.Bdnd/Components/BdndProvider.razor rename to src/Utilities/Bdnd/Bit.Bdnd/Components/BdndProvider.razor diff --git a/src/Bdnd/Bit.Bdnd/Components/BdndProvider.razor.cs b/src/Utilities/Bdnd/Bit.Bdnd/Components/BdndProvider.razor.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Components/BdndProvider.razor.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Components/BdndProvider.razor.cs diff --git a/src/Bdnd/Bit.Bdnd/Components/IBdndDragHandleController.cs b/src/Utilities/Bdnd/Bit.Bdnd/Components/IBdndDragHandleController.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Components/IBdndDragHandleController.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Components/IBdndDragHandleController.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndDragDropManager.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDragDropManager.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndDragDropManager.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDragDropManager.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndDragEndContext.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDragEndContext.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndDragEndContext.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDragEndContext.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndDragLayerState.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDragLayerState.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndDragLayerState.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDragLayerState.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndDragState.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDragState.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndDragState.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDragState.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndDropEventArgs.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDropEventArgs.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndDropEventArgs.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDropEventArgs.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndDropState.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDropState.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndDropState.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDropState.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndDropTargetEntry.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDropTargetEntry.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndDropTargetEntry.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDropTargetEntry.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndDropTargetScope.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDropTargetScope.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndDropTargetScope.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndDropTargetScope.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndNativeDropEventArgs.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndNativeDropEventArgs.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndNativeDropEventArgs.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndNativeDropEventArgs.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndNativeDropPayload.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndNativeDropPayload.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndNativeDropPayload.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndNativeDropPayload.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndNativeFile.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndNativeFile.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndNativeFile.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndNativeFile.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndNativeTypes.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndNativeTypes.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndNativeTypes.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndNativeTypes.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/BdndXYCoord.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/BdndXYCoord.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/BdndXYCoord.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/BdndXYCoord.cs diff --git a/src/Bdnd/Bit.Bdnd/Core/IBdndMonitor.cs b/src/Utilities/Bdnd/Bit.Bdnd/Core/IBdndMonitor.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Core/IBdndMonitor.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Core/IBdndMonitor.cs diff --git a/src/Bdnd/Bit.Bdnd/Interop/BdndDomRect.cs b/src/Utilities/Bdnd/Bit.Bdnd/Interop/BdndDomRect.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Interop/BdndDomRect.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Interop/BdndDomRect.cs diff --git a/src/Bdnd/Bit.Bdnd/Interop/BdndDragSourceOptions.cs b/src/Utilities/Bdnd/Bit.Bdnd/Interop/BdndDragSourceOptions.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Interop/BdndDragSourceOptions.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Interop/BdndDragSourceOptions.cs diff --git a/src/Bdnd/Bit.Bdnd/Interop/BdndDropTargetOptions.cs b/src/Utilities/Bdnd/Bit.Bdnd/Interop/BdndDropTargetOptions.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Interop/BdndDropTargetOptions.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Interop/BdndDropTargetOptions.cs diff --git a/src/Bdnd/Bit.Bdnd/Interop/BdndInterop.cs b/src/Utilities/Bdnd/Bit.Bdnd/Interop/BdndInterop.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Interop/BdndInterop.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Interop/BdndInterop.cs diff --git a/src/Bdnd/Bit.Bdnd/Interop/BdndJsRegistration.cs b/src/Utilities/Bdnd/Bit.Bdnd/Interop/BdndJsRegistration.cs similarity index 100% rename from src/Bdnd/Bit.Bdnd/Interop/BdndJsRegistration.cs rename to src/Utilities/Bdnd/Bit.Bdnd/Interop/BdndJsRegistration.cs diff --git a/src/Bdnd/Bit.Bdnd/README.md b/src/Utilities/Bdnd/Bit.Bdnd/README.md similarity index 98% rename from src/Bdnd/Bit.Bdnd/README.md rename to src/Utilities/Bdnd/Bit.Bdnd/README.md index 4a40db575eb..836acdb4e89 100644 --- a/src/Bdnd/Bit.Bdnd/README.md +++ b/src/Utilities/Bdnd/Bit.Bdnd/README.md @@ -66,5 +66,5 @@ pages, and it can run a drag through the real components to show which targets a The full guide - providers, draggables, drop targets, drag layers, handles, nesting, sortable lists, native drags, the monitor, hosting models and a React DnD mapping - is in the -[Bdnd README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Bdnd). See it running at +[Bdnd README](https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Bdnd). See it running at [bdnd.bitplatform.dev](https://bdnd.bitplatform.dev). diff --git a/src/Bdnd/Bit.Bdnd/Scripts/bit-bdnd.ts b/src/Utilities/Bdnd/Bit.Bdnd/Scripts/bit-bdnd.ts similarity index 100% rename from src/Bdnd/Bit.Bdnd/Scripts/bit-bdnd.ts rename to src/Utilities/Bdnd/Bit.Bdnd/Scripts/bit-bdnd.ts diff --git a/src/Bdnd/Bit.Bdnd/_Imports.razor b/src/Utilities/Bdnd/Bit.Bdnd/_Imports.razor similarity index 100% rename from src/Bdnd/Bit.Bdnd/_Imports.razor rename to src/Utilities/Bdnd/Bit.Bdnd/_Imports.razor diff --git a/src/Bdnd/Bit.Bdnd/package-lock.json b/src/Utilities/Bdnd/Bit.Bdnd/package-lock.json similarity index 100% rename from src/Bdnd/Bit.Bdnd/package-lock.json rename to src/Utilities/Bdnd/Bit.Bdnd/package-lock.json diff --git a/src/Bdnd/Bit.Bdnd/package.json b/src/Utilities/Bdnd/Bit.Bdnd/package.json similarity index 100% rename from src/Bdnd/Bit.Bdnd/package.json rename to src/Utilities/Bdnd/Bit.Bdnd/package.json diff --git a/src/Bdnd/Bit.Bdnd/tsconfig.json b/src/Utilities/Bdnd/Bit.Bdnd/tsconfig.json similarity index 100% rename from src/Bdnd/Bit.Bdnd/tsconfig.json rename to src/Utilities/Bdnd/Bit.Bdnd/tsconfig.json diff --git a/src/Bdnd/Demo/Client/Bit.Bdnd.Demo.Client.csproj b/src/Utilities/Bdnd/Demo/Client/Bit.Bdnd.Demo.Client.csproj similarity index 100% rename from src/Bdnd/Demo/Client/Bit.Bdnd.Demo.Client.csproj rename to src/Utilities/Bdnd/Demo/Client/Bit.Bdnd.Demo.Client.csproj diff --git a/src/Bdnd/Demo/Client/Examples/DemoCode.razor b/src/Utilities/Bdnd/Demo/Client/Examples/DemoCode.razor similarity index 100% rename from src/Bdnd/Demo/Client/Examples/DemoCode.razor rename to src/Utilities/Bdnd/Demo/Client/Examples/DemoCode.razor diff --git a/src/Bdnd/Demo/Client/Extensions/IServiceCollectionExtensions.cs b/src/Utilities/Bdnd/Demo/Client/Extensions/IServiceCollectionExtensions.cs similarity index 100% rename from src/Bdnd/Demo/Client/Extensions/IServiceCollectionExtensions.cs rename to src/Utilities/Bdnd/Demo/Client/Extensions/IServiceCollectionExtensions.cs diff --git a/src/Bdnd/Demo/Client/ItemTypes.cs b/src/Utilities/Bdnd/Demo/Client/ItemTypes.cs similarity index 100% rename from src/Bdnd/Demo/Client/ItemTypes.cs rename to src/Utilities/Bdnd/Demo/Client/ItemTypes.cs diff --git a/src/Bdnd/Demo/Client/Layout/MainLayout.razor b/src/Utilities/Bdnd/Demo/Client/Layout/MainLayout.razor similarity index 91% rename from src/Bdnd/Demo/Client/Layout/MainLayout.razor rename to src/Utilities/Bdnd/Demo/Client/Layout/MainLayout.razor index 6df47f31d81..8ec9796a16f 100644 --- a/src/Bdnd/Demo/Client/Layout/MainLayout.razor +++ b/src/Utilities/Bdnd/Demo/Client/Layout/MainLayout.razor @@ -9,7 +9,7 @@
- GitHub + GitHub React DnD (inspiration) Blazor Docs
diff --git a/src/Bdnd/Demo/Client/Layout/MainLayout.razor.css b/src/Utilities/Bdnd/Demo/Client/Layout/MainLayout.razor.css similarity index 100% rename from src/Bdnd/Demo/Client/Layout/MainLayout.razor.css rename to src/Utilities/Bdnd/Demo/Client/Layout/MainLayout.razor.css diff --git a/src/Bdnd/Demo/Client/Layout/NavMenu.razor b/src/Utilities/Bdnd/Demo/Client/Layout/NavMenu.razor similarity index 100% rename from src/Bdnd/Demo/Client/Layout/NavMenu.razor rename to src/Utilities/Bdnd/Demo/Client/Layout/NavMenu.razor diff --git a/src/Bdnd/Demo/Client/Layout/NavMenu.razor.css b/src/Utilities/Bdnd/Demo/Client/Layout/NavMenu.razor.css similarity index 100% rename from src/Bdnd/Demo/Client/Layout/NavMenu.razor.css rename to src/Utilities/Bdnd/Demo/Client/Layout/NavMenu.razor.css diff --git a/src/Bdnd/Demo/Client/Pages/Customize/DropEffects.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Customize/DropEffects.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Customize/DropEffects.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Customize/DropEffects.razor diff --git a/src/Bdnd/Demo/Client/Pages/Customize/Handles.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Customize/Handles.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Customize/Handles.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Customize/Handles.razor diff --git a/src/Bdnd/Demo/Client/Pages/DragAround/CustomLayer.razor b/src/Utilities/Bdnd/Demo/Client/Pages/DragAround/CustomLayer.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/DragAround/CustomLayer.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/DragAround/CustomLayer.razor diff --git a/src/Bdnd/Demo/Client/Pages/DragAround/Naive.razor b/src/Utilities/Bdnd/Demo/Client/Pages/DragAround/Naive.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/DragAround/Naive.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/DragAround/Naive.razor diff --git a/src/Bdnd/Demo/Client/Pages/Dustbin/CopyOrMove.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Dustbin/CopyOrMove.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Dustbin/CopyOrMove.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Dustbin/CopyOrMove.razor diff --git a/src/Bdnd/Demo/Client/Pages/Dustbin/Iframe.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Dustbin/Iframe.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Dustbin/Iframe.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Dustbin/Iframe.razor diff --git a/src/Bdnd/Demo/Client/Pages/Dustbin/MultipleTargets.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Dustbin/MultipleTargets.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Dustbin/MultipleTargets.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Dustbin/MultipleTargets.razor diff --git a/src/Bdnd/Demo/Client/Pages/Dustbin/SingleTarget.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Dustbin/SingleTarget.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Dustbin/SingleTarget.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Dustbin/SingleTarget.razor diff --git a/src/Bdnd/Demo/Client/Pages/Dustbin/StressTest.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Dustbin/StressTest.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Dustbin/StressTest.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Dustbin/StressTest.razor diff --git a/src/Bdnd/Demo/Client/Pages/Home.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Home.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Home.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Home.razor diff --git a/src/Bdnd/Demo/Client/Pages/McpServer.razor b/src/Utilities/Bdnd/Demo/Client/Pages/McpServer.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/McpServer.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/McpServer.razor diff --git a/src/Bdnd/Demo/Client/Pages/Nesting/DragSources.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Nesting/DragSources.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Nesting/DragSources.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Nesting/DragSources.razor diff --git a/src/Bdnd/Demo/Client/Pages/Nesting/DropTargets.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Nesting/DropTargets.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Nesting/DropTargets.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Nesting/DropTargets.razor diff --git a/src/Bdnd/Demo/Client/Pages/NotFound.razor b/src/Utilities/Bdnd/Demo/Client/Pages/NotFound.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/NotFound.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/NotFound.razor diff --git a/src/Bdnd/Demo/Client/Pages/Other/NativeFiles.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Other/NativeFiles.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Other/NativeFiles.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Other/NativeFiles.razor diff --git a/src/Bdnd/Demo/Client/Pages/Other/NativeHtml.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Other/NativeHtml.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Other/NativeHtml.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Other/NativeHtml.razor diff --git a/src/Bdnd/Demo/Client/Pages/Sortable/CancelOnDropOutside.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Sortable/CancelOnDropOutside.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Sortable/CancelOnDropOutside.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Sortable/CancelOnDropOutside.razor diff --git a/src/Bdnd/Demo/Client/Pages/Sortable/Simple.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Sortable/Simple.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Sortable/Simple.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Sortable/Simple.razor diff --git a/src/Bdnd/Demo/Client/Pages/Sortable/SortableCard.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Sortable/SortableCard.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Sortable/SortableCard.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Sortable/SortableCard.razor diff --git a/src/Bdnd/Demo/Client/Pages/Sortable/StressTest.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Sortable/StressTest.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Sortable/StressTest.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Sortable/StressTest.razor diff --git a/src/Bdnd/Demo/Client/Pages/Tutorial.razor b/src/Utilities/Bdnd/Demo/Client/Pages/Tutorial.razor similarity index 100% rename from src/Bdnd/Demo/Client/Pages/Tutorial.razor rename to src/Utilities/Bdnd/Demo/Client/Pages/Tutorial.razor diff --git a/src/Bdnd/Demo/Client/Program.cs b/src/Utilities/Bdnd/Demo/Client/Program.cs similarity index 100% rename from src/Bdnd/Demo/Client/Program.cs rename to src/Utilities/Bdnd/Demo/Client/Program.cs diff --git a/src/Bdnd/Demo/Client/Routes.razor b/src/Utilities/Bdnd/Demo/Client/Routes.razor similarity index 100% rename from src/Bdnd/Demo/Client/Routes.razor rename to src/Utilities/Bdnd/Demo/Client/Routes.razor diff --git a/src/Bdnd/Demo/Client/_Imports.razor b/src/Utilities/Bdnd/Demo/Client/_Imports.razor similarity index 100% rename from src/Bdnd/Demo/Client/_Imports.razor rename to src/Utilities/Bdnd/Demo/Client/_Imports.razor diff --git a/src/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj b/src/Utilities/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj similarity index 100% rename from src/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj rename to src/Utilities/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj diff --git a/src/Bdnd/Demo/Server/Components/App.razor b/src/Utilities/Bdnd/Demo/Server/Components/App.razor similarity index 100% rename from src/Bdnd/Demo/Server/Components/App.razor rename to src/Utilities/Bdnd/Demo/Server/Components/App.razor diff --git a/src/Bdnd/Demo/Server/Components/Pages/Error.razor b/src/Utilities/Bdnd/Demo/Server/Components/Pages/Error.razor similarity index 100% rename from src/Bdnd/Demo/Server/Components/Pages/Error.razor rename to src/Utilities/Bdnd/Demo/Server/Components/Pages/Error.razor diff --git a/src/Bdnd/Demo/Server/Components/_Imports.razor b/src/Utilities/Bdnd/Demo/Server/Components/_Imports.razor similarity index 100% rename from src/Bdnd/Demo/Server/Components/_Imports.razor rename to src/Utilities/Bdnd/Demo/Server/Components/_Imports.razor diff --git a/src/Bdnd/Demo/Server/Controllers/McpController.cs b/src/Utilities/Bdnd/Demo/Server/Controllers/McpController.cs similarity index 100% rename from src/Bdnd/Demo/Server/Controllers/McpController.cs rename to src/Utilities/Bdnd/Demo/Server/Controllers/McpController.cs diff --git a/src/Bdnd/Demo/Server/Controllers/McpPrompts.cs b/src/Utilities/Bdnd/Demo/Server/Controllers/McpPrompts.cs similarity index 100% rename from src/Bdnd/Demo/Server/Controllers/McpPrompts.cs rename to src/Utilities/Bdnd/Demo/Server/Controllers/McpPrompts.cs diff --git a/src/Bdnd/Demo/Server/Controllers/McpResources.cs b/src/Utilities/Bdnd/Demo/Server/Controllers/McpResources.cs similarity index 100% rename from src/Bdnd/Demo/Server/Controllers/McpResources.cs rename to src/Utilities/Bdnd/Demo/Server/Controllers/McpResources.cs diff --git a/src/Bdnd/Demo/Server/Dtos/BdndMcpDtos.cs b/src/Utilities/Bdnd/Demo/Server/Dtos/BdndMcpDtos.cs similarity index 100% rename from src/Bdnd/Demo/Server/Dtos/BdndMcpDtos.cs rename to src/Utilities/Bdnd/Demo/Server/Dtos/BdndMcpDtos.cs diff --git a/src/Bdnd/Demo/Server/Program.cs b/src/Utilities/Bdnd/Demo/Server/Program.cs similarity index 99% rename from src/Bdnd/Demo/Server/Program.cs rename to src/Utilities/Bdnd/Demo/Server/Program.cs index 6f288e2d006..0e11cbbd55f 100644 --- a/src/Bdnd/Demo/Server/Program.cs +++ b/src/Utilities/Bdnd/Demo/Server/Program.cs @@ -33,7 +33,7 @@ Title = "Bit.Bdnd", Version = BdndServerInstructions.BdndVersion, Description = "Documentation, public API, setup guides and drag inspection for the Bit.Bdnd drag-and-drop library for Blazor.", - WebsiteUrl = "https://github.com/bitfoundation/bitplatform/tree/develop/src/Bdnd" + WebsiteUrl = "https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Bdnd" }; // Returned from `initialize` and put in front of the model before it has called anything. diff --git a/src/Bdnd/Demo/Server/Properties/launchSettings.json b/src/Utilities/Bdnd/Demo/Server/Properties/launchSettings.json similarity index 100% rename from src/Bdnd/Demo/Server/Properties/launchSettings.json rename to src/Utilities/Bdnd/Demo/Server/Properties/launchSettings.json diff --git a/src/Bdnd/Demo/Server/Services/BdndApiCatalog.cs b/src/Utilities/Bdnd/Demo/Server/Services/BdndApiCatalog.cs similarity index 100% rename from src/Bdnd/Demo/Server/Services/BdndApiCatalog.cs rename to src/Utilities/Bdnd/Demo/Server/Services/BdndApiCatalog.cs diff --git a/src/Bdnd/Demo/Server/Services/BdndCompletions.cs b/src/Utilities/Bdnd/Demo/Server/Services/BdndCompletions.cs similarity index 100% rename from src/Bdnd/Demo/Server/Services/BdndCompletions.cs rename to src/Utilities/Bdnd/Demo/Server/Services/BdndCompletions.cs diff --git a/src/Bdnd/Demo/Server/Services/BdndDropHost.cs b/src/Utilities/Bdnd/Demo/Server/Services/BdndDropHost.cs similarity index 100% rename from src/Bdnd/Demo/Server/Services/BdndDropHost.cs rename to src/Utilities/Bdnd/Demo/Server/Services/BdndDropHost.cs diff --git a/src/Bdnd/Demo/Server/Services/BdndDropLab.cs b/src/Utilities/Bdnd/Demo/Server/Services/BdndDropLab.cs similarity index 100% rename from src/Bdnd/Demo/Server/Services/BdndDropLab.cs rename to src/Utilities/Bdnd/Demo/Server/Services/BdndDropLab.cs diff --git a/src/Bdnd/Demo/Server/Services/BdndSearchIndex.cs b/src/Utilities/Bdnd/Demo/Server/Services/BdndSearchIndex.cs similarity index 100% rename from src/Bdnd/Demo/Server/Services/BdndSearchIndex.cs rename to src/Utilities/Bdnd/Demo/Server/Services/BdndSearchIndex.cs diff --git a/src/Bdnd/Demo/Server/Services/BdndServerInstructions.cs b/src/Utilities/Bdnd/Demo/Server/Services/BdndServerInstructions.cs similarity index 100% rename from src/Bdnd/Demo/Server/Services/BdndServerInstructions.cs rename to src/Utilities/Bdnd/Demo/Server/Services/BdndServerInstructions.cs diff --git a/src/Bdnd/Demo/Server/Services/BdndSetupGuide.cs b/src/Utilities/Bdnd/Demo/Server/Services/BdndSetupGuide.cs similarity index 100% rename from src/Bdnd/Demo/Server/Services/BdndSetupGuide.cs rename to src/Utilities/Bdnd/Demo/Server/Services/BdndSetupGuide.cs diff --git a/src/Bdnd/Demo/Server/Services/BdndSourceCatalog.cs b/src/Utilities/Bdnd/Demo/Server/Services/BdndSourceCatalog.cs similarity index 100% rename from src/Bdnd/Demo/Server/Services/BdndSourceCatalog.cs rename to src/Utilities/Bdnd/Demo/Server/Services/BdndSourceCatalog.cs diff --git a/src/Bdnd/Demo/Server/Services/BdndXmlDocs.cs b/src/Utilities/Bdnd/Demo/Server/Services/BdndXmlDocs.cs similarity index 100% rename from src/Bdnd/Demo/Server/Services/BdndXmlDocs.cs rename to src/Utilities/Bdnd/Demo/Server/Services/BdndXmlDocs.cs diff --git a/src/Bdnd/Demo/Server/appsettings.json b/src/Utilities/Bdnd/Demo/Server/appsettings.json similarity index 100% rename from src/Bdnd/Demo/Server/appsettings.json rename to src/Utilities/Bdnd/Demo/Server/appsettings.json diff --git a/src/Bdnd/Demo/Server/wwwroot/app.css b/src/Utilities/Bdnd/Demo/Server/wwwroot/app.css similarity index 100% rename from src/Bdnd/Demo/Server/wwwroot/app.css rename to src/Utilities/Bdnd/Demo/Server/wwwroot/app.css diff --git a/src/Bdnd/Demo/Server/wwwroot/favicon.png b/src/Utilities/Bdnd/Demo/Server/wwwroot/favicon.png similarity index 100% rename from src/Bdnd/Demo/Server/wwwroot/favicon.png rename to src/Utilities/Bdnd/Demo/Server/wwwroot/favicon.png diff --git a/src/Bdnd/README.md b/src/Utilities/Bdnd/README.md similarity index 99% rename from src/Bdnd/README.md rename to src/Utilities/Bdnd/README.md index a301f741f22..080a23acf51 100644 --- a/src/Bdnd/README.md +++ b/src/Utilities/Bdnd/README.md @@ -114,7 +114,7 @@ drop effects, and native files and HTML. Every page can show its own source. To run it locally: ```bash -dotnet run --project src/Bdnd/Demo/Server +dotnet run --project src/Utilities/Bdnd/Demo/Server ``` ## How it fits together diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/AssemblySetup.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/AssemblySetup.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/AssemblySetup.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/AssemblySetup.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/CustomizeTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/CustomizeTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/CustomizeTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/CustomizeTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DemoPagesTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DemoPagesTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DemoPagesTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DemoPagesTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DragAroundTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DragAroundTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DragAroundTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DragAroundTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DustbinTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DustbinTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DustbinTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/DustbinTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/BdndTest.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/BdndTest.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/BdndTest.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/BdndTest.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/ChildProcess.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/ChildProcess.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/ChildProcess.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/ChildProcess.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/DemoHost.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/DemoHost.cs similarity index 93% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/DemoHost.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/DemoHost.cs index 33c12f45c9d..ef42f1b2b5f 100644 --- a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/DemoHost.cs +++ b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/DemoHost.cs @@ -27,7 +27,7 @@ public static async Task StartAsync() if (File.Exists(assembly) is false) throw new FileNotFoundException( $"The demo server has not been built in the {E2EEnvironment.Configuration} configuration. Build it first with " + - $"'dotnet build src/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj -c {E2EEnvironment.Configuration}'", assembly); + $"'dotnet build src/Utilities/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj -c {E2EEnvironment.Configuration}'", assembly); var baseUrl = $"http://127.0.0.1:{ChildProcess.FreePort()}"; diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/E2EEnvironment.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/E2EEnvironment.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/E2EEnvironment.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/E2EEnvironment.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/PlaywrightSession.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/PlaywrightSession.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/PlaywrightSession.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/PlaywrightSession.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/RepoLayout.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/RepoLayout.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/RepoLayout.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Infrastructure/RepoLayout.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/NativeDragTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/NativeDragTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/NativeDragTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/NativeDragTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/NestingTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/NestingTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/NestingTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/NestingTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/README.md b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/README.md similarity index 95% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/README.md rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/README.md index e89c8234bee..01e4d06d2e4 100644 --- a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/README.md +++ b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/README.md @@ -52,7 +52,7 @@ event the browser raised at the very point the pointer was moved to (`BdndTest.D ## Running locally -From `src/Bdnd` (inside `src`, so `src/global.json` selects the Microsoft.Testing.Platform runner): +From `src/Utilities/Bdnd` (inside `src`, so `src/global.json` selects the Microsoft.Testing.Platform runner): ```bash # The suite runs the demo server's build output: build it first, in the configuration the tests run in. @@ -76,10 +76,10 @@ The workflow `.github/workflows/bit.ci.Bdnd.e2e.yml` does the same in Release. I `bit.ci.Bdnd.yml`: ```bash -dotnet build src/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj -c Release -dotnet build src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj -c Release -pwsh src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium -cd src/Bdnd/Tests/Bit.Bdnd.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bdnd-e2e.trx +dotnet build src/Utilities/Bdnd/Demo/Server/Bit.Bdnd.Demo.Server.csproj -c Release +dotnet build src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/Bit.Bdnd.Tests.E2E.csproj -c Release +pwsh src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/bin/Release/net10.0/playwright.ps1 install --with-deps chromium +cd src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E && dotnet test -c Release --no-build --report-trx --report-trx-filename bdnd-e2e.trx ``` Without PowerShell 7, the browser can be installed with Windows PowerShell diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/SortableTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/SortableTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/SortableTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/SortableTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/TutorialTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/TutorialTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.E2E/TutorialTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.E2E/TutorialTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/Bit.Bdnd.Tests.Mcp.csproj b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/Bit.Bdnd.Tests.Mcp.csproj similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/Bit.Bdnd.Tests.Mcp.csproj rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/Bit.Bdnd.Tests.Mcp.csproj diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpCall.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpCall.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpCall.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpCall.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpDropLabTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpDropLabTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpDropLabTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpDropLabTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpOracleTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpOracleTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpOracleTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpOracleTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpResourcePromptTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpResourcePromptTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpResourcePromptTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpResourcePromptTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpSearchTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpSearchTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpSearchTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpSearchTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpSurfaceTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpSurfaceTests.cs similarity index 99% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpSurfaceTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpSurfaceTests.cs index a8c9b66a68f..32f72cf9c92 100644 --- a/src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpSurfaceTests.cs +++ b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpSurfaceTests.cs @@ -57,7 +57,7 @@ public void The_server_introduces_itself_as_the_library_at_its_own_version() Assert.AreEqual("bit-bdnd", info.Name); Assert.AreEqual("Bit.Bdnd", info.Title); Assert.AreEqual(BdndServerInstructions.BdndVersion, info.Version); - Assert.AreEqual("https://github.com/bitfoundation/bitplatform/tree/develop/src/Bdnd", info.WebsiteUrl); + Assert.AreEqual("https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/Bdnd", info.WebsiteUrl); Assert.AreNotEqual("unknown", info.Version); Assert.DoesNotContain("+", info.Version, "The build metadata should have been stripped from the version."); } diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpTestHost.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpTestHost.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpTestHost.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpTestHost.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpToolTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpToolTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpToolTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/McpToolTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/ToolNames.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/ToolNames.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/ToolNames.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests.Mcp/ToolNames.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Bit.Bdnd.Tests.csproj b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Bit.Bdnd.Tests.csproj similarity index 88% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Bit.Bdnd.Tests.csproj rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Bit.Bdnd.Tests.csproj index 13062eebe4f..73067a5fbcc 100644 --- a/src/Bdnd/Tests/Bit.Bdnd.Tests/Bit.Bdnd.Tests.csproj +++ b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Bit.Bdnd.Tests.csproj @@ -10,7 +10,7 @@ true false true - ..\..\..\AssemblyOriginatorKeyFile.snk + ..\..\..\..\AssemblyOriginatorKeyFile.snk diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/BitBdndTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/BitBdndTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/BitBdndTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/BitBdndTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndComponentTestBase.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndComponentTestBase.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndComponentTestBase.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndComponentTestBase.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragHandleTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragHandleTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragHandleTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragHandleTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragLayerTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragLayerTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragLayerTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragLayerTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragLifecycleTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragLifecycleTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragLifecycleTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDragLifecycleTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDraggableTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDraggableTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDraggableTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDraggableTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDropTargetTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDropTargetTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDropTargetTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndDropTargetTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndNativeDragTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndNativeDragTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndNativeDragTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndNativeDragTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndProviderTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndProviderTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndProviderTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Components/BdndProviderTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Core/BdndDragDropManagerTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Core/BdndDragDropManagerTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Core/BdndDragDropManagerTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Core/BdndDragDropManagerTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Core/BdndValueTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Core/BdndValueTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Core/BdndValueTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Core/BdndValueTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Fakes/FakeJSObjectReference.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Fakes/FakeJSObjectReference.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Fakes/FakeJSObjectReference.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Fakes/FakeJSObjectReference.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Fakes/FakeJSRuntime.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Fakes/FakeJSRuntime.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Fakes/FakeJSRuntime.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Fakes/FakeJSRuntime.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/GlobalUsings.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/GlobalUsings.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/GlobalUsings.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/GlobalUsings.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Interop/BdndInteropTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Interop/BdndInteropTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Interop/BdndInteropTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Interop/BdndInteropTests.cs diff --git a/src/Bdnd/Tests/Bit.Bdnd.Tests/Interop/BdndJsRegistrationTests.cs b/src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Interop/BdndJsRegistrationTests.cs similarity index 100% rename from src/Bdnd/Tests/Bit.Bdnd.Tests/Interop/BdndJsRegistrationTests.cs rename to src/Utilities/Bdnd/Tests/Bit.Bdnd.Tests/Interop/BdndJsRegistrationTests.cs diff --git a/src/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryDbCommandInterceptor.cs b/src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryDbCommandInterceptor.cs similarity index 100% rename from src/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryDbCommandInterceptor.cs rename to src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryDbCommandInterceptor.cs diff --git a/src/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryDbContextOptionsBuilderExtensions.cs b/src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryDbContextOptionsBuilderExtensions.cs similarity index 100% rename from src/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryDbContextOptionsBuilderExtensions.cs rename to src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryDbContextOptionsBuilderExtensions.cs diff --git a/src/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryEntityFrameworkCoreOptions.cs b/src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryEntityFrameworkCoreOptions.cs similarity index 100% rename from src/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryEntityFrameworkCoreOptions.cs rename to src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/BelemetryEntityFrameworkCoreOptions.cs diff --git a/src/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj b/src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj similarity index 97% rename from src/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj rename to src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj index a5b01d85c57..6a1d5b77d23 100644 --- a/src/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj +++ b/src/Utilities/Belemetry/Bit.Belemetry.EntityFrameworkCore/Bit.Belemetry.EntityFrameworkCore.csproj @@ -1,6 +1,6 @@  - + true diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Components/BelemetryComponentsTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Components/BelemetryComponentsTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Components/BelemetryComponentsTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Components/BelemetryComponentsTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/GlobalUsings.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/GlobalUsings.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/GlobalUsings.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/GlobalUsings.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryExporterSetTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryExporterSetTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryExporterSetTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryExporterSetTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryFileRequestStoreTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryFileRequestStoreTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryFileRequestStoreTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryFileRequestStoreTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryHttpSenderTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryHttpSenderTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryHttpSenderTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Http/BelemetryHttpSenderTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Interop/BelemetryBrowserConfigFactoryTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Interop/BelemetryBrowserConfigFactoryTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Interop/BelemetryBrowserConfigFactoryTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Interop/BelemetryBrowserConfigFactoryTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Model/BelemetryAttributesTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Model/BelemetryAttributesTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Model/BelemetryAttributesTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Model/BelemetryAttributesTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/OtlpJsonSerializerTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/OtlpJsonSerializerTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/OtlpJsonSerializerTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/OtlpJsonSerializerTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/OtlpProtobufConformanceTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/OtlpProtobufConformanceTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/OtlpProtobufConformanceTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/OtlpProtobufConformanceTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/ProtobufWriterTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/ProtobufWriterTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/ProtobufWriterTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Otlp/ProtobufWriterTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityCollectorTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityCollectorTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityCollectorTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityCollectorTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityFilteringTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityFilteringTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityFilteringTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryActivityFilteringTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryLoggerTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryLoggerTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryLoggerTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryLoggerTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryMetricsTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryMetricsTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryMetricsTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryMetricsTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryPipelineTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryPipelineTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryPipelineTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryPipelineTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryPrivacyTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryPrivacyTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryPrivacyTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryPrivacyTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryResourceDetectorTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryResourceDetectorTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryResourceDetectorTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetryResourceDetectorTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetrySamplerTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetrySamplerTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetrySamplerTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetrySamplerTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetrySettingsTests.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetrySettingsTests.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetrySettingsTests.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Pipeline/BelemetrySettingsTests.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/logs/v1/logs_service.proto b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/logs/v1/logs_service.proto similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/logs/v1/logs_service.proto rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/logs/v1/logs_service.proto diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/metrics/v1/metrics_service.proto b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/metrics/v1/metrics_service.proto similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/metrics/v1/metrics_service.proto rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/metrics/v1/metrics_service.proto diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/trace/v1/trace_service.proto b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/trace/v1/trace_service.proto similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/trace/v1/trace_service.proto rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/collector/trace/v1/trace_service.proto diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/common/v1/common.proto b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/common/v1/common.proto similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/common/v1/common.proto rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/common/v1/common.proto diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/logs/v1/logs.proto b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/logs/v1/logs.proto similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/logs/v1/logs.proto rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/logs/v1/logs.proto diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/metrics/v1/metrics.proto b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/metrics/v1/metrics.proto similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/metrics/v1/metrics.proto rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/metrics/v1/metrics.proto diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/resource/v1/resource.proto b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/resource/v1/resource.proto similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/resource/v1/resource.proto rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/resource/v1/resource.proto diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/trace/v1/trace.proto b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/trace/v1/trace.proto similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/trace/v1/trace.proto rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/Protos/opentelemetry/proto/trace/v1/trace.proto diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/CapturingLoggerProvider.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/CapturingLoggerProvider.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/CapturingLoggerProvider.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/CapturingLoggerProvider.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/FakeHttpMessageHandler.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/FakeHttpMessageHandler.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/FakeHttpMessageHandler.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/FakeHttpMessageHandler.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/Records.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/Records.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/Records.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/Records.cs diff --git a/src/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/TestHost.cs b/src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/TestHost.cs similarity index 100% rename from src/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/TestHost.cs rename to src/Utilities/Belemetry/Tests/Bit.Belemetry.Tests/TestInfra/TestHost.cs diff --git a/src/Belemetry/Tests/bit-belemetry-js/.gitignore b/src/Utilities/Belemetry/Tests/bit-belemetry-js/.gitignore similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/.gitignore rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/.gitignore diff --git a/src/Belemetry/Tests/bit-belemetry-js/api.test.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/api.test.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/api.test.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/api.test.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/azure.test.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/azure.test.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/azure.test.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/azure.test.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/consent.test.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/consent.test.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/consent.test.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/consent.test.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/fetch.test.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/fetch.test.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/fetch.test.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/fetch.test.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/helpers.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/helpers.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/helpers.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/helpers.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/instrumentations.test.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/instrumentations.test.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/instrumentations.test.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/instrumentations.test.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/otlp.test.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/otlp.test.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/otlp.test.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/otlp.test.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/package-lock.json b/src/Utilities/Belemetry/Tests/bit-belemetry-js/package-lock.json similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/package-lock.json rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/package-lock.json diff --git a/src/Belemetry/Tests/bit-belemetry-js/package.json b/src/Utilities/Belemetry/Tests/bit-belemetry-js/package.json similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/package.json rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/package.json diff --git a/src/Belemetry/Tests/bit-belemetry-js/privacy.test.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/privacy.test.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/privacy.test.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/privacy.test.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/protobuf.test.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/protobuf.test.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/protobuf.test.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/protobuf.test.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/resource.test.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/resource.test.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/resource.test.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/resource.test.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/session.test.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/session.test.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/session.test.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/session.test.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/transport.test.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/transport.test.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/transport.test.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/transport.test.js diff --git a/src/Belemetry/Tests/bit-belemetry-js/vitest.config.js b/src/Utilities/Belemetry/Tests/bit-belemetry-js/vitest.config.js similarity index 100% rename from src/Belemetry/Tests/bit-belemetry-js/vitest.config.js rename to src/Utilities/Belemetry/Tests/bit-belemetry-js/vitest.config.js diff --git a/src/Belemetry/settings.VisualStudio.json b/src/Utilities/Belemetry/settings.VisualStudio.json similarity index 100% rename from src/Belemetry/settings.VisualStudio.json rename to src/Utilities/Belemetry/settings.VisualStudio.json diff --git a/src/BevTools/Bit.BevTools.Server/BevCircuitRegistry.cs b/src/Utilities/BevTools/Bit.BevTools.Server/BevCircuitRegistry.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Server/BevCircuitRegistry.cs rename to src/Utilities/BevTools/Bit.BevTools.Server/BevCircuitRegistry.cs diff --git a/src/BevTools/Bit.BevTools.Server/BevToolsCircuitHandler.cs b/src/Utilities/BevTools/Bit.BevTools.Server/BevToolsCircuitHandler.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Server/BevToolsCircuitHandler.cs rename to src/Utilities/BevTools/Bit.BevTools.Server/BevToolsCircuitHandler.cs diff --git a/src/BevTools/Bit.BevTools.Server/BevToolsServerExtension.cs b/src/Utilities/BevTools/Bit.BevTools.Server/BevToolsServerExtension.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Server/BevToolsServerExtension.cs rename to src/Utilities/BevTools/Bit.BevTools.Server/BevToolsServerExtension.cs diff --git a/src/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj b/src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj similarity index 96% rename from src/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj rename to src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj index 281ca486b9c..8693b308a48 100644 --- a/src/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj +++ b/src/Utilities/BevTools/Bit.BevTools.Server/Bit.BevTools.Server.csproj @@ -1,6 +1,6 @@  - + net10.0;net9.0;net8.0 diff --git a/src/BevTools/Bit.BevTools.Server/BitBevToolsServer.cs b/src/Utilities/BevTools/Bit.BevTools.Server/BitBevToolsServer.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Server/BitBevToolsServer.cs rename to src/Utilities/BevTools/Bit.BevTools.Server/BitBevToolsServer.cs diff --git a/src/BevTools/Bit.BevTools.Server/README.md b/src/Utilities/BevTools/Bit.BevTools.Server/README.md similarity index 92% rename from src/BevTools/Bit.BevTools.Server/README.md rename to src/Utilities/BevTools/Bit.BevTools.Server/README.md index 4c8d8cbdccc..f8f09cf2e7d 100644 --- a/src/BevTools/Bit.BevTools.Server/README.md +++ b/src/Utilities/BevTools/Bit.BevTools.Server/README.md @@ -1,7 +1,7 @@ # Bit.BevTools.Server Blazor Server (interactive server / circuits) instrumentation for -[bit BevTools](https://github.com/bitfoundation/bitplatform/tree/develop/src/BevTools): circuit lifecycle, connection +[bit BevTools](https://github.com/bitfoundation/bitplatform/tree/develop/src/Utilities/BevTools): circuit lifecycle, connection state, inbound message processing, reconnect attempts, an active circuit overview, and the diagnostic rules that read them (an unstable or blocked circuit). diff --git a/src/BevTools/Bit.BevTools.Server/UI/BevCircuitPanel.razor b/src/Utilities/BevTools/Bit.BevTools.Server/UI/BevCircuitPanel.razor similarity index 100% rename from src/BevTools/Bit.BevTools.Server/UI/BevCircuitPanel.razor rename to src/Utilities/BevTools/Bit.BevTools.Server/UI/BevCircuitPanel.razor diff --git a/src/BevTools/Bit.BevTools.Server/_Imports.razor b/src/Utilities/BevTools/Bit.BevTools.Server/_Imports.razor similarity index 100% rename from src/BevTools/Bit.BevTools.Server/_Imports.razor rename to src/Utilities/BevTools/Bit.BevTools.Server/_Imports.razor diff --git a/src/BevTools/Bit.BevTools.slnx b/src/Utilities/BevTools/Bit.BevTools.slnx similarity index 77% rename from src/BevTools/Bit.BevTools.slnx rename to src/Utilities/BevTools/Bit.BevTools.slnx index 0d0d7910525..51569e18150 100644 --- a/src/BevTools/Bit.BevTools.slnx +++ b/src/Utilities/BevTools/Bit.BevTools.slnx @@ -1,9 +1,9 @@  - - - - + + + + @@ -21,6 +21,5 @@ - diff --git a/src/BevTools/Bit.BevTools.Abstractions/BevToolsAttributes.cs b/src/Utilities/BevTools/Bit.BevTools/Abstractions/BevToolsAttributes.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Abstractions/BevToolsAttributes.cs rename to src/Utilities/BevTools/Bit.BevTools/Abstractions/BevToolsAttributes.cs diff --git a/src/BevTools/Bit.BevTools.Abstractions/Capabilities/BevToolsCapability.cs b/src/Utilities/BevTools/Bit.BevTools/Abstractions/Capabilities/BevToolsCapability.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Abstractions/Capabilities/BevToolsCapability.cs rename to src/Utilities/BevTools/Bit.BevTools/Abstractions/Capabilities/BevToolsCapability.cs diff --git a/src/BevTools/Bit.BevTools.Abstractions/Commands/IBevToolsCommand.cs b/src/Utilities/BevTools/Bit.BevTools/Abstractions/Commands/IBevToolsCommand.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Abstractions/Commands/IBevToolsCommand.cs rename to src/Utilities/BevTools/Bit.BevTools/Abstractions/Commands/IBevToolsCommand.cs diff --git a/src/BevTools/Bit.BevTools.Abstractions/Diagnostics/IBevDiagnosticRule.cs b/src/Utilities/BevTools/Bit.BevTools/Abstractions/Diagnostics/IBevDiagnosticRule.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Abstractions/Diagnostics/IBevDiagnosticRule.cs rename to src/Utilities/BevTools/Bit.BevTools/Abstractions/Diagnostics/IBevDiagnosticRule.cs diff --git a/src/BevTools/Bit.BevTools.Abstractions/Events/BevToolsEvent.cs b/src/Utilities/BevTools/Bit.BevTools/Abstractions/Events/BevToolsEvent.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Abstractions/Events/BevToolsEvent.cs rename to src/Utilities/BevTools/Bit.BevTools/Abstractions/Events/BevToolsEvent.cs diff --git a/src/BevTools/Bit.BevTools.Abstractions/Events/IBevToolsTimeline.cs b/src/Utilities/BevTools/Bit.BevTools/Abstractions/Events/IBevToolsTimeline.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Abstractions/Events/IBevToolsTimeline.cs rename to src/Utilities/BevTools/Bit.BevTools/Abstractions/Events/IBevToolsTimeline.cs diff --git a/src/BevTools/Bit.BevTools.Abstractions/Extensions/IBevToolsExtension.cs b/src/Utilities/BevTools/Bit.BevTools/Abstractions/Extensions/IBevToolsExtension.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Abstractions/Extensions/IBevToolsExtension.cs rename to src/Utilities/BevTools/Bit.BevTools/Abstractions/Extensions/IBevToolsExtension.cs diff --git a/src/BevTools/Bit.BevTools.Abstractions/State/IBevStateProvider.cs b/src/Utilities/BevTools/Bit.BevTools/Abstractions/State/IBevStateProvider.cs similarity index 100% rename from src/BevTools/Bit.BevTools.Abstractions/State/IBevStateProvider.cs rename to src/Utilities/BevTools/Bit.BevTools/Abstractions/State/IBevStateProvider.cs diff --git a/src/BevTools/Bit.BevTools/BevServiceGraph.cs b/src/Utilities/BevTools/Bit.BevTools/BevServiceGraph.cs similarity index 100% rename from src/BevTools/Bit.BevTools/BevServiceGraph.cs rename to src/Utilities/BevTools/Bit.BevTools/BevServiceGraph.cs diff --git a/src/BevTools/Bit.BevTools/BevToolsRegistry.cs b/src/Utilities/BevTools/Bit.BevTools/BevToolsRegistry.cs similarity index 100% rename from src/BevTools/Bit.BevTools/BevToolsRegistry.cs rename to src/Utilities/BevTools/Bit.BevTools/BevToolsRegistry.cs diff --git a/src/BevTools/Bit.BevTools/Bit.BevTools.csproj b/src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj similarity index 97% rename from src/BevTools/Bit.BevTools/Bit.BevTools.csproj rename to src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj index 21d7a04b739..bbf000601c6 100644 --- a/src/BevTools/Bit.BevTools/Bit.BevTools.csproj +++ b/src/Utilities/BevTools/Bit.BevTools/Bit.BevTools.csproj @@ -1,12 +1,12 @@  - + net10.0;net9.0;net8.0 Bit.BevTools enable - Runtime instrumentation and in-app developer tools for Blazor: component tree, render profiler, event timeline, state, network, JS interop, errors, DI inspector and diagnostics. + Runtime instrumentation and in-app developer tools for Blazor: component tree, render profiler, event timeline, state, network, JS interop, errors, DI inspector and diagnostics, plus the extension API (panels, state providers, diagnostic rules, commands, timeline events) libraries use to integrate with it. $(PackageTags);Blazor;devtools;diagnostics;profiler;debugging - + true true - false - true + false $(NoWarn);nullable false - $(PackageTags);Blazor;Database;Source generator The Roslyn source generator for Bit.BlazeDb: turns [BlazeDbTable] types into table descriptors with binary row and key serializers, key extractors and typed index definitions, with no runtime reflection. - $(Description) @@ -33,9 +31,4 @@ - - - - - diff --git a/src/BlazeDb/Bit.BlazeDb.Generators/BlazeDbTableGenerator.cs b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/BlazeDbTableGenerator.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Generators/BlazeDbTableGenerator.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb.Generators/BlazeDbTableGenerator.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Generators/Diagnostics/BlazeDbDiagnosticInfo.cs b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Diagnostics/BlazeDbDiagnosticInfo.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Generators/Diagnostics/BlazeDbDiagnosticInfo.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Diagnostics/BlazeDbDiagnosticInfo.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Generators/Diagnostics/BlazeDbDiagnostics.cs b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Diagnostics/BlazeDbDiagnostics.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Generators/Diagnostics/BlazeDbDiagnostics.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Diagnostics/BlazeDbDiagnostics.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Generators/Emit/BlazeDbSourceEmitter.cs b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Emit/BlazeDbSourceEmitter.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Generators/Emit/BlazeDbSourceEmitter.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Emit/BlazeDbSourceEmitter.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Generators/Emit/BlazeDbTypeMap.cs b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Emit/BlazeDbTypeMap.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Generators/Emit/BlazeDbTypeMap.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Emit/BlazeDbTypeMap.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbCompoundIndexModel.cs b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbCompoundIndexModel.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbCompoundIndexModel.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbCompoundIndexModel.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbGenerationResult.cs b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbGenerationResult.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbGenerationResult.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbGenerationResult.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbPropCategory.cs b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbPropCategory.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbPropCategory.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbPropCategory.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbPropModel.cs b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbPropModel.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbPropModel.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbPropModel.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbScalarKind.cs b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbScalarKind.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbScalarKind.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbScalarKind.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbTableModel.cs b/src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbTableModel.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbTableModel.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb.Generators/Model/BlazeDbTableModel.cs diff --git a/src/BlazeDb/Bit.BlazeDb.slnx b/src/Utilities/BlazeDb/Bit.BlazeDb.slnx similarity index 79% rename from src/BlazeDb/Bit.BlazeDb.slnx rename to src/Utilities/BlazeDb/Bit.BlazeDb.slnx index 727837a0e32..0beeaa7934a 100644 --- a/src/BlazeDb/Bit.BlazeDb.slnx +++ b/src/Utilities/BlazeDb/Bit.BlazeDb.slnx @@ -1,9 +1,9 @@  - - - - + + + + @@ -17,7 +17,6 @@ - diff --git a/src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbCompoundIndexAttribute.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbCompoundIndexAttribute.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbCompoundIndexAttribute.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbCompoundIndexAttribute.cs diff --git a/src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbCompoundOrderedIndexAttribute.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbCompoundOrderedIndexAttribute.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbCompoundOrderedIndexAttribute.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbCompoundOrderedIndexAttribute.cs diff --git a/src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbFieldAttribute.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbFieldAttribute.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbFieldAttribute.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbFieldAttribute.cs diff --git a/src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbIgnoreAttribute.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbIgnoreAttribute.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbIgnoreAttribute.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbIgnoreAttribute.cs diff --git a/src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbIndexAttribute.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbIndexAttribute.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbIndexAttribute.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbIndexAttribute.cs diff --git a/src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbKeyAttribute.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbKeyAttribute.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbKeyAttribute.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbKeyAttribute.cs diff --git a/src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbOrderedIndexAttribute.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbOrderedIndexAttribute.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbOrderedIndexAttribute.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbOrderedIndexAttribute.cs diff --git a/src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbTableAttribute.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbTableAttribute.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbTableAttribute.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/Attributes/BlazeDbTableAttribute.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Browser/Bit.BlazeDb.Browser.csproj b/src/Utilities/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj similarity index 61% rename from src/BlazeDb/Bit.BlazeDb.Browser/Bit.BlazeDb.Browser.csproj rename to src/Utilities/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj index d0a2a626f26..fb2fd21119c 100644 --- a/src/BlazeDb/Bit.BlazeDb.Browser/Bit.BlazeDb.Browser.csproj +++ b/src/Utilities/BlazeDb/Bit.BlazeDb/Bit.BlazeDb.csproj @@ -1,24 +1,43 @@  - + net10.0;net9.0;net8.0 - Bit.BlazeDb.Browser + Bit.BlazeDb enable true - + true - Browser storage backends for Bit.BlazeDb: OPFS and IndexedDB, Web Locks single-writer election, a WebCrypto AES-GCM cipher, and cross-tab sync between a writer tab and read-only replicas. - $(PackageTags);Blazor;WebAssembly;Database;OPFS;IndexedDB;WebCrypto + Memory-first, SQL-free embedded database engine for .NET, designed for Blazor WebAssembly: live rows in managed memory, source-generated serializers and indexes, atomic transactions, and WAL/snapshot persistence with no SQL and no JS interop on the read path. Includes the source generator for [BlazeDbTable] types and the browser storage backends: OPFS and IndexedDB, Web Locks single-writer election, a WebCrypto AES-GCM cipher, and cross-tab sync between a writer tab and read-only replicas. + $(Description) + $(PackageTags);Blazor;WebAssembly;Database;Embedded;NoSQL;AOT;OPFS;IndexedDB;WebCrypto;Source generator + - + + + + + + + + + + + diff --git a/src/BlazeDb/Bit.BlazeDb/BlazeDbDatabase.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/BlazeDbDatabase.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb/BlazeDbDatabase.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/BlazeDbDatabase.cs diff --git a/src/BlazeDb/Bit.BlazeDb/BlazeDbDatabaseOptions.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/BlazeDbDatabaseOptions.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb/BlazeDbDatabaseOptions.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/BlazeDbDatabaseOptions.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Browser/Cryptography/BlazeDbWebCryptoCipher.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/Browser/Cryptography/BlazeDbWebCryptoCipher.cs similarity index 100% rename from src/BlazeDb/Bit.BlazeDb.Browser/Cryptography/BlazeDbWebCryptoCipher.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/Browser/Cryptography/BlazeDbWebCryptoCipher.cs diff --git a/src/BlazeDb/Bit.BlazeDb.Browser/Interop/BlazeDbBrowserModules.cs b/src/Utilities/BlazeDb/Bit.BlazeDb/Browser/Interop/BlazeDbBrowserModules.cs similarity index 96% rename from src/BlazeDb/Bit.BlazeDb.Browser/Interop/BlazeDbBrowserModules.cs rename to src/Utilities/BlazeDb/Bit.BlazeDb/Browser/Interop/BlazeDbBrowserModules.cs index a8b7055eebe..0c39e47fa25 100644 --- a/src/BlazeDb/Bit.BlazeDb.Browser/Interop/BlazeDbBrowserModules.cs +++ b/src/Utilities/BlazeDb/Bit.BlazeDb/Browser/Interop/BlazeDbBrowserModules.cs @@ -33,7 +33,7 @@ public static Task EnsureAsync(string moduleName, string? moduleUrl = null) private static string ResolveUrl(string moduleName) { - var path = $"_content/Bit.BlazeDb.Browser/{moduleName}.js"; + var path = $"_content/Bit.BlazeDb/{moduleName}.js"; using var document = JSHost.GlobalThis.GetPropertyAsJSObject("document"); var baseUri = document?.GetPropertyAsString("baseURI"); // Resolved as a relative reference, the way a