Refactor: Web Consolidation and Identity Stabilization #40

Merged
mjasin merged 37 commits from feature/issue-33 into develop 2026-05-11 19:16:31 +00:00

37 Commits

Author SHA1 Message Date
mjasin f0fac1afaa feat: Architectural stabilization and login error resolution (#33)
- Refactored INativeStorageService and IReaderNavigationService to be fully asynchronous to ensure stable JS Interop in Blazor Server.
- Enforced Result pattern in IBillingService and KnowledgeCoordinator for better error propagation.
- Resolved 'Headers are read-only' error in Blazor Server by implementing a hybrid login/logout flow using Minimal API endpoints and hidden form submission.
- Eliminated all async void signatures across the codebase.
- Verified 0 build errors.
2026-05-11 21:15:39 +02:00
mjasin e1f1a4b3cb refactor: complete web project consolidation and stabilize identity flow
- Finalized move from NexusReader.Web.New to NexusReader.Web
- Implemented robust ServerIdentityService with UserManager and SignInManager
- Updated UI components to handle authentication state synchronization via force reload
- Refined BookIngestionModal styling following Nexus Neon design system
- Resolved namespace conflicts and updated CI/CD/VS Code configurations
- Fixes #33
2026-05-11 20:42:57 +02:00
Antigravity f864580207 test: add unit tests for EpubMetadataExtractor robustness 2026-05-11 18:09:07 +00:00
Antigravity 46d47a1e02 test: initialize Application layer test project with xUnit and Moq 2026-05-11 18:09:02 +00:00
Antigravity 3de2238c93 refactor: remove redundant PlanConstants from UI.Shared (moved to Application) 2026-05-11 18:08:55 +00:00
Antigravity 5fe7024fea refactor: remove redundant StorageKeys from UI.Shared (moved to Application) 2026-05-11 18:08:51 +00:00
Antigravity 080916eb99 refactor: remove obsolete IEpubService interface (replaced by IEpubReader and IEpubMetadataExtractor) 2026-05-11 18:08:46 +00:00
Antigravity ebc0583977 refactor: add IEpubMetadataExtractor interface for local file parsing 2026-05-11 18:08:41 +00:00
Antigravity 7b44ac585b refactor: add IEpubReader interface for content streaming 2026-05-11 18:08:37 +00:00
Antigravity d704aed8f1 build: register NexusReader.Application.Tests in solution file 2026-05-11 18:08:31 +00:00
Antigravity 6baf80e892 build: clean up redundant package references and finalize Infrastructure project structure 2026-05-11 18:08:25 +00:00
Antigravity 176209ff76 style: add prefers-reduced-motion support for accessibility in ingestion modal 2026-05-11 18:08:18 +00:00
Antigravity 7f1b84cc49 refactor: update BookIngestionModal to use split IEpubMetadataExtractor, add XML docs and IAsyncDisposable 2026-05-11 18:08:08 +00:00
Antigravity 43fa79608f refactor: update reader page query handler to depend on IEpubReader interface 2026-05-11 18:07:57 +00:00
Antigravity 38043cbda3 refactor: update infrastructure DI to register split EPUB services and clean up obsolete identity logic 2026-05-11 18:07:51 +00:00
Antigravity 6aadfda58e refactor: update WASM DI registrations for split EPUB interfaces and Application layer init 2026-05-11 18:07:44 +00:00
Antigravity cb3d8726b1 refactor: split WasmEpubService into reader and metadata extractor implementations 2026-05-11 18:07:37 +00:00
Antigravity bb7207b7ef refactor: split EpubService into EpubReaderService and EpubMetadataExtractor (SRP) 2026-05-11 18:07:30 +00:00
Antigravity 0e2c275de7 refactor: register server-side storage and identity services, update API to use split IEpubReader interface 2026-05-11 18:07:14 +00:00
Antigravity 4940f7daa7 build: add VersOne.Epub to server-side project for metadata extraction support 2026-05-11 18:07:05 +00:00
Antigravity f98c204a14 feat: implement server-side NativeStorageService for browser storage interoperability 2026-05-11 18:06:59 +00:00
Antigravity 8bbb2f68c8 refactor: fix MappingConfig to avoid invalid property access and restore using directives 2026-05-11 18:06:53 +00:00
Antigravity a7d883da84 refactor: use Application layer constants and add security documentation to auth provider 2026-05-11 18:06:48 +00:00
Antigravity bd66f9165f refactor: update ServerIdentityService to implement IIdentityService abstraction 2026-05-11 18:06:38 +00:00
Antigravity 98e0e604e0 refactor: update IdentityService to use Application layer abstractions and constants 2026-05-11 18:06:30 +00:00
Antigravity f21638bcbc refactor: update INativeStorageService abstraction 2026-05-11 18:06:14 +00:00
Antigravity 62ad64b1e4 refactor: add IIdentityService abstraction to Application layer 2026-05-11 18:06:08 +00:00
Antigravity a3ded70977 refactor: unify UserProfileDto and add plan helpers 2026-05-11 18:05:51 +00:00
Antigravity b0875a095b refactor: move PlanConstants to Application layer 2026-05-11 18:05:36 +00:00
Antigravity feb6f0e948 refactor: move StorageKeys to Application layer 2026-05-11 18:05:31 +00:00
mjasin 990f537661 style: fix InputFile scoped CSS by using ::deep to hide native file input button 2026-05-10 20:31:32 +02:00
mjasin 0c3fccc91e feat: resolve role-based authorization by extracting Roles claim from JWT and storing in state provider 2026-05-10 20:24:59 +02:00
mjasin 5f39f2e063 fix: implement server-side logout by clearing token via INativeStorageService 2026-05-10 20:17:02 +02:00
mjasin e22ec0e57c fix: remove useCookies from login to allow JWT extraction 2026-05-10 20:13:07 +02:00
mjasin 2b68eb1f10 chore: remove temporary TestEpub project 2026-05-10 20:07:15 +02:00
mjasin ac5a50c014 fix: resolve InputFile destruction exception during stream read 2026-05-10 20:06:15 +02:00
mjasin a6a5fc683c feat: Add Book Ingestion Modal for local EPUB metadata extraction (fixes #33) 2026-05-10 20:00:14 +02:00