Skip to content

Conversation

@ysmoradi
Copy link
Member

@ysmoradi ysmoradi commented Sep 14, 2025

closes #11391

Summary by CodeRabbit

  • New Features

    • Unified ES2019 runtime: apps now load ES2019 scripts from the framework, improving consistency across Web, Server, MAUI, and Windows.
    • Service workers updated to cache the ES2019 runtime for better offline behavior.
    • Demos and templates updated to use the new runtime paths.
  • Refactor

    • Project packaging updated to include and automatically link ES2019 JS assets via transitive targets.
  • Chores

    • Build pipelines simplified with npm-based installs and streamlined steps.
    • Adjusted asset output paths and ensured directories are created during builds.

@ysmoradi ysmoradi requested review from Copilot and msynk September 14, 2025 19:43
@coderabbitai
Copy link

coderabbitai bot commented Sep 14, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Updates CI workflows to use npm and target ES2019, refactors Web.JS build and output paths, introduces NuGet packaging of ES2019 JS via a transitive MSBuild targets file, shifts script references from _content to _framework, adjusts service workers to cache ES2019 scripts, and redistributes Bit.BlazorES2019 package references across projects.

Changes

Cohort / File(s) Summary
CI workflows: ES2019 targeting and npm build flow
.github/workflows/nuget.org.yml, .github/workflows/prerelease.nuget.org.yml
Replace string-based ES target edit with JSON-aware change to "target": "ES2019"; switch restore.sh to npm install; simplify build by running npm in src/Components/Web.JS; adjust copy destination to src/BlazorES2019/wwwroot/.
ES2019 packaging: project + transitive targets
src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj, src/BlazorES2019/Bit.BlazorES2019/buildTransitive/Bit.BlazorES2019.targets
Change SDK to Microsoft.NET.Sdk; include packaged JS assets under contentFiles/.../wwwroot/_framework/*.js; add buildTransitive/Bit.BlazorES2019.targets to ensure JS copies to consumer output/publish with wwwroot\_framework link.
Demo csproj dependency shifts
src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj, src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj, src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj, src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj
Add Bit.BlazorES2019 to Server/Maui/Windows; remove from Client.Core.
Server App startup scripts: switch to framework ES2019
src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razor, src/Websites/Careers/.../Server/Components/App.razor, src/Websites/Platform/.../Server/Components/App.razor, src/Websites/Sales/.../Server/Components/App.razor
Replace _content/Bit.BlazorES2019/blazor.web.js with _framework/blazor.web.es2019.js; update bit-bswup.js blazorScript to the new path.
Client WebView/WA script references
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/wwwroot/index.html, src/Templates/Boilerplate/.../Client/Boilerplate.Client.Maui/wwwroot/index.html, src/Templates/Boilerplate/.../Client/Boilerplate.Client.Web/wwwroot/index.html
Maui: _content/.../blazor.webview.js_framework/blazor.webview.es2019.js; Boilerplate Web: _content/.../blazor.webassembly.js_framework/blazor.webassembly.js.
Service worker external assets
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js, src/Websites/Careers/.../Client/wwwroot/service-worker.published.js, src/Websites/Platform/.../Client/wwwroot/service-worker.published.js, src/Websites/Sales/.../Client/wwwroot/service-worker.published.js
Add _framework/blazor.web.es2019.js to self.externalAssets.
Boilerplate Web service worker exclude cleanup
src/Templates/Boilerplate/.../Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js
Remove ES2019 Blazor asset patterns from assetsExclude; add _framework/blazor.web.es2019.js to externalAssets.
Templates csproj dependency shifts
src/Templates/Boilerplate/.../Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj, .../Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj, .../Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj, .../Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj
Remove Bit.BlazorES2019 from Client.Core; add to Maui, Windows, and Server.Web.
Websites csproj dependency shifts
src/Websites/Careers/.../Client/Bit.Websites.Careers.Client.csproj, .../Server/Bit.Websites.Careers.Server.csproj, src/Websites/Platform/.../Client/Bit.Websites.Platform.Client.csproj, .../Server/Bit.Websites.Platform.Server.csproj, src/Websites/Sales/.../Client/Bit.Websites.Sales.Client.csproj, .../Server/Bit.Websites.Sales.Server.csproj
Remove Bit.BlazorES2019 from Client projects; add to corresponding Server projects.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant Browser
  participant ServerApp as Server App (Razor)
  participant SW as Service Worker
  participant Framework as _framework (ES2019)

  User->>Browser: Navigate to app
  Browser->>ServerApp: Request page
  ServerApp-->>Browser: HTML with <script src="_framework/blazor.web.es2019.js" autostart="false"> + bit-bswup.js
  Browser->>Framework: Load blazor.web.es2019.js
  Browser->>SW: Register/activate service worker
  SW->>Framework: Cache external asset "_framework/blazor.web.es2019.js"
  Browser->>Framework: Start Blazor (deferred by bit-bswup.js)
  Framework-->>Browser: App bootstrapped
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

I nibbled through scripts with a hop and a cheer,
From _content to _framework, the pathway is clear.
ES2019, bundled neat and light,
Transitive tails wag through the build at night.
Cache me a carrot—er—script, if you please,
Our startup now sprints on autumn breeze! 🥕✨

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Out of Scope Changes Check ❓ Inconclusive Most edits are in-scope for multi-targeting, but a few items may be broader than the stated objective or require confirmation: the Bit.BlazorES2019.csproj SDK change from Microsoft.NET.Sdk.Razor to Microsoft.NET.Sdk and the buildTransitive.targets referencing a fixed package-version path under $(NuGetPackageRoot) could have wider impacts or be brittle, so it is unclear from the diff alone whether those were intentional required changes. Ask the author to confirm why the SDK was changed and to remove or parameterize hard-coded package-version paths in the targets, and request CI/consuming-project tests across target frameworks so reviewers can verify there are no unintended side effects.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The PR title "Make bit es 2019 compatible with further multi-tageting (#11391)" correctly reflects the primary intent—making Bit ES2019 compatible with broader multi-targeting—based on the packaging, build and runtime-path changes in the diff, but it contains a spelling error ("multi-tageting") and includes the issue number which is unnecessary noise.
Linked Issues Check ✅ Passed The changes address the linked issue: JS assets are repackaged under contentFiles (contentFiles\any\net9.0\wwwroot_framework...), a buildTransitive targets file was added to ensure those assets are copied into consuming projects' output/publish locations, templates and demos were updated to reference the ES2019 _framework runtime files, and CI workflows were adjusted to produce ES2019 builds, which together implement multi-targeting compatibility.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR refactors the Bit.BlazorES2019 package to support multi-targeting by changing its distribution strategy from embedded content to direct framework file copies. The changes enable better compatibility with different deployment scenarios and simplify the integration process.

Key changes:

  • Moved BlazorES2019 package references from client projects to server/host projects
  • Updated script references to use framework paths instead of content paths
  • Modified the package build system to copy files to framework directory

Reviewed Changes

Copilot reviewed 31 out of 33 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
Multiple App.razor files Updated script references from _content/Bit.BlazorES2019/ to _framework/ paths
Server project files Added Bit.BlazorES2019 package references
Client project files Removed Bit.BlazorES2019 package references
Service worker files Updated cached script paths and cleaned up exclusion patterns
Index.html files Updated script references for WebAssembly and WebView scenarios
Bit.BlazorES2019.csproj Changed from Razor SDK to standard SDK and updated content packaging
Build targets file New MSBuild targets file for copying framework files
GitHub workflows Updated build process for generating ES2019 scripts

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/prerelease.nuget.org.yml (1)

37-52: Harden and speed up the aspnetcore JS build step

  • Shallow clone and shallow submodules to cut time/bandwidth.
  • Fail fast with set -euo pipefail.
  • Make the sed patch resilient to whitespace.

Apply this diff:

-    - name: Generate ES2019 based blazor.*.js files
-      run: |
-        git clone https://github.com/dotnet/aspnetcore.git
-        cd aspnetcore
-        git switch release/9.0
-        git submodule update --init --recursive
-        sed -i 's/"target": "ES2022"/"target": "ES2019"/' src/Components/Shared.JS/tsconfig.json
-        npm install
-        npm run-script build
-        cd src/Components/Web.JS
-        npm install
-        npm run-script build:production
-        cd ../../../../
-        mkdir -p src/BlazorES2019/wwwroot/
-        cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/wwwroot/
-        rm -rf aspnetcore
+    - name: Generate ES2019 based blazor.*.js files
+      run: |
+        set -euo pipefail
+        git clone --depth 1 --branch release/9.0 --single-branch https://github.com/dotnet/aspnetcore.git
+        cd aspnetcore
+        git submodule update --init --recursive --depth 1
+        sed -i -E 's/"target":\s*"ES2022"/"target": "ES2019"/' src/Components/Shared.JS/tsconfig.json
+        npm install
+        npm run-script build
+        cd src/Components/Web.JS
+        npm install
+        npm run-script build:production
+        cd ../../../../
+        mkdir -p src/BlazorES2019/wwwroot/
+        cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/wwwroot/
+        rm -rf aspnetcore
🧹 Nitpick comments (7)
src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js (1)

17-18: Keep key quoting consistent

Other entries use quoted keys ("url"); keep it consistent to reduce noise in diffs.

-    {
-        url: "_framework/blazor.web.es2019.js"
+    {
+        "url": "_framework/blazor.web.es2019.js"
     }
src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js (1)

17-18: Consistent quoting for keys

Match surrounding entries by quoting url.

-    {
-        url: "_framework/blazor.web.es2019.js"
+    {
+        "url": "_framework/blazor.web.es2019.js"
     }
src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj (1)

166-166: Pin or centrally manage Bit.BlazorES2019 version

Same as Windows project: confirm Central Package Management or add Version here.

Use the version audit script provided in the Windows project comment.

.github/workflows/prerelease.nuget.org.yml (2)

26-29: Make removal idempotent to avoid step failures

rm errors if the file is absent. Use -f.

Apply this diff:

-        rm src/AssemblyOriginatorKeyFile.snk
+        rm -f src/AssemblyOriginatorKeyFile.snk

22-25: Use an LTS Node to reduce build breakage risk

Node 23 (non‑LTS) is used in .github/workflows/prerelease.nuget.org.yml (lines 22–25) and across other workflows; switch to LTS to avoid unexpected JS/aspnetcore build breaks.

Apply this diff:

-    - uses: actions/setup-node@v4
-      with:
-        node-version: 23
+    - uses: actions/setup-node@v4
+      with:
+        node-version: lts/*

Optionally enable npm cache after cloning aspnetcore (or add a second setup-node step post-clone) for faster builds.

.github/workflows/nuget.org.yml (1)

59-61: Harden the copy step and surface failures.

Add -v and fail-fast; list artifacts for easier troubleshooting.

-        mkdir -p src/BlazorES2019/wwwroot/
-        cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/wwwroot/
+        set -euo pipefail
+        mkdir -p src/BlazorES2019/wwwroot/
+        ls -al aspnetcore/src/Components/Web.JS/dist/Release || true
+        cp -v aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/wwwroot/
src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js (1)

73-73: Use absolute path for robustness.

Avoid scope-relative resolution by prefixing with “/”.

-        url: "_framework/blazor.web.es2019.js"
+        url: "/_framework/blazor.web.es2019.js"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between e42c699 and faee6e7.

📒 Files selected for processing (31)
  • .github/workflows/nuget.org.yml (1 hunks)
  • .github/workflows/prerelease.nuget.org.yml (1 hunks)
  • src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj (2 hunks)
  • src/BlazorES2019/Bit.BlazorES2019/buildTransitive/Bit.BlazorES2019.targets (1 hunks)
  • src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj (1 hunks)
  • src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razor (1 hunks)
  • src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj (0 hunks)
  • src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj (1 hunks)
  • src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/wwwroot/index.html (1 hunks)
  • src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js (1 hunks)
  • src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj (0 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/index.html (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor (1 hunks)
  • src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj (0 hunks)
  • src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js (1 hunks)
  • src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj (1 hunks)
  • src/Websites/Careers/src/Bit.Websites.Careers.Server/Components/App.razor (1 hunks)
  • src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj (0 hunks)
  • src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js (1 hunks)
  • src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj (1 hunks)
  • src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor (1 hunks)
  • src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj (0 hunks)
  • src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js (1 hunks)
  • src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj (1 hunks)
  • src/Websites/Sales/src/Bit.Websites.Sales.Server/Components/App.razor (1 hunks)
💤 Files with no reviewable changes (5)
  • src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj
  • src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj
  • src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj
  • src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build and test
🔇 Additional comments (23)
src/Websites/Sales/src/Bit.Websites.Sales.Client/wwwroot/service-worker.published.js (1)

16-19: Same verification: ensure the cached bootstrap matches the client type

Use _framework/blazor.webassembly.js for WASM, blazor.web.es2019.js for Server/Auto ES2019. Align SW with the app’s actual script.

You can reuse the repo-wide script from the Platform SW comment above to detect mismatches.

src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj (1)

13-13: LGTM; ensure version consistency across projects

This pins 9.12.0-pre-01. Please align other Bit.BlazorES2019 references via CPM or pin them to the same version.

Run the version audit script from the Windows project comment to confirm uniformity.

src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razor (1)

56-58: Correct ES2019 bootstrap and BSWUP wiring

Switching to _framework/blazor.web.es2019.js and updating blazorScript is consistent with ES2019 multi-targeting.

src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/index.html (1)

205-207: WASM bootstrap path update looks good; verify service worker externalAssets

LGTM. Optionally preload _framework/dotnet.js and _framework/blazor.boot.json to improve first paint.

 <head>
 @@
-    <meta name="description" content="The Boilerplate is built with ASP.NET Core, Identity, Web API, EF Core and Blazor.">
+    <meta name="description" content="The Boilerplate is built with ASP.NET Core, Identity, Web API, EF Core and Blazor.">
+    <link rel="preload" href="_framework/dotnet.js" as="script" type="text/javascript">
+    <link rel="preload" href="_framework/blazor.boot.json" as="fetch" type="application/json">
 @@
-    <script src="_framework/blazor.webassembly.js" autostart="false"></script>
+    <script src="_framework/blazor.webassembly.js" autostart="false"></script>
     <script src="_content/Bit.Bswup/bit-bswup.js" blazorScript="_framework/blazor.webassembly.js"></script>

Search produced no matches for _framework/blazor.webassembly.js; confirm the service worker's externalAssets includes '_framework/blazor.webassembly.js' or add it.

src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js (1)

16-19: Verify the bootstrap script aligns with the hosting model

If this is a Blazor WebAssembly client, the service worker should cache _framework/blazor.webassembly.js (not _framework/blazor.web.es2019.js). If it’s Server/Auto (ES2019), blazor.web.es2019.js is correct. Confirm by checking the client .csproj Sdk (Microsoft.NET.Sdk.BlazorWebAssembly) or presence of wwwroot/index.html. Location: src/Websites/Platform/src/Bit.Websites.Platform.Client/wwwroot/service-worker.published.js (lines 16–19).

src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj (1)

39-39: Central package management in use — no change required

Bit.BlazorES2019 is pinned in src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props as Version="9.12.0-pre-01"; leaving the csproj PackageReference without a Version is correct.

src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html (1)

151-151: ES2019 WebView script present — verify runtime presence on all targets

Location: src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html

<script src="_framework/blazor.webview.es2019.js" autostart="false"></script>

Confirm that _framework/blazor.webview.es2019.js is included in the built/published _framework assets at runtime on Android, iOS, MacCatalyst, and Windows.

src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js (1)

12-18: ES2019 loader added to offline cache — LGTM

Including _framework/blazor.web.es2019.js in self.externalAssets aligns the SW with the new boot script path.

Please verify via DevTools (Application > Service Workers > Offline) that the new asset is pre-cached after a hard reload.

src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor (1)

27-31: Switch to framework ES2019 loader + Bswup binding — looks good

autostart="false" and the blazorScript attribute are consistent with Bswup expectations.

src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/wwwroot/index.html (1)

143-146: ES2019 WebView loader wired correctly

The _framework/blazor.webview.es2019.js swap with autostart="false" is correct for hybrid.

src/Websites/Sales/src/Bit.Websites.Sales.Server/Components/App.razor (1)

51-53: ES2019 loader + Bswup reference updated — LGTM

src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor (1)

92-94: Template aligned to _framework/blazor.web.es2019.js — LGTM

src/Websites/Careers/src/Bit.Websites.Careers.Server/Components/App.razor (1)

28-32: ES2019 loader + Bswup binding — LGTM

src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js (2)

16-19: ES2019 loader added to externalAssets — LGTM

Brings SW caching in line with the ES2019 boot script.


11-19: Typo in service-worker asset names — verify generated CSS filenames

File: src/Websites/Careers/src/Bit.Websites.Careers.Client/wwwroot/service-worker.published.js (lines 12, 15). service-worker references "Bit.Websites.Carrers..." — I couldn't find generated CSS in the repo; confirm whether built assets are named "Careers..." and if so apply the diff below.

-        "url": "Bit.Websites.Carrers.Server.styles.css"
+        "url": "Bit.Websites.Careers.Server.styles.css"
@@
-        "url": "Bit.Websites.Carrers.Client.bundle.scp.css"
+        "url": "Bit.Websites.Careers.Client.bundle.scp.css"
.github/workflows/prerelease.nuget.org.yml (1)

50-52: Confirm packaging picks new output path — csproj includes wwwroot but pack couldn't be run here

src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj contains:

true
PreserveNewest
contentFiles\any\net9.0\wwwroot_framework%(Filename).es2019%(Extension)

Action: run dotnet pack (locally or in CI) and verify the produced .nupkg contains blazor.*.js from src/BlazorES2019/wwwroot/.

src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj (1)

1-1: SDK switch looks right for a packaging-only project.

No Razor assets here; using Microsoft.NET.Sdk is appropriate.

src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js (1)

66-66: Flags exclude LGTM.

Regex is precise enough for this asset family.

src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj (1)

17-17: Server now carries ES2019 runtime – good.

Ensure App.razor or layout references _framework/blazor.web.es2019.js (looks aligned per PR).

src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj (1)

14-14: LGTM.

Matches the server-side shift to _framework/blazor.web.es2019.js in App.razor.

src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj (1)

16-16: Resolved — Bit.BlazorES2019 is centrally pinned. Directory.Packages.props contains <PackageVersion Include="Bit.BlazorES2019" Version="9.12.0-pre-01" />, so leaving the PackageReference without a version is fine.

src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj (1)

105-105: LGTM for MAUI — ES2019 WebView script present.
index.html contains <script src="_framework/blazor.webview.es2019.js" autostart="false"></script> (src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/wwwroot/index.html:144).

src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj (1)

32-32: Confirm blazor.webview.es2019.js is referenced in the Windows WebView index.

Adding Bit.BlazorES2019 to the Windows client makes sense, but the search returned no matches for blazor.webview(.es2019)?\.js in the Windows project so the buildTransitive copy/reference couldn't be confirmed. Verify the Windows WebView index (e.g., wwwroot/index.html or platform-specific index) includes a reference to blazor.webview.es2019.js or that a fallback to blazor.webview.js exists.

File: src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj (line 32)

        <PackageReference Include="Bit.BlazorES2019" Version="9.12.0-pre-01" />

@msynk msynk merged commit 2c4ef11 into bitfoundation:develop Sep 15, 2025
3 checks passed
@ysmoradi ysmoradi deleted the 11391 branch September 15, 2025 16:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bit es2019 needs to be compatible with further multi-targeting

2 participants