-
-
Notifications
You must be signed in to change notification settings - Fork 225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prerelease v-9.0.0-pre-01 (#9216) #9244
Prerelease v-9.0.0-pre-01 (#9216) #9244
Conversation
WalkthroughThe changes in this pull request primarily involve updating various project files and scripts to reflect a new pre-release version, Changes
Assessment against linked issues
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Outside diff range and nitpick comments (28)
src/BlazorUI/Bit.BlazorUI/Scripts/general.ts (1)
Line range hint
9-24
: Several improvements needed in event listeners implementation
- Event listeners should be cleaned up when no longer needed to prevent memory leaks
- The scroll event using capture phase might interfere with other handlers
- There's a typo in 'openning'
- Avoid using 'any' type for the resize event
Consider applying these improvements:
-window.addEventListener('scroll', (e: Event) => { +const handleScroll = (e: Event) => { const currentCallout = BitBlazorUI.Callouts.current; if (window.innerWidth < BitBlazorUI.Utils.MAX_MOBILE_WIDTH && currentCallout.responsiveMode) return; const target = e.target as HTMLElement; if (target?.id && target.id == currentCallout.scrollContainerId) return; BitBlazorUI.Callouts.replaceCurrent(); -}, true); +}; +window.addEventListener('scroll', handleScroll, false); -window.addEventListener('resize', (e: any) => { +const handleResize = (e: UIEvent) => { - const resizeTriggeredByOpenningKeyboard = document?.activeElement?.getAttribute('type') === 'text'; + const resizeTriggeredByOpeningKeyboard = document?.activeElement?.getAttribute('type') === 'text'; - if (window.innerWidth < BitBlazorUI.Utils.MAX_MOBILE_WIDTH && resizeTriggeredByOpenningKeyboard) return; + if (window.innerWidth < BitBlazorUI.Utils.MAX_MOBILE_WIDTH && resizeTriggeredByOpeningKeyboard) return; BitBlazorUI.Callouts.replaceCurrent(); -}, true); +}; +window.addEventListener('resize', handleResize, false); + +// Add cleanup function +export function cleanup() { + window.removeEventListener('scroll', handleScroll); + window.removeEventListener('resize', handleResize); +}src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js (1)
Line range hint
15-15
: Version mismatch between service worker and Blazor frameworkThe service worker version is
9.0.0-pre-01
but the Blazor framework JS URL uses9.0.0
. This inconsistency might cause caching issues.Apply this diff to align the versions:
- "url": "_framework/blazor.web.js?v=9.0.0" + "url": "_framework/blazor.web.js?v=9.0.0-pre-01"src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js (2)
Line range hint
23-23
: Version mismatch in Blazor framework URL.The Blazor framework URL uses version
9.0.0
while the service worker version is9.0.0-pre-01
. This inconsistency might cause caching or loading issues.Apply this diff to maintain version consistency:
- "url": "_framework/blazor.web.js?v=9.0.0" + "url": "_framework/blazor.web.js?v=9.0.0-pre-01"
Asset exclusion pattern needs to be updated
The current exclusion pattern
/Bit\.Bswup\.NewDemo\.Client\.styles\.css$/
is incorrect. Based on the service worker configurations and project structure, the correct pattern should be/\.scp\.css$/
as seen in other service worker configurations in the project. The current pattern doesn't match any existing files, while.scp.css
files are actually present in the project.
- Update the
assetsExclude
pattern inservice-worker.published.js
to:self.assetsExclude = [ /\.scp\.css$/ ];🔗 Analysis chain
Line range hint
4-6
: Verify asset exclusion pattern.Let's verify that the excluded CSS file pattern is still valid and matches the current project structure.
Let me gather more information about the project structure and CSS file patterns.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the existence and pattern of the excluded CSS file # Check if the CSS file exists in the expected location fd --type f "Bit.Bswup.NewDemo.Client.styles.css$" # Check for any similarly named CSS files to ensure pattern correctness fd --type f ".+\.styles\.css$"Length of output: 430
Script:
#!/bin/bash # Check the project file to understand the CSS configuration fd --type f "Bit.Bswup.NewDemo.Client.csproj$" --exec cat {} # Look for any CSS-related configuration in the project rg -l "\.styles\.css" --type-add 'config:*.{json,csproj,props}' -t config # Check service worker configurations fd --type f "service-worker" --exec cat {}Length of output: 14821
src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj (1)
Remove conditional package references
The conditional package references using
$(Framework)
should be removed since:
- The project file explicitly sets
TargetFramework
tonet9.0
- The Directory.Build.props uses lowercase
framework
property (notFramework
), making the conditions ineffective- The net9.0 condition in Directory.Build.props has a fallback (
'$(framework)' == 'net9.0' OR '$(framework)' == ''
), indicating net9.0 is the defaultReplace the conditional references with:
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.0" />🔗 Analysis chain
Line range hint
14-17
: Review conditional package referencesThe project file contains conditional package references for both .NET 8 and 9, but
$(Framework)
might not work as expected sinceTargetFramework
is explicitly set tonet9.0
. Consider if these conditions are still needed or if they should be handled differently.
The previous search was too broad. Let's focus specifically on the project file in question and any potential Directory.Build.props that might define the Framework property. This will help us verify if the conditional references are correctly configured.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for Framework property usage and definition echo "Checking for Framework property definition:" fd -e props -e csproj -x grep -l "Framework" echo -e "\nChecking for similar conditional patterns:" fd -e csproj -x grep -A 1 "Condition=\"'\$\(Framework\)'"Length of output: 9353
Script:
#!/bin/bash # Check for Framework property and TargetFramework in the specific project file echo "Checking Framework and TargetFramework in BlazorEmpty.Client.csproj:" fd "BlazorEmpty.Client.csproj" -x cat {} echo -e "\nChecking Directory.Build.props for Framework property:" fd "Directory.Build.props" -x cat {}Length of output: 13354
src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js (2)
Line range hint
23-23
: Version mismatch in framework URLThe Blazor framework URL uses version "9.0.0" while the service worker version is "9.0.0-pre-01". This mismatch could potentially cause caching or versioning issues.
Consider updating the framework URL to match the pre-release version:
- "url": "_framework/blazor.web.js?v=9.0.0" + "url": "_framework/blazor.web.js?v=9.0.0-pre-01"
Line range hint
46-47
: Consider enabling diagnostics for pre-releaseSince this is a pre-release version (9.0.0-pre-01), consider enabling diagnostics to help identify potential issues during testing.
-//self.enableDiagnostics = true; -//self.enableFetchDiagnostics = true; +self.enableDiagnostics = true; +self.enableFetchDiagnostics = true;src/Besql/Bit.Besql/wwwroot/bit-besql.js (2)
Line range hint
5-63
: Consider enhancing error handling and robustnessThe synchronizeDbWithCache function has several areas that could benefit from improvement:
Error Handling:
- Add try-catch blocks around FS operations and cache interactions
- Provide more detailed error states than just -1, 0, 1
Race Conditions:
- The 10ms setTimeout might be insufficient for large files
- Consider implementing proper file locks or semaphores
Memory Management:
- Large files are loaded entirely into memory
- Consider implementing streaming for large files
Security:
- Add input sanitization for file paths
- Implement size limits for cached data
Here's a suggested improvement for error handling and security:
async function synchronizeDbWithCache(file) { + if (!file || typeof file !== 'string') { + console.error('Invalid file parameter'); + return -1; + } + + // Sanitize file path + const sanitizedFile = file.replace(/[^a-zA-Z0-9._-]/g, ''); + window.sqlitedb = window.sqlitedb || { init: false, cache: await caches.open('Bit-Besql') }; const db = window.sqlitedb; - const backupPath = `/${file}`; - const cachePath = `/data/cache/${file.substring(0, file.indexOf('_bak'))}`; + const backupPath = `/${sanitizedFile}`; + const cachePath = `/data/cache/${sanitizedFile.substring(0, sanitizedFile.indexOf('_bak'))}`; if (!db.init) { db.init = true; + try { const resp = await db.cache.match(cachePath); if (resp && resp.ok) { const res = await resp.arrayBuffer(); if (res) { + if (res.byteLength > 50 * 1024 * 1024) { // 50MB limit + throw new Error('File too large'); + } console.log(`Restoring ${res.byteLength} bytes.`); window.Blazor.runtime.Module.FS.writeFile(backupPath, new Uint8Array(res)); return 0; } } + } catch (error) { + console.error('Error during cache restoration:', error); + return -2; // New error state + } return -1; } if (window.Blazor.runtime.Module.FS.analyzePath(backupPath).exists) { + try { const waitFlush = new Promise((done, _) => { - setTimeout(done, 10); + setTimeout(done, 100); // Increased timeout }); await waitFlush; const data = window.Blazor.runtime.Module.FS.readFile(backupPath); + if (data.length > 50 * 1024 * 1024) { // 50MB limit + throw new Error('File too large'); + } const blob = new Blob([data], { type: 'application/octet-stream', ok: true, status: 200 }); const headers = new Headers({ 'content-length': blob.size }); const response = new Response(blob, { headers }); await db.cache.put(cachePath, response); window.Blazor.runtime.Module.FS.unlink(backupPath); + } catch (error) { + console.error('Error during backup synchronization:', error); + return -3; // New error state + } return 1; } return -1; }🧰 Tools
🪛 Biome
[error] 1-1: This variable is used before its declaration.
The variable is declared here:
(lint/correctness/noInvalidUseBeforeDeclaration)
Line range hint
5-63
: Consider architectural improvements for better maintainabilityThe current implementation could benefit from the following architectural improvements:
Separation of Concerns:
- Split the function into
restoreFromCache
andbackupToCache
- Create a separate configuration object for paths and limits
State Management:
- Consider implementing a proper state management pattern
- Move away from global window.sqlitedb
This would improve testability, maintainability, and make the code more modular.
Would you like me to provide a detailed refactoring proposal that implements these architectural improvements?
🧰 Tools
🪛 Biome
[error] 1-1: This variable is used before its declaration.
The variable is declared here:
(lint/correctness/noInvalidUseBeforeDeclaration)
src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js (1)
Line range hint
54-57
: Consider enabling prerendering optimizationsThe commented-out prerendering configuration could improve end-user experience. Consider enabling these optimizations if your application uses prerendering:
- // self.noPrerenderQuery = 'no-prerender=true'; - // self.disablePassiveFirstBoot = true; + self.noPrerenderQuery = 'no-prerender=true'; + self.disablePassiveFirstBoot = true;src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj (1)
Line range hint
17-19
: Consider using pre-release versions consistentlyWhile Bit packages are using pre-release version (9.0.0-pre-01), other dependencies like Microsoft.Extensions.* and System.Text.Json are using stable 9.0.0 versions. Consider using pre-release versions of these packages during the pre-release phase to ensure complete compatibility testing.
src/Bswup/FullDemo/Client/wwwroot/service-worker.published.js (2)
Line range hint
36-103
: Consider documenting the purpose of commented codeThe file contains a substantial amount of commented-out code for standard service worker functionality. If this is replaced by
Bit.Bswup
, consider:
- Adding a comment explaining why this implementation is kept as reference
- Moving it to documentation if it serves as an example
- Removing it if it's no longer needed
URL patterns are consistent with most service workers, but some have additional API routes
The URL patterns in the file under review are mostly consistent with other service workers in the project, but there are two service worker configurations that handle additional API routes:
Boilerplate.Client.Web/wwwroot/service-worker.published.js
andBlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js
include an additional/odata/
pattern inserverHandledUrls
Consider adding the
/odata/
pattern to your service worker if your application uses OData endpoints.🔗 Analysis chain
Line range hint
24-28
: Verify URL handling patterns across service workersPlease ensure these URL patterns are consistent with other service worker configurations in the project, particularly for API and privacy page handling.
Let me check the actual URL patterns in these service worker files to verify consistency.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Find and compare URL patterns across all service worker files fd "service-worker" -e js | xargs grep -l "serverHandledUrls\|serverRenderedUrls"Length of output: 565
Script:
#!/bin/bash # Compare URL patterns across service worker files echo "=== Checking serverRenderedUrls patterns ===" rg "serverRenderedUrls\s*=" -A 2 echo -e "\n=== Checking serverHandledUrls patterns ===" rg "serverHandledUrls\s*=" -A 2 echo -e "\n=== Checking noPrerenderQuery patterns ===" rg "noPrerenderQuery\s*=" -A 2Length of output: 7056
src/Bup/Bit.Bup/Scripts/bit-bup.ts (3)
Line range hint
44-82
: Add null checks for attribute accessThe extract function accesses attributes without proper null checks, which could lead to runtime errors.
Consider adding null checks:
- const optionsAttribute = (bitBupScript.attributes)['options']; - const optionsName = (optionsAttribute || {}).value || 'bitBup'; + const optionsAttribute = bitBupScript?.attributes?.['options']; + const optionsName = optionsAttribute?.value || 'bitBup';🧰 Tools
🪛 Biome
[error] 1-1: This variable is used before its declaration.
The variable is declared here:
(lint/correctness/noInvalidUseBeforeDeclaration)
Line range hint
83-117
: Add error handling for fetch operationsThe loadBootResource function doesn't handle fetch failures, which could lead to unhandled promise rejections.
Consider adding error handling:
- const response = fetch(resourceUrl, requestInit); + const response = fetch(resourceUrl, requestInit) + .catch(error => { + err(`Failed to load resource ${name}: ${error}`); + handle('error', { type, name, url, error }); + throw error; + });Also, there's a commented-out condition
//if (fetchPromises.length < 10) return;
. Either remove it or document why it might be needed in the future.🧰 Tools
🪛 Biome
[error] 1-1: This variable is used before its declaration.
The variable is declared here:
(lint/correctness/noInvalidUseBeforeDeclaration)
Line range hint
118-133
: Implement TODO for log optionsThere's a pending TODO to implement different log levels. The current implementation only checks for 'none'.
Would you like me to help implement the complete logging system with all specified levels (info, verbose, debug, error)?
Consider implementing log levels like this:
function log(level: BupOptions['log'], ...args: any[]) { if (options.log === 'none') return; if (options.log === 'info' && level !== 'error') return; if (options.log === 'verbose' && !['verbose', 'debug', 'error'].includes(level)) return; switch(level) { case 'error': console.error('BitBup:', ...args); break; case 'debug': console.debug('BitBup:', ...args); break; default: console.info('BitBup:', ...args); } }🧰 Tools
🪛 Biome
[error] 1-1: This variable is used before its declaration.
The variable is declared here:
(lint/correctness/noInvalidUseBeforeDeclaration)
src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates03GettingStartedPage.razor.cs (1)
41-41
: Consider adding a warning about pre-release version.Since this is a pre-release version (9.0.0-pre-01), it would be helpful to add a comment or warning to users about potential instability or breaking changes.
Consider adding a comment above the command:
(text:@"echo 'Install the Bit.Boilerplate project template https://www.nuget.org/packages/Boilerplate.Templates';", + // Note: This is a pre-release version and may contain breaking changes command:"dotnet new install Bit.Boilerplate::9.0.0-pre-01;")
src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts (5)
Line range hint
6-13
: Add error handling and TypeScript return type annotations.The
checkForUpdate
function should include error handling and proper TypeScript types:-BitBswup.checkForUpdate = async () => { +BitBswup.checkForUpdate = async (): Promise<ServiceWorkerRegistration | undefined> => { if (!('serviceWorker' in navigator)) { return console.warn('no serviceWorker in navigator'); } - const reg = await navigator.serviceWorker.getRegistration(); - const result = await reg.update(); - return result; + try { + const reg = await navigator.serviceWorker.getRegistration(); + if (!reg) { + console.warn('No service worker registration found'); + return undefined; + } + return await reg.update(); + } catch (error) { + console.error('Failed to update service worker:', error); + throw error; + } }
Line range hint
15-31
: Improve cache clearing specificity and error handling.The
forceRefresh
function should be more specific about which caches to clear and include error handling:-BitBswup.forceRefresh = async () => { +BitBswup.forceRefresh = async (): Promise<void> => { if (!('serviceWorker' in navigator)) { return console.warn('no serviceWorker in navigator'); } - const cacheKeys = await caches.keys(); - const cachePromises = cacheKeys.filter(key => key.startsWith('bit-bswup') || key.startsWith('blazor-resources')).map(key => caches.delete(key)); - await Promise.all(cachePromises); + try { + const cacheKeys = await caches.keys(); + const bitBswupCaches = cacheKeys.filter(key => + key.startsWith('bit-bswup-v9.0.0-pre-01') || + key.startsWith('blazor-resources-9.0.0-pre-01') + ); + await Promise.all(bitBswupCaches.map(key => caches.delete(key))); - const regs = await navigator.serviceWorker.getRegistrations(); - const regPromises = regs.map(r => r.unregister()); - await Promise.all(regPromises); + const regs = await navigator.serviceWorker.getRegistrations(); + await Promise.all(regs.map(r => r.unregister())); - window.location.reload(); + window.location.reload(); + } catch (error) { + console.error('Failed to force refresh:', error); + throw error; + } }
Line range hint
182-184
: Implement the TODO for log options.The TODO comment indicates missing implementation for different log levels.
Would you like me to help implement the log level functionality? This would include:
- Proper log level filtering
- Structured logging format
- TypeScript type safety for log levels
Line range hint
108-139
: Add type safety to message handling.The message handling logic lacks proper TypeScript types and type guards:
+interface ServiceWorkerMessage { + type: 'install' | 'progress' | 'bypass' | 'activate'; + data: { + percent?: number; + firstTime?: boolean; + }; +} +function isServiceWorkerMessage(message: any): message is ServiceWorkerMessage { + return message && + typeof message.type === 'string' && + ['install', 'progress', 'bypass', 'activate'].includes(message.type); +} function handleMessage(e) { if (e.data === 'WAITING_SKIPPED') { window.location.reload(); return; } if (e.data === 'CLIENTS_CLAIMED') { Blazor.start().then(() => { blazorStartResolver(undefined); e.source.postMessage('BLAZOR_STARTED'); }); return; } - const message = JSON.parse(e.data); - const { type, data } = message; + let message: ServiceWorkerMessage; + try { + const parsed = JSON.parse(e.data); + if (!isServiceWorkerMessage(parsed)) { + console.warn('Invalid message format:', parsed); + return; + } + message = parsed; + } catch (error) { + console.error('Failed to parse message:', error); + return; + } + const { type, data } = message;
Line range hint
116-122
: Handle potential race condition in Blazor start.There's a potential race condition in the Blazor start handling:
if (e.data === 'CLIENTS_CLAIMED') { - Blazor.start().then(() => { - blazorStartResolver(undefined); - e.source.postMessage('BLAZOR_STARTED'); - }); + try { + await Blazor.start(); + blazorStartResolver(undefined); + if (e.source) { + e.source.postMessage('BLAZOR_STARTED'); + } else { + console.warn('ServiceWorker source not available'); + } + } catch (error) { + console.error('Failed to start Blazor:', error); + // Consider adding error recovery logic here + } return; }src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages8.props (1)
Line range hint
4-45
: Consider documenting migration steps for major version upgradeThe transition from version 8.12.0 to 9.0.0-pre-01 represents a major version bump. Consider documenting any breaking changes and required migration steps.
Would you like me to help create a migration guide or open a GitHub issue to track this task?
src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts (5)
Line range hint
80-84
: Refactor Redundant Diagnostics GroupingThe diagnostics grouping around
createAssetsCache
could be streamlined to enhance readability.Consider applying this refactor:
-function createAssetsCache(ignoreProgressReport = false) { - diagGroup('bit-bswup:createAssetsCache:' + ignoreProgressReport); +async function createAssetsCache(ignoreProgressReport = false) { + diagGroup(`bit-bswup:createAssetsCache:${ignoreProgressReport}`);
- Use template literals for string concatenation.
- Ensure consistent use of
async
keyword for functions returning promises.
Line range hint
122-127
: Optimize Asset Caching LogicIn the loop where assets are added to the cache, errors are caught but not properly handled or logged individually.
Implement individual error handling for each asset to improve debugging:
- promises = assetsToCache.map(addCache.bind(null, !ignoreProgressReport)); + for (const asset of assetsToCache) { + try { + await addCache(!ignoreProgressReport, asset); + } catch (err) { + diag('Error caching asset:', asset.url, err); + } + }This change ensures that one failing asset does not prevent others from being cached and provides detailed diagnostics.
Line range hint
147-154
: Ensure Old Caches Are Properly DeletedThe
deleteOldCaches
function filters cache keys but may miss certain patterns, such as caches from older versions not matching theCACHE_NAME_PREFIX
.Update the cache deletion logic:
-const promises = cacheKeys.filter(key => key.startsWith('blazor-resources') || (key.startsWith(CACHE_NAME_PREFIX) && key !== CACHE_NAME)).map(key => caches.delete(key)); +const promises = cacheKeys.filter(key => key !== CACHE_NAME).map(key => caches.delete(key));This change ensures that all old caches except the current one are deleted, preventing potential storage bloat and conflicts.
Line range hint
186-202
: Improve RegExp Preparation FunctionThe
prepareRegExpArray
function currently filters patterns byinstanceof RegExp
, which may exclude valid RegExp literals or strings intended to be converted to RegExp.Modify the function to accept strings and convert them to RegExp objects:
-function prepareRegExpArray(value) { - return value ? (value instanceof Array ? value : [value]).filter(p => p instanceof RegExp) : []; +function prepareRegExpArray(value) { + return value ? (Array.isArray(value) ? value : [value]).map(p => { + if (p instanceof RegExp) return p; + if (typeof p === 'string') return new RegExp(p); + return null; + }).filter(p => p !== null) : [];This change enhances flexibility in how patterns are provided and processed.
Line range hint
204-225
: TypeScript Type Annotations for Better MaintainabilityThe current code lacks explicit TypeScript type annotations in several places, which can lead to potential type errors and reduces code readability.
Add type annotations to function parameters and return types:
-function diagGroup(label: string) { +function diagGroup(label: string): void {Apply similar changes throughout the code to improve type safety and maintainability.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (43)
src/Besql/Bit.Besql/wwwroot/bit-besql.js
(1 hunks)src/Bit.Build.props
(1 hunks)src/BlazorUI/Bit.BlazorUI/Scripts/general.ts
(1 hunks)src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj
(1 hunks)src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj
(1 hunks)src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj
(1 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.Web/Bit.BlazorUI.Demo.Client.Web.csproj
(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/BlazorUI/Demo/Directory.Build.props
(1 hunks)src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.js
(1 hunks)src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js
(1 hunks)src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
(1 hunks)src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
(1 hunks)src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts
(1 hunks)src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts
(1 hunks)src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts
(1 hunks)src/Bswup/FullDemo/Client/wwwroot/service-worker.js
(1 hunks)src/Bswup/FullDemo/Client/wwwroot/service-worker.published.js
(1 hunks)src/Bup/Bit.Bup/Scripts/bit-bup.progress.ts
(1 hunks)src/Bup/Bit.Bup/Scripts/bit-bup.ts
(1 hunks)src/Butil/Bit.Butil/Scripts/butil.ts
(1 hunks)src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj
(2 hunks)src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj
(2 hunks)src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js
(1 hunks)src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props
(1 hunks)src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props
(2 hunks)src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages8.props
(2 hunks)src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj
(1 hunks)src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj
(1 hunks)src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj
(1 hunks)src/Websites/Careers/src/Directory.Build.props
(1 hunks)src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj
(1 hunks)src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates03GettingStartedPage.razor
(1 hunks)src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates03GettingStartedPage.razor.cs
(1 hunks)src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj
(1 hunks)src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj
(1 hunks)src/Websites/Platform/src/Directory.Build.props
(1 hunks)src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj
(1 hunks)src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj
(1 hunks)src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj
(1 hunks)src/Websites/Sales/src/Directory.Build.props
(1 hunks)
✅ Files skipped from review due to trivial changes (10)
- src/BlazorUI/Demo/Directory.Build.props
- src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.js
- src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts
- src/Bswup/FullDemo/Client/wwwroot/service-worker.js
- src/Bup/Bit.Bup/Scripts/bit-bup.progress.ts
- src/Butil/Bit.Butil/Scripts/butil.ts
- src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj
- src/Websites/Careers/src/Directory.Build.props
- src/Websites/Platform/src/Directory.Build.props
- src/Websites/Sales/src/Directory.Build.props
🔇 Additional comments (70)
src/BlazorUI/Bit.BlazorUI/Scripts/general.ts (1)
1-1
: Verify version consistency across the codebase
The major version bump (8.x.x → 9.0.0) suggests breaking changes. Since this is a pre-release version, ensure all dependent packages and configurations are updated consistently.
✅ Verification successful
Version consistency verified across the codebase
The version '9.0.0-pre-01' is consistently used throughout the codebase:
- No references to the old version '8.12.0' were found
- Version '9.0.0-pre-01' is consistently used across:
- TypeScript files (BitBlazorUI, BitButil, BitBswup, BitBup)
- Project templates and boilerplates
- Package references in .csproj files
- Service worker files
- Directory.Build.props and Directory.Packages.props
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify version consistency across the codebase
# Expected results: All version references should be '9.0.0-pre-01'
# Search for any remaining references to version 8.12.0
echo "Checking for old version references:"
rg -i "8\.12\.0"
# Search for inconsistent new version references
echo -e "\nChecking for version consistency:"
rg -i "9\.0\.0-pre-01"
# Check package.json files for version references
echo -e "\nChecking package.json files:"
fd package.json --exec jq -r '. | select(.version != null) | .version'
Length of output: 14014
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js (2)
Line range hint 4-10
: Verify configuration compatibility with new version
Please ensure that the existing asset exclusions and server-handled URL patterns remain compatible with any architectural changes in version 9.0.0-pre-01.
Also applies to: 27-37
✅ Verification successful
Service worker configuration is correctly aligned with application assets
The asset exclusion patterns in the service worker configuration are correctly set up to exclude the Blazor UI CSS files:
- The patterns match the actual CSS file naming convention used across the codebase
- Similar exclusion patterns are consistently used in other service worker configurations across different demo projects
- The configuration follows the standard practice of excluding style files that are dynamically handled by Blazor
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for any changes in asset structure or API endpoints
# Check for changes in CSS file patterns
fd -g "*.css" | grep -E "blazorui|fluent"
# Check for API endpoint changes
rg -g "*.cs" -g "*.ts" "\/api\/|\/odata\/|\/jobs\/|\/core\/|\/signalr\/"
Length of output: 232
Script:
#!/bin/bash
# Let's try a different approach to verify the configuration
# Check for CSS files without escaping
rg -g "*.css" "blazorui|fluent"
# Check for API endpoints without escaping
rg -g "*.cs" -g "*.ts" "/api/|/odata/|/jobs/|/core/|/signalr/"
# Look for service worker related configurations
rg -g "*.js" "assetsInclude|assetsExclude|navigationFallback|navigationPreload"
Length of output: 12794
1-1
: Verify breaking changes in major version update
The version bump from 8.12.0 to 9.0.0-pre-01 represents a major version change. As this is a prerelease version, it's important to ensure all breaking changes are documented and communicated to users.
✅ Verification successful
Version update is consistent across the codebase
The version bump from 8.12.0 to 9.0.0-pre-01 is consistently applied across the entire codebase, including:
- Service worker version declarations
- Package references in .csproj files
- Global version settings
- TypeScript/JavaScript version declarations
The version change is part of a coordinated major version update to .NET 9.0 and related dependencies, with all components properly aligned to the new version.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for breaking changes documentation and migration guides
# Check for changelog or release notes
fd -g "CHANGELOG.md" -g "BREAKING-CHANGES.md" -g "MIGRATION.md"
# Check for version-specific documentation
rg -i "9\.0\.0|breaking.?changes" docs/
Length of output: 232
Script:
#!/bin/bash
# Let's try a different approach to find version-related information
# Search for version references in the repository
rg -i "version.*9\.0\.0|breaking.?changes"
# Look for any migration or upgrade guides
fd -g "*UPGRADE*.md" -g "*MIGRATION*.md" -g "CHANGELOG*.md"
# Search for version-related commits
git log --grep="9.0.0" --grep="breaking" -i --pretty=format:"%h %s"
# Check package configuration files for version info
fd -e json -e csproj | xargs rg "9\.0\.0|version"
Length of output: 99884
src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js (3)
1-1
: Version update aligns with PR objectives.
The version update to 9.0.0-pre-01
correctly reflects the intended prerelease version.
Line range hint 44-45
: Verify passive mode configuration.
Both isPassive
and disablePassiveFirstBoot
are set to true
. This combination might affect the service worker's behavior during the first load. Please verify if this configuration is intentional.
✅ Verification successful
Configuration is intentionally set for optimized first load behavior
Based on the documentation found, having both isPassive
and disablePassiveFirstBoot
set to true
is a valid and documented configuration:
isPassive: true
enables passive mode where assets are cached upon first request rather than in advancedisablePassiveFirstBoot: true
specifically prevents downloading Blazor's boot files during the first passive mode load
This combination is intentionally used to optimize the initial load behavior by deferring asset caching until they're actually needed, while also preventing unnecessary boot file downloads during first load.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Search for documentation or similar configurations in other service workers
# Search for similar configurations in other service worker files
echo "Checking other service worker configurations..."
rg -A 2 "isPassive.*=.*true" --type js
rg -A 2 "disablePassiveFirstBoot.*=.*true" --type js
# Search for documentation about these settings
echo "Checking for documentation..."
fd -e md -e txt | xargs rg -i "passive.*mode.*service.*worker"
Length of output: 3623
Script:
#!/bin/bash
# Let's search for the implementation details of these settings in the Bit.Bswup library
# Search for the service worker implementation file
echo "Searching for bit-bswup.sw.js implementation..."
fd "bit-bswup.sw.js" --type f
# Search for documentation about these settings in the Bit.Bswup project
echo "Checking Bit.Bswup documentation..."
fd -e md | grep -i "bswup" | xargs cat
# Search for any configuration examples or tests
echo "Checking for configuration examples..."
rg -A 5 "isPassive.*=.*true" --type js --glob "**/*test*"
rg -A 5 "disablePassiveFirstBoot.*=.*true" --type js --glob "**/*test*"
Length of output: 8114
Line range hint 16-32
: Verify existence of external assets.
Let's verify that all listed external assets exist in the project structure.
src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj (2)
Line range hint 1-11
: Verify .NET 9 compatibility across the solution
The project has been updated to target .NET 9, which is currently in preview. Ensure that all dependencies and features are compatible with this version.
✅ Verification successful
Framework version update is consistent across the solution
Based on the comprehensive scan of the codebase:
- All application projects have been correctly updated to target .NET 9
- Library projects appropriately support both .NET 8.0 and 9.0 via multi-targeting
- Source generators and analyzers correctly remain on netstandard2.0
- MAUI projects correctly use platform-specific .NET 9 targets
- Template projects are properly configured
The update to .NET 9 has been consistently applied across the entire solution, maintaining compatibility where needed through multi-targeting. No framework version mismatches or inconsistencies were found.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Check for any potential compatibility issues with .NET 9
# Look for other project files that might need similar updates
# Find all project files
echo "Checking .NET framework versions across all project files:"
fd -e csproj -x grep -l "TargetFramework"
# Check for mixed framework versions
echo -e "\nChecking for mixed framework versions:"
fd -e csproj -x grep -A 1 "<TargetFramework"
Length of output: 9353
Script:
#!/bin/bash
# Let's try a more focused search for project files and their target frameworks
# First, find all csproj files
echo "List of all csproj files:"
fd -e csproj
echo -e "\nFramework versions in each project:"
fd -e csproj -x sh -c 'echo "=== {} ==="; cat {} | grep -A 1 "<TargetFramework"'
# Also check for any potential framework-specific package references
echo -e "\nChecking for framework-specific package references:"
fd -e csproj -x grep -l "Microsoft.NET.Sdk"
Length of output: 19172
20-30
: Verify package version compatibility
The Bit.* packages have been updated to version 9.0.0-pre-01. The versions are aligned with the pre-release, but we should verify that all interdependent packages are compatible with this version.
✅ Verification successful
All Bit. packages are consistently using version 9.0.0-pre-01*
Based on the comprehensive search results, all Bit.* package references across the solution are consistently using version 9.0.0-pre-01, including:
- Bit.BlazorUI
- Bit.CodeAnalyzers
- Bit.SourceGenerators
- Bit.Butil
- Bit.Bswup
- Bit.BlazorUI.Icons
- Bit.BlazorUI.Assets
- Bit.BlazorUI.Extras
- Bit.Besql
The package versions are properly aligned and there are no inconsistencies found.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Check for consistent package versions across the solution
echo "Checking Bit.* package versions across all project files:"
fd -e csproj -x grep -A 1 "Include=\"Bit\."
# Look for any remaining old versions
echo -e "\nChecking for potential missed version updates:"
fd -e csproj -x grep -B 1 -A 1 "8.12.0"
Length of output: 9353
Script:
#!/bin/bash
# Let's try a more focused search for Bit.* package references
echo "Checking all Bit.* package references:"
rg -A1 '<PackageReference Include="Bit\.' --type csproj
echo -e "\nChecking for any version inconsistencies:"
rg 'Version="[^"]*"' --type csproj | grep -i "bit\." | sort | uniq
Length of output: 374
Script:
#!/bin/bash
# Search for package references without file type restriction
echo "Checking all Bit.* package references and their versions:"
rg -A1 '<PackageReference Include="Bit\.'
echo -e "\nChecking for any version inconsistencies:"
rg 'Version="[^"]*"' | grep -i "bit\." | sort | uniq
Length of output: 79109
src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js (2)
1-1
: Verify breaking changes in major version update
The version change from 8.12.0 to 9.0.0-pre-01 represents a major version increment, which typically indicates breaking changes.
Line range hint 43-44
: Review passive mode configuration
Having both isPassive = true
and disablePassiveFirstBoot = true
might be contradictory. Please verify if this is the intended behavior.
src/Besql/Bit.Besql/wwwroot/bit-besql.js (1)
2-2
: LGTM: Version update aligns with prerelease objectives
The version update to '9.0.0-pre-01' is consistent with the PR objectives and maintains proper version synchronization across the codebase.
src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js (2)
2-2
: LGTM: Version documentation updated correctly
The version comment accurately reflects the new pre-release version 9.0.0-pre-01, maintaining clear version tracking.
Line range hint 30-40
: Verify Blazor framework version compatibility
The conditional compilation for framework versions includes both new (9.0.0) and legacy (8.0.11) versions. Ensure that this aligns with the supported Blazor versions in your deployment environment.
✅ Verification successful
Conditional compilation for Blazor versions is correctly configured
The codebase shows proper multi-targeting support for both .NET 8 and .NET 9:
- Project files correctly define multi-targeting with
<TargetFrameworks>net9.0;net8.0</TargetFrameworks>
- Blazor package references are correctly conditioned for each framework version:
- .NET 9.0:
Microsoft.AspNetCore.Components.Web
Version="9.0.0" - .NET 8.0:
Microsoft.AspNetCore.Components.Web
Version="8.0.0"
- .NET 9.0:
- The service worker's conditional compilation for
blazor.web.js
correctly matches the framework versions (9.0.0 and 8.0.11)
The framework version compatibility in the service worker aligns perfectly with the supported Blazor versions in the deployment environment.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for framework version references across the codebase
# to ensure consistency with the service worker configuration
# Search for framework version references
echo "Checking framework version references..."
rg -g '*.{csproj,props,targets}' --no-filename "TargetFramework.*net9\.0"
# Search for Blazor script references
echo "Checking Blazor script version references..."
rg -g '*.{html,cshtml}' --no-filename "blazor\.web\.js\?ver=(8\.0\.11|9\.0\.0)"
Length of output: 6251
Script:
#!/bin/bash
# Let's check for both .NET 8 and .NET 9 framework references to understand multi-targeting
echo "Checking .NET 8 framework references..."
rg -g '*.{csproj,props,targets}' --no-filename "TargetFramework.*net8\.0"
# Check for Blazor-related package references for both versions
echo "Checking Blazor package references..."
rg -g '*.{csproj,props,targets}' --no-filename "Microsoft\.AspNetCore\.Components\.Web.*Version=\"[89]\."
# Check the service worker file content
echo "Checking service worker content..."
cat "src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js"
Length of output: 10708
src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj (2)
9-16
: Verify version consistency across all Bit packages
The version upgrade from 8.12.0 to 9.0.0-pre-01 is significant and might indicate breaking changes. Let's ensure all Bit package references are consistently updated across the solution.
✅ Verification successful
All Bit package references are consistently updated to version 9.0.0-pre-01
Based on the comprehensive search results, all Bit package references across the solution have been consistently updated to version 9.0.0-pre-01, including:
- Bit.CodeAnalyzers
- Bit.SourceGenerators
- Bit.BlazorUI
- Bit.BlazorUI.Icons
- Bit.BlazorUI.Assets
- Bit.Butil
- Bit.Bswup
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for any Bit package references that might be out of sync
rg -g "*.csproj" '<PackageReference Include="Bit.' -A 1
Length of output: 14651
Line range hint 17-19
: Verify the necessity of new package dependencies
New core .NET packages have been added:
- Microsoft.Extensions.DependencyInjection.Abstractions
- Microsoft.Extensions.Configuration.Binder
- System.Text.Json
While these versions align with the target framework, let's verify why these dependencies are now required.
✅ Verification successful
Based on the search results, I can now provide a final response:
Dependencies are justified by codebase usage
The new package dependencies are actively used in the Careers project and its dependencies:
Microsoft.Extensions.DependencyInjection.Abstractions
: Used inBit.Websites.Careers.Server/Extensions/IServiceCollectionExtensions.cs
andBit.Websites.Careers.Shared/Extensions/IServiceCollectionExtensions.cs
for DI configurationMicrosoft.Extensions.Configuration.Binder
: Used inBit.Websites.Careers.Server/Startup/Services.cs
for binding configuration usingGet<AppSettings>()
System.Text.Json
: Used inBit.Websites.Careers.Shared/Dtos/AppJsonContext.cs
for JSON serialization context
These dependencies align with standard .NET practices and are actively used in the codebase.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for usage of types from these new packages
echo "Searching for DI abstractions usage..."
rg "IServiceCollection|IServiceProvider|ServiceProvider"
echo -e "\nSearching for configuration binder usage..."
rg "GetValue<|Bind<|Get<"
echo -e "\nSearching for System.Text.Json usage..."
rg "JsonSerializer|JsonSerializerOptions|Utf8JsonReader|Utf8JsonWriter"
Length of output: 37557
src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj (1)
9-16
: Verify compatibility with major version upgrade
The upgrade from version 8.12.0 to 9.0.0-pre-01 for both Bit.CodeAnalyzers and Bit.SourceGenerators represents a major version change that might introduce breaking changes.
✅ Verification successful
Version update is consistent across the solution
The version upgrade to 9.0.0-pre-01 for both Bit.CodeAnalyzers and Bit.SourceGenerators has been consistently applied across all projects in the solution. All packages are configured with PrivateAssets=all
, indicating they are development-time dependencies that won't affect runtime behavior. Since these are analyzer and source generator packages that only affect build-time behavior, and the version update is uniform across all projects, this change is safe to proceed with.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for breaking changes in analyzer configurations and source generator usage
# Search for analyzer configuration files
echo "Checking for analyzer configuration files..."
fd -e editorconfig -e ruleset
# Search for any custom analyzer suppressions that might need review
echo "Checking for analyzer suppression attributes..."
rg -A 1 "SuppressMessage.*Bit\."
# Search for any generated code files that might be affected
echo "Checking for generated code files..."
fd -e .g.cs
Length of output: 367
Script:
#!/bin/bash
# Let's check for any specific usage patterns or configurations related to these packages
# Check for any direct references to Bit.CodeAnalyzers or Bit.SourceGenerators in csproj files
echo "Checking project references in csproj files..."
rg -l "Bit\.(CodeAnalyzers|SourceGenerators)" -g "*.csproj"
# Look for .editorconfig with potential analyzer settings
echo "Checking .editorconfig for analyzer settings..."
fd -e editorconfig -x cat {}
# Check for any source generator attributes or usage
echo "Looking for source generator attributes..."
rg -A 2 "\[Bit\."
# Check if there are other projects using different versions
echo "Checking for version inconsistencies..."
rg "Bit\.(CodeAnalyzers|SourceGenerators)" -g "*.csproj" -A 2
Length of output: 18849
src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj (2)
Line range hint 17-19
: Verify the necessity of newly added packages.
The added packages are at the correct version (9.0.0) matching the target framework. However, let's verify their usage to ensure they're required.
Let's check for usage of these packages:
✅ Verification successful
Based on the shell script results, I can now generate the final response:
All newly added packages are actively used in the codebase
Microsoft.Extensions.DependencyInjection.Abstractions
: Used extensively for dependency injection with multipleIServiceCollection
extensions andIServiceProvider
usages in the Sales website and related components.Microsoft.Extensions.Configuration.Binder
: Used for configuration binding withGet<T>()
methods in various services and startup configurations.System.Text.Json
: Used for JSON serialization/deserialization withJsonSerializer
and JSON context classes.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for usage of newly added packages
# Expect: Find references to justify the additions
echo "Checking DependencyInjection.Abstractions usage..."
rg "IServiceCollection|IServiceProvider|ServiceProvider" -t cs
echo "Checking Configuration.Binder usage..."
rg "GetValue<|Bind<|Get<" -t cs
echo "Checking System.Text.Json usage..."
rg "JsonSerializer|JsonDocument|Utf8JsonReader" -t cs
Length of output: 36122
9-16
: LGTM! Version update aligns with prerelease objectives.
The update of Bit packages to version 9.0.0-pre-01 is consistent with the PR's prerelease objectives. Package configurations are correctly set for analyzer and source generator packages.
Let's verify version consistency across other project files:
✅ Verification successful
Let me try a different search pattern to find package references across the solution:
Version consistency verified across solution
All instances of Bit.CodeAnalyzers and Bit.SourceGenerators packages are consistently using version 9.0.0-pre-01 across the solution, which aligns with the PR's prerelease objectives. The package configurations with PrivateAssets and IncludeAssets are also correctly set for analyzer and source generator packages.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for any inconsistent Bit package versions across the solution
# Expect: All Bit packages should be either 9.0.0-pre-01 or 8.12.0
rg -g "*.csproj" "Include=\"Bit\.(CodeAnalyzers|SourceGenerators)\" Version=\"[^\"]+\"" -A 1
Length of output: 36122
Script:
#!/bin/bash
# Search for Bit.CodeAnalyzers and Bit.SourceGenerators package references
rg -g "*.csproj" '<PackageReference Include="Bit\.(CodeAnalyzers|SourceGenerators)" Version="([^"]+)"' --no-filename
Length of output: 2805
src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj (3)
8-15
: LGTM! Package versions are consistent with the prerelease
The version updates for Bit.CodeAnalyzers and Bit.SourceGenerators to 9.0.0-pre-01 are consistent with the PR objectives and align well with other package versions in the project.
9-11
: LGTM! Package configurations are appropriate
The package reference configurations are correctly set up for analyzer and source generator packages, with appropriate asset inclusion and privacy settings.
Also applies to: 13-15
Line range hint 3-5
: Verify compatibility with .NET 9.0 preview
Since .NET 9.0 is still in preview, please ensure that:
- All team members are using compatible SDK versions
- CI/CD pipelines are configured with the correct .NET 9.0 preview version
- Development and deployment environments support .NET 9.0 preview
src/Bit.Build.props (3)
30-30
: Verify release notes URL availability
The release notes URL points to a tag that should exist when this version is released.
30-31
: Verify pre-release tag consistency across the repository
The pre-release suffix "-pre-01" should be consistently used across all version references in the repository.
✅ Verification successful
Based on the shell script results, I can see that the version "9.0.0-pre-01" is consistently used across the repository in:
- The central package version management section
- Package references in various .csproj files
- The ReleaseVersion and PackageVersion properties in the build props file
The pre-release suffix "-pre-01" is consistently maintained across all version references, and I don't see any inconsistencies in the version patterns.
Pre-release tag consistency verified
The pre-release suffix "-pre-01" is consistently used across all version references in the repository.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for version consistency across various file types
# Search for version references in package.json files
fd package.json --exec jq -r '.version'
# Search for version references in .csproj files
fd -e csproj --exec grep -l "PackageVersion\|Version"
# Search for direct version string references
rg "9\.0\.0(?!-pre-01)" --type-not xml
Length of output: 3291
Script:
#!/bin/bash
# Let's try a different approach to check version consistency
# Search for version patterns in all files
rg -g '!*.lock' -g '!package-lock.json' '9\.0\.0.*pre.*01|9\.0\.0[^-]' --multiline
# Check specific version references in props files
fd -e props --exec grep -A1 -B1 "PackageVersion\|ReleaseVersion"
# Check Directory.Build.props for version info
find . -name "Directory.Build.props" -exec grep -A2 -B2 "Version" {} \;
Length of output: 38321
28-28
: Verify major version bump implications
The version change from 8.12.0 to 9.0.0 represents a major version bump, which typically indicates breaking changes according to semantic versioning.
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj (2)
20-27
: Verify compatibility with .NET 9.0
Since this project targets .NET 9.0, we should verify that these prerelease packages are compatible with .NET 9.0.
✅ Verification successful
Based on the shell script results, I can now provide a final response:
Bit.CodeAnalyzers and Bit.SourceGenerators are compatible with .NET 9.0
The codebase shows consistent usage of .NET 9.0 packages and frameworks:
- The project and its dependencies target .NET 9.0
- All Microsoft packages used in the project have 9.0.0 versions
- Both Bit.CodeAnalyzers and Bit.SourceGenerators are used alongside these .NET 9.0 dependencies without any version conflicts
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check target framework compatibility
# Expected: All related projects should target compatible frameworks
echo "Checking target frameworks in related projects..."
fd -e csproj --exec grep -A 1 "TargetFramework" {}
echo "Checking package compatibility..."
fd -e csproj --exec grep -A 1 "PackageReference Include=\"Microsoft" {}
Length of output: 26566
20-27
: Verify version consistency across the solution
The package versions have been updated to match the prerelease version 9.0.0-pre-01
. Let's ensure this version is consistent across all project files in the solution.
✅ Verification successful
The previous output showed framework compatibility but didn't clearly show the Bit.* package versions. Let's get this specific information to verify version consistency.
Version consistency verified across the solution
All Bit.* packages in the solution are consistently using version 9.0.0-pre-01, including:
- Bit.CodeAnalyzers
- Bit.SourceGenerators
- Bit.BlazorUI
- Bit.BlazorUI.Icons
- Bit.BlazorUI.Assets
- Bit.Butil
- Bit.Bswup
- Bit.Besql
The package versions are managed centrally through Directory.Packages.props and all references to Bit.* packages use the same prerelease version 9.0.0-pre-01, which is compatible with the .NET 9.0 target framework used in the project.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check version consistency across all .NET project files
# Expected: All Bit.* package references should use version 9.0.0-pre-01
echo "Checking Bit.* package versions in all .csproj files..."
fd -e csproj --exec grep -A 1 "Include=\"Bit\." {}
Length of output: 26566
Script:
#!/bin/bash
# Let's specifically check for Bit.* package references and their versions
echo "Checking Bit.* package versions across all .csproj files..."
fd -e csproj --exec grep -A 2 'Include="Bit\.' {}
Length of output: 38321
src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj (2)
13-20
: LGTM! Package version updates align with prerelease objectives.
The updates to Bit.CodeAnalyzers
and Bit.SourceGenerators
from 8.12.0
to 9.0.0-pre-01
are consistent with the PR's objective of preparing for prerelease v-9.0.0-pre-01
.
Let's verify version consistency across the solution:
✅ Verification successful
Version consistency verified across the solution
All Bit package references (Bit.CodeAnalyzers, Bit.SourceGenerators, Bit.BlazorUI, Bit.BlazorUI.Icons, Bit.BlazorUI.Assets, Bit.Butil, Bit.Bswup) consistently use version 9.0.0-pre-01
throughout the solution. No instances of version 8.12.0
were found.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for any inconsistent Bit package versions across the solution
# Expect: All Bit packages should be either 9.0.0-pre-01 or specifically exempted
# Search for Bit package references
rg --type xml "PackageReference.*Bit\." -g "*.csproj" -A 1
# Search for any remaining 8.12.0 versions that might have been missed
rg --type xml "8\.12\.0" -g "*.csproj" -A 1
Length of output: 1887
Script:
#!/bin/bash
# Let's try a different approach to find Bit package references
# Using simpler grep patterns and showing more context
# Search for Bit package references in all csproj files
find . -name "*.csproj" -type f -exec sh -c '
echo "=== $1 ==="
grep -A 3 "PackageReference.*Bit\." "$1"
' sh {} \;
Length of output: 15903
Line range hint 22-26
: Consider updating HealthChecks packages for .NET 9.0 compatibility.
The project is targeting .NET 9.0, but the HealthChecks packages are still on version 8.0.x:
- AspNetCore.HealthChecks.System: 8.0.1
- AspNetCore.HealthChecks.UI: 8.0.2
- AspNetCore.HealthChecks.UI.Client: 8.0.1
- AspNetCore.HealthChecks.UI.InMemory.Storage: 8.0.1
While these might work due to backward compatibility, it would be good to verify if .NET 9.0 compatible versions are available.
✅ Verification successful
Let me try to verify the target framework version first to confirm we're dealing with .NET 9.0.
Health Checks packages are compatible with .NET 9.0
The concern about version compatibility can be resolved. The AspNetCore.HealthChecks packages at version 8.0.x are fully compatible with .NET 9.0 applications. This is because:
- The project correctly targets .NET 9.0 and uses ASP.NET Core 9.0.0 packages for core components
- Health Checks packages follow a different versioning scheme where 8.0.x versions are designed to work with both .NET 8.0 and 9.0
- These packages are middleware components that rely on stable APIs that maintain backward compatibility
No action is required as the current package versions are appropriate for the project.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for newer versions of HealthChecks packages
# Expect: Information about available versions for .NET 9.0
# Check latest versions on NuGet
for package in "AspNetCore.HealthChecks.System" "AspNetCore.HealthChecks.UI" "AspNetCore.HealthChecks.UI.Client" "AspNetCore.HealthChecks.UI.InMemory.Storage"; do
echo "Checking $package..."
curl -s "https://api.nuget.org/v3/registration5-semver1/$package/index.json" | jq -r '.items[0].items[-1].catalogEntry.version'
done
Length of output: 1887
Script:
#!/bin/bash
# Check the target framework version in the project file
rg -U "TargetFramework.*" "src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj"
# Also check if there are any other ASP.NET Core package references to compare versions
rg -U "<PackageReference.*Microsoft\.AspNetCore.*" "src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj"
Length of output: 590
src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj (2)
13-16
: Consider prerelease version adoption impacts
Since this is a prerelease version (9.0.0-pre-01
), please ensure:
- The development team is aware of potential breaking changes
- Adequate testing is performed before merging
- Documentation is updated to reflect any API changes
Let's check for potential breaking changes:
#!/bin/bash
# Description: Look for major version upgrade related changes
# Expected: Find potential breaking changes in changelog or documentation
# Check for changelog entries
fd -g CHANGELOG.md -x cat {}
# Look for migration guides or upgrade documentation
fd -g UPGRADE.md -o -g BREAKING-CHANGES.md -x cat {}
Also applies to: 17-20
13-16
: Version updates align with .NET 9.0 target framework
The package version updates to 9.0.0-pre-01
for both Bit.CodeAnalyzers
and Bit.SourceGenerators
are consistent with:
- The project's target framework (.NET 9.0)
- Other ASP.NET Core package versions (9.0.0)
Let's verify version consistency across related projects:
Also applies to: 17-20
✅ Verification successful
Version consistency verified across Bit packages
The search results confirm that all referenced Bit packages (Bit.CodeAnalyzers
, Bit.SourceGenerators
, Bit.BlazorUI
, Bit.BlazorUI.Icons
, Bit.BlazorUI.Assets
, Bit.Bswup
, Bit.Butil
) consistently use version 9.0.0-pre-01
across all .csproj files in the repository. This maintains version alignment with the .NET 9.0 target framework and ASP.NET Core 9.0.0 dependencies.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check version consistency of Bit packages across related projects
# Expected: All Bit package references should be at version 9.0.0-pre-01
# Search for any Bit package references that might not be at the correct version
rg -U 'PackageReference Include="Bit\.' -A 1
Length of output: 206
Script:
#!/bin/bash
# Let's try a different approach to find Bit package references
# Using fd to find all .csproj files and then grep for Bit package references
fd -e csproj -x grep -A 2 'PackageReference Include="Bit\.'
Length of output: 10122
src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj (2)
13-16
: LGTM: Bit.CodeAnalyzers package update
The package version update to '9.0.0-pre-01' aligns with the prerelease objectives, and the package maintains proper analyzer configuration with appropriate asset scoping.
17-20
: LGTM: Bit.SourceGenerators package update
The package version update to '9.0.0-pre-01' aligns with the prerelease objectives, and the package maintains proper source generator configuration with appropriate asset scoping.
src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj (1)
8-15
: Version updates look consistent with the pre-release.
The package version updates for Bit.CodeAnalyzers
and Bit.SourceGenerators
align with the PR objective of moving to v-9.0.0-pre-01
.
Let's verify version consistency across referenced projects:
✅ Verification successful
Version consistency verified across all Demo projects
All Bit packages (Bit.CodeAnalyzers
, Bit.SourceGenerators
, and Bit.Bswup
) in the Demo directory are consistently using version 9.0.0-pre-01
. The version update has been properly applied across all related projects.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for version consistency of Bit packages across referenced projects
# Check versions in referenced projects
echo "Checking Bit package versions in referenced projects..."
rg -A 1 '<PackageReference Include="Bit.' '../Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj' '../Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj' '../Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj'
# Check if any projects still reference old version
echo "Checking for any remaining old versions..."
rg "8.12.0" "src/BlazorUI/Demo"
Length of output: 4695
Script:
#!/bin/bash
# Let's try with correct paths relative to repository root
echo "Checking Bit package versions in referenced projects..."
rg -A 1 '<PackageReference Include="Bit.' 'src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj' 'src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj' 'src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj'
# Let's also check all csproj files in the Demo directory for Bit package references
echo "Checking all csproj files in Demo directory..."
fd -e csproj . src/BlazorUI/Demo -x rg -A 1 '<PackageReference Include="Bit.'
Length of output: 4410
src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js (4)
Line range hint 14-14
: Verify compatibility with bit-bswup.sw.js.
The service worker relies on bit-bswup.sw.js
. Given the significant version update and commented-out functionality, we should ensure compatibility.
Let's check the imported service worker implementation:
#!/bin/bash
# Description: Verify the imported service worker implementation
echo "Checking bit-bswup.sw.js content and version..."
fd -g "bit-bswup.sw.*" -x cat {}
Line range hint 16-83
: Critical: Verify intentional removal of offline support and caching.
A significant portion of the service worker functionality has been commented out, including:
- Installation and activation handlers
- Fetch interceptor
- Offline asset caching
- Cache cleanup logic
This change effectively disables offline support and PWA capabilities.
Let's check if this change is consistent with other PWA-related files:
#!/bin/bash
# Description: Check for other PWA-related configurations that might be affected
echo "Checking manifest and PWA configurations..."
fd -e json -g "manifest.json"
fd -g "*.webmanifest"
echo "Checking for PWA references in HTML..."
rg -t html "serviceWorker" -A 5
Would you like me to help implement a more gradual deprecation approach that maintains basic offline capabilities while removing complex caching logic?
Line range hint 7-12
: Verify if external asset handling is intentionally disabled.
The external assets configuration and error tolerance settings have been commented out. This could affect how the service worker handles external resources.
Let's check if there are any external asset references in the codebase that might be affected:
Line range hint 1-5
: LGTM! Version update and core configurations look correct.
The version update aligns with the prerelease objectives, and the core configurations for asset handling remain intact.
Let's verify if these asset patterns match the actual files in the project:
✅ Verification successful
Service worker asset configurations are correctly aligned with the codebase
The verification confirms that:
- All precached assets (
favicon.ico
,icon-512.png
,bit-bw-64.png
) exist in the demo app's wwwroot directory - The excluded
weather.json
pattern is relevant as this file exists in the codebase (src/Bup/FullDemo/Client/wwwroot/sample-data/weather.json
) - No
.scp.css
files were found, but keeping the exclusion pattern is safe for future compatibility
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify the existence of precached assets and excluded files
echo "Checking for precached assets..."
fd -e ico -e png --full-path favicon.ico "icon-512.png" "bit-bw-64.png"
echo "Checking for excluded files..."
fd -e css -g "*.scp.css"
fd -e json -g "weather.json"
Length of output: 1213
Script:
#!/bin/bash
# Let's try a more focused search for the specific assets and patterns
echo "Checking for precached assets in wwwroot directories..."
fd -t f -p "wwwroot/.*" "favicon.ico|icon-512.png|bit-bw-64.png"
echo -e "\nChecking for .scp.css files..."
fd -t f -p "wwwroot/.*" -e css | grep "\.scp\.css"
echo -e "\nChecking for weather.json..."
fd -t f -p "wwwroot/.*" "weather.json"
# Let's also check the service worker registration in the demo app
echo -e "\nChecking service worker registration in demo app..."
rg -t html "service-worker" src/Bswup/Bit.Bswup.Demo/wwwroot/
Length of output: 915
Script:
#!/bin/bash
# Let's try a different approach with proper fd syntax
echo "Checking for precached assets in wwwroot directories..."
fd -t f "favicon\.ico$|icon-512\.png$|bit-bw-64\.png$" .
echo -e "\nChecking for .scp.css files..."
fd -t f "\.scp\.css$" .
echo -e "\nChecking for weather.json..."
fd -t f "weather\.json$" .
# Let's also check the content of the demo app's wwwroot directory
echo -e "\nListing demo app's wwwroot contents..."
ls -la src/Bswup/Bit.Bswup.Demo/wwwroot/
Length of output: 3140
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj (1)
27-27
: LGTM! Package versions are consistently updated.
The package reference updates align with the prerelease version v-9.0.0-pre-01 and maintain consistency across all Bit framework packages.
Let's verify version consistency across referenced projects:
Also applies to: 29-32, 33-36
✅ Verification successful
✅ Package versions are consistently set to 9.0.0-pre-01
All Bit.* package references across the codebase are consistently using version 9.0.0-pre-01, including:
- Bit.Bswup
- Bit.CodeAnalyzers
- Bit.SourceGenerators
- Bit.BlazorUI
- Bit.BlazorUI.Icons
- Bit.BlazorUI.Assets
- Bit.Butil
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify version consistency across referenced projects
# Check if all Bit.* package references use the same version
# Search for Bit.* package references in all .csproj files
echo "Checking Bit.* package versions across projects..."
rg -A 1 '<PackageReference Include="Bit\.' --type csproj
Length of output: 200
Script:
#!/bin/bash
# Let's try a different approach using find and grep
find . -name "*.csproj" -type f -exec grep -A 1 '<PackageReference Include="Bit\.' {} \;
Length of output: 6170
src/Bswup/FullDemo/Client/wwwroot/service-worker.published.js (3)
1-1
: LGTM: Version update aligns with prerelease objectives
The version update to 9.0.0-pre-01
is consistent with the PR objectives.
Line range hint 8-22
: Verify Google Tag Manager configuration
The addition of Google Tag Manager URL needs verification to ensure:
- The tracking ID
G-G1ET5L69QF
is correct for this environment - The integration is properly configured for the prerelease version
✅ Verification successful
Google Tag Manager configuration is consistent across the codebase
The tracking ID G-G1ET5L69QF
is consistently configured across multiple files in the codebase:
- Properly implemented in the index.html with standard gtag.js setup
- Consistently referenced in service worker configurations for both web and demo applications
- Correctly configured as an external asset to ensure proper caching behavior
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for other Google Tag Manager configurations to verify consistency
rg -l "G-G1ET5L69QF" --type html --type js
# Check if this tracking ID is used in other configuration files
fd -e json -e config -e yml -e yaml | xargs grep -l "G-G1ET5L69QF"
Length of output: 387
Script:
#!/bin/bash
# Let's examine the content of these files to verify the configuration consistency
cat "src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/wwwroot/index.html"
cat "src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/wwwroot/service-worker.published.js"
cat "src/Bswup/FullDemo/Client/wwwroot/service-worker.js"
# Also check for any environment-specific configuration files
fd -e js -e html -e json -e config | grep -i -E 'environment|config' | xargs grep -l "google"
Length of output: 8595
Line range hint 30-34
: Verify Bit.Bswup module compatibility
Ensure that the imported Bit.Bswup
module is compatible with version 9.0.0-pre-01.
✅ Verification successful
Let me gather more specific version information from these project files.
Module compatibility verified
The project is correctly using a project reference to Bit.Bswup
in the same version series (9.0.0-pre-01) as evidenced by:
- Direct project reference in the client project:
<ProjectReference Include="..\..\Bit.Bswup\Bit.Bswup.csproj" />
- Consistent version 9.0.0-pre-01 usage across other projects in the codebase
- Target framework (.NET 9.0) alignment with the package version
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for Bit.Bswup version references
rg -l "Bit.Bswup" --type=json --type=csproj
# Look for version specifications in project files
fd -e csproj | xargs grep -l "Bit.Bswup"
Length of output: 624
Script:
#!/bin/bash
# Check package references with versions in the relevant project file
cat "src/Bswup/FullDemo/Client/Bit.Bswup.Demo.Client.csproj"
# Also check package.json files for any version info
fd package.json | xargs grep -l "Bit.Bswup"
# Search for version patterns near Bit.Bswup references
rg -C3 "Bit\.Bswup.*Version"
Length of output: 4273
src/Bup/Bit.Bup/Scripts/bit-bup.ts (3)
2-2
: LGTM: Version update aligns with PR objectives
The version update to '9.0.0-pre-01' is consistent with the prerelease objectives.
Line range hint 134-139
: LGTM: Well-structured interface definition
The BupOptions interface provides clear typing for configuration options with appropriate type constraints.
🧰 Tools
🪛 Biome
[error] 1-1: This variable is used before its declaration.
The variable is declared here:
(lint/correctness/noInvalidUseBeforeDeclaration)
2-2
: Verify version consistency across the codebase
Let's ensure the version update to '9.0.0-pre-01' is consistent across all related files.
src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj (2)
Line range hint 82-98
: Verify Node.js tooling compatibility with the new version.
While the build tasks are well-structured, it's important to ensure that the Node.js tooling (TypeScript compiler, SASS, esbuild) is compatible with the new version and follows best practices.
Let's check the Node.js dependencies:
✅ Verification successful
Node.js tooling is up-to-date and compatible
The Node.js dependencies are using recent and stable versions that are compatible with modern build environments:
- TypeScript 5.6.3 (latest stable)
- SASS 1.80.5 (latest stable)
- esbuild 0.24.0 (stable version)
The TypeScript configurations across projects are consistent and use modern settings (ESNext
, strict mode). The build tasks in the csproj file align well with these versions.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check Node.js dependencies and their versions
# Look for package.json files and their content
fd package.json --exec cat {} \;
# Check for any TypeScript configuration changes that might be needed
fd tsconfig.json --exec cat {} \;
# Look for any SASS/SCSS related configurations
fd -g "*config*.{json,js}" --exec rg -l "sass|scss" {} \;
Length of output: 4274
25-35
: Package versions are consistently updated for v9.0.0-pre-01.
The package references are properly aligned with the target framework and show consistent versioning across all Bit.* packages.
Let's verify the compatibility and potential breaking changes:
src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj (3)
25-35
: Package reference updates look consistent!
The package versions are consistently updated to 9.0.0-pre-01
across all Bit.* packages, which aligns with the PR objectives and target framework.
25-35
: Verify package compatibility with prerelease version.
While the package versions are consistent, it's important to verify compatibility between the prerelease Bit.* packages and the stable Microsoft packages.
✅ Verification successful
Package versions are compatible and consistently aligned
Based on the comprehensive scan of package references across the solution:
- All Microsoft.AspNetCore.Components.* packages are consistently using version 9.0.0
- All Bit.* packages are consistently using version 9.0.0-pre-01
- The prerelease Bit packages are designed to work with .NET 9.0 packages, as evidenced by their version alignment (9.0.0-pre-01)
- The pattern is consistent across all projects in the solution
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for any package reference inconsistencies across the solution
rg -g "*.csproj" '<PackageReference Include="(Bit\.|Microsoft\.AspNetCore\.Components).*" Version="([^"]*)"' -A 1
Length of output: 440
Script:
#!/bin/bash
# Search for package references with proper escaping
rg -g "*.csproj" "<PackageReference Include=\"(Bit\.|Microsoft\.AspNetCore\.Components)" -A 1
Length of output: 28576
25-35
: Verify breaking changes documentation for major version upgrade.
The upgrade from version 8.12.0 to 9.0.0-pre-01 represents a major version change. Please ensure that:
- Breaking changes are documented
- Migration guide is available
- All necessary code adjustments are made
src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj (2)
Line range hint 3-13
: LGTM: Build configuration is well-structured
The build configuration properly integrates JavaScript/SCSS compilation into the build process with:
- Clear dependency tracking
- Proper error handling
- Appropriate asset management
25-36
: Verify compatibility between pre-release and stable packages
The package updates align with the PR objective of moving to v-9.0.0-pre-01. However, mixing pre-release Bit packages (9.0.0-pre-01) with stable ASP.NET Core packages (9.0.0) requires careful testing to ensure compatibility.
Consider documenting any breaking changes or migration steps needed for this pre-release version in the project's upgrade guide.
✅ Verification successful
Package version consistency verified across the solution
The analysis of package references across the solution shows a consistent pattern:
- All Bit packages are uniformly updated to version 9.0.0-pre-01
- All Microsoft packages are using the stable 9.0.0 version
- This pattern is consistently applied across multiple projects (Platform, Sales, Careers, etc.)
The version alignment between pre-release Bit packages and stable ASP.NET Core packages appears to be an intentional strategy, likely tested during the pre-release development phase. The widespread adoption of these versions across multiple projects in the solution indicates this is a coordinated upgrade rather than an isolated change.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for any compatibility-related issues or breaking changes in recent commits
# Look for breaking changes or upgrade notes in recent commits
git log -p --grep="break" --grep="upgrad" --grep="migrat" -i -- "**/*.md" "**/*.txt"
# Check for any existing issues related to package compatibility
gh issue list --search "9.0.0-pre-01 compatibility"
# Look for dependency version declarations across solution
rg "PackageReference.*Version=\"9\.0\.0.*\"" -g "*.csproj"
Length of output: 19474
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj (2)
Line range hint 12-15
: Verify configuration loading for embedded appsettings.json
The change from Content
to EmbeddedResource
for appsettings.json means it will be embedded in the assembly. Ensure that the configuration system is properly set up to read from embedded resources.
19-26
: Verify breaking changes for major version upgrade
The upgrade from version 8.12.0 to 9.0.0-pre-01 for Bit packages is a major version change that might introduce breaking changes.
#!/bin/bash
# Description: Check for breaking changes and migration requirements
# Look for migration guides or breaking changes documentation
fd -g "CHANGELOG.md|BREAKING-CHANGES.md|MIGRATION.md|README.md" | xargs rg -A 10 "9.0.0|breaking changes"
# Check if other projects in the solution are using consistent versions
rg "Bit\.(CodeAnalyzers|SourceGenerators)" -A 1 "**/*.csproj"
src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props (2)
1-1
: Verify version consistency across template references
This major version bump (8.12.0 → 9.0.0-pre-01) indicates potential breaking changes. Ensure all template references and dependent projects are updated accordingly.
✅ Verification successful
Let me gather more specific information about version references across the codebase.
Let me check the content of both Directory.Build.props files to verify version consistency.
Template version is consistently updated across the codebase
Both Directory.Build.props files are using the same template version v-9.0.0-pre-01. The version update has been properly synchronized across the template references in the codebase. Additionally, both files correctly reflect the updated minimum version requirements for iOS and macOS (16.4) that come with this template version.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for any remaining references to the old version
rg -i "v-8\.12\.0|8\.12\.0" --type xml --type json
# Check for any template version references
rg -i "bit-bp template v-[0-9]" --type xml
Length of output: 4699
Script:
#!/bin/bash
# Search for template version references in props files
fd "Directory.Build.props" --exec grep -l "bit-bp template"
# Search for any version references in project files and props
rg "v-[0-9]+\.[0-9]+\.[0-9]" --type xml
# Check for any version constraints in package references
rg "<PackageReference.*Version" --type xml
Length of output: 258
Script:
#!/bin/bash
# Check content of both Directory.Build.props files
echo "=== Content of src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props ==="
cat src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props
echo -e "\n=== Content of src/BlazorUI/Demo/Directory.Build.props ==="
cat src/BlazorUI/Demo/Directory.Build.props
Length of output: 8516
Line range hint 52-58
: Verify the increased minimum OS requirements for iOS and macOS
The minimum supported OS version for iOS and macOS has been increased from 14.0 to 16.4 for net9.0. This is a significant change that could impact existing users.
Please confirm:
- Is this increase intentional and required for net9.0?
- Have you considered the impact on users with iOS/macOS versions 14.0-16.3?
- Are there any new features that specifically require iOS/macOS 16.4?
✅ Verification successful
Let me gather more information about the platform version requirements.
Let me search for any API usage or features that might specifically require iOS/macOS 16.4.
Based on the gathered information, I can now provide a final response about the iOS/macOS version requirements.
The increased minimum OS requirements for iOS/macOS 16.4 are intentional and required
The version increase appears to be aligned with .NET 9.0 requirements and specific platform features:
- The change is documented in the platform's overview page, indicating iOS 16.4+ as a requirement for .NET 9 apps
- Code evidence shows version checks for iOS 16.4 and macOS 13.3+ in MAUI program initialization
- No specific API usage requiring iOS/macOS 16.4 was found, suggesting this is a platform-level requirement for .NET 9.0 compatibility
The version requirements are consistently defined across:
- Directory.Build.props for net9.0 targets
- MAUI program initialization checks
- Platform documentation
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for any API usage that might require iOS/macOS 16.4
rg -A 5 "if #available\(iOS 16.4|if #available\(macOS 16.4"
# Check for platform-specific code that might be affected
rg "#if.*iOS|#if.*macOS" -A 5
Length of output: 4699
Script:
#!/bin/bash
# Check Directory.Build.props files for platform version requirements
fd "Directory.Build.props" --exec cat {}
# Check csproj files for platform version requirements
fd ".csproj$" --exec grep -A 5 "SupportedOSPlatformVersion"
# Check for any net9.0 specific configurations
rg "net9.0" -A 5
Length of output: 75803
Script:
#!/bin/bash
# Search for iOS/macOS specific API usage in source files
rg -g "*.cs" -g "*.razor" "iOS 16.4|macOS 16.4|MacCatalyst 16.4" -B 2 -A 2
# Search for any platform-specific requirements or documentation
fd "README|CHANGELOG" --exec cat {}
# Check for any platform version related comments in source
rg -g "*.cs" -g "*.razor" "requires iOS|requires macOS|platform.*version" -i
Length of output: 32365
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj (3)
Line range hint 104-107
: LGTM! Consistent MAUI package versions
The MAUI package references are correctly configured with matching versions (9.0.0) that align with the target framework.
Line range hint 97-97
: Verify impact of removing launchSettings.json
The removal of launchSettings.json might affect local development configurations. Please ensure that:
- This removal is intentional
- Alternative launch configurations are in place if needed
- The development team is aware of any changes needed in their local setup
✅ Verification successful
Based on the results, I can generate the final response as we have sufficient information about the usage of launchSettings.json across the codebase.
Removal of launchSettings.json appears to be intentional and aligned with project patterns
The verification shows that while launchSettings.json is present in many projects, MAUI projects in this codebase follow a pattern where they have alternative configuration files:
- The Boilerplate MAUI template uses appsettings.json, appsettings.Production.json, and appsettings.Development.json
- Other MAUI projects like Bit.Butil.Demo.Maui follow similar patterns
The removal aligns with the project's configuration management approach where MAUI applications primarily rely on appsettings.json variants rather than launchSettings.json.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Check if launchSettings.json is used in other MAUI projects
fd -e csproj | xargs grep -l "launchSettings.json"
# Check if there are any alternative configuration files
fd -g "*settings*.json" -t f
Length of output: 6102
88-96
: Verify Microsoft.AppCenter.Crashes compatibility with .NET 9
While the Bit packages have been updated to 9.0.0-pre-01, we should verify if Microsoft.AppCenter.Crashes 5.0.6 is fully compatible with .NET 9.
✅ Verification successful
Consider updating Microsoft.AppCenter.Crashes to a newer version when available
The current version 5.0.6 is the latest available version, and it's consistently used across multiple MAUI projects in the codebase:
- src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj
- src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj
- src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj
Since AppCenter packages are generally framework-agnostic (as seen in the dependencies with no specific framework targeting), the current version should work with .NET 9. Keep monitoring for newer versions that might include explicit .NET 9 support.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Check if there's a newer version of Microsoft.AppCenter.Crashes
curl -s https://api.nuget.org/v3-flatcontainer/microsoft.appcenter.crashes/index.json | jq -r '.versions[]' | sort -V | tail -n 5
# Search for any .NET version requirements in the package metadata
curl -s https://api.nuget.org/v3/registration5-gz-semver2/microsoft.appcenter.crashes/5.0.6.json | jq -r '.packageContent' | xargs curl -s | jq -r '.dependencyGroups[].targetFramework'
Length of output: 6102
Script:
#!/bin/bash
# Let's try a simpler approach to check AppCenter.Crashes versions and dependencies
# First, get the latest versions
curl -s "https://api.nuget.org/v3-flatcontainer/microsoft.appcenter.crashes/index.json" | jq -r '.versions[]' | sort -V | tail -n 5
# Then check the dependencies for version 5.0.6
curl -s "https://api.nuget.org/v3-flatcontainer/microsoft.appcenter.crashes/5.0.6/microsoft.appcenter.crashes.nuspec" | grep -A 5 "<dependencies>"
# Also check if this package is used in other projects to maintain consistency
fd -e csproj . | xargs grep -l "Microsoft.AppCenter.Crashes"
Length of output: 911
src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates03GettingStartedPage.razor.cs (1)
41-41
: Verify the availability of the pre-release template version.
The command has been updated to use the pre-release version 9.0.0-pre-01 of Bit.Boilerplate template.
Let's verify the template version exists and is accessible:
✅ Verification successful
Version update is consistent with the codebase-wide migration to 9.0.0-pre-01
The version update for Bit.Boilerplate template to 9.0.0-pre-01 is part of a broader version update across the codebase:
- The same version (9.0.0-pre-01) is consistently used across multiple components and templates
- All related Bit packages (BlazorUI, CodeAnalyzers, SourceGenerators, etc.) are aligned to this version
- The version is referenced in configuration files, service workers, and template definitions
- The update aligns with .NET 9.0 dependencies used in the project
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify the availability and metadata of the Bit.Boilerplate template package
# Check if the specific version exists on NuGet
curl -s "https://api.nuget.org/v3-flatcontainer/bit.boilerplate/index.json" | jq '.versions[] | select(. == "9.0.0-pre-01")'
# Get the package metadata to verify dependencies and compatibility
curl -s "https://api.nuget.org/v3/registration5-gz-semver2/bit.boilerplate/index.json" | jq '.items[].items[] | select(.catalogEntry.version == "9.0.0-pre-01")'
Length of output: 343
Script:
#!/bin/bash
# Let's verify if this version update is consistent across the codebase
# and check for any related configuration files
# Search for any other occurrences of version strings related to Bit.Boilerplate
rg -i "bit.boilerplate::(8|9)" -A 2 -B 2
# Look for any package.json, *.csproj, or similar files that might reference this template
fd -e json -e csproj -e props -e targets | xargs rg -i "bit.boilerplate"
# Check if there are any other template version references
rg "9\.0\.0-pre-01" -A 2 -B 2
# Look for any documentation files mentioning template versions
fd -e md -e txt | xargs rg -i "bit.boilerplate"
Length of output: 43636
src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts (1)
2-2
: LGTM: Version update aligns with PR objectives.
The version update to '9.0.0-pre-01' correctly reflects the prerelease version mentioned in the PR objectives.
src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props (3)
Line range hint 4-45
: Verify compatibility with dependent packages
The version updates align with Microsoft packages already on 9.0.0. However, please ensure compatibility with other third-party packages in the solution.
Let's check for any package compatibility issues:
✅ Verification successful
Based on the output from the shell scripts, I can now provide a final response:
Package compatibility analysis completed - No compatibility issues found
The package references across the codebase show consistent version alignment:
- All Microsoft packages are on version 9.0.0
- Third-party packages like AspNetCore.HealthChecks (8.0.x), Swashbuckle.AspNetCore (7.0.0), and Riok.Mapperly (4.1.0) are on stable versions that are known to work with .NET 9
- No conflicting version requirements or dependency constraints were found
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check package references in projects that use Bit packages
# to identify potential compatibility issues
echo "Finding projects using Bit packages..."
rg "Include=\"Bit\." -l -g "*.{csproj,props,targets}" | while read -r file; do
echo "Checking package references in $file..."
rg "PackageReference|ProjectReference" "$file"
done
Length of output: 26426
4-11
: Version updates align with prerelease objectives
The version updates for core Bit framework packages from 8.12.0 to 9.0.0-pre-01 are consistent with the PR objectives for prerelease v-9.0.0-pre-01. The changes maintain version consistency across all Bit framework packages.
Let's verify version consistency across the solution:
✅ Verification successful
Version updates are consistent across the solution
The verification confirms that:
- No references to the old version 8.12.0 remain in any project files
- All Bit framework packages, including the conditional Bit.Besql package, are consistently set to version 9.0.0-pre-01
- The version updates in Directory.Packages.props align with other package references in the solution
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for any remaining references to old version 8.12.0 in project files
# and ensure all Bit packages are updated to 9.0.0-pre-01
echo "Checking for old version references..."
rg "8\.12\.0" -g "*.{csproj,props,targets}"
echo "Verifying Bit package versions..."
rg "Include=\"Bit\.[^\"]+\" Version=\"[^\"]+\"" -g "*.{csproj,props,targets}"
Length of output: 26426
Script:
#!/bin/bash
# Let's check for any remaining references to version 8.12.0 and verify Bit.Besql package version
echo "Checking for old version references..."
rg "8\.12\.0" -g "*.{csproj,props,targets}"
echo -e "\nChecking Bit.Besql package version..."
rg "Include=\"Bit\.Besql\".*Version=\"[^\"]+\"" -g "*.{csproj,props,targets}"
echo -e "\nChecking Directory.Packages.props content..."
cat "src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props"
Length of output: 10805
45-45
: Conditional package version aligned with core packages
The conditional Bit.Besql package version update maintains consistency with other Bit framework packages.
Let's verify the condition and its usage:
✅ Verification successful
Package version alignment verified for Bit.Besql
The Bit.Besql package version (9.0.0-pre-01) in Directory.Packages.props is correctly aligned with other Bit framework packages like Bit.BlazorUI, Bit.Butil, etc., which all use version 9.0.0-pre-01. The conditional usage of offlineDb is also consistently implemented across the boilerplate template files.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for offlineDb condition usage and Bit.Besql references
echo "Checking offlineDb condition usage..."
rg "Condition.*offlineDb.*true" -g "*.{csproj,props,targets}"
echo "Checking Bit.Besql package references..."
rg "Include=\"Bit\.Besql\"" -g "*.{csproj,props,targets}"
Length of output: 26426
Script:
#!/bin/bash
# Let's check for Bit.Besql package references and offlineDb condition usage more specifically
echo "Checking Bit.Besql package references..."
rg "Include=\"Bit\.Besql\"" -g "*.{csproj,props,targets}" -l
echo -e "\nChecking offlineDb condition usage..."
rg "Condition.*offlineDb.*true" -g "*.{csproj,props,targets}" -l
echo -e "\nChecking package versions in Directory.Packages.props..."
cat src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props
Length of output: 11255
src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages8.props (2)
45-45
: Ensure conditional package version alignment
The Bit.Besql package version is correctly aligned with other Bit framework packages, maintaining version consistency even in conditional references.
4-11
: Verify compatibility between core Bit framework packages
The version update from 8.12.0 to 9.0.0-pre-01 represents a major version bump that could introduce breaking changes. All core Bit framework packages are consistently updated to the same version, which is good practice.
✅ Verification successful
Version consistency verified across the codebase
The verification shows that:
- No references to the old version (8.12.0) remain in XML files
- All Bit package references consistently use version "9.0.0-pre-01" where versions are explicitly specified
- Some package references use version from central package management (without explicit version), which is the intended behavior
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check for any remaining references to version 8.12.0 in the codebase
# and verify package references in project files
# Search for any remaining references to the old version
echo "Checking for remaining references to version 8.12.0..."
rg "8\.12\.0" --type xml
# Find all .csproj files and check their package references
echo "Checking package references in project files..."
fd -e csproj -x cat {} \; | rg -A 1 "PackageReference.*Bit\."
Length of output: 6695
src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates03GettingStartedPage.razor (1)
170-171
: LGTM! Version update aligns with prerelease objectives.
The version update from 8.12.0
to 9.0.0-pre-01
is consistent across both the NuGet package link and installation command.
Let's verify the NuGet package existence and version:
src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts (4)
1-1
: Version Update Confirmation
The service worker version has been correctly updated to '9.0.0-pre-01'
, aligning with the pre-release version across the project.
Line range hint 176-184
: Validate Client Messaging Logic
In the sendMessage
function, when posting messages to clients, ensure that the message format is correctly handled by all clients, especially considering typeof message === 'string'
.
Check for client implementations expecting JSON strings versus objects.
Simplify the message sending logic if all clients can handle objects:
-.then(clients => (clients || []).forEach(client => client.postMessage(typeof message === 'string' ? message : JSON.stringify(message))));
+.then(clients => (clients || []).forEach(client => client.postMessage(message)));
Ensure that this change won't break any existing client message handling.
Line range hint 48-50
: Review Asset URL Matching Logic
The logic for matching asset URLs in handleFetch
function has been updated. Ensure that this change maintains the correct behavior for serving assets, especially when dealing with query parameters and URL variations.
- Verify that assets with URL versioning (e.g.,
asp-append-version
) are correctly identified. - Confirm that the use of
URL
andurl.origin
does not introduce any issues with cross-origin requests.
Run the following script to identify how asset URLs are constructed and matched:
#!/bin/bash
# Description: Analyze asset URL matching logic.
# Test: Find all instances where asset URLs are manipulated.
rg -A 5 "new URL" src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts
Line range hint 36-36
: Ensure Proper Handling of Non-GET Methods
The fetch event handler currently skips requests where req.method !== 'GET'
. Confirm that non-GET requests such as POST, PUT, DELETE, etc., are appropriately handled elsewhere or intentionally not cached.
Run the following script to check for any other event listeners handling non-GET methods:
✅ Verification successful
Non-GET Methods Are Properly Handled
The code correctly handles non-GET requests by passing them through to the network via fetch(req)
. This is the expected behavior for a service worker as non-GET requests typically involve data mutations that shouldn't be cached. The code also appropriately handles server-specific URLs through the SERVER_HANDLED_URLS
configuration, which allows for flexible routing of requests that should bypass the service worker.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Search for other event listeners handling non-GET methods.
# Test: Find all event listeners excluding 'GET' methods.
ast-grep --pattern $'self.addEventListener(\'fetch\', $$_ => $$_)' --lang ts
Length of output: 471
Script:
#!/bin/bash
# Search for fetch event listener and its implementation
rg -U "addEventListener.*fetch.*\{[\s\S]*?\}" src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts
# Also search for any method-related conditions
rg "req\.method" src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts
Length of output: 248
Script:
#!/bin/bash
# Let's see the full context around the method check and what happens after
rg -B 5 -A 10 "req\.method" src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts
# Also check for any server-handled URLs configuration
rg "SERVER_HANDLED_URLS" src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts
Length of output: 923
closes #9216
Summary by CodeRabbit
New Features
9.0.0-pre-01
across multiple components, enhancing compatibility and performance.Microsoft.Extensions.DependencyInjection.Abstractions
,Microsoft.Extensions.Configuration.Binder
, andSystem.Text.Json
.Bug Fixes
Documentation
Chores