{
  "version": 1,
  "fileId": "file:i7as8l:nexusauthenticationstateprovider-cs",
  "fingerprint": "tqd6ry",
  "path": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
  "absolutePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
  "shortLabel": "NexusAuthenticationStateProvider",
  "longLabel": "NexusReader.UI.Shared/Services/NexusAuthenticationStateProvider.cs",
  "purpose": "Provides Blazor AuthenticationStateProvider implementation that reads persisted user authentication info (token, email, tenant, roles) from a native secure storage service, caches the computed AuthenticationState, and notifies consumers about authentication changes.",
  "classification": {
    "role": "service",
    "layer": "frontend",
    "confidence": 0.8,
    "evidence": [
      "Service naming pattern",
      "Application/service path heuristic",
      "Class NexusAuthenticationStateProvider extends AuthenticationStateProvider (line 9)",
      "Reads persistence via INativeStorageService and exposes GetAuthenticationStateAsync (line 31)"
    ]
  },
  "className": "NexusAuthenticationStateProvider",
  "domainConcepts": [
    "User (email)",
    "Tenant (TenantId)",
    "Roles",
    "Authentication state"
  ],
  "patterns": [
    "Authentication Provider",
    "In-memory cache",
    "Local persistence-based auth (token/cookie indicators)"
  ],
  "keyDetails": "Caches computed AuthenticationState in-memory; reads token/email/tenant/roles from INativeStorageService; three main paths in GetAuthenticationStateAsync: token-based, cookie-indicator-based, anonymous fallback; includes security note about storing roles in local storage (line 13-15).",
  "coverage": {
    "symbolCount": 8,
    "executableSymbolCount": 6,
    "executableSymbolsWithControlFlowCount": 6,
    "groundedEdgeCount": 8,
    "unresolvedReferenceCount": 15,
    "controlFlowFragmentCount": 6,
    "unresolvedJumpCount": 7,
    "unsupportedConstructCount": 0,
    "controlFlowCoverage": 1,
    "requiredDiagramCount": 2,
    "generatedDiagramCount": 4,
    "missingRequiredDiagramCount": 0
  }
}