30951 lines
1.3 MiB
Plaintext
30951 lines
1.3 MiB
Plaintext
{
|
|
"generatedAt": "2026-05-25T11:40:23.367Z",
|
|
"targetPath": "business/business-overview.md",
|
|
"targetKind": "folder",
|
|
"metadataDraft": {
|
|
"sectionProvenance": [
|
|
{
|
|
"sectionId": "dependency_map_graph",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
},
|
|
{
|
|
"sectionId": "startup_runtime_graph",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
},
|
|
{
|
|
"sectionId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
},
|
|
{
|
|
"sectionId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
},
|
|
{
|
|
"sectionId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
},
|
|
{
|
|
"sectionId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
},
|
|
{
|
|
"sectionId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
},
|
|
{
|
|
"sectionId": "method_flows_graph",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
}
|
|
],
|
|
"claimGrounding": [],
|
|
"nodeMetadata": [
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"label": "MauiProgram",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"label": "MauiProgram",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:10:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 10,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"label": "MauiPlatformService",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:28:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 28,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"label": "MauiStorageService",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:29:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 29,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:32:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 32,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"label": "NexusAuthenticationStateProvider (resolved)",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:33:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 33,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"label": "AuthorizationCore",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:35:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 35,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"label": "HttpClient",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:38:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 38,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"label": "ThemeService",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:41:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 41,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"label": "FocusModeService",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:42:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 42,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"label": "QuizStateService",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:43:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 43,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"label": "ReaderNavigationService",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:44:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 44,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"label": "Program.cs",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "service",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
|
|
"responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:1:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "service",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
|
|
"label": "ThrowingDbContextFactory",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
|
|
"responsibility": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Signature",
|
|
"value": "() -> AppDbContext"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Action:throw",
|
|
"value": "Throws exception @L63"
|
|
},
|
|
{
|
|
"label": "Action:throw",
|
|
"value": "Throws NotSupportedException to block DbContext usage in WASM @L63"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:61:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 61,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 61,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
|
|
"label": "ThrowingEmbeddingGenerator",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
|
|
"responsibility": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Signature",
|
|
"value": "() -> void"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "No-op dispose @L68"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:66:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 66,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 66,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
|
|
"label": "ThrowingBookStorageService",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
|
|
"responsibility": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Signature",
|
|
"value": "(data: byte[], fileName: string) -> Task<string>"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Action:throw",
|
|
"value": "Throws exception @L78"
|
|
},
|
|
{
|
|
"label": "Action:throw",
|
|
"value": "Throws NotSupportedException @L78"
|
|
},
|
|
{
|
|
"label": "Action:throw",
|
|
"value": "Throws exception @L79"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"label": "ErrorMessage",
|
|
"value": "string required"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:74:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 74,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
|
|
"label": "ThrowingEbookRepository",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
|
|
"responsibility": "IEbookRepository stub that throws for all repository operations to force use of server API.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Signature",
|
|
"value": "(name: string, cancellationToken: CancellationToken) -> Task<Author?>"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Action:repository-read",
|
|
"value": "Reads repository or persistence state @L88"
|
|
},
|
|
{
|
|
"label": "Action:throw",
|
|
"value": "Throws exception @L88"
|
|
},
|
|
{
|
|
"label": "Action:throw",
|
|
"value": "Throws NotSupportedException @L88"
|
|
},
|
|
{
|
|
"label": "Action:throw",
|
|
"value": "Throws exception @L89"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"label": "ErrorMessage",
|
|
"value": "string required"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:84:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 84,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
|
|
"label": "ThrowingSyncBroadcaster",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
|
|
"responsibility": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Signature",
|
|
"value": "(userId: string, pageId: string, timestamp: DateTime, excludedConnectionId: string?, cancellationToken: CancellationToken) -> Task"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Action:throw",
|
|
"value": "Throws NotSupportedException @L96"
|
|
},
|
|
{
|
|
"label": "Action:throw",
|
|
"value": "Throws exception @L97"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:94:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 94,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 94,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
|
|
"label": "WebPlatformService",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
|
|
"responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:18:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 18,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 18,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
|
|
"label": "WebStorageService",
|
|
"diagramId": "dependency_map_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
|
|
"responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:19:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 19,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 19,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"label": "MauiProgram",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"label": "CreateMauiApp",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"responsibility": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Signature",
|
|
"value": "() -> MauiApp"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "2"
|
|
},
|
|
{
|
|
"label": "Action:try",
|
|
"value": "Begins protected execution @L14"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Catch startup exceptions, log to Debug and rethrow @L14"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Create builder @L16"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "DEBUG-only tooling and logging @L22"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Register platform and infrastructure singletons @L28"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Register scoped identity services and auth provider @L32"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:12:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 12,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"label": "MauiPlatformService",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:28:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 28,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"label": "MauiStorageService",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:29:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 29,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:32:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 32,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"label": "NexusAuthenticationStateProvider (resolved)",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:33:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 33,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"label": "AuthorizationCore",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:35:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 35,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"label": "HttpClient",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:38:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 38,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"label": "ThemeService",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:41:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 41,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"label": "FocusModeService",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:42:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 42,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"label": "QuizStateService",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:43:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 43,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"label": "ReaderNavigationService",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:44:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 44,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"label": "Program.cs",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "service",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
|
|
"responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:1:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "service",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
|
|
"label": "WebPlatformService",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
|
|
"responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:18:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 18,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 18,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
|
|
"label": "WebStorageService",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
|
|
"responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:19:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 19,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 19,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
|
|
"label": "IdentityService",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
|
|
"responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:32:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 32,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 32,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
|
|
"label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
|
|
"diagramId": "startup_runtime_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap the WebAssembly client: configure DI for the WASM frontend, register platform/UI/identity/AI services, provide HttpClient, register application services, and register server-only throwing stubs so DI validation passes in the browser.",
|
|
"responsibility": "This Program.cs is the WASM client composition root: it wires client-specific implementations and intentionally registers throwing stubs for server-only services (DB, embedding generation, file storage, repository, real-time broadcasting) so that the client can still validate DI without enabling server features.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Dependency Injection (DI) registration",
|
|
"Environment-specific stubbing (throwing stubs for server-only services)",
|
|
"Composition root / app bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "Ebook, Author, Embedding"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Program.cs:40:1",
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 40,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 40,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"label": "MauiProgram",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"label": "CreateMauiApp",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"responsibility": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Signature",
|
|
"value": "() -> MauiApp"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "2"
|
|
},
|
|
{
|
|
"label": "Action:try",
|
|
"value": "Begins protected execution @L14"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Catch startup exceptions, log to Debug and rethrow @L14"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Create builder @L16"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "DEBUG-only tooling and logging @L22"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Register platform and infrastructure singletons @L28"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Register scoped identity services and auth provider @L32"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:12:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 12,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"label": "Begins protected execution",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "try",
|
|
"responsibility": "try",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "try"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:14:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 14,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"label": "Build and return app",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "return",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "return builder.Build()",
|
|
"responsibility": "return builder.Build()",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "return"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:57:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 57,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"label": "Handles exception path",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "catch (Exception ex)",
|
|
"responsibility": "catch (Exception ex)",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "catch"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "Exception ex"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "handled exception"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:59:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 59,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"label": "Throws exception",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "throw;",
|
|
"responsibility": "throw;",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "throw"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:63:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 63,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"label": "MauiProgram",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:10:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 10,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"label": "MauiPlatformService",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:28:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 28,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"label": "MauiStorageService",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:29:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 29,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:32:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 32,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"label": "NexusAuthenticationStateProvider (resolved)",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:33:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 33,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"label": "AuthorizationCore",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:35:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 35,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"label": "HttpClient",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:38:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 38,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"label": "ThemeService",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:41:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 41,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"label": "FocusModeService",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:42:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 42,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"label": "QuizStateService",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:43:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 43,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"label": "ReaderNavigationService",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:44:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 44,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"label": "Program.cs",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "service",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap and run the NexusReader web application: configure services, authentication/authorization, middleware, database migration/seeding with retries, and declare Minimal API endpoints (knowledge, library, identity, billing/webhooks).",
|
|
"responsibility": "Critical startup validates infrastructure registration, performs DB migrations with retry/backoff and seeding, exposes knowledge endpoints guarded by token policy, handles Stripe webhook subscription lifecycle updating user records, and provisions Google external logins with new user creation and logging.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:1:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "service",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"label": "Program (top-level)",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
|
|
"responsibility": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Signature",
|
|
"value": "() -> Task (top-level Program)"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "6"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Add Razor/Blazor and server/client services @L34"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Register scoped app services @L47"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Configure named HttpClient 'NexusAPI' with fallback @L58"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Evaluates branch condition @L62"
|
|
},
|
|
{
|
|
"label": "Action:fallback",
|
|
"value": "Falls back to alternate path @L66"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Configure authentication and Google external login @L96"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:29:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 29,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"label": "Evaluates branch condition",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"responsibility": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "branch"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "!string.IsNullOrEmpty(apiBaseUrl)"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "true, false"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:62:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 62,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"label": "Falls back to alternate path",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "else",
|
|
"responsibility": "else",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "fallback"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "fallback"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:66:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 66,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 66,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"label": "Reads repository or persistence state",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
|
|
"responsibility": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "repository-read"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:125:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 125,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 125,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"label": "Reads repository or persistence state",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
|
|
"responsibility": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "repository-read"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:126:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 126,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 126,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"label": "Reads repository or persistence state",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "primary-runtime",
|
|
"architecturalLayer": "backend",
|
|
"summary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
|
|
"responsibility": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "repository-read"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:127:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 127,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 127,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"label": "MauiProgram",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"label": "CreateMauiApp",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"responsibility": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Signature",
|
|
"value": "() -> MauiApp"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "2"
|
|
},
|
|
{
|
|
"label": "Action:try",
|
|
"value": "Begins protected execution @L14"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Catch startup exceptions, log to Debug and rethrow @L14"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Create builder @L16"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "DEBUG-only tooling and logging @L22"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Register platform and infrastructure singletons @L28"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Register scoped identity services and auth provider @L32"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:12:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 12,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"label": "Begins protected execution",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "try",
|
|
"responsibility": "try",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "try"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:14:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 14,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"label": "Build and return app",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "return",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "return builder.Build()",
|
|
"responsibility": "return builder.Build()",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "return"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:57:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 57,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"label": "Handles exception path",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "catch (Exception ex)",
|
|
"responsibility": "catch (Exception ex)",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "catch"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "Exception ex"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "handled exception"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:59:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 59,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"label": "Throws exception",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "throw;",
|
|
"responsibility": "throw;",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "throw"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:63:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 63,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"label": "Program.cs",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "service",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap and run the NexusReader web application: configure services, authentication/authorization, middleware, database migration/seeding with retries, and declare Minimal API endpoints (knowledge, library, identity, billing/webhooks).",
|
|
"responsibility": "Critical startup validates infrastructure registration, performs DB migrations with retry/backoff and seeding, exposes knowledge endpoints guarded by token policy, handles Stripe webhook subscription lifecycle updating user records, and provisions Google external logins with new user creation and logging.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:1:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "service",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"label": "Program (top-level)",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
|
|
"responsibility": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Signature",
|
|
"value": "() -> Task (top-level Program)"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "6"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Add Razor/Blazor and server/client services @L34"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Register scoped app services @L47"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Configure named HttpClient 'NexusAPI' with fallback @L58"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Evaluates branch condition @L62"
|
|
},
|
|
{
|
|
"label": "Action:fallback",
|
|
"value": "Falls back to alternate path @L66"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Configure authentication and Google external login @L96"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:29:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 29,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"label": "Evaluates branch condition",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"responsibility": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "branch"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "!string.IsNullOrEmpty(apiBaseUrl)"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "true, false"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:62:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 62,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"label": "Falls back to alternate path",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "else",
|
|
"responsibility": "else",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "fallback"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "fallback"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:66:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 66,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 66,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"label": "Reads repository or persistence state",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
|
|
"responsibility": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "repository-read"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:125:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 125,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 125,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"label": "Reads repository or persistence state",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
|
|
"responsibility": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "repository-read"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:126:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 126,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 126,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"label": "Reads repository or persistence state",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
|
|
"responsibility": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "repository-read"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:127:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 127,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 127,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
|
|
"label": "Evaluates branch condition",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "if (isApiRequest)",
|
|
"responsibility": "if (isApiRequest)",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "branch"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "isApiRequest"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "true, false"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:129:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 129,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 129,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"label": "MauiProgram",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"label": "MauiProgram",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:10:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 10,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"label": "MauiPlatformService",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:28:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 28,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"label": "MauiStorageService",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:29:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 29,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:32:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 32,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"label": "NexusAuthenticationStateProvider (resolved)",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:33:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 33,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"label": "AuthorizationCore",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:35:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 35,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"label": "HttpClient",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:38:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 38,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"label": "ThemeService",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:41:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 41,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"label": "FocusModeService",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:42:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 42,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"label": "QuizStateService",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:43:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 43,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"label": "ReaderNavigationService",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:44:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 44,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"label": "Program.cs",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "service",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap and run the NexusReader web application: configure services, authentication/authorization, middleware, database migration/seeding with retries, and declare Minimal API endpoints (knowledge, library, identity, billing/webhooks).",
|
|
"responsibility": "Critical startup validates infrastructure registration, performs DB migrations with retry/backoff and seeding, exposes knowledge endpoints guarded by token policy, handles Stripe webhook subscription lifecycle updating user records, and provisions Google external logins with new user creation and logging.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:1:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "service",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
|
|
"label": "KnowledgeRequest",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dto",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "DTO for knowledge-related API calls containing input text and optional ebook id.",
|
|
"responsibility": "DTO for knowledge-related API calls containing input text and optional ebook id.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Shape",
|
|
"value": "dto"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "2"
|
|
},
|
|
{
|
|
"label": "Text",
|
|
"value": "string required"
|
|
},
|
|
{
|
|
"label": "EbookId",
|
|
"value": "Guid?"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:566:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 566,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 566,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
|
|
"label": "GroundednessRequest",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dto",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "DTO for verifying groundedness of an answer against context.",
|
|
"responsibility": "DTO for verifying groundedness of an answer against context.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Shape",
|
|
"value": "dto"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "2"
|
|
},
|
|
{
|
|
"label": "Answer",
|
|
"value": "string required"
|
|
},
|
|
{
|
|
"label": "Context",
|
|
"value": "string required"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:567:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 567,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 567,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
|
|
"label": "SemanticSearchRequest",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dto",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "DTO for semantic search requests.",
|
|
"responsibility": "DTO for semantic search requests.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Shape",
|
|
"value": "dto"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "2"
|
|
},
|
|
{
|
|
"label": "QueryText",
|
|
"value": "string required"
|
|
},
|
|
{
|
|
"label": "Limit",
|
|
"value": "int"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:568:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 568,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 568,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
|
|
"label": "AskQuestionRequest",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dto",
|
|
"diagramFamily": "class-diagram",
|
|
"architecturalLayer": "backend",
|
|
"summary": "DTO for asking a question against knowledge with optional ebook scope and limit.",
|
|
"responsibility": "DTO for asking a question against knowledge with optional ebook scope and limit.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Shape",
|
|
"value": "dto"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "3"
|
|
},
|
|
{
|
|
"label": "Question",
|
|
"value": "string required"
|
|
},
|
|
{
|
|
"label": "EbookId",
|
|
"value": "Guid?"
|
|
},
|
|
{
|
|
"label": "Limit",
|
|
"value": "int"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:569:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 569,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 569,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"label": "MauiProgram",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"label": "Begins protected execution",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "try",
|
|
"responsibility": "try",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "try"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:14:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 14,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"label": "Build and return app",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "return",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "return builder.Build()",
|
|
"responsibility": "return builder.Build()",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "return"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:57:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 57,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"label": "Handles exception path",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "catch (Exception ex)",
|
|
"responsibility": "catch (Exception ex)",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "catch"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "Exception ex"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "handled exception"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:59:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 59,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"label": "Throws exception",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "throw;",
|
|
"responsibility": "throw;",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "throw"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:63:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 63,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"label": "MauiProgram",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:10:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 10,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"label": "MauiPlatformService",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:28:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 28,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"label": "MauiStorageService",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:29:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 29,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:32:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 32,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"label": "NexusAuthenticationStateProvider (resolved)",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:33:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 33,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"label": "AuthorizationCore",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:35:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 35,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"label": "HttpClient",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:38:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 38,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"label": "ThemeService",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:41:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 41,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"label": "FocusModeService",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:42:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 42,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"label": "QuizStateService",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:43:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 43,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"label": "ReaderNavigationService",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstraps and configures the MAUI application: creates the MAUI host builder, registers DI services (UI, platform, identity, app services), configures MediatR and returns the built MauiApp.",
|
|
"responsibility": "CreateMauiApp centralizes MAUI DI registration; DEBUG region enables Blazor dev tools and debug logging; HttpClient points to emulator-hosted API at http://10.0.2.2:5000; AddApplication and MediatR registration wire application-layer handlers into the app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:44:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 44,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"label": "Program.cs",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "service",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap and run the NexusReader web application: configure services, authentication/authorization, middleware, database migration/seeding with retries, and declare Minimal API endpoints (knowledge, library, identity, billing/webhooks).",
|
|
"responsibility": "Critical startup validates infrastructure registration, performs DB migrations with retry/backoff and seeding, exposes knowledge endpoints guarded by token policy, handles Stripe webhook subscription lifecycle updating user records, and provisions Google external logins with new user creation and logging.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:1:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "service",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"label": "Evaluates branch condition",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "dependency-map",
|
|
"architecturalLayer": "backend",
|
|
"summary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"responsibility": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "branch"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "!string.IsNullOrEmpty(apiBaseUrl)"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "true, false"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:62:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 62,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"label": "Begins protected execution",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "try",
|
|
"responsibility": "try",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "try"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:14:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 14,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"label": "Build and return app",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "return",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "return builder.Build()",
|
|
"responsibility": "return builder.Build()",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "return"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:57:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 57,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"label": "Program (top-level)",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
|
|
"responsibility": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Signature",
|
|
"value": "() -> Task (top-level Program)"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "6"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Add Razor/Blazor and server/client services @L34"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Register scoped app services @L47"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Configure named HttpClient 'NexusAPI' with fallback @L58"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Evaluates branch condition @L62"
|
|
},
|
|
{
|
|
"label": "Action:fallback",
|
|
"value": "Falls back to alternate path @L66"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Configure authentication and Google external login @L96"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:29:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 29,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"label": "Evaluates branch condition",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"responsibility": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "branch"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "!string.IsNullOrEmpty(apiBaseUrl)"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "true, false"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:62:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 62,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"label": "Falls back to alternate path",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "else",
|
|
"responsibility": "else",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "fallback"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "fallback"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:66:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 66,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 66,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"label": "Reads repository or persistence state",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
|
|
"responsibility": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "repository-read"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:127:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 127,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 127,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
|
|
"label": "Evaluates branch condition",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "control-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "if (isApiRequest)",
|
|
"responsibility": "if (isApiRequest)",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "branch"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "isApiRequest"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "true, false"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:129:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 129,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 129,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"label": "MauiProgram",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"responsibility": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:1:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"label": "CreateMauiApp",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"responsibility": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Signature",
|
|
"value": "() -> MauiApp"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "2"
|
|
},
|
|
{
|
|
"label": "Action:try",
|
|
"value": "Begins protected execution @L14"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Catch startup exceptions, log to Debug and rethrow @L14"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Create builder @L16"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "DEBUG-only tooling and logging @L22"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Register platform and infrastructure singletons @L28"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Register scoped identity services and auth provider @L32"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:12:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 12,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"label": "Begins protected execution",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "try",
|
|
"responsibility": "try",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Service Registration",
|
|
"Dependency Injection",
|
|
"Application Bootstrap"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "MauiProgram"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "try"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Identity, Sync, Theme"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Maui/MauiProgram.cs:14:1",
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 14,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"label": "Program.cs",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "service",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Bootstrap and run the NexusReader web application: configure services, authentication/authorization, middleware, database migration/seeding with retries, and declare Minimal API endpoints (knowledge, library, identity, billing/webhooks).",
|
|
"responsibility": "Critical startup validates infrastructure registration, performs DB migrations with retry/backoff and seeding, exposes knowledge endpoints guarded by token policy, handles Stripe webhook subscription lifecycle updating user records, and provisions Google external logins with new user creation and logging.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:1:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "service",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
|
|
"label": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Return EPUB page content for an ebook index for the current user.",
|
|
"responsibility": "Return EPUB page content for an ebook index for the current user.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Signature",
|
|
"value": "(ebookId: Guid, index: int, IEpubReader epubService, ClaimsPrincipal user) -> IResult"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "1"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Maps data or transforms shape @L250"
|
|
},
|
|
{
|
|
"label": "Action:guard-clause",
|
|
"value": "Extract userId @L252"
|
|
},
|
|
{
|
|
"label": "Action:repository-read",
|
|
"value": "Reads repository or persistence state @L252"
|
|
},
|
|
{
|
|
"label": "Action:external-call",
|
|
"value": "Fetch content from epubService @L253"
|
|
},
|
|
{
|
|
"label": "Action:await",
|
|
"value": "Waits for async work @L253"
|
|
},
|
|
{
|
|
"label": "Action:guard-clause",
|
|
"value": "Guards early exit or rejection path @L255"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:250:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 250,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 250,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
|
|
"label": "Extract userId",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "var userId = user.FindFirstValue(ClaimTypes.NameIdentifier)",
|
|
"responsibility": "var userId = user.FindFirstValue(ClaimTypes.NameIdentifier)",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "guard-clause"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "user may be unauthenticated"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "continue"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:252:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 252,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 252,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
|
|
"label": "GetMyEbooks (GET /api/library/books)",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Return list of ebooks for the authenticated user via a GetMyEbooksQuery.",
|
|
"responsibility": "Return list of ebooks for the authenticated user via a GetMyEbooksQuery.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Signature",
|
|
"value": "(ClaimsPrincipal user, IMediator mediator) -> IResult"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "2"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Maps data or transforms shape @L355"
|
|
},
|
|
{
|
|
"label": "Action:guard-clause",
|
|
"value": "Ensure authenticated user @L357"
|
|
},
|
|
{
|
|
"label": "Action:repository-read",
|
|
"value": "Reads repository or persistence state @L357"
|
|
},
|
|
{
|
|
"label": "Action:guard-clause",
|
|
"value": "Guards early exit or rejection path @L358"
|
|
},
|
|
{
|
|
"label": "Action:await",
|
|
"value": "Waits for async work @L360"
|
|
},
|
|
{
|
|
"label": "Action:guard-clause",
|
|
"value": "Guards early exit or rejection path @L361"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:355:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 355,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 355,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
|
|
"label": "Ensure authenticated user",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Return Unauthorized if missing",
|
|
"responsibility": "Return Unauthorized if missing",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Minimal API",
|
|
"Startup/Composition Root",
|
|
"Local functions for webhook handling",
|
|
"Retry with exponential backoff for DB migration"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Action",
|
|
"value": "guard-clause"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "userId null/empty"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "Unauthorized, continue"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "SubscriptionPlan, Knowledge/KnowledgeService, Ebook/Library ingestion"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web/Program.cs:357:1",
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 357,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 357,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
|
|
"label": "ProUserHandler",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "dependency",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Constructor: receives and stores a DbContext factory for use by the handler.",
|
|
"responsibility": "Constructor: receives and stores a DbContext factory for use by the handler.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Authorization Handler",
|
|
"Repository/Query (EF DbContext)"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "ProUserHandler"
|
|
},
|
|
{
|
|
"label": "Signature",
|
|
"value": "(dbContextFactory: IDbContextFactory<AppDbContext>) -> void"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Store injected dependency @L17"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "User, SubscriptionPlan, AITokens / AITokenLimit"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Application/Security/Authorization/ProUserHandler.cs:1:1",
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
|
|
"label": "HandleRequirementAsync",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Core authorization logic: loads the current user from the DB and grants the requirement when the user has unlimited tokens or remaining AI token quota.",
|
|
"responsibility": "Core authorization logic: loads the current user from the DB and grants the requirement when the user has unlimited tokens or remaining AI token quota.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Authorization Handler",
|
|
"Repository/Query (EF DbContext)"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "ProUserHandler"
|
|
},
|
|
{
|
|
"label": "Signature",
|
|
"value": "(context: AuthorizationHandlerContext, requirement: ProUserRequirement) -> Task"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Read user id from ClaimsPrincipal @L24"
|
|
},
|
|
{
|
|
"label": "Action:repository-read",
|
|
"value": "Reads repository or persistence state @L24"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Evaluates branch condition @L25"
|
|
},
|
|
{
|
|
"label": "Action:guard-clause",
|
|
"value": "Reject when no user id available @L25"
|
|
},
|
|
{
|
|
"label": "Action:return",
|
|
"value": "Returns result @L27"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Create DbContext from factory (scoped local using) @L30"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "User, SubscriptionPlan, AITokens / AITokenLimit"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Application/Security/Authorization/ProUserHandler.cs:20:1",
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 20,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 20,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
|
|
"label": "Reads repository or persistence state",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "var userId = context.User.FindFirstValue(ClaimTypes.NameIdentifier);",
|
|
"responsibility": "var userId = context.User.FindFirstValue(ClaimTypes.NameIdentifier);",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"Authorization Handler",
|
|
"Repository/Query (EF DbContext)"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "ProUserHandler"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "repository-read"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "User, SubscriptionPlan, AITokens / AITokenLimit"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Application/Security/Authorization/ProUserHandler.cs:24:1",
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 24,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 24,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
|
|
"label": "AuthenticationHeaderHandler",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "class",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Delegating handler that secures outgoing HTTP calls by attaching and refreshing JWTs.",
|
|
"responsibility": "Delegating handler that secures outgoing HTTP calls by attaching and refreshing JWTs.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"HTTP DelegatingHandler",
|
|
"Token auto-refresh",
|
|
"Scoped resolution for short-lived services",
|
|
"Concurrency serialization (Semaphore)"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "AuthenticationHeaderHandler"
|
|
},
|
|
{
|
|
"label": "Shape",
|
|
"value": "model"
|
|
},
|
|
{
|
|
"label": "Fields",
|
|
"value": "4"
|
|
},
|
|
{
|
|
"label": "_storageService",
|
|
"value": "INativeStorageService required"
|
|
},
|
|
{
|
|
"label": "_serviceProvider",
|
|
"value": "IServiceProvider required"
|
|
},
|
|
{
|
|
"label": "TokenKey",
|
|
"value": "string (const) required"
|
|
},
|
|
{
|
|
"label": "_refreshSemaphore",
|
|
"value": "SemaphoreSlim (static) required"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Authentication, JWT, Token refresh"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:1:1",
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 1,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 1,
|
|
"sourceTargetKind": "dependency",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
|
|
"label": "SendAsync",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Intercepts outgoing HTTP requests to add a Bearer token for trusted origins, forwards the request, and on 401 attempts a thread-safe token refresh and optionally retries the request with the new token.",
|
|
"responsibility": "Intercepts outgoing HTTP requests to add a Bearer token for trusted origins, forwards the request, and on 401 attempts a thread-safe token refresh and optionally retries the request with the new token.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"HTTP DelegatingHandler",
|
|
"Token auto-refresh",
|
|
"Scoped resolution for short-lived services",
|
|
"Concurrency serialization (Semaphore)"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "AuthenticationHeaderHandler"
|
|
},
|
|
{
|
|
"label": "Signature",
|
|
"value": "(request: HttpRequestMessage, cancellationToken: CancellationToken) -> Task<HttpResponseMessage>"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "6"
|
|
},
|
|
{
|
|
"label": "Action:external-call",
|
|
"value": "Calls external dependency @L27"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Force browser credentials for SSR @L30"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Detect auth endpoints @L32"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Trusted host guard @L38"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Evaluates branch condition @L45"
|
|
},
|
|
{
|
|
"label": "Action:external-call",
|
|
"value": "Read stored token @L47"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Authentication, JWT, Token refresh"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:27:1",
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 27,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
|
|
"label": "Calls external dependency",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)",
|
|
"responsibility": "protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"HTTP DelegatingHandler",
|
|
"Token auto-refresh",
|
|
"Scoped resolution for short-lived services",
|
|
"Concurrency serialization (Semaphore)"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "AuthenticationHeaderHandler"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "external-call"
|
|
},
|
|
{
|
|
"label": "Signature",
|
|
"value": "(request: HttpRequestMessage, cancellationToken: CancellationToken) -> Task<HttpResponseMessage>"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "6"
|
|
},
|
|
{
|
|
"label": "Action:external-call",
|
|
"value": "Calls external dependency @L27"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Force browser credentials for SSR @L30"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Detect auth endpoints @L32"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Trusted host guard @L38"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Evaluates branch condition @L45"
|
|
},
|
|
{
|
|
"label": "Action:external-call",
|
|
"value": "Read stored token @L47"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Authentication, JWT, Token refresh"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:27:1",
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 27,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
|
|
"label": "CloneHttpRequestMessageAsync",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "method",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Creates a deep clone of an HttpRequestMessage (including content stream and headers) suitable for resending.",
|
|
"responsibility": "Creates a deep clone of an HttpRequestMessage (including content stream and headers) suitable for resending.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"HTTP DelegatingHandler",
|
|
"Token auto-refresh",
|
|
"Scoped resolution for short-lived services",
|
|
"Concurrency serialization (Semaphore)"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "AuthenticationHeaderHandler"
|
|
},
|
|
{
|
|
"label": "Signature",
|
|
"value": "(req: HttpRequestMessage) -> Task<HttpRequestMessage>"
|
|
},
|
|
{
|
|
"label": "Calls",
|
|
"value": "0"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Create new HttpRequestMessage clone @L114"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Copy content if present @L119"
|
|
},
|
|
{
|
|
"label": "Action:branch",
|
|
"value": "Evaluates branch condition @L119"
|
|
},
|
|
{
|
|
"label": "Action:mapping",
|
|
"value": "Copy content stream @L121"
|
|
},
|
|
{
|
|
"label": "Action:await",
|
|
"value": "Waits for async work @L122"
|
|
},
|
|
{
|
|
"label": "Action:loop",
|
|
"value": "Copy content headers @L126"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Authentication, JWT, Token refresh"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:112:1",
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 112,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 112,
|
|
"sourceTargetKind": "method",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
|
|
"label": "Copy content if present",
|
|
"diagramId": "method_flows_graph",
|
|
"nodeRole": "step",
|
|
"diagramFamily": "method-flow",
|
|
"architecturalLayer": "backend",
|
|
"summary": "Copy content if present",
|
|
"responsibility": "Appends JWT only for trusted origins and non-auth endpoints; transparently attempts refresh on 401 using a semaphore to avoid duplicate refreshes; resolves IIdentityService in an explicit scope and will call LogoutAsync on refresh failure; clones HttpRequestMessage to safely retry requests with new token.",
|
|
"technologyHints": [
|
|
"csharp",
|
|
"HTTP DelegatingHandler",
|
|
"Token auto-refresh",
|
|
"Scoped resolution for short-lived services",
|
|
"Concurrency serialization (Semaphore)"
|
|
],
|
|
"detailItems": [
|
|
{
|
|
"label": "Owner",
|
|
"value": "AuthenticationHeaderHandler"
|
|
},
|
|
{
|
|
"label": "Action",
|
|
"value": "branch"
|
|
},
|
|
{
|
|
"label": "Condition",
|
|
"value": "req.Content != null"
|
|
},
|
|
{
|
|
"label": "Outcomes",
|
|
"value": "copy-content, no-content"
|
|
},
|
|
{
|
|
"label": "Domain",
|
|
"value": "Authentication, JWT, Token refresh"
|
|
}
|
|
],
|
|
"navigationTargets": [
|
|
{
|
|
"key": "source",
|
|
"href": "vscode://file/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs:119:1",
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 119,
|
|
"tooltip": "Open source"
|
|
}
|
|
],
|
|
"confidence": "high",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 119,
|
|
"sourceTargetKind": "step",
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
]
|
|
}
|
|
],
|
|
"edgeMetadata": [
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"relation": "transforms",
|
|
"label": "model MauiProgram",
|
|
"semanticLabel": "model MauiProgram",
|
|
"semanticTitle": "model MauiProgram",
|
|
"collapsedLabel": "model MauiProgram",
|
|
"expandedLabel": "defines-type",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"relation": "uses",
|
|
"label": "IPlatformService",
|
|
"semanticLabel": "IPlatformService",
|
|
"semanticTitle": "IPlatformService",
|
|
"collapsedLabel": "IPlatformService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"relation": "uses",
|
|
"label": "INativeStorageService",
|
|
"semanticLabel": "INativeStorageService",
|
|
"semanticTitle": "INativeStorageService",
|
|
"collapsedLabel": "INativeStorageService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Native storage implementation for MAUI",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"relation": "uses",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"semanticLabel": "NexusAuthenticationStateProvider",
|
|
"semanticTitle": "NexusAuthenticationStateProvider",
|
|
"collapsedLabel": "NexusAuthenticationStateProvider",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Authentication state provider registered for Blazor auth",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"relation": "uses",
|
|
"label": "AuthenticationStateProvider",
|
|
"semanticLabel": "AuthenticationStateProvider",
|
|
"semanticTitle": "AuthenticationStateProvider",
|
|
"collapsedLabel": "AuthenticationStateProvider",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"relation": "uses",
|
|
"label": "Authorization",
|
|
"semanticLabel": "Authorization",
|
|
"semanticTitle": "Authorization",
|
|
"collapsedLabel": "Authorization",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Adds authorization core services",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"relation": "uses",
|
|
"label": "HttpClient",
|
|
"semanticLabel": "HttpClient",
|
|
"semanticTitle": "HttpClient",
|
|
"collapsedLabel": "HttpClient",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"relation": "uses",
|
|
"label": "IThemeService",
|
|
"semanticLabel": "IThemeService",
|
|
"semanticTitle": "IThemeService",
|
|
"collapsedLabel": "IThemeService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "UI theme management",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"relation": "uses",
|
|
"label": "IFocusModeService",
|
|
"semanticLabel": "IFocusModeService",
|
|
"semanticTitle": "IFocusModeService",
|
|
"collapsedLabel": "IFocusModeService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Focus mode UI behavior",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"relation": "uses",
|
|
"label": "IQuizStateService",
|
|
"semanticLabel": "IQuizStateService",
|
|
"semanticTitle": "IQuizStateService",
|
|
"collapsedLabel": "IQuizStateService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Quiz state tracking",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"relation": "uses",
|
|
"label": "IReaderNavigationService",
|
|
"semanticLabel": "IReaderNavigationService",
|
|
"semanticTitle": "IReaderNavigationService",
|
|
"collapsedLabel": "IReaderNavigationService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Reader navigation abstraction",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines_type_61",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
|
|
"relation": "transforms",
|
|
"label": "model ThrowingDbContextFactory",
|
|
"semanticLabel": "model ThrowingDbContextFactory",
|
|
"semanticTitle": "model ThrowingDbContextFactory",
|
|
"collapsedLabel": "model ThrowingDbContextFactory",
|
|
"expandedLabel": "defines-type",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 61,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines_type_66",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
|
|
"relation": "transforms",
|
|
"label": "model ThrowingEmbeddingGenerator",
|
|
"semanticLabel": "model ThrowingEmbeddingGenerator",
|
|
"semanticTitle": "model ThrowingEmbeddingGenerator",
|
|
"collapsedLabel": "model ThrowingEmbeddingGenerator",
|
|
"expandedLabel": "defines-type",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 66,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines_type_74",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
|
|
"relation": "transforms",
|
|
"label": "model ThrowingBookStorageService",
|
|
"semanticLabel": "model ThrowingBookStorageService",
|
|
"semanticTitle": "model ThrowingBookStorageService",
|
|
"collapsedLabel": "model ThrowingBookStorageService",
|
|
"expandedLabel": "defines-type",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines_type_84",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
|
|
"relation": "transforms",
|
|
"label": "model ThrowingEbookRepository",
|
|
"semanticLabel": "model ThrowingEbookRepository",
|
|
"semanticTitle": "model ThrowingEbookRepository",
|
|
"collapsedLabel": "model ThrowingEbookRepository",
|
|
"expandedLabel": "defines-type",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94_defines_type_94",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
|
|
"relation": "transforms",
|
|
"label": "model ThrowingSyncBroadcaster",
|
|
"semanticLabel": "model ThrowingSyncBroadcaster",
|
|
"semanticTitle": "model ThrowingSyncBroadcaster",
|
|
"collapsedLabel": "model ThrowingSyncBroadcaster",
|
|
"expandedLabel": "defines-type",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 94,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers_service_18",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
|
|
"relation": "uses",
|
|
"label": "IPlatformService",
|
|
"semanticLabel": "IPlatformService",
|
|
"semanticTitle": "IPlatformService",
|
|
"collapsedLabel": "IPlatformService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 18,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Platform abstraction for browser environment",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers_service_19",
|
|
"diagramId": "dependency_map_graph",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
|
|
"relation": "uses",
|
|
"label": "INativeStorageService",
|
|
"semanticLabel": "INativeStorageService",
|
|
"semanticTitle": "INativeStorageService",
|
|
"collapsedLabel": "INativeStorageService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 19,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Browser storage implementation",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"relation": "uses",
|
|
"label": "IPlatformService",
|
|
"semanticLabel": "IPlatformService",
|
|
"semanticTitle": "IPlatformService",
|
|
"collapsedLabel": "IPlatformService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"relation": "uses",
|
|
"label": "INativeStorageService",
|
|
"semanticLabel": "INativeStorageService",
|
|
"semanticTitle": "INativeStorageService",
|
|
"collapsedLabel": "INativeStorageService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Native storage implementation for MAUI",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"relation": "uses",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"semanticLabel": "NexusAuthenticationStateProvider",
|
|
"semanticTitle": "NexusAuthenticationStateProvider",
|
|
"collapsedLabel": "NexusAuthenticationStateProvider",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Authentication state provider registered for Blazor auth",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"relation": "uses",
|
|
"label": "AuthenticationStateProvider",
|
|
"semanticLabel": "AuthenticationStateProvider",
|
|
"semanticTitle": "AuthenticationStateProvider",
|
|
"collapsedLabel": "AuthenticationStateProvider",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"relation": "uses",
|
|
"label": "Authorization",
|
|
"semanticLabel": "Authorization",
|
|
"semanticTitle": "Authorization",
|
|
"collapsedLabel": "Authorization",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Adds authorization core services",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"relation": "uses",
|
|
"label": "HttpClient",
|
|
"semanticLabel": "HttpClient",
|
|
"semanticTitle": "HttpClient",
|
|
"collapsedLabel": "HttpClient",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"relation": "uses",
|
|
"label": "IThemeService",
|
|
"semanticLabel": "IThemeService",
|
|
"semanticTitle": "IThemeService",
|
|
"collapsedLabel": "IThemeService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "UI theme management",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"relation": "uses",
|
|
"label": "IFocusModeService",
|
|
"semanticLabel": "IFocusModeService",
|
|
"semanticTitle": "IFocusModeService",
|
|
"collapsedLabel": "IFocusModeService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Focus mode UI behavior",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"relation": "uses",
|
|
"label": "IQuizStateService",
|
|
"semanticLabel": "IQuizStateService",
|
|
"semanticTitle": "IQuizStateService",
|
|
"collapsedLabel": "IQuizStateService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Quiz state tracking",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"relation": "uses",
|
|
"label": "IReaderNavigationService",
|
|
"semanticLabel": "IReaderNavigationService",
|
|
"semanticTitle": "IReaderNavigationService",
|
|
"collapsedLabel": "IReaderNavigationService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Reader navigation abstraction",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"relation": "calls",
|
|
"label": "unknown",
|
|
"semanticLabel": "unknown",
|
|
"semanticTitle": "unknown",
|
|
"collapsedLabel": "unknown",
|
|
"expandedLabel": "configures-pipeline",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "unknown",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers_service_18",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
|
|
"relation": "uses",
|
|
"label": "IPlatformService",
|
|
"semanticLabel": "IPlatformService",
|
|
"semanticTitle": "IPlatformService",
|
|
"collapsedLabel": "IPlatformService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 18,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Platform abstraction for browser environment",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers_service_19",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
|
|
"relation": "uses",
|
|
"label": "INativeStorageService",
|
|
"semanticLabel": "INativeStorageService",
|
|
"semanticTitle": "INativeStorageService",
|
|
"collapsedLabel": "INativeStorageService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 19,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Browser storage implementation",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers_service_32",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
|
|
"relation": "uses",
|
|
"label": "IIdentityService",
|
|
"semanticLabel": "IIdentityService",
|
|
"semanticTitle": "IIdentityService",
|
|
"collapsedLabel": "IIdentityService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 32,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Client-side identity interactions",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers_service_40",
|
|
"diagramId": "startup_runtime_graph",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
|
|
"relation": "uses",
|
|
"label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
|
|
"semanticLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
|
|
"semanticTitle": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
|
|
"collapsedLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 40,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "HTTP message handler registered for adding auth headers",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"relation": "calls",
|
|
"label": "CreateMauiApp",
|
|
"semanticLabel": "CreateMauiApp",
|
|
"semanticTitle": "CreateMauiApp",
|
|
"collapsedLabel": "CreateMauiApp",
|
|
"expandedLabel": "handles-route",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"relation": "calls",
|
|
"label": "Begins protected execution",
|
|
"semanticLabel": "Begins protected execution",
|
|
"semanticTitle": "Begins protected execution",
|
|
"collapsedLabel": "Begins protected execution",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "try",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"relation": "returns",
|
|
"label": "Build and return app",
|
|
"semanticLabel": "Build and return app",
|
|
"semanticTitle": "Build and return app",
|
|
"collapsedLabel": "Build and return app",
|
|
"expandedLabel": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return-source",
|
|
"outputSummary": "return builder.Build()",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"relation": "returns",
|
|
"label": "Returns result",
|
|
"semanticLabel": "Returns result",
|
|
"semanticTitle": "Returns result",
|
|
"collapsedLabel": "Returns result",
|
|
"expandedLabel": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return-source",
|
|
"outputSummary": "return builder.Build();",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"relation": "calls",
|
|
"label": "handled exception",
|
|
"semanticLabel": "handled exception",
|
|
"semanticTitle": "handled exception",
|
|
"collapsedLabel": "handled exception",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "catch (Exception ex)",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"relation": "calls",
|
|
"label": "Throws exception",
|
|
"semanticLabel": "Throws exception",
|
|
"semanticTitle": "Throws exception",
|
|
"collapsedLabel": "Throws exception",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "throw;",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"relation": "transforms",
|
|
"label": "model MauiProgram",
|
|
"semanticLabel": "model MauiProgram",
|
|
"semanticTitle": "model MauiProgram",
|
|
"collapsedLabel": "model MauiProgram",
|
|
"expandedLabel": "defines-type",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"relation": "uses",
|
|
"label": "IPlatformService",
|
|
"semanticLabel": "IPlatformService",
|
|
"semanticTitle": "IPlatformService",
|
|
"collapsedLabel": "IPlatformService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"relation": "uses",
|
|
"label": "INativeStorageService",
|
|
"semanticLabel": "INativeStorageService",
|
|
"semanticTitle": "INativeStorageService",
|
|
"collapsedLabel": "INativeStorageService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Native storage implementation for MAUI",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"relation": "uses",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"semanticLabel": "NexusAuthenticationStateProvider",
|
|
"semanticTitle": "NexusAuthenticationStateProvider",
|
|
"collapsedLabel": "NexusAuthenticationStateProvider",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Authentication state provider registered for Blazor auth",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"relation": "uses",
|
|
"label": "AuthenticationStateProvider",
|
|
"semanticLabel": "AuthenticationStateProvider",
|
|
"semanticTitle": "AuthenticationStateProvider",
|
|
"collapsedLabel": "AuthenticationStateProvider",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"relation": "uses",
|
|
"label": "Authorization",
|
|
"semanticLabel": "Authorization",
|
|
"semanticTitle": "Authorization",
|
|
"collapsedLabel": "Authorization",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Adds authorization core services",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"relation": "uses",
|
|
"label": "HttpClient",
|
|
"semanticLabel": "HttpClient",
|
|
"semanticTitle": "HttpClient",
|
|
"collapsedLabel": "HttpClient",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"relation": "uses",
|
|
"label": "IThemeService",
|
|
"semanticLabel": "IThemeService",
|
|
"semanticTitle": "IThemeService",
|
|
"collapsedLabel": "IThemeService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "UI theme management",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"relation": "uses",
|
|
"label": "IFocusModeService",
|
|
"semanticLabel": "IFocusModeService",
|
|
"semanticTitle": "IFocusModeService",
|
|
"collapsedLabel": "IFocusModeService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Focus mode UI behavior",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"relation": "uses",
|
|
"label": "IQuizStateService",
|
|
"semanticLabel": "IQuizStateService",
|
|
"semanticTitle": "IQuizStateService",
|
|
"collapsedLabel": "IQuizStateService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Quiz state tracking",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"relation": "uses",
|
|
"label": "IReaderNavigationService",
|
|
"semanticLabel": "IReaderNavigationService",
|
|
"semanticTitle": "IReaderNavigationService",
|
|
"collapsedLabel": "IReaderNavigationService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Reader navigation abstraction",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"relation": "calls",
|
|
"label": "unknown",
|
|
"semanticLabel": "unknown",
|
|
"semanticTitle": "unknown",
|
|
"collapsedLabel": "unknown",
|
|
"expandedLabel": "configures-pipeline",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "unknown",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_program_top_level_29_invokes_29",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"relation": "calls",
|
|
"label": "Program top-level",
|
|
"semanticLabel": "Program (top-level)",
|
|
"semanticTitle": "Program (top-level)",
|
|
"collapsedLabel": "Program top-level",
|
|
"expandedLabel": "handles-route",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"relation": "calls",
|
|
"label": "true / false",
|
|
"semanticLabel": "true / false",
|
|
"semanticTitle": "true / false",
|
|
"collapsedLabel": "true / false",
|
|
"expandedLabel": "evaluates-condition",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"relation": "calls",
|
|
"label": "fallback",
|
|
"semanticLabel": "fallback",
|
|
"semanticTitle": "fallback",
|
|
"collapsedLabel": "fallback",
|
|
"expandedLabel": "falls-back",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 66,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "else",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"relation": "calls",
|
|
"label": "Reads repository or persistence state",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"semanticTitle": "Reads repository or persistence state",
|
|
"collapsedLabel": "Reads repository or persistence state",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 125,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"relation": "calls",
|
|
"label": "Reads repository or persistence state",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"semanticTitle": "Reads repository or persistence state",
|
|
"collapsedLabel": "Reads repository or persistence state",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 126,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
|
|
"diagramId": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"relation": "calls",
|
|
"label": "Reads repository or persistence state",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"semanticTitle": "Reads repository or persistence state",
|
|
"collapsedLabel": "Reads repository or persistence state",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 127,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"relation": "calls",
|
|
"label": "Begins protected execution",
|
|
"semanticLabel": "Begins protected execution",
|
|
"semanticTitle": "Begins protected execution",
|
|
"collapsedLabel": "Begins protected execution",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "try",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"relation": "returns",
|
|
"label": "Build and return app",
|
|
"semanticLabel": "Build and return app",
|
|
"semanticTitle": "Build and return app",
|
|
"collapsedLabel": "Build and return app",
|
|
"expandedLabel": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return-source",
|
|
"outputSummary": "return builder.Build()",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"relation": "returns",
|
|
"label": "Returns result",
|
|
"semanticLabel": "Returns result",
|
|
"semanticTitle": "Returns result",
|
|
"collapsedLabel": "Returns result",
|
|
"expandedLabel": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return-source",
|
|
"outputSummary": "return builder.Build();",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"relation": "calls",
|
|
"label": "handled exception",
|
|
"semanticLabel": "handled exception",
|
|
"semanticTitle": "handled exception",
|
|
"collapsedLabel": "handled exception",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "catch (Exception ex)",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"relation": "calls",
|
|
"label": "Throws exception",
|
|
"semanticLabel": "Throws exception",
|
|
"semanticTitle": "Throws exception",
|
|
"collapsedLabel": "Throws exception",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "throw;",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"relation": "calls",
|
|
"label": "true / false",
|
|
"semanticLabel": "true / false",
|
|
"semanticTitle": "true / false",
|
|
"collapsedLabel": "true / false",
|
|
"expandedLabel": "evaluates-condition",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"relation": "calls",
|
|
"label": "fallback",
|
|
"semanticLabel": "fallback",
|
|
"semanticTitle": "fallback",
|
|
"collapsedLabel": "fallback",
|
|
"expandedLabel": "falls-back",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 66,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "else",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"relation": "calls",
|
|
"label": "Reads repository or persistence state",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"semanticTitle": "Reads repository or persistence state",
|
|
"collapsedLabel": "Reads repository or persistence state",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 125,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"relation": "calls",
|
|
"label": "Reads repository or persistence state",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"semanticTitle": "Reads repository or persistence state",
|
|
"collapsedLabel": "Reads repository or persistence state",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 126,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"relation": "calls",
|
|
"label": "Reads repository or persistence state",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"semanticTitle": "Reads repository or persistence state",
|
|
"collapsedLabel": "Reads repository or persistence state",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 127,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates_condition_129",
|
|
"diagramId": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
|
|
"relation": "calls",
|
|
"label": "true / false",
|
|
"semanticLabel": "true / false",
|
|
"semanticTitle": "true / false",
|
|
"collapsedLabel": "true / false",
|
|
"expandedLabel": "evaluates-condition",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 129,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "if (isApiRequest)",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"relation": "transforms",
|
|
"label": "model MauiProgram",
|
|
"semanticLabel": "model MauiProgram",
|
|
"semanticTitle": "model MauiProgram",
|
|
"collapsedLabel": "model MauiProgram",
|
|
"expandedLabel": "defines-type",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_knowledgerequest_566_maps_dto_566",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
|
|
"relation": "transforms",
|
|
"label": "dto KnowledgeRequest",
|
|
"semanticLabel": "dto KnowledgeRequest",
|
|
"semanticTitle": "dto KnowledgeRequest",
|
|
"collapsedLabel": "dto KnowledgeRequest",
|
|
"expandedLabel": "maps-dto",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 566,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "DTO for knowledge-related API calls containing input text and optional ebook id.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_groundednessrequest_567_maps_dto_567",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
|
|
"relation": "transforms",
|
|
"label": "dto GroundednessRequest",
|
|
"semanticLabel": "dto GroundednessRequest",
|
|
"semanticTitle": "dto GroundednessRequest",
|
|
"collapsedLabel": "dto GroundednessRequest",
|
|
"expandedLabel": "maps-dto",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 567,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "DTO for verifying groundedness of an answer against context.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_semanticsearchrequest_568_maps_dto_568",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
|
|
"relation": "transforms",
|
|
"label": "dto SemanticSearchRequest",
|
|
"semanticLabel": "dto SemanticSearchRequest",
|
|
"semanticTitle": "dto SemanticSearchRequest",
|
|
"collapsedLabel": "dto SemanticSearchRequest",
|
|
"expandedLabel": "maps-dto",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 568,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "DTO for semantic search requests.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_askquestionrequest_569_maps_dto_569",
|
|
"diagramId": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
|
|
"relation": "transforms",
|
|
"label": "dto AskQuestionRequest",
|
|
"semanticLabel": "dto AskQuestionRequest",
|
|
"semanticTitle": "dto AskQuestionRequest",
|
|
"collapsedLabel": "dto AskQuestionRequest",
|
|
"expandedLabel": "maps-dto",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 569,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "DTO for asking a question against knowledge with optional ebook scope and limit.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"relation": "returns",
|
|
"label": "Build and return app",
|
|
"semanticLabel": "Build and return app",
|
|
"semanticTitle": "Build and return app",
|
|
"collapsedLabel": "Build and return app",
|
|
"expandedLabel": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return-source",
|
|
"outputSummary": "return builder.Build()",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"relation": "returns",
|
|
"label": "Returns result",
|
|
"semanticLabel": "Returns result",
|
|
"semanticTitle": "Returns result",
|
|
"collapsedLabel": "Returns result",
|
|
"expandedLabel": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return-source",
|
|
"outputSummary": "return builder.Build();",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"relation": "calls",
|
|
"label": "handled exception",
|
|
"semanticLabel": "handled exception",
|
|
"semanticTitle": "handled exception",
|
|
"collapsedLabel": "handled exception",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "catch (Exception ex)",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"relation": "calls",
|
|
"label": "Throws exception",
|
|
"semanticLabel": "Throws exception",
|
|
"semanticTitle": "Throws exception",
|
|
"collapsedLabel": "Throws exception",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "throw;",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"relation": "transforms",
|
|
"label": "model MauiProgram",
|
|
"semanticLabel": "model MauiProgram",
|
|
"semanticTitle": "model MauiProgram",
|
|
"collapsedLabel": "model MauiProgram",
|
|
"expandedLabel": "defines-type",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"relation": "uses",
|
|
"label": "IPlatformService",
|
|
"semanticLabel": "IPlatformService",
|
|
"semanticTitle": "IPlatformService",
|
|
"collapsedLabel": "IPlatformService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"relation": "uses",
|
|
"label": "INativeStorageService",
|
|
"semanticLabel": "INativeStorageService",
|
|
"semanticTitle": "INativeStorageService",
|
|
"collapsedLabel": "INativeStorageService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Native storage implementation for MAUI",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"relation": "uses",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"semanticLabel": "NexusAuthenticationStateProvider",
|
|
"semanticTitle": "NexusAuthenticationStateProvider",
|
|
"collapsedLabel": "NexusAuthenticationStateProvider",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Authentication state provider registered for Blazor auth",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"relation": "uses",
|
|
"label": "AuthenticationStateProvider",
|
|
"semanticLabel": "AuthenticationStateProvider",
|
|
"semanticTitle": "AuthenticationStateProvider",
|
|
"collapsedLabel": "AuthenticationStateProvider",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"relation": "uses",
|
|
"label": "Authorization",
|
|
"semanticLabel": "Authorization",
|
|
"semanticTitle": "Authorization",
|
|
"collapsedLabel": "Authorization",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Adds authorization core services",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"relation": "uses",
|
|
"label": "HttpClient",
|
|
"semanticLabel": "HttpClient",
|
|
"semanticTitle": "HttpClient",
|
|
"collapsedLabel": "HttpClient",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"relation": "uses",
|
|
"label": "IThemeService",
|
|
"semanticLabel": "IThemeService",
|
|
"semanticTitle": "IThemeService",
|
|
"collapsedLabel": "IThemeService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "UI theme management",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"relation": "uses",
|
|
"label": "IFocusModeService",
|
|
"semanticLabel": "IFocusModeService",
|
|
"semanticTitle": "IFocusModeService",
|
|
"collapsedLabel": "IFocusModeService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Focus mode UI behavior",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"relation": "uses",
|
|
"label": "IQuizStateService",
|
|
"semanticLabel": "IQuizStateService",
|
|
"semanticTitle": "IQuizStateService",
|
|
"collapsedLabel": "IQuizStateService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Quiz state tracking",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
|
|
"diagramId": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"relation": "uses",
|
|
"label": "IReaderNavigationService",
|
|
"semanticLabel": "IReaderNavigationService",
|
|
"semanticTitle": "IReaderNavigationService",
|
|
"collapsedLabel": "IReaderNavigationService",
|
|
"expandedLabel": "registers-service",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Reader navigation abstraction",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"relation": "returns",
|
|
"label": "Build and return app",
|
|
"semanticLabel": "Build and return app",
|
|
"semanticTitle": "Build and return app",
|
|
"collapsedLabel": "Build and return app",
|
|
"expandedLabel": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return-source",
|
|
"outputSummary": "return builder.Build()",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"relation": "returns",
|
|
"label": "Returns result",
|
|
"semanticLabel": "Returns result",
|
|
"semanticTitle": "Returns result",
|
|
"collapsedLabel": "Returns result",
|
|
"expandedLabel": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"sourceTargetKind": "return-source",
|
|
"outputSummary": "return builder.Build();",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"relation": "calls",
|
|
"label": "true / false",
|
|
"semanticLabel": "true / false",
|
|
"semanticTitle": "true / false",
|
|
"collapsedLabel": "true / false",
|
|
"expandedLabel": "evaluates-condition",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"relation": "calls",
|
|
"label": "fallback",
|
|
"semanticLabel": "fallback",
|
|
"semanticTitle": "fallback",
|
|
"collapsedLabel": "fallback",
|
|
"expandedLabel": "falls-back",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 66,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "else",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates_condition_129",
|
|
"diagramId": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
|
|
"relation": "calls",
|
|
"label": "true / false",
|
|
"semanticLabel": "true / false",
|
|
"semanticTitle": "true / false",
|
|
"collapsedLabel": "true / false",
|
|
"expandedLabel": "evaluates-condition",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 129,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "if (isApiRequest)",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"relation": "calls",
|
|
"label": "CreateMauiApp",
|
|
"semanticLabel": "CreateMauiApp",
|
|
"semanticTitle": "CreateMauiApp",
|
|
"collapsedLabel": "CreateMauiApp",
|
|
"expandedLabel": "handles-route",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"relation": "calls",
|
|
"label": "Begins protected execution",
|
|
"semanticLabel": "Begins protected execution",
|
|
"semanticTitle": "Begins protected execution",
|
|
"collapsedLabel": "Begins protected execution",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "try",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"relation": "calls",
|
|
"label": "unknown",
|
|
"semanticLabel": "unknown",
|
|
"semanticTitle": "unknown",
|
|
"collapsedLabel": "unknown",
|
|
"expandedLabel": "configures-pipeline",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "unknown",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_invokes_250",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
|
|
"relation": "calls",
|
|
"label": "GetEpubContent GET / api / epub / ebookId / index",
|
|
"semanticLabel": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
|
|
"semanticTitle": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
|
|
"collapsedLabel": "GetEpubContent GET / api / epub / ebookId / index",
|
|
"expandedLabel": "handles-route",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 250,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Return EPUB page content for an ebook index for the current user.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252_evaluates_condition_252",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
|
|
"to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
|
|
"relation": "calls",
|
|
"label": "continue",
|
|
"semanticLabel": "continue",
|
|
"semanticTitle": "continue",
|
|
"collapsedLabel": "continue",
|
|
"expandedLabel": "evaluates-condition",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 252,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "var userId = user.FindFirstValue(ClaimTypes.NameIdentifier)",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_invokes_355",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
|
|
"relation": "calls",
|
|
"label": "GetMyEbooks GET / api / library / books",
|
|
"semanticLabel": "GetMyEbooks (GET /api/library/books)",
|
|
"semanticTitle": "GetMyEbooks (GET /api/library/books)",
|
|
"collapsedLabel": "GetMyEbooks GET / api / library / books",
|
|
"expandedLabel": "handles-route",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 355,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Return list of ebooks for the authenticated user via a GetMyEbooksQuery.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357_evaluates_condition_357",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
|
|
"to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
|
|
"relation": "calls",
|
|
"label": "Unauthorized / continue",
|
|
"semanticLabel": "Unauthorized / continue",
|
|
"semanticTitle": "Unauthorized / continue",
|
|
"collapsedLabel": "Unauthorized / continue",
|
|
"expandedLabel": "evaluates-condition",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 357,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Return Unauthorized if missing",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_invokes_20",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
|
|
"to": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
|
|
"relation": "calls",
|
|
"label": "HandleRequirementAsync",
|
|
"semanticLabel": "HandleRequirementAsync",
|
|
"semanticTitle": "HandleRequirementAsync",
|
|
"collapsedLabel": "HandleRequirementAsync",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 20,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Core authorization logic: loads the current user from the DB and grants the requirement when the user has unlimited tokens or remaining AI token quota.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24_invokes_24",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
|
|
"relation": "calls",
|
|
"label": "Reads repository or persistence state",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"semanticTitle": "Reads repository or persistence state",
|
|
"collapsedLabel": "Reads repository or persistence state",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 24,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "var userId = context.User.FindFirstValue(ClaimTypes.NameIdentifier);",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_invokes_27",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
|
|
"relation": "calls",
|
|
"label": "SendAsync",
|
|
"semanticLabel": "SendAsync",
|
|
"semanticTitle": "SendAsync",
|
|
"collapsedLabel": "SendAsync",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Intercepts outgoing HTTP requests to add a Bearer token for trusted origins, forwards the request, and on 401 attempts a thread-safe token refresh and optionally retries the request with the new token.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_invokes_27",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
|
|
"relation": "calls",
|
|
"label": "Calls external dependency",
|
|
"semanticLabel": "Calls external dependency",
|
|
"semanticTitle": "Calls external dependency",
|
|
"collapsedLabel": "Calls external dependency",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_invokes_112",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
|
|
"relation": "calls",
|
|
"label": "CloneHttpRequestMessageAsync",
|
|
"semanticLabel": "CloneHttpRequestMessageAsync",
|
|
"semanticTitle": "CloneHttpRequestMessageAsync",
|
|
"collapsedLabel": "CloneHttpRequestMessageAsync",
|
|
"expandedLabel": "invokes",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 112,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Creates a deep clone of an HttpRequestMessage (including content stream and headers) suitable for resending.",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119_evaluates_condition_119",
|
|
"diagramId": "method_flows_graph",
|
|
"from": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
|
|
"relation": "calls",
|
|
"label": "copy-content / no-content",
|
|
"semanticLabel": "copy-content / no-content",
|
|
"semanticTitle": "copy-content / no-content",
|
|
"collapsedLabel": "copy-content / no-content",
|
|
"expandedLabel": "evaluates-condition",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 119,
|
|
"sourceTargetKind": "call-site",
|
|
"outputSummary": "Copy content if present",
|
|
"inputTypePaths": [],
|
|
"outputTypePaths": [],
|
|
"evidencePaths": [
|
|
"c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
]
|
|
}
|
|
],
|
|
"contextBagDebug": {
|
|
"id": "business_overview_md",
|
|
"bagType": "module",
|
|
"title": "Business Overview context bag",
|
|
"anchorFiles": [
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"includedFiles": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"reason": "Selected as an entrypoint anchor for this flow scope",
|
|
"source": "entrypoint"
|
|
},
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"reason": "Selected as an entrypoint anchor for this flow scope",
|
|
"source": "entrypoint"
|
|
},
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"reason": "Selected as an entrypoint anchor for this flow scope",
|
|
"source": "entrypoint"
|
|
},
|
|
{
|
|
"path": "NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"reason": "Included because it likely stabilizes the contracts or business data in this scope",
|
|
"source": "type-reference"
|
|
},
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"reason": "Included because it likely participates in the core orchestration path",
|
|
"source": "scope"
|
|
},
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"reason": "Included because it belongs to the resolved document scope",
|
|
"source": "scope"
|
|
},
|
|
{
|
|
"path": "NexusReader.Domain/Entities/Author.cs",
|
|
"reason": "Included because it belongs to the resolved document scope",
|
|
"source": "scope"
|
|
},
|
|
{
|
|
"path": "NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"reason": "Included because it belongs to the resolved document scope",
|
|
"source": "scope"
|
|
},
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"reason": "Included because it likely participates in the core orchestration path",
|
|
"source": "scope"
|
|
},
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"reason": "Included because it belongs to the resolved document scope",
|
|
"source": "scope"
|
|
},
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"reason": "Included because it belongs to the resolved document scope",
|
|
"source": "scope"
|
|
},
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"reason": "Included because it belongs to the resolved document scope",
|
|
"source": "scope"
|
|
},
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"reason": "Included because it likely stabilizes the contracts or business data in this scope",
|
|
"source": "type-reference"
|
|
},
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"reason": "Included because it likely stabilizes the contracts or business data in this scope",
|
|
"source": "type-reference"
|
|
},
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
|
|
"reason": "Included because it likely stabilizes the contracts or business data in this scope",
|
|
"source": "type-reference"
|
|
},
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"reason": "Included because it is called by an anchor method (call-chain widening)",
|
|
"source": "call-chain"
|
|
}
|
|
],
|
|
"relatedDomains": [
|
|
"auth",
|
|
"account"
|
|
],
|
|
"relatedEntrypoints": [
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"confidence": 0.75
|
|
},
|
|
"flowGraph": {
|
|
"contextBagId": "business_overview_md",
|
|
"nodes": [
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"label": "MauiProgram",
|
|
"role": "program-entry",
|
|
"layer": "unknown",
|
|
"kind": "entrypoint",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"label": "CreateMauiApp",
|
|
"role": "program-entry",
|
|
"layer": "unknown",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 12
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"label": "Begins protected execution",
|
|
"role": "program-entry",
|
|
"layer": "unknown",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 14
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"label": "Build and return app",
|
|
"role": "program-entry",
|
|
"layer": "unknown",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 57
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"label": "Handles exception path",
|
|
"role": "program-entry",
|
|
"layer": "unknown",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 59
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"label": "Throws exception",
|
|
"role": "program-entry",
|
|
"layer": "unknown",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 63
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"label": "MauiProgram",
|
|
"role": "unknown",
|
|
"layer": "unknown",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 10
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"label": "MauiPlatformService",
|
|
"role": "service",
|
|
"layer": "unknown",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 28
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"label": "MauiStorageService",
|
|
"role": "service",
|
|
"layer": "unknown",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 29
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"role": "service",
|
|
"layer": "unknown",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 32
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"label": "NexusAuthenticationStateProvider (resolved)",
|
|
"role": "service",
|
|
"layer": "unknown",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 33
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"label": "AuthorizationCore",
|
|
"role": "service",
|
|
"layer": "unknown",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 35
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"label": "HttpClient",
|
|
"role": "service",
|
|
"layer": "unknown",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 38
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"label": "ThemeService",
|
|
"role": "service",
|
|
"layer": "unknown",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 41
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"label": "FocusModeService",
|
|
"role": "service",
|
|
"layer": "unknown",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 42
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"label": "QuizStateService",
|
|
"role": "service",
|
|
"layer": "unknown",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 43
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"label": "ReaderNavigationService",
|
|
"role": "service",
|
|
"layer": "unknown",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 44
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"label": "Program.cs",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "entrypoint",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_program_top_level_15",
|
|
"label": "Program (top-level)",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 15,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 15
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_program_top_level_await_59_59",
|
|
"label": "Waits for async work",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 59,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 59
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
|
|
"label": "CreateDbContext",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 61,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 61
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_createdbcontext_throw_63_63",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 63,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 63
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_generateasync_69",
|
|
"label": "GenerateAsync",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 69,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 69
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_generateasync_throw_70_70",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 70,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 70
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_getservice_71",
|
|
"label": "GetService",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 71,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 71
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_getservice_return_71_71",
|
|
"label": "Return null",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 71,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 71
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
|
|
"label": "SaveEbookAsync (byte[])",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_79_79",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
|
|
"label": "SaveEbookAsync (Stream)",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_79_79",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_80_80",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 80,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 80
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
|
|
"label": "SaveCoverAsync (byte[])",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_79_79",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_80_80",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 80,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 80
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_81_81",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 81,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 81
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
|
|
"label": "SaveCoverAsync (Stream)",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_79_79",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_80_80",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 80,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 80
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_81_81",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 81,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 81
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
|
|
"label": "FindAuthorByNameAsync",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_88_88",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_89_89",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_addauthor_84",
|
|
"label": "AddAuthor",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_88_88",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_89_89",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_90_90",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 90,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 90
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_addebook_84",
|
|
"label": "AddEbook",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_addebook_throw_88_88",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_addebook_throw_89_89",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_addebook_throw_90_90",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 90,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 90
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_addebook_throw_91_91",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 91,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 91
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
|
|
"label": "SaveChangesAsync",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_88_88",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_89_89",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_90_90",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 90,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 90
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_91_91",
|
|
"label": "Throws exception",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 91,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 91
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
|
|
"label": "ThrowingDbContextFactory",
|
|
"role": "unknown",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 61,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 61
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
|
|
"label": "ThrowingEmbeddingGenerator",
|
|
"role": "unknown",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 66,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 66
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
|
|
"label": "ThrowingBookStorageService",
|
|
"role": "unknown",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
|
|
"label": "ThrowingEbookRepository",
|
|
"role": "unknown",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
|
|
"label": "ThrowingSyncBroadcaster",
|
|
"role": "unknown",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 94,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 94
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
|
|
"label": "WebPlatformService",
|
|
"role": "service",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 18,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 18
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
|
|
"label": "WebStorageService",
|
|
"role": "service",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 19,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 19
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
|
|
"label": "IdentityService",
|
|
"role": "service",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 32,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 32
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
|
|
"label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
|
|
"role": "service",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 40,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 40
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
|
|
"label": "ThrowingDbContextFactory",
|
|
"role": "service",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 49,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 49
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
|
|
"label": "NexusReader.Application (extension)",
|
|
"role": "service",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 55,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 55
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
|
|
"label": "BuildAndRun",
|
|
"role": "startup",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 59,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 59
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"label": "Program.cs",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "entrypoint",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"label": "Program (top-level)",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 29,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 29
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 62
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"label": "Falls back to alternate path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 66,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 66
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 125,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 125
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 126,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 126
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 127,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 127
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 129,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 129
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_131_131",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 131,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 131
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_133_133",
|
|
"label": "Falls back to alternate path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 133,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 133
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_135_135",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 135,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 135
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_137_137",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 137,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 137
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_166_166",
|
|
"label": "Startup DI validation for infrastructure marker",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 166,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 166
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_169_169",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 169,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 169
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_throw_171_171",
|
|
"label": "Throws exception",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 171,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 171
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_validation_171_171",
|
|
"label": "Validates input or state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 171,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 171
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_181_181",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 181,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 181
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_loop_186_186",
|
|
"label": "Repeats work over a collection or condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 186,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 186
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_try_188_188",
|
|
"label": "Begins protected execution",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 188,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 188
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_190_190",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 190,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 190
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_195_195",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 195,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 195
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_196_196",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 196,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 196
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_198_198",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 198,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 198
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_catch_204_204",
|
|
"label": "Handles exception path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 204,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 204
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_206_206",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 206,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 206
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_log_206_206",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 206,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 206
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_log_208_208",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 208,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 208
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_211_211",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 211,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 211
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_catch_214_214",
|
|
"label": "Handles exception path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 214,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 214
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_216_216",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 216,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 216
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_log_216_216",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 216,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 216
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_log_218_218",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 218,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 218
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_throw_220_220",
|
|
"label": "Throws exception",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 220,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 220
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_226_226",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 226,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 226
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_230_230",
|
|
"label": "Falls back to alternate path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 230,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 230
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_237_237",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 237,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 237
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_252_252",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 252,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 252
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_253_253",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 253,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 253
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_255_255",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 255,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 255
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_258_258",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 258,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 258
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_267_267",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 267,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 267
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_268_268",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 268,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 268
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_269_269",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 269,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 269
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_270_270",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 270,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 270
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_275_275",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 275,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 275
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_276_276",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 276,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 276
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_277_277",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 277,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 277
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_278_278",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 278,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 278
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_283_283",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 283,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 283
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_284_284",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 284,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 284
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_285_285",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 285,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 285
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_286_286",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 286,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 286
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_291_291",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 291,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 291
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_292_292",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 292,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 292
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_293_293",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 293,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 293
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_294_294",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 294,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 294
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_299_299",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 299,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 299
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_300_300",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 300,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 300
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_301_301",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 301,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 301
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_302_302",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 302,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 302
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_307_307",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 307,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 307
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_308_308",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 308,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 308
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_309_309",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 309,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 309
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_310_310",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 310,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 310
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_315_315",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 315,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 315
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_316_316",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 316,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 316
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_317_317",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 317,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 317
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_318_318",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 318,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 318
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_323_323",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 323,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 323
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_324_324",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 324,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 324
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_327_327",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 327,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 327
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_332_332",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 332,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 332
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_333_333",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 333,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 333
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_349_349",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 349,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 349
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_350_350",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 350,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 350
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_352_352",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 352,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 352
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_352_352",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 352,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 352
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_357_357",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 357,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 357
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_358_358",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 358,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 358
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_360_360",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 360,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 360
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_361_361",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 361,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 361
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_364_364",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 364,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 364
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_373_373",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 373,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 373
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_374_374",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 374,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 374
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_374_374",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 374,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 374
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_try_377_377",
|
|
"label": "Begins protected execution",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 377,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 377
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_381_381",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 381,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 381
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_switch_385_385",
|
|
"label": "Branches across multiple outcomes",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 385,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 385
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_389_389",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 389,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 389
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_394_394",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 394,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 394
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_399_399",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 399,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 399
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_402_402",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 402,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 402
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_catch_404_404",
|
|
"label": "Handles exception path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 404,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 404
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_406_406",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 406,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 406
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_416_416",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 416,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 416
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_418_418",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 418,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 418
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_418_418",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 418,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 418
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_419_419",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 419,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 419
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_422_422",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 422,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 422
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_424_424",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 424,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 424
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_430_430",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 430,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 430
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_439_439",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 439,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 439
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_441_441",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 441,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 441
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_441_441",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 441,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 441
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_442_442",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 442,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 442
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_444_444",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 444,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 444
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_444_444",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 444,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 444
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_447_447",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 447,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 447
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_460_460",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 460,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 460
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_469_469",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 469,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 469
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_470_470",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 470,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 470
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_log_472_472",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 472,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 472
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_473_473",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 473,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 473
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_476_476",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 476,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 476
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_477_477",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 477,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 477
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_479_479",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 479,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 479
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_480_480",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 480,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 480
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_483_483",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 483,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 483
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_log_485_485",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 485,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 485
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_485_485",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 485,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 485
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_486_486",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 486,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 486
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_490_490",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 490,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 490
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_491_491",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 491,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 491
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_494_494",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 494,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 494
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_496_496",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 496,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 496
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_498_498",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 498,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 498
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_499_499",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 499,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 499
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_501_501",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 501,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 501
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_loop_505_505",
|
|
"label": "Repeats work over a collection or condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 505,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 505
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_log_507_507",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 507,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 507
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_510_510",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 510,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 510
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_512_512",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 512,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 512
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_log_516_516",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 516,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 516
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_517_517",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 517,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 517
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_528_528",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 528,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 528
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_529_529",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 529,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 529
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_532_532",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 532,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 532
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_536_536",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 536,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 536
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_543_543",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 543,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 543
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_545_545",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 545,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 545
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_550_550",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 550,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 550
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_551_551",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 551,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 551
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_await_553_553",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 553,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 553
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_554_554",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 554,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 554
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_554_554",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 554,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 554
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_return_556_556",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 556,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 556
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
|
|
"label": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 250,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 250
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
|
|
"label": "Extract userId",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 252,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 252
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_repository_read_252_252",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 252,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 252
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_await_253_253",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 253,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 253
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_255_255",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 255,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 255
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_branch_255_255",
|
|
"label": "Return OK or BadRequest based on result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 255,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 255
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_return_258_258",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 258,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 258
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261",
|
|
"label": "Knowledge API group mappings",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 261,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 261
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 267,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 267
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_267_267",
|
|
"label": "Resolve tenantId",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 267,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 267
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_268_268",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 268,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 268
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_269_269",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 269,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 269
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_branch_269_269",
|
|
"label": "Return OK or BadRequest on service result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 269,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 269
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_270_270",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 270,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 270
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_275_275",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 275,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 275
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_276_276",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 276,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 276
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_277_277",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 277,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 277
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_278_278",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 278,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 278
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_283_283",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 283,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 283
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_284_284",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 284,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 284
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_285_285",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 285,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 285
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_286_286",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 286,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 286
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_291_291",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 291,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 291
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_292_292",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 292,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 292
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_293_293",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 293,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 293
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_294_294",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 294,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 294
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_299_299",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 299,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 299
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_300_300",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 300,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 300
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_301_301",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 301,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 301
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_302_302",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 302,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 302
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_307_307",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 307,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 307
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_308_308",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 308,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 308
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_309_309",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 309,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 309
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_310_310",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 310,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 310
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_315_315",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 315,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 315
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_316_316",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 316,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 316
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_317_317",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 317,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 317
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_318_318",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 318,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 318
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_323_323",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 323,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 323
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_324_324",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 324,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 324
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_327_327",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 327,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 327
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330",
|
|
"label": "IngestEbook (POST /api/library/ingest)",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 330,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 330
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332",
|
|
"label": "Ensure authenticated user",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 332,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 332
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_332_332",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 332,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 332
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_333_333",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 333,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 333
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_await_349_349",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 349,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 349
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_350_350",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 350,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 350
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_352_352",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 352,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 352
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_return_352_352",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 352,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 352
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
|
|
"label": "GetMyEbooks (GET /api/library/books)",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 355,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 355
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
|
|
"label": "Ensure authenticated user",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 357,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 357
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_repository_read_357_357",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 357,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 357
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_358_358",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 358,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 358
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_await_360_360",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 360,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 360
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_361_361",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 361,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 361
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_branch_361_361",
|
|
"label": "Return OK or BadRequest based on mediator result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 361,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 361
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_return_364_364",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 364,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 364
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367",
|
|
"label": "StripeWebhook (POST /api/StripeWebhook)",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 367,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 367
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 373,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 373
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_374_374",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 374,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 374
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_374_374",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 374,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 374
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_try_377_377",
|
|
"label": "Begins protected execution",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 377,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 377
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_381_381",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 381,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 381
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_switch_385_385",
|
|
"label": "Branches across multiple outcomes",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 385,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 385
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_389_389",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 389,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 389
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_394_394",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 394,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 394
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_399_399",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 399,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 399
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_402_402",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 402,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 402
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_catch_404_404",
|
|
"label": "Handles exception path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 404,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 404
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_406_406",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 406,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 406
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410",
|
|
"label": "HandleSubscriptionSuccess",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 410,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 410
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 416,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 416
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_repository_read_418_418",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 418,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 418
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_418_418",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 418,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 418
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_419_419",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 419,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 419
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_422_422",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 422,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 422
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_424_424",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 424,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 424
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_430_430",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 430,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 430
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434",
|
|
"label": "HandleSubscriptionCancellation",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 434,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 434
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439",
|
|
"label": "Guards early exit or rejection path",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 439,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 439
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_441_441",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 441,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 441
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_441_441",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 441,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 441
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_branch_442_442",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 442,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 442
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_444_444",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 444,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 444
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_444_444",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 444,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 444
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_447_447",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 447,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 447
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451",
|
|
"label": "Map Identity API (MapGroup /identity)",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 451,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 451
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453",
|
|
"label": "Identity Login (GET /identity/login/google)",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 453,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 453
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460",
|
|
"label": "Return Challenge to Google",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 460,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 460
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463",
|
|
"label": "Identity Callback (GET /identity/callback/google)",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 463,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 463
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_guard_clause_469_469",
|
|
"label": "Fail if external login info is missing",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 469,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 469
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_469_469",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 469,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 469
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_470_470",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 470,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 470
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_472_472",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 472,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 472
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_473_473",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 473,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 473
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_476_476",
|
|
"label": "Handle existing external login sign-in",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 476,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 476
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_476_476",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 476,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 476
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_477_477",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 477,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 477
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_479_479",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 479,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 479
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_480_480",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 480,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 480
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_483_483",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 483,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 483
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_485_485",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 485,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 485
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_485_485",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 485,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 485
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_486_486",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 486,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 486
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_490_490",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 490,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 490
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_491_491",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 491,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 491
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_494_494",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 494,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 494
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_496_496",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 496,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 496
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_498_498",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 498,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 498
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_499_499",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 499,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 499
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_501_501",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 501,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 501
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_loop_505_505",
|
|
"label": "Repeats work over a collection or condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 505,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 505
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_507_507",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 507,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 507
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_510_510",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 510,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 510
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_512_512",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 512,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 512
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_516_516",
|
|
"label": "Logs runtime state",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 516,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 516
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_517_517",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 517,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 517
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520",
|
|
"label": "Account Login Form (POST /account/login-form)",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 520,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 520
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_await_528_528",
|
|
"label": "Waits for async work",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 528,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 528
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_branch_529_529",
|
|
"label": "Evaluates branch condition",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 529,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 529
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_532_532",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 532,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 532
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_536_536",
|
|
"label": "Returns result",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 536,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 536
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
|
|
"label": "KnowledgeRequest",
|
|
"role": "dto",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 566,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 566
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
|
|
"label": "GroundednessRequest",
|
|
"role": "dto",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 567,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 567
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
|
|
"label": "SemanticSearchRequest",
|
|
"role": "dto",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 568,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 568
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
|
|
"label": "AskQuestionRequest",
|
|
"role": "dto",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 569,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 569
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_framework_34",
|
|
"label": "framework",
|
|
"role": "service",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 34,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 34
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_webplatformservice_47",
|
|
"label": "WebPlatformService",
|
|
"role": "service",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 47,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 47
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_named_httpclient_58",
|
|
"label": "named HttpClient",
|
|
"role": "service",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 58,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 58
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_serveridentityservice_75",
|
|
"label": "ServerIdentityService",
|
|
"role": "service",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 75,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 75
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_addapplication_78",
|
|
"label": "AddApplication()",
|
|
"role": "service",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_addinfrastructure_iconfiguration_79",
|
|
"label": "AddInfrastructure(IConfiguration)",
|
|
"role": "service",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_registerservicesfromassemblies_81",
|
|
"label": "RegisterServicesFromAssemblies",
|
|
"role": "service",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 81,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 81
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_tokenlimithandler_87",
|
|
"label": "TokenLimitHandler",
|
|
"role": "service",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 87,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 87
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_nexusreader_infrastructure_services_billingservice_93",
|
|
"label": "NexusReader.Infrastructure.Services.BillingService",
|
|
"role": "service",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 93,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 93
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_identity_ef_stores_107",
|
|
"label": "Identity + EF stores",
|
|
"role": "service",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 107,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 107
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_usehangfiredashboard_163",
|
|
"label": "UseHangfireDashboard",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 163,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 163
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_database_initialization_and_seeding_with_retries_175",
|
|
"label": "Database initialization and seeding with retries",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 175,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 175
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_configure_pipeline_and_run_225",
|
|
"label": "Configure pipeline and run",
|
|
"role": "program-entry",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web/Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 225,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 225
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_application_dtos_user_authordto_cs_file_1",
|
|
"label": "AuthorDto",
|
|
"role": "dto",
|
|
"layer": "application",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"sourcePath": "NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_application_dtos_user_authordto_cs_authordto_3",
|
|
"label": "AuthorDto",
|
|
"role": "dto",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"sourcePath": "NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"sourceLine": 3,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"line": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
|
|
"label": "ProUserHandler",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
|
|
"label": "HandleRequirementAsync",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 20,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 20
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 24,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 24
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_25_25",
|
|
"label": "Evaluates branch condition",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 25,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 25
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_guard_clause_25_25",
|
|
"label": "Reject when no user id available",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 25,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 25
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_27_27",
|
|
"label": "Returns result",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 27,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 27
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_await_31_31",
|
|
"label": "Waits for async work",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 31,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 31
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_35_35",
|
|
"label": "Evaluates branch condition",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 35,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 35
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_37_37",
|
|
"label": "Returns result",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 37,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 37
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_40_40",
|
|
"label": "Unlimited tokens rule",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 40,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 40
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_41_41",
|
|
"label": "Evaluates branch condition",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 41,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 41
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_43_43",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 43,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 43
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_44_44",
|
|
"label": "Returns result",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 44,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 44
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_47_47",
|
|
"label": "Token quota rule",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 47,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 47
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_48_48",
|
|
"label": "Evaluates branch condition",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 48,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 48
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_50_50",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 50,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 50
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_51_51",
|
|
"label": "Returns result",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 51,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 51
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_application_security_authorization_prouserrequirement_cs_file_1",
|
|
"label": "ProUserRequirement",
|
|
"role": "middleware",
|
|
"layer": "application",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_application_security_authorization_prouserrequirement_cs_prouserrequirement_8",
|
|
"label": "ProUserRequirement",
|
|
"role": "unknown",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"sourceLine": 8,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"line": 8
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_domain_entities_author_cs_file_1",
|
|
"label": "Author",
|
|
"role": "entity",
|
|
"layer": "domain",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.Domain/Entities/Author.cs",
|
|
"sourcePath": "NexusReader.Domain/Entities/Author.cs",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.Domain/Entities/Author.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Domain/Entities/Author.cs",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_domain_entities_author_cs_author_5",
|
|
"label": "Author",
|
|
"role": "entity",
|
|
"layer": "domain",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Domain/Entities/Author.cs",
|
|
"sourcePath": "NexusReader.Domain/Entities/Author.cs",
|
|
"sourceLine": 5,
|
|
"evidencePaths": [
|
|
"NexusReader.Domain/Entities/Author.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Domain/Entities/Author.cs",
|
|
"line": 5
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_ui_shared_layout_authlayout_razor_file_1",
|
|
"label": "AuthLayout",
|
|
"role": "ui-component",
|
|
"layer": "frontend",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
|
|
"label": "AuthenticationHeaderHandler",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
|
|
"label": "SendAsync",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 27
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
|
|
"label": "Calls external dependency",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 27
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32",
|
|
"label": "Detect auth endpoints",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 32,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 32
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38",
|
|
"label": "Trusted host guard",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 38,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 38
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45",
|
|
"label": "Evaluates branch condition",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 45,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 45
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47",
|
|
"label": "Waits for async work",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 47,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 47
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48",
|
|
"label": "Attach Authorization header",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 48,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 48
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48",
|
|
"label": "Evaluates branch condition",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 48,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 48
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55",
|
|
"label": "Calls external dependency",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 55,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 55
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55",
|
|
"label": "Waits for async work",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 55,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 55
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58",
|
|
"label": "Evaluates branch condition",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 58,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 58
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60",
|
|
"label": "Waits for async work",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 60,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 60
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61",
|
|
"label": "Begins protected execution",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 61,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 61
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64",
|
|
"label": "Waits for async work",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 64,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 64
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69",
|
|
"label": "Detect token already refreshed by another request",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 69,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 69
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73",
|
|
"label": "Falls back to alternate path",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 73,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 73
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_78_78",
|
|
"label": "Waits for async work",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_79_79",
|
|
"label": "Evaluates branch condition",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_81_81",
|
|
"label": "Waits for async work",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 81,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 81
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_85_85",
|
|
"label": "Falls back to alternate path",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 85,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 85
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_87_87",
|
|
"label": "Waits for async work",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 87,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 87
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_91_91",
|
|
"label": "Evaluates branch condition",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 91,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 91
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_93_93",
|
|
"label": "Waits for async work",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 93,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 93
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_95_95",
|
|
"label": "Calls external dependency",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 95,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 95
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_95_95",
|
|
"label": "Returns result",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 95,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 95
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_95_95",
|
|
"label": "Waits for async work",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 95,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 95
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_catch_98_98",
|
|
"label": "Handles exception path",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 98,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 98
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_finally_103_103",
|
|
"label": "Runs cleanup or finalization",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 103,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 103
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_109_109",
|
|
"label": "Returns result",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 109,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 109
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
|
|
"label": "CloneHttpRequestMessageAsync",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 112,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 112
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
|
|
"label": "Copy content if present",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 119,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 119
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_await_122_122",
|
|
"label": "Waits for async work",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 122,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 122
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126",
|
|
"label": "Copy content headers",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 126,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 126
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132",
|
|
"label": "Copy request headers",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 132,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 132
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_return_139_139",
|
|
"label": "Returns result",
|
|
"role": "handler",
|
|
"layer": "infrastructure",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 139,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 139
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14",
|
|
"label": "AuthenticationHeaderHandler",
|
|
"role": "unknown",
|
|
"layer": "infrastructure",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 14,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 14
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1",
|
|
"label": "Login",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_ui_shared_pages_account_login_razor_oninitialized_110",
|
|
"label": "OnInitialized",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 110,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 110
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_guard_clause_112_112",
|
|
"label": "Check for ErrorCode",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 112,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 112
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_branch_112_112",
|
|
"label": "Evaluates branch condition",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 112,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 112
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_ui_shared_pages_account_login_razor_handlelogin_126",
|
|
"label": "HandleLogin",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 126,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 126
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_try_131_131",
|
|
"label": "Begins protected execution",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 131,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 131
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_133_133",
|
|
"label": "Waits for async work",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 133,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 133
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_branch_134_134",
|
|
"label": "Evaluates branch condition",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 134,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 134
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_137_137",
|
|
"label": "Waits for async work",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 137,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 137
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_fallback_139_139",
|
|
"label": "Falls back to alternate path",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 139,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 139
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_repository_read_141_141",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 141,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 141
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_catch_144_144",
|
|
"label": "Handles exception path",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 144,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 144
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_finally_148_148",
|
|
"label": "Runs cleanup or finalization",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 148,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 148
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_ui_shared_pages_account_login_razor_loginmodel_157",
|
|
"label": "LoginModel",
|
|
"role": "dto",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 157,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 157
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1",
|
|
"label": "Profile.razor",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_render_markup_1",
|
|
"label": "Render (markup)",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_guard_clause_14_14",
|
|
"label": "Conditional UI branch for loading vs profile content",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 14,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 14
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_branch_14_14",
|
|
"label": "Evaluates branch condition",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 14,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 14
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
|
|
"label": "Falls back to alternate path",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 21,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 21
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
|
|
"label": "NexusIcon",
|
|
"role": "ui-component",
|
|
"layer": "frontend",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_111",
|
|
"label": "OnInitializedAsync",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 111,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 111
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_await_113_113",
|
|
"label": "Waits for async work",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 113,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 113
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_guard_clause_114_114",
|
|
"label": "Apply result only if successful",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 114,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 114
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_branch_114_114",
|
|
"label": "Evaluates branch condition",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 114,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 114
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_121",
|
|
"label": "CalculateProgress",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 121,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 121
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_guard_clause_123_123",
|
|
"label": "Guard for missing profile or zero limit",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 123,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 123
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_return_125_125",
|
|
"label": "Returns result",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 125,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 125
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_133",
|
|
"label": "HandleLogout",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 133,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 133
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_await_135_135",
|
|
"label": "Waits for async work",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 135,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 135
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_ui_shared_pages_account_register_razor_file_1",
|
|
"label": "Register.razor",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_ui_shared_pages_account_register_razor_handleregister_84",
|
|
"label": "HandleRegister",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_try_89_89",
|
|
"label": "Begins protected execution",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_91_91",
|
|
"label": "Waits for async work",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 91,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 91
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_92_92",
|
|
"label": "Evaluates branch condition",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 92,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 92
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_94_94",
|
|
"label": "Waits for async work",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 94,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 94
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_95_95",
|
|
"label": "Evaluates branch condition",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 95,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 95
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_98_98",
|
|
"label": "Waits for async work",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 98,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 98
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_100_100",
|
|
"label": "Falls back to alternate path",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 100,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_105_105",
|
|
"label": "Falls back to alternate path",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 105,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 105
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_repository_read_107_107",
|
|
"label": "Reads repository or persistence state",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 107,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 107
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_catch_110_110",
|
|
"label": "Handles exception path",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 110,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 110
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_finally_114_114",
|
|
"label": "Runs cleanup or finalization",
|
|
"role": "ui-page",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 114,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 114
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_ui_shared_pages_account_register_razor_registermodel_120",
|
|
"label": "RegisterModel",
|
|
"role": "dto",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 120,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 120
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_application_abstractions_messaging_icommand_cs_file_1",
|
|
"label": "ICommand.cs",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_6",
|
|
"label": "ICommand",
|
|
"role": "unknown",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"sourceLine": 6,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"line": 6
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_tresponse_10",
|
|
"label": "ICommand<TResponse>",
|
|
"role": "unknown",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"sourceLine": 10,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"line": 10
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_application_abstractions_messaging_icommandhandler_cs_file_1",
|
|
"label": "ICommandHandler.cs",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_6",
|
|
"label": "ICommandHandler<TCommand>",
|
|
"role": "unknown",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"sourceLine": 6,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"line": 6
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_tresponse_11",
|
|
"label": "ICommandHandler<TCommand, TResponse>",
|
|
"role": "unknown",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"sourcePath": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"sourceLine": 11,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"line": 11
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_application_abstractions_messaging_iquery_cs_file_1",
|
|
"label": "IQuery<TResponse>",
|
|
"role": "handler",
|
|
"layer": "application",
|
|
"kind": "file",
|
|
"filePath": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
|
|
"sourcePath": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_application_abstractions_messaging_iquery_cs_iquery_tresponse_6",
|
|
"label": "IQuery<TResponse>",
|
|
"role": "unknown",
|
|
"layer": "application",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
|
|
"sourcePath": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
|
|
"sourceLine": 6,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
|
|
"line": 6
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_1",
|
|
"label": "Render (Razor template / component render)",
|
|
"role": "ui-component",
|
|
"layer": "frontend",
|
|
"kind": "method",
|
|
"filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_switch_2_2",
|
|
"label": "Branches across multiple outcomes",
|
|
"role": "ui-component",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 2,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 2
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_branch_2_2",
|
|
"label": "Switch on Name.ToLowerInvariant() to choose icon path(s)",
|
|
"role": "ui-component",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 2,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 2
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89",
|
|
"label": "Default icon fallback",
|
|
"role": "ui-component",
|
|
"layer": "frontend",
|
|
"kind": "action",
|
|
"filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_ui_shared_components_atoms_nexusicon_razor_nexusicon_component_parameters_96",
|
|
"label": "NexusIcon (component parameters)",
|
|
"role": "unknown",
|
|
"layer": "frontend",
|
|
"kind": "type",
|
|
"filePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourcePath": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 96,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 96
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"kind": "handles-route",
|
|
"label": "CreateMauiApp",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 12
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"kind": "invokes",
|
|
"label": "Begins protected execution",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 14
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"kind": "returns",
|
|
"label": "Build and return app",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 57
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 57
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"kind": "invokes",
|
|
"label": "handled exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 59
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 63
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"kind": "defines-type",
|
|
"label": "model MauiProgram",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 10
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"kind": "registers-service",
|
|
"label": "IPlatformService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 28
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"kind": "registers-service",
|
|
"label": "INativeStorageService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 29
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"kind": "registers-service",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 32
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"kind": "registers-service",
|
|
"label": "AuthenticationStateProvider",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 33
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"kind": "registers-service",
|
|
"label": "Authorization",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 35
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"kind": "registers-service",
|
|
"label": "HttpClient",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 38
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"kind": "registers-service",
|
|
"label": "IThemeService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 41
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"kind": "registers-service",
|
|
"label": "IFocusModeService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 42
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"kind": "registers-service",
|
|
"label": "IQuizStateService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 43
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers-service_44",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"kind": "registers-service",
|
|
"label": "IReaderNavigationService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 44
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"kind": "configures-pipeline",
|
|
"label": "unknown",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 12
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_program_top_level_15_invokes_15",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_program_top_level_15",
|
|
"kind": "handles-route",
|
|
"label": "Program (top-level)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 15,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 15
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_program_top_level_15_flow_action_nexusreader_web_client_program_cs_program_top_level_await_59_59_invokes_59",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_program_top_level_15",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_program_top_level_await_59_59",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 59,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 59
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_createdbcontext_61_invokes_61",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
|
|
"kind": "handles-route",
|
|
"label": "CreateDbContext",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 61,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 61
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_createdbcontext_61_flow_action_nexusreader_web_client_program_cs_createdbcontext_throw_63_63_invokes_63",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_createdbcontext_throw_63_63",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 63,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 63
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_generateasync_69_invokes_69",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_generateasync_69",
|
|
"kind": "handles-route",
|
|
"label": "GenerateAsync",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 69,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 69
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_generateasync_69_flow_action_nexusreader_web_client_program_cs_generateasync_throw_70_70_invokes_70",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_generateasync_69",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_generateasync_throw_70_70",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 70,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 70
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_getservice_71_invokes_71",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_getservice_71",
|
|
"kind": "handles-route",
|
|
"label": "GetService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 71,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 71
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_getservice_71_flow_action_nexusreader_web_client_program_cs_getservice_return_71_71_returns_71",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_getservice_71",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_getservice_return_71_71",
|
|
"kind": "returns",
|
|
"label": "Return null",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 71,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 71
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74_invokes_74",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
|
|
"kind": "handles-route",
|
|
"label": "SaveEbookAsync (byte[])",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74_flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78_invokes_78",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78_flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_79_79_invokes_79",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_79_79",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74_invokes_74",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
|
|
"kind": "handles-route",
|
|
"label": "SaveEbookAsync (Stream)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78_invokes_78",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_79_79_invokes_79",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_79_79",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_79_79_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_80_80_invokes_80",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_79_79",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_80_80",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 80,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 80
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74_invokes_74",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
|
|
"kind": "handles-route",
|
|
"label": "SaveCoverAsync (byte[])",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78_invokes_78",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_79_79_invokes_79",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_79_79",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_79_79_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_80_80_invokes_80",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_79_79",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_80_80",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 80,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 80
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_80_80_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_81_81_invokes_81",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_80_80",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_81_81",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 81,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 81
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74_invokes_74",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
|
|
"kind": "handles-route",
|
|
"label": "SaveCoverAsync (Stream)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78_invokes_78",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_79_79_invokes_79",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_79_79",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_79_79_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_80_80_invokes_80",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_79_79",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_80_80",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 80,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 80
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_80_80_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_81_81_invokes_81",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_80_80",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_81_81",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 81,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 81
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84_invokes_84",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
|
|
"kind": "handles-route",
|
|
"label": "FindAuthorByNameAsync",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88_invokes_88",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_88_88_invokes_88",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_88_88",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_88_88_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_89_89_invokes_89",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_88_88",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_throw_89_89",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addauthor_84_invokes_84",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_addauthor_84",
|
|
"kind": "handles-route",
|
|
"label": "AddAuthor",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_addauthor_84_flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88_invokes_88",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_addauthor_84",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88_flow_action_nexusreader_web_client_program_cs_addauthor_throw_88_88_invokes_88",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_88_88",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_addauthor_throw_88_88_flow_action_nexusreader_web_client_program_cs_addauthor_throw_89_89_invokes_89",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_88_88",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_89_89",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_addauthor_throw_89_89_flow_action_nexusreader_web_client_program_cs_addauthor_throw_90_90_invokes_90",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_89_89",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_addauthor_throw_90_90",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 90,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 90
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addebook_84_invokes_84",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_addebook_84",
|
|
"kind": "handles-route",
|
|
"label": "AddEbook",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_addebook_84_flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88_invokes_88",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_addebook_84",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88_flow_action_nexusreader_web_client_program_cs_addebook_throw_88_88_invokes_88",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_addebook_throw_88_88",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_addebook_throw_88_88_flow_action_nexusreader_web_client_program_cs_addebook_throw_89_89_invokes_89",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_addebook_throw_88_88",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_addebook_throw_89_89",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_addebook_throw_89_89_flow_action_nexusreader_web_client_program_cs_addebook_throw_90_90_invokes_90",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_addebook_throw_89_89",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_addebook_throw_90_90",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 90,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 90
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_addebook_throw_90_90_flow_action_nexusreader_web_client_program_cs_addebook_throw_91_91_invokes_91",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_addebook_throw_90_90",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_addebook_throw_91_91",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 91,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 91
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savechangesasync_84_invokes_84",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
|
|
"kind": "handles-route",
|
|
"label": "SaveChangesAsync",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_program_cs_savechangesasync_84_flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88_invokes_88",
|
|
"from": "flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_88_88_invokes_88",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_88_88",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 88,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 88
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_88_88_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_89_89_invokes_89",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_88_88",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_89_89",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_89_89_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_90_90_invokes_90",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_89_89",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_90_90",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 90,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 90
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_90_90_flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_91_91_invokes_91",
|
|
"from": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_90_90",
|
|
"to": "flow_action_nexusreader_web_client_program_cs_savechangesasync_throw_91_91",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 91,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 91
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines-type_61",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
|
|
"kind": "defines-type",
|
|
"label": "model ThrowingDbContextFactory",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 61,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 61
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines-type_66",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
|
|
"kind": "defines-type",
|
|
"label": "model ThrowingEmbeddingGenerator",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 66,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 66
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines-type_74",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
|
|
"kind": "defines-type",
|
|
"label": "model ThrowingBookStorageService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines-type_84",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
|
|
"kind": "defines-type",
|
|
"label": "model ThrowingEbookRepository",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94_defines-type_94",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
|
|
"kind": "defines-type",
|
|
"label": "model ThrowingSyncBroadcaster",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 94,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 94
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers-service_18",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
|
|
"kind": "registers-service",
|
|
"label": "IPlatformService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 18,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 18
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers-service_19",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
|
|
"kind": "registers-service",
|
|
"label": "INativeStorageService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 19,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 19
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers-service_32",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
|
|
"kind": "registers-service",
|
|
"label": "IIdentityService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 32,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 32
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers-service_40",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
|
|
"kind": "registers-service",
|
|
"label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 40,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 40
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49_registers-service_49",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
|
|
"kind": "registers-service",
|
|
"label": "IDbContextFactory<AppDbContext>",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 49,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 49
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55_registers-service_55",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
|
|
"kind": "registers-service",
|
|
"label": "IServiceCollection (application extension)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 55,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 55
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_buildandrun_59_configures-pipeline_59",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_program_cs_buildandrun_59",
|
|
"kind": "configures-pipeline",
|
|
"label": "middleware",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 59,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 59
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_program_top_level_29_invokes_29",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"kind": "handles-route",
|
|
"label": "Program (top-level)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 29,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 29
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates-condition_62",
|
|
"from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 62
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls-back_66",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"kind": "falls-back",
|
|
"label": "fallback",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 66,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 66
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 125,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 125
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 126,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 126
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 127,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 127
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates-condition_129",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 129,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 129
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_131_131_invokes_131",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_131_131",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 131,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 131
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_131_131_flow_action_nexusreader_web_program_cs_program_top_level_fallback_133_133_falls-back_133",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_131_131",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_133_133",
|
|
"kind": "falls-back",
|
|
"label": "fallback",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 133,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 133
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_133_133_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_135_135_invokes_135",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_133_133",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_135_135",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 135,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 135
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_135_135_flow_action_nexusreader_web_program_cs_program_top_level_return_137_137_returns_137",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_135_135",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_137_137",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 137,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 137
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_137_137_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_166_166_evaluates-condition_166",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_137_137",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_166_166",
|
|
"kind": "evaluates-condition",
|
|
"label": "throw / continue",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 166,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 166
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_166_166_flow_action_nexusreader_web_program_cs_program_top_level_branch_169_169_evaluates-condition_169",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_166_166",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_169_169",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 169,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 169
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_169_169_flow_action_nexusreader_web_program_cs_program_top_level_throw_171_171_invokes_171",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_169_169",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_throw_171_171",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 171,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 171
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_throw_171_171_flow_action_nexusreader_web_program_cs_program_top_level_validation_171_171_evaluates-condition_171",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_throw_171_171",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_validation_171_171",
|
|
"kind": "evaluates-condition",
|
|
"label": "Validates input or state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 171,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 171
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_validation_171_171_flow_action_nexusreader_web_program_cs_program_top_level_await_181_181_invokes_181",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_validation_171_171",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_181_181",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 181,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 181
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_181_181_flow_action_nexusreader_web_program_cs_program_top_level_loop_186_186_loops-to_186",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_181_181",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_loop_186_186",
|
|
"kind": "loops-to",
|
|
"label": "int i = 0; i < maxRetries; i++",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 186,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 186
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_loop_186_186_flow_action_nexusreader_web_program_cs_program_top_level_try_188_188_invokes_188",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_loop_186_186",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_try_188_188",
|
|
"kind": "invokes",
|
|
"label": "Begins protected execution",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 188,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 188
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_try_188_188_flow_action_nexusreader_web_program_cs_program_top_level_branch_190_190_evaluates-condition_190",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_try_188_188",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_190_190",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 190,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 190
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_190_190_flow_action_nexusreader_web_program_cs_program_top_level_await_195_195_invokes_195",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_190_190",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_195_195",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 195,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 195
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_195_195_flow_action_nexusreader_web_program_cs_program_top_level_await_196_196_invokes_196",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_195_195",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_196_196",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 196,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 196
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_196_196_flow_action_nexusreader_web_program_cs_program_top_level_branch_198_198_evaluates-condition_198",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_196_196",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_198_198",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 198,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 198
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_198_198_flow_action_nexusreader_web_program_cs_program_top_level_catch_204_204_invokes_204",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_198_198",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_catch_204_204",
|
|
"kind": "invokes",
|
|
"label": "handled exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 204,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 204
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_catch_204_204_flow_action_nexusreader_web_program_cs_program_top_level_branch_206_206_evaluates-condition_206",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_catch_204_204",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_206_206",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 206,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 206
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_206_206_flow_action_nexusreader_web_program_cs_program_top_level_log_206_206_invokes_206",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_206_206",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_log_206_206",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 206,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 206
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_206_206_flow_action_nexusreader_web_program_cs_program_top_level_log_208_208_invokes_208",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_log_206_206",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_log_208_208",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 208,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 208
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_208_208_flow_action_nexusreader_web_program_cs_program_top_level_await_211_211_invokes_211",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_log_208_208",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_211_211",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 211,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 211
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_211_211_flow_action_nexusreader_web_program_cs_program_top_level_catch_214_214_invokes_214",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_211_211",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_catch_214_214",
|
|
"kind": "invokes",
|
|
"label": "handled exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 214,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 214
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_catch_214_214_flow_action_nexusreader_web_program_cs_program_top_level_branch_216_216_evaluates-condition_216",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_catch_214_214",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_216_216",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 216,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 216
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_216_216_flow_action_nexusreader_web_program_cs_program_top_level_log_216_216_invokes_216",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_216_216",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_log_216_216",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 216,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 216
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_216_216_flow_action_nexusreader_web_program_cs_program_top_level_log_218_218_invokes_218",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_log_216_216",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_log_218_218",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 218,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 218
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_218_218_flow_action_nexusreader_web_program_cs_program_top_level_throw_220_220_invokes_220",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_log_218_218",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_throw_220_220",
|
|
"kind": "invokes",
|
|
"label": "Throws exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 220,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 220
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_throw_220_220_flow_action_nexusreader_web_program_cs_program_top_level_branch_226_226_evaluates-condition_226",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_throw_220_220",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_226_226",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 226,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 226
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_226_226_flow_action_nexusreader_web_program_cs_program_top_level_fallback_230_230_falls-back_230",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_226_226",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_230_230",
|
|
"kind": "falls-back",
|
|
"label": "fallback",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 230,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 230
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_230_230_flow_action_nexusreader_web_program_cs_program_top_level_branch_237_237_evaluates-condition_237",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_230_230",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_237_237",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 237,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 237
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_237_237_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_252_252_invokes_252",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_237_237",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_252_252",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 252,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 252
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_252_252_flow_action_nexusreader_web_program_cs_program_top_level_await_253_253_invokes_253",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_252_252",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_253_253",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 253,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 253
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_253_253_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_255_255_evaluates-condition_255",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_253_253",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_255_255",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 255,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 255
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_255_255_flow_action_nexusreader_web_program_cs_program_top_level_return_258_258_returns_258",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_255_255",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_258_258",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 258,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 258
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_258_258_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_267_267_invokes_267",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_258_258",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_267_267",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 267,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 267
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_267_267_flow_action_nexusreader_web_program_cs_program_top_level_await_268_268_invokes_268",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_267_267",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_268_268",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 268,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 268
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_268_268_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_269_269_evaluates-condition_269",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_268_268",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_269_269",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 269,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 269
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_269_269_flow_action_nexusreader_web_program_cs_program_top_level_return_270_270_returns_270",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_269_269",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_270_270",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 270,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 270
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_270_270_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_275_275_invokes_275",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_270_270",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_275_275",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 275,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 275
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_275_275_flow_action_nexusreader_web_program_cs_program_top_level_await_276_276_invokes_276",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_275_275",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_276_276",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 276,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 276
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_276_276_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_277_277_evaluates-condition_277",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_276_276",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_277_277",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 277,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 277
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_277_277_flow_action_nexusreader_web_program_cs_program_top_level_return_278_278_returns_278",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_277_277",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_278_278",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 278,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 278
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_278_278_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_283_283_invokes_283",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_278_278",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_283_283",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 283,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 283
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_283_283_flow_action_nexusreader_web_program_cs_program_top_level_await_284_284_invokes_284",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_283_283",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_284_284",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 284,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 284
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_284_284_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_285_285_evaluates-condition_285",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_284_284",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_285_285",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 285,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 285
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_285_285_flow_action_nexusreader_web_program_cs_program_top_level_return_286_286_returns_286",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_285_285",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_286_286",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 286,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 286
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_286_286_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_291_291_invokes_291",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_286_286",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_291_291",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 291,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 291
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_291_291_flow_action_nexusreader_web_program_cs_program_top_level_await_292_292_invokes_292",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_291_291",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_292_292",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 292,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 292
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_292_292_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_293_293_evaluates-condition_293",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_292_292",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_293_293",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 293,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 293
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_293_293_flow_action_nexusreader_web_program_cs_program_top_level_return_294_294_returns_294",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_293_293",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_294_294",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 294,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 294
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_294_294_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_299_299_invokes_299",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_294_294",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_299_299",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 299,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 299
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_299_299_flow_action_nexusreader_web_program_cs_program_top_level_await_300_300_invokes_300",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_299_299",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_300_300",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 300,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 300
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_300_300_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_301_301_evaluates-condition_301",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_300_300",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_301_301",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 301,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 301
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_301_301_flow_action_nexusreader_web_program_cs_program_top_level_return_302_302_returns_302",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_301_301",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_302_302",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 302,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 302
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_302_302_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_307_307_invokes_307",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_302_302",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_307_307",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 307,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 307
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_307_307_flow_action_nexusreader_web_program_cs_program_top_level_await_308_308_invokes_308",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_307_307",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_308_308",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 308,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 308
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_308_308_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_309_309_evaluates-condition_309",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_308_308",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_309_309",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 309,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 309
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_309_309_flow_action_nexusreader_web_program_cs_program_top_level_return_310_310_returns_310",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_309_309",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_310_310",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 310,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 310
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_310_310_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_315_315_invokes_315",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_310_310",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_315_315",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 315,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 315
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_315_315_flow_action_nexusreader_web_program_cs_program_top_level_await_316_316_invokes_316",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_315_315",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_316_316",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 316,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 316
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_316_316_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_317_317_evaluates-condition_317",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_316_316",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_317_317",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 317,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 317
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_317_317_flow_action_nexusreader_web_program_cs_program_top_level_return_318_318_returns_318",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_317_317",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_318_318",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 318,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 318
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_318_318_flow_action_nexusreader_web_program_cs_program_top_level_await_323_323_invokes_323",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_318_318",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_323_323",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 323,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 323
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_323_323_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_324_324_evaluates-condition_324",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_323_323",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_324_324",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 324,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 324
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_324_324_flow_action_nexusreader_web_program_cs_program_top_level_return_327_327_returns_327",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_324_324",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_327_327",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 327,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 327
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_327_327_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_332_332_invokes_332",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_327_327",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_332_332",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 332,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 332
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_332_332_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_333_333_evaluates-condition_333",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_332_332",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_333_333",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 333,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 333
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_333_333_flow_action_nexusreader_web_program_cs_program_top_level_await_349_349_invokes_349",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_333_333",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_349_349",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 349,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 349
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_349_349_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_350_350_evaluates-condition_350",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_349_349",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_350_350",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 350,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 350
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_350_350_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_352_352_invokes_352",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_350_350",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_352_352",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 352,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 352
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_352_352_flow_action_nexusreader_web_program_cs_program_top_level_return_352_352_returns_352",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_352_352",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_352_352",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 352,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 352
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_352_352_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_357_357_invokes_357",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_352_352",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_357_357",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 357,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 357
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_357_357_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_358_358_evaluates-condition_358",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_357_357",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_358_358",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 358,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 358
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_358_358_flow_action_nexusreader_web_program_cs_program_top_level_await_360_360_invokes_360",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_358_358",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_360_360",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 360,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 360
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_360_360_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_361_361_evaluates-condition_361",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_360_360",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_361_361",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 361,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 361
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_361_361_flow_action_nexusreader_web_program_cs_program_top_level_return_364_364_returns_364",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_361_361",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_364_364",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 364,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 364
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_364_364_flow_action_nexusreader_web_program_cs_program_top_level_await_373_373_invokes_373",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_364_364",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_373_373",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 373,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 373
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_373_373_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_374_374_invokes_374",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_373_373",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_374_374",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 374,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 374
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_374_374_flow_action_nexusreader_web_program_cs_program_top_level_await_374_374_invokes_374",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_374_374",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_374_374",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 374,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 374
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_374_374_flow_action_nexusreader_web_program_cs_program_top_level_try_377_377_invokes_377",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_374_374",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_try_377_377",
|
|
"kind": "invokes",
|
|
"label": "Begins protected execution",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 377,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 377
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_try_377_377_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_381_381_invokes_381",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_try_377_377",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_381_381",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 381,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 381
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_381_381_flow_action_nexusreader_web_program_cs_program_top_level_switch_385_385_evaluates-condition_385",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_381_381",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_switch_385_385",
|
|
"kind": "evaluates-condition",
|
|
"label": "stripeEvent.Type",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 385,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 385
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_switch_385_385_flow_action_nexusreader_web_program_cs_program_top_level_await_389_389_invokes_389",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_switch_385_385",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_389_389",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 389,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 389
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_389_389_flow_action_nexusreader_web_program_cs_program_top_level_await_394_394_invokes_394",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_389_389",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_394_394",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 394,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 394
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_394_394_flow_action_nexusreader_web_program_cs_program_top_level_await_399_399_invokes_399",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_394_394",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_399_399",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 399,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 399
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_399_399_flow_action_nexusreader_web_program_cs_program_top_level_return_402_402_returns_402",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_399_399",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_402_402",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 402,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 402
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_402_402_flow_action_nexusreader_web_program_cs_program_top_level_catch_404_404_invokes_404",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_402_402",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_catch_404_404",
|
|
"kind": "invokes",
|
|
"label": "handled exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 404,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 404
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_catch_404_404_flow_action_nexusreader_web_program_cs_program_top_level_return_406_406_returns_406",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_catch_404_404",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_406_406",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 406,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 406
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_406_406_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_416_416_evaluates-condition_416",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_406_406",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_416_416",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 416,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 416
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_416_416_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_418_418_invokes_418",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_416_416",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_418_418",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 418,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 418
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_418_418_flow_action_nexusreader_web_program_cs_program_top_level_await_418_418_invokes_418",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_418_418",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_418_418",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 418,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 418
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_418_418_flow_action_nexusreader_web_program_cs_program_top_level_branch_419_419_evaluates-condition_419",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_418_418",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_419_419",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 419,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 419
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_419_419_flow_action_nexusreader_web_program_cs_program_top_level_await_422_422_invokes_422",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_419_419",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_422_422",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 422,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 422
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_422_422_flow_action_nexusreader_web_program_cs_program_top_level_branch_424_424_evaluates-condition_424",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_422_422",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_424_424",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 424,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 424
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_424_424_flow_action_nexusreader_web_program_cs_program_top_level_await_430_430_invokes_430",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_424_424",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_430_430",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 430,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 430
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_430_430_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_439_439_evaluates-condition_439",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_430_430",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_439_439",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 439,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 439
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_439_439_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_441_441_invokes_441",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_439_439",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_441_441",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 441,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 441
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_441_441_flow_action_nexusreader_web_program_cs_program_top_level_await_441_441_invokes_441",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_441_441",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_441_441",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 441,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 441
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_441_441_flow_action_nexusreader_web_program_cs_program_top_level_branch_442_442_evaluates-condition_442",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_441_441",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_442_442",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 442,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 442
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_442_442_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_444_444_invokes_444",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_442_442",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_444_444",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 444,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 444
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_444_444_flow_action_nexusreader_web_program_cs_program_top_level_await_444_444_invokes_444",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_444_444",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_444_444",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 444,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 444
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_444_444_flow_action_nexusreader_web_program_cs_program_top_level_await_447_447_invokes_447",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_444_444",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_447_447",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 447,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 447
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_447_447_flow_action_nexusreader_web_program_cs_program_top_level_return_460_460_returns_460",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_447_447",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_460_460",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 460,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 460
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_460_460_flow_action_nexusreader_web_program_cs_program_top_level_await_469_469_invokes_469",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_460_460",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_469_469",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 469,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 469
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_469_469_flow_action_nexusreader_web_program_cs_program_top_level_branch_470_470_evaluates-condition_470",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_469_469",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_470_470",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 470,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 470
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_470_470_flow_action_nexusreader_web_program_cs_program_top_level_log_472_472_invokes_472",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_470_470",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_log_472_472",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 472,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 472
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_472_472_flow_action_nexusreader_web_program_cs_program_top_level_return_473_473_returns_473",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_log_472_472",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_473_473",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 473,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 473
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_473_473_flow_action_nexusreader_web_program_cs_program_top_level_await_476_476_invokes_476",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_473_473",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_476_476",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 476,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 476
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_476_476_flow_action_nexusreader_web_program_cs_program_top_level_branch_477_477_evaluates-condition_477",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_476_476",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_477_477",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 477,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 477
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_477_477_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_479_479_invokes_479",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_477_477",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_479_479",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 479,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 479
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_479_479_flow_action_nexusreader_web_program_cs_program_top_level_return_480_480_returns_480",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_479_479",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_480_480",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 480,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 480
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_480_480_flow_action_nexusreader_web_program_cs_program_top_level_branch_483_483_evaluates-condition_483",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_480_480",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_483_483",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 483,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 483
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_483_483_flow_action_nexusreader_web_program_cs_program_top_level_log_485_485_invokes_485",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_483_483",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_log_485_485",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 485,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 485
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_485_485_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_485_485_invokes_485",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_log_485_485",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_485_485",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 485,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 485
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_485_485_flow_action_nexusreader_web_program_cs_program_top_level_return_486_486_returns_486",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_485_485",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_486_486",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 486,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 486
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_486_486_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_490_490_invokes_490",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_486_486",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_490_490",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 490,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 490
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_490_490_flow_action_nexusreader_web_program_cs_program_top_level_branch_491_491_evaluates-condition_491",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_490_490",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_491_491",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 491,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 491
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_491_491_flow_action_nexusreader_web_program_cs_program_top_level_await_494_494_invokes_494",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_491_491",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_494_494",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 494,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 494
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_494_494_flow_action_nexusreader_web_program_cs_program_top_level_branch_496_496_evaluates-condition_496",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_494_494",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_496_496",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 496,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 496
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_496_496_flow_action_nexusreader_web_program_cs_program_top_level_await_498_498_invokes_498",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_496_496",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_498_498",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 498,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 498
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_498_498_flow_action_nexusreader_web_program_cs_program_top_level_await_499_499_invokes_499",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_498_498",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_499_499",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 499,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 499
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_499_499_flow_action_nexusreader_web_program_cs_program_top_level_return_501_501_returns_501",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_499_499",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_501_501",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 501,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 501
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_501_501_flow_action_nexusreader_web_program_cs_program_top_level_loop_505_505_loops-to_505",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_501_501",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_loop_505_505",
|
|
"kind": "loops-to",
|
|
"label": "var error in createResult.Errors",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 505,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 505
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_loop_505_505_flow_action_nexusreader_web_program_cs_program_top_level_log_507_507_invokes_507",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_loop_505_505",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_log_507_507",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 507,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 507
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_507_507_flow_action_nexusreader_web_program_cs_program_top_level_branch_510_510_evaluates-condition_510",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_log_507_507",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_510_510",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 510,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 510
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_510_510_flow_action_nexusreader_web_program_cs_program_top_level_return_512_512_returns_512",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_510_510",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_512_512",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 512,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 512
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_512_512_flow_action_nexusreader_web_program_cs_program_top_level_log_516_516_invokes_516",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_512_512",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_log_516_516",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 516,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 516
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_log_516_516_flow_action_nexusreader_web_program_cs_program_top_level_return_517_517_returns_517",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_log_516_516",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_517_517",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 517,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 517
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_517_517_flow_action_nexusreader_web_program_cs_program_top_level_await_528_528_invokes_528",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_517_517",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_528_528",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 528,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 528
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_528_528_flow_action_nexusreader_web_program_cs_program_top_level_branch_529_529_evaluates-condition_529",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_528_528",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_529_529",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 529,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 529
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_529_529_flow_action_nexusreader_web_program_cs_program_top_level_return_532_532_returns_532",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_529_529",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_532_532",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 532,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 532
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_532_532_flow_action_nexusreader_web_program_cs_program_top_level_return_536_536_returns_536",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_532_532",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_536_536",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 536,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 536
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_536_536_flow_action_nexusreader_web_program_cs_program_top_level_await_543_543_invokes_543",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_536_536",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_543_543",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 543,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 543
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_543_543_flow_action_nexusreader_web_program_cs_program_top_level_return_545_545_returns_545",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_543_543",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_545_545",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 545,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 545
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_return_545_545_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_550_550_invokes_550",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_return_545_545",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_550_550",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 550,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 550
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_550_550_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_551_551_evaluates-condition_551",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_550_550",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_551_551",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 551,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 551
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_551_551_flow_action_nexusreader_web_program_cs_program_top_level_await_553_553_invokes_553",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_551_551",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_await_553_553",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 553,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 553
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_await_553_553_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_554_554_evaluates-condition_554",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_await_553_553",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_554_554",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 554,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 554
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_554_554_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_554_554_invokes_554",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_guard_clause_554_554",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_554_554",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 554,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 554
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_554_554_flow_action_nexusreader_web_program_cs_program_top_level_return_556_556_returns_556",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_554_554",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_return_556_556",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 556,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 556
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_invokes_250",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
|
|
"kind": "handles-route",
|
|
"label": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 250,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 250
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252_evaluates-condition_252",
|
|
"from": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
|
|
"to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
|
|
"kind": "evaluates-condition",
|
|
"label": "continue",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 252,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 252
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_repository_read_252_252_invokes_252",
|
|
"from": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
|
|
"to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_repository_read_252_252",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 252,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 252
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_repository_read_252_252_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_await_253_253_invokes_253",
|
|
"from": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_repository_read_252_252",
|
|
"to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_await_253_253",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 253,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 253
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_await_253_253_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_255_255_evaluates-condition_255",
|
|
"from": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_await_253_253",
|
|
"to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_255_255",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 255,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 255
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_255_255_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_branch_255_255_evaluates-condition_255",
|
|
"from": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_255_255",
|
|
"to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_branch_255_255",
|
|
"kind": "evaluates-condition",
|
|
"label": "Return OK or BadRequest based on result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 255,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 255
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_branch_255_255_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_return_258_258_returns_258",
|
|
"from": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_branch_255_255",
|
|
"to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_return_258_258",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 258,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 258
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261_invokes_261",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261",
|
|
"kind": "handles-route",
|
|
"label": "Knowledge API group mappings",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 261,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 261
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267_invokes_267",
|
|
"from": "flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 267,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 267
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_267_267_evaluates-condition_267",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_267_267",
|
|
"kind": "evaluates-condition",
|
|
"label": "use claim / fallback 'global'",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 267,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 267
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_267_267_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_268_268_invokes_268",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_267_267",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_268_268",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 268,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 268
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_268_268_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_269_269_evaluates-condition_269",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_268_268",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_269_269",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 269,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 269
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_269_269_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_branch_269_269_evaluates-condition_269",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_269_269",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_branch_269_269",
|
|
"kind": "evaluates-condition",
|
|
"label": "Return OK or BadRequest on service result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 269,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 269
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_branch_269_269_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_270_270_returns_270",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_branch_269_269",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_270_270",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 270,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 270
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_270_270_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_275_275_invokes_275",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_270_270",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_275_275",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 275,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 275
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_275_275_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_276_276_invokes_276",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_275_275",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_276_276",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 276,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 276
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_276_276_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_277_277_evaluates-condition_277",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_276_276",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_277_277",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 277,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 277
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_277_277_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_278_278_returns_278",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_277_277",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_278_278",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 278,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 278
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_278_278_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_283_283_invokes_283",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_278_278",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_283_283",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 283,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 283
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_283_283_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_284_284_invokes_284",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_283_283",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_284_284",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 284,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 284
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_284_284_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_285_285_evaluates-condition_285",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_284_284",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_285_285",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 285,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 285
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_285_285_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_286_286_returns_286",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_285_285",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_286_286",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 286,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 286
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_286_286_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_291_291_invokes_291",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_286_286",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_291_291",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 291,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 291
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_291_291_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_292_292_invokes_292",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_291_291",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_292_292",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 292,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 292
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_292_292_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_293_293_evaluates-condition_293",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_292_292",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_293_293",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 293,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 293
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_293_293_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_294_294_returns_294",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_293_293",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_294_294",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 294,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 294
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_294_294_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_299_299_invokes_299",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_294_294",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_299_299",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 299,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 299
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_299_299_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_300_300_invokes_300",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_299_299",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_300_300",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 300,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 300
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_300_300_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_301_301_evaluates-condition_301",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_300_300",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_301_301",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 301,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 301
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_301_301_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_302_302_returns_302",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_301_301",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_302_302",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 302,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 302
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_302_302_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_307_307_invokes_307",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_302_302",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_307_307",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 307,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 307
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_307_307_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_308_308_invokes_308",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_307_307",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_308_308",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 308,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 308
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_308_308_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_309_309_evaluates-condition_309",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_308_308",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_309_309",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 309,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 309
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_309_309_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_310_310_returns_310",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_309_309",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_310_310",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 310,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 310
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_310_310_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_315_315_invokes_315",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_310_310",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_315_315",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 315,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 315
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_315_315_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_316_316_invokes_316",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_315_315",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_316_316",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 316,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 316
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_316_316_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_317_317_evaluates-condition_317",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_316_316",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_317_317",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 317,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 317
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_317_317_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_318_318_returns_318",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_317_317",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_318_318",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 318,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 318
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_318_318_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_323_323_invokes_323",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_318_318",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_323_323",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 323,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 323
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_323_323_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_324_324_evaluates-condition_324",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_await_323_323",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_324_324",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 324,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 324
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_324_324_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_327_327_returns_327",
|
|
"from": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_guard_clause_324_324",
|
|
"to": "flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_return_327_327",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 327,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 327
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330_invokes_330",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330",
|
|
"kind": "handles-route",
|
|
"label": "IngestEbook (POST /api/library/ingest)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 330,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 330
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332_evaluates-condition_332",
|
|
"from": "flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330",
|
|
"to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332",
|
|
"kind": "evaluates-condition",
|
|
"label": "Unauthorized / continue",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 332,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 332
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_332_332_invokes_332",
|
|
"from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332",
|
|
"to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_332_332",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 332,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 332
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_332_332_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_333_333_evaluates-condition_333",
|
|
"from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_332_332",
|
|
"to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_333_333",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 333,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 333
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_333_333_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_await_349_349_invokes_349",
|
|
"from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_333_333",
|
|
"to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_await_349_349",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 349,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 349
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_await_349_349_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_350_350_evaluates-condition_350",
|
|
"from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_await_349_349",
|
|
"to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_350_350",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 350,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 350
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_350_350_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_352_352_invokes_352",
|
|
"from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_350_350",
|
|
"to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_352_352",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 352,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 352
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_352_352_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_return_352_352_returns_352",
|
|
"from": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_repository_read_352_352",
|
|
"to": "flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_return_352_352",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 352,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 352
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_invokes_355",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
|
|
"kind": "handles-route",
|
|
"label": "GetMyEbooks (GET /api/library/books)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 355,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 355
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357_evaluates-condition_357",
|
|
"from": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
|
|
"to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
|
|
"kind": "evaluates-condition",
|
|
"label": "Unauthorized / continue",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 357,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 357
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_repository_read_357_357_invokes_357",
|
|
"from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
|
|
"to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_repository_read_357_357",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 357,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 357
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_repository_read_357_357_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_358_358_evaluates-condition_358",
|
|
"from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_repository_read_357_357",
|
|
"to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_358_358",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 358,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 358
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_358_358_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_await_360_360_invokes_360",
|
|
"from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_358_358",
|
|
"to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_await_360_360",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 360,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 360
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_await_360_360_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_361_361_evaluates-condition_361",
|
|
"from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_await_360_360",
|
|
"to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_361_361",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 361,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 361
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_361_361_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_branch_361_361_evaluates-condition_361",
|
|
"from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_361_361",
|
|
"to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_branch_361_361",
|
|
"kind": "evaluates-condition",
|
|
"label": "Return OK or BadRequest based on mediator result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 361,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 361
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_branch_361_361_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_return_364_364_returns_364",
|
|
"from": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_branch_361_361",
|
|
"to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_return_364_364",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 364,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 364
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367_invokes_367",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367",
|
|
"kind": "handles-route",
|
|
"label": "StripeWebhook (POST /api/StripeWebhook)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 367,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 367
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373_invokes_373",
|
|
"from": "flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 373,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 373
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_374_374_invokes_374",
|
|
"from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_374_374",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 374,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 374
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_374_374_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_374_374_invokes_374",
|
|
"from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_374_374",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_374_374",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 374,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 374
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_374_374_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_try_377_377_invokes_377",
|
|
"from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_374_374",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_try_377_377",
|
|
"kind": "invokes",
|
|
"label": "Begins protected execution",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 377,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 377
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_try_377_377_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_381_381_invokes_381",
|
|
"from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_try_377_377",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_381_381",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 381,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 381
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_381_381_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_switch_385_385_evaluates-condition_385",
|
|
"from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_repository_read_381_381",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_switch_385_385",
|
|
"kind": "evaluates-condition",
|
|
"label": "stripeEvent.Type",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 385,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 385
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_switch_385_385_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_389_389_invokes_389",
|
|
"from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_switch_385_385",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_389_389",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 389,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 389
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_389_389_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_394_394_invokes_394",
|
|
"from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_389_389",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_394_394",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 394,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 394
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_394_394_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_399_399_invokes_399",
|
|
"from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_394_394",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_399_399",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 399,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 399
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_399_399_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_402_402_returns_402",
|
|
"from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_399_399",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_402_402",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 402,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 402
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_402_402_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_catch_404_404_invokes_404",
|
|
"from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_402_402",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_catch_404_404",
|
|
"kind": "invokes",
|
|
"label": "handled exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 404,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 404
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_catch_404_404_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_406_406_returns_406",
|
|
"from": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_catch_404_404",
|
|
"to": "flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_return_406_406",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 406,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 406
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410_invokes_410",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410",
|
|
"kind": "handles-route",
|
|
"label": "HandleSubscriptionSuccess",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 410,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 410
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416_evaluates-condition_416",
|
|
"from": "flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 416,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 416
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_repository_read_418_418_invokes_418",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_repository_read_418_418",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 418,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 418
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_repository_read_418_418_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_418_418_invokes_418",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_repository_read_418_418",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_418_418",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 418,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 418
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_418_418_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_419_419_evaluates-condition_419",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_418_418",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_419_419",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 419,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 419
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_419_419_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_422_422_invokes_422",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_419_419",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_422_422",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 422,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 422
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_422_422_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_424_424_evaluates-condition_424",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_422_422",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_424_424",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 424,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 424
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_424_424_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_430_430_invokes_430",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_branch_424_424",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_await_430_430",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 430,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 430
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434_invokes_434",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434",
|
|
"kind": "handles-route",
|
|
"label": "HandleSubscriptionCancellation",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 434,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 434
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439_evaluates-condition_439",
|
|
"from": "flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439",
|
|
"kind": "evaluates-condition",
|
|
"label": "exit / continue",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 439,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 439
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_441_441_invokes_441",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_441_441",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 441,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 441
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_441_441_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_441_441_invokes_441",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_441_441",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_441_441",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 441,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 441
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_441_441_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_branch_442_442_evaluates-condition_442",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_441_441",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_branch_442_442",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 442,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 442
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_branch_442_442_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_444_444_invokes_444",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_branch_442_442",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_444_444",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 444,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 444
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_444_444_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_444_444_invokes_444",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_repository_read_444_444",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_444_444",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 444,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 444
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_444_444_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_447_447_invokes_447",
|
|
"from": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_444_444",
|
|
"to": "flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_await_447_447",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 447,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 447
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451_invokes_451",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451",
|
|
"kind": "handles-route",
|
|
"label": "Map Identity API (MapGroup /identity)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 451,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 451
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453_invokes_453",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453",
|
|
"kind": "handles-route",
|
|
"label": "Identity Login (GET /identity/login/google)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 453,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 453
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453_flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460_returns_460",
|
|
"from": "flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460",
|
|
"kind": "returns",
|
|
"label": "Return Challenge to Google",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 460,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 460
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460_flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460_returns_460",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 460,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 460
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463_invokes_463",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463",
|
|
"kind": "handles-route",
|
|
"label": "Identity Callback (GET /identity/callback/google)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 463,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 463
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_guard_clause_469_469_evaluates-condition_469",
|
|
"from": "flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_guard_clause_469_469",
|
|
"kind": "evaluates-condition",
|
|
"label": "log warning & redirect Error",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 469,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 469
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_guard_clause_469_469_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_469_469_invokes_469",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_guard_clause_469_469",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_469_469",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 469,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 469
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_469_469_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_470_470_evaluates-condition_470",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_469_469",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_470_470",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 470,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 470
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_470_470_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_472_472_invokes_472",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_470_470",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_472_472",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 472,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 472
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_472_472_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_473_473_returns_473",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_472_472",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_473_473",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 473,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 473
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_473_473_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_476_476_evaluates-condition_476",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_473_473",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_476_476",
|
|
"kind": "evaluates-condition",
|
|
"label": "Handle existing external login sign-in",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 476,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 476
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_476_476_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_476_476_invokes_476",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_476_476",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_476_476",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 476,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 476
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_476_476_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_477_477_evaluates-condition_477",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_476_476",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_477_477",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 477,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 477
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_477_477_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_479_479_invokes_479",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_477_477",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_479_479",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 479,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 479
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_479_479_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_480_480_returns_480",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_479_479",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_480_480",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 480,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 480
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_480_480_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_483_483_evaluates-condition_483",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_480_480",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_483_483",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 483,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 483
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_483_483_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_485_485_invokes_485",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_483_483",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_485_485",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 485,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 485
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_485_485_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_485_485_invokes_485",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_485_485",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_485_485",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 485,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 485
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_485_485_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_486_486_returns_486",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_485_485",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_486_486",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 486,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 486
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_486_486_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_490_490_invokes_490",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_486_486",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_490_490",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 490,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 490
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_490_490_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_491_491_evaluates-condition_491",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_repository_read_490_490",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_491_491",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 491,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 491
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_491_491_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_494_494_invokes_494",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_491_491",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_494_494",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 494,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 494
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_494_494_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_496_496_evaluates-condition_496",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_494_494",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_496_496",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 496,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 496
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_496_496_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_498_498_invokes_498",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_496_496",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_498_498",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 498,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 498
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_498_498_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_499_499_invokes_499",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_498_498",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_499_499",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 499,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 499
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_499_499_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_501_501_returns_501",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_await_499_499",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_501_501",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 501,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 501
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_501_501_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_loop_505_505_loops-to_505",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_501_501",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_loop_505_505",
|
|
"kind": "loops-to",
|
|
"label": "var error in createResult.Errors",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 505,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 505
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_loop_505_505_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_507_507_invokes_507",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_loop_505_505",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_507_507",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 507,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 507
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_507_507_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_510_510_evaluates-condition_510",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_507_507",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_510_510",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 510,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 510
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_510_510_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_512_512_returns_512",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_branch_510_510",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_512_512",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 512,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 512
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_512_512_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_516_516_invokes_516",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_512_512",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_516_516",
|
|
"kind": "invokes",
|
|
"label": "Logs runtime state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 516,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 516
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_516_516_flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_517_517_returns_517",
|
|
"from": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_log_516_516",
|
|
"to": "flow_action_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_return_517_517",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 517,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 517
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520_invokes_520",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520",
|
|
"kind": "handles-route",
|
|
"label": "Account Login Form (POST /account/login-form)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 520,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 520
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_await_528_528_invokes_528",
|
|
"from": "flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520",
|
|
"to": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_await_528_528",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 528,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 528
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_await_528_528_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_branch_529_529_evaluates-condition_529",
|
|
"from": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_await_528_528",
|
|
"to": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_branch_529_529",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 529,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 529
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_branch_529_529_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_532_532_returns_532",
|
|
"from": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_branch_529_529",
|
|
"to": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_532_532",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 532,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 532
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_532_532_flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_536_536_returns_536",
|
|
"from": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_532_532",
|
|
"to": "flow_action_nexusreader_web_program_cs_account_login_form_post_account_login_form_return_536_536",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 536,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 536
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_knowledgerequest_566_maps-dto_566",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
|
|
"kind": "maps-dto",
|
|
"label": "dto KnowledgeRequest",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 566,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 566
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_groundednessrequest_567_maps-dto_567",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
|
|
"kind": "maps-dto",
|
|
"label": "dto GroundednessRequest",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 567,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 567
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_semanticsearchrequest_568_maps-dto_568",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
|
|
"kind": "maps-dto",
|
|
"label": "dto SemanticSearchRequest",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 568,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 568
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_askquestionrequest_569_maps-dto_569",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
|
|
"kind": "maps-dto",
|
|
"label": "dto AskQuestionRequest",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 569,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 569
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_framework_34_registers-service_34",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_framework_34",
|
|
"kind": "registers-service",
|
|
"label": "Razor/Blazor services",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 34,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 34
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_webplatformservice_47_registers-service_47",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_webplatformservice_47",
|
|
"kind": "registers-service",
|
|
"label": "IPlatformService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 47,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 47
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_named_httpclient_58_registers-service_58",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_named_httpclient_58",
|
|
"kind": "registers-service",
|
|
"label": "HttpClient 'NexusAPI'",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 58,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 58
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_serveridentityservice_75_registers-service_75",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_serveridentityservice_75",
|
|
"kind": "registers-service",
|
|
"label": "IIdentityService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 75,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 75
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_addapplication_78_registers-service_78",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_addapplication_78",
|
|
"kind": "registers-service",
|
|
"label": "Application layer",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_addinfrastructure_iconfiguration_79_registers-service_79",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_addinfrastructure_iconfiguration_79",
|
|
"kind": "registers-service",
|
|
"label": "Infrastructure layer",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_registerservicesfromassemblies_81_registers-service_81",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_registerservicesfromassemblies_81",
|
|
"kind": "registers-service",
|
|
"label": "MediatR handlers",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 81,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 81
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_tokenlimithandler_87_registers-service_87",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_tokenlimithandler_87",
|
|
"kind": "registers-service",
|
|
"label": "IAuthorizationHandler",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 87,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 87
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_nexusreader_infrastructure_services_billingservice_93_registers-service_93",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_nexusreader_infrastructure_services_billingservice_93",
|
|
"kind": "registers-service",
|
|
"label": "IBillingService",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 93,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 93
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_identity_ef_stores_107_registers-service_107",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_identity_ef_stores_107",
|
|
"kind": "registers-service",
|
|
"label": "Identity endpoints & stores",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 107,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 107
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_usehangfiredashboard_163_configures-pipeline_163",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_usehangfiredashboard_163",
|
|
"kind": "configures-pipeline",
|
|
"label": "middleware",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 163,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 163
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_database_initialization_and_seeding_with_retries_175_configures-pipeline_175",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_database_initialization_and_seeding_with_retries_175",
|
|
"kind": "configures-pipeline",
|
|
"label": "unknown",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 175,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 175
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_configure_pipeline_and_run_225_configures-pipeline_225",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_configure_pipeline_and_run_225",
|
|
"kind": "configures-pipeline",
|
|
"label": "middleware",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 225,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 225
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_application_dtos_user_authordto_cs_file_1_flow_type_nexusreader_application_dtos_user_authordto_cs_authordto_3_maps-dto_3",
|
|
"from": "flow_file_nexusreader_application_dtos_user_authordto_cs_file_1",
|
|
"to": "flow_type_nexusreader_application_dtos_user_authordto_cs_authordto_3",
|
|
"kind": "maps-dto",
|
|
"label": "dto AuthorDto",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"sourceLine": 3,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"line": 3
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_invokes_20",
|
|
"from": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
|
|
"to": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
|
|
"kind": "invokes",
|
|
"label": "HandleRequirementAsync",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 20,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 20
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24_invokes_24",
|
|
"from": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 24,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 24
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_25_25_evaluates-condition_25",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_25_25",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 25,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 25
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_25_25_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_guard_clause_25_25_evaluates-condition_25",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_25_25",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_guard_clause_25_25",
|
|
"kind": "evaluates-condition",
|
|
"label": "return (no authorization attempt)",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 25,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 25
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_guard_clause_25_25_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_27_27_returns_27",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_guard_clause_25_25",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_27_27",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 27,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 27
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_27_27_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_await_31_31_invokes_31",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_27_27",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_await_31_31",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 31,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 31
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_await_31_31_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_35_35_evaluates-condition_35",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_await_31_31",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_35_35",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 35,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 35
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_35_35_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_37_37_returns_37",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_35_35",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_37_37",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 37,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 37
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_37_37_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_40_40_evaluates-condition_40",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_37_37",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_40_40",
|
|
"kind": "evaluates-condition",
|
|
"label": "context.Succeed(requirement) / return",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 40,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 40
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_40_40_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_41_41_evaluates-condition_41",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_40_40",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_41_41",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 41,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 41
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_41_41_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_43_43_invokes_43",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_41_41",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_43_43",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 43,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 43
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_43_43_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_44_44_returns_44",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_43_43",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_44_44",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 44,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 44
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_44_44_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_47_47_evaluates-condition_47",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_44_44",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_47_47",
|
|
"kind": "evaluates-condition",
|
|
"label": "context.Succeed(requirement) / return",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 47,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 47
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_47_47_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_48_48_evaluates-condition_48",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_47_47",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_48_48",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 48,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 48
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_48_48_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_50_50_invokes_50",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_branch_48_48",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_50_50",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 50,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 50
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_50_50_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_51_51_returns_51",
|
|
"from": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_50_50",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_return_51_51",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 51,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"line": 51
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_application_security_authorization_prouserrequirement_cs_file_1_flow_type_nexusreader_application_security_authorization_prouserrequirement_cs_prouserrequirement_8_defines-type_8",
|
|
"from": "flow_file_nexusreader_application_security_authorization_prouserrequirement_cs_file_1",
|
|
"to": "flow_type_nexusreader_application_security_authorization_prouserrequirement_cs_prouserrequirement_8",
|
|
"kind": "defines-type",
|
|
"label": "model ProUserRequirement",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"sourceLine": 8,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"line": 8
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_domain_entities_author_cs_file_1_flow_type_nexusreader_domain_entities_author_cs_author_5_reads-entity_5",
|
|
"from": "flow_file_nexusreader_domain_entities_author_cs_file_1",
|
|
"to": "flow_type_nexusreader_domain_entities_author_cs_author_5",
|
|
"kind": "reads-entity",
|
|
"label": "entity Author",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Domain/Entities/Author.cs",
|
|
"sourceLine": 5,
|
|
"evidencePaths": [
|
|
"NexusReader.Domain/Entities/Author.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Domain/Entities/Author.cs",
|
|
"line": 5
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_invokes_27",
|
|
"from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
|
|
"kind": "invokes",
|
|
"label": "SendAsync",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 27
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_invokes_27",
|
|
"from": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
|
|
"kind": "invokes",
|
|
"label": "Calls external dependency",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 27
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_evaluates-condition_32",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32",
|
|
"kind": "evaluates-condition",
|
|
"label": "isAuthEndpoint=true / isAuthEndpoint=false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 32,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 32
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_evaluates-condition_38",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_32_32",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38",
|
|
"kind": "evaluates-condition",
|
|
"label": "isTrustedHost=true / isTrustedHost=false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 38,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 38
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_evaluates-condition_45",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_38_38",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 45,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 45
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_invokes_47",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_45_45",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 47,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 47
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_evaluates-condition_48",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_47_47",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48",
|
|
"kind": "evaluates-condition",
|
|
"label": "attach-bearer / skip-attachment",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 48,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 48
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_evaluates-condition_48",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_guard_clause_48_48",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 48,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 48
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_invokes_55",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_48_48",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55",
|
|
"kind": "invokes",
|
|
"label": "Calls external dependency",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 55,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 55
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_invokes_55",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_55_55",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 55,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 55
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_evaluates-condition_58",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_55_55",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 58,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 58
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_invokes_60",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_58_58",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 60,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 60
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_invokes_61",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_60_60",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61",
|
|
"kind": "invokes",
|
|
"label": "Begins protected execution",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 61,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 61
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_invokes_64",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_try_61_61",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 64,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 64
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_evaluates-condition_69",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_64_64",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69",
|
|
"kind": "evaluates-condition",
|
|
"label": "use-new-token / perform-refresh",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 69,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 69
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73_falls-back_73",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_69_69",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73",
|
|
"kind": "falls-back",
|
|
"label": "fallback",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 73,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 73
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_78_78_invokes_78",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_73_73",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_78_78",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 78,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 78
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_78_78_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_79_79_evaluates-condition_79",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_78_78",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_79_79",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 79,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_79_79_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_81_81_invokes_81",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_79_79",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_81_81",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 81,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 81
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_81_81_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_85_85_falls-back_85",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_81_81",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_85_85",
|
|
"kind": "falls-back",
|
|
"label": "fallback",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 85,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 85
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_85_85_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_87_87_invokes_87",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_fallback_85_85",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_87_87",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 87,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 87
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_87_87_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_91_91_evaluates-condition_91",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_87_87",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_91_91",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 91,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 91
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_91_91_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_93_93_invokes_93",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_branch_91_91",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_93_93",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 93,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 93
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_93_93_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_95_95_invokes_95",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_93_93",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_95_95",
|
|
"kind": "invokes",
|
|
"label": "Calls external dependency",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 95,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 95
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_95_95_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_95_95_returns_95",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_95_95",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_95_95",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 95,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 95
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_95_95_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_95_95_invokes_95",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_95_95",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_95_95",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 95,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 95
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_95_95_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_catch_98_98_invokes_98",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_await_95_95",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_catch_98_98",
|
|
"kind": "invokes",
|
|
"label": "handled exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 98,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 98
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_catch_98_98_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_finally_103_103_invokes_103",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_catch_98_98",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_finally_103_103",
|
|
"kind": "invokes",
|
|
"label": "Runs cleanup or finalization",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 103,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 103
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_finally_103_103_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_109_109_returns_109",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_finally_103_103",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_return_109_109",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 109,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 109
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_invokes_112",
|
|
"from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
|
|
"kind": "invokes",
|
|
"label": "CloneHttpRequestMessageAsync",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 112,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 112
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119_evaluates-condition_119",
|
|
"from": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
|
|
"kind": "evaluates-condition",
|
|
"label": "copy-content / no-content",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 119,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 119
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_await_122_122_invokes_122",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_await_122_122",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 122,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 122
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_await_122_122_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126_loops-to_126",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_await_122_122",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126",
|
|
"kind": "loops-to",
|
|
"label": "Copy content headers",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 126,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 126
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126_loops-to_126",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126",
|
|
"kind": "loops-to",
|
|
"label": "var h in req.Content.Headers",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 126,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 126
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132_loops-to_132",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_126_126",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132",
|
|
"kind": "loops-to",
|
|
"label": "Copy request headers",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 132,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 132
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132_loops-to_132",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132",
|
|
"kind": "loops-to",
|
|
"label": "var h in req.Headers",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 132,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 132
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_return_139_139_returns_139",
|
|
"from": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_loop_132_132",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_return_139_139",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 139,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 139
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14_defines-type_14",
|
|
"from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_handlers_authenticationheaderhandler_cs_authenticationheaderhandler_14",
|
|
"kind": "defines-type",
|
|
"label": "model AuthenticationHeaderHandler",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 14,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"line": 14
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_login_razor_oninitialized_110_invokes_110",
|
|
"from": "flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1",
|
|
"to": "flow_method_nexusreader_ui_shared_pages_account_login_razor_oninitialized_110",
|
|
"kind": "invokes",
|
|
"label": "OnInitialized",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 110,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 110
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_ui_shared_pages_account_login_razor_oninitialized_110_flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_guard_clause_112_112_evaluates-condition_112",
|
|
"from": "flow_method_nexusreader_ui_shared_pages_account_login_razor_oninitialized_110",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_guard_clause_112_112",
|
|
"kind": "evaluates-condition",
|
|
"label": "map error to message / no-op",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 112,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 112
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_guard_clause_112_112_flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_branch_112_112_evaluates-condition_112",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_guard_clause_112_112",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_oninitialized_branch_112_112",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 112,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 112
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_login_razor_handlelogin_126_invokes_126",
|
|
"from": "flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1",
|
|
"to": "flow_method_nexusreader_ui_shared_pages_account_login_razor_handlelogin_126",
|
|
"kind": "invokes",
|
|
"label": "HandleLogin",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 126,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 126
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_ui_shared_pages_account_login_razor_handlelogin_126_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_try_131_131_invokes_131",
|
|
"from": "flow_method_nexusreader_ui_shared_pages_account_login_razor_handlelogin_126",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_try_131_131",
|
|
"kind": "invokes",
|
|
"label": "Begins protected execution",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 131,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 131
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_try_131_131_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_133_133_invokes_133",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_try_131_131",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_133_133",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 133,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 133
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_133_133_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_branch_134_134_evaluates-condition_134",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_133_133",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_branch_134_134",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 134,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 134
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_branch_134_134_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_137_137_invokes_137",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_branch_134_134",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_137_137",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 137,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 137
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_137_137_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_fallback_139_139_falls-back_139",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_await_137_137",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_fallback_139_139",
|
|
"kind": "falls-back",
|
|
"label": "fallback",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 139,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 139
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_fallback_139_139_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_repository_read_141_141_invokes_141",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_fallback_139_139",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_repository_read_141_141",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 141,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 141
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_repository_read_141_141_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_catch_144_144_invokes_144",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_repository_read_141_141",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_catch_144_144",
|
|
"kind": "invokes",
|
|
"label": "handled exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 144,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 144
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_catch_144_144_flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_finally_148_148_invokes_148",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_catch_144_144",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_login_razor_handlelogin_finally_148_148",
|
|
"kind": "invokes",
|
|
"label": "Runs cleanup or finalization",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 148,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 148
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1_flow_type_nexusreader_ui_shared_pages_account_login_razor_loginmodel_157_maps-dto_157",
|
|
"from": "flow_file_nexusreader_ui_shared_pages_account_login_razor_file_1",
|
|
"to": "flow_type_nexusreader_ui_shared_pages_account_login_razor_loginmodel_157",
|
|
"kind": "maps-dto",
|
|
"label": "dto LoginModel",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"sourceLine": 157,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"line": 157
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_profile_razor_render_markup_1_invokes_1",
|
|
"from": "flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1",
|
|
"to": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_render_markup_1",
|
|
"kind": "invokes",
|
|
"label": "Render (markup)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_ui_shared_pages_account_profile_razor_render_markup_1_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_guard_clause_14_14_evaluates-condition_14",
|
|
"from": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_render_markup_1",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_guard_clause_14_14",
|
|
"kind": "evaluates-condition",
|
|
"label": "render-loading / render-profile",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 14,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 14
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_guard_clause_14_14_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_branch_14_14_evaluates-condition_14",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_guard_clause_14_14",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_branch_14_14",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 14,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 14
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_branch_14_14_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_falls-back_21",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_branch_14_14",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
|
|
"kind": "falls-back",
|
|
"label": "fallback",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 21,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 21
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_44",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
|
|
"to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
|
|
"kind": "uses-service",
|
|
"label": "NexusIcon",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 44,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 44
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_65",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
|
|
"to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
|
|
"kind": "uses-service",
|
|
"label": "NexusIcon",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 65,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 65
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_74",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
|
|
"to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
|
|
"kind": "uses-service",
|
|
"label": "NexusIcon",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 74,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 74
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_83",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
|
|
"to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
|
|
"kind": "uses-service",
|
|
"label": "NexusIcon",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 83,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 83
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_uses-service_94",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_render_markup_fallback_21_21",
|
|
"to": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
|
|
"kind": "uses-service",
|
|
"label": "NexusIcon",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 94,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 94
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_111_invokes_111",
|
|
"from": "flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1",
|
|
"to": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_111",
|
|
"kind": "invokes",
|
|
"label": "OnInitializedAsync",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 111,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 111
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_111_flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_await_113_113_invokes_113",
|
|
"from": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_111",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_await_113_113",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 113,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 113
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_await_113_113_flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_guard_clause_114_114_evaluates-condition_114",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_await_113_113",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_guard_clause_114_114",
|
|
"kind": "evaluates-condition",
|
|
"label": "assign-_profile / no-op",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 114,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 114
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_guard_clause_114_114_flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_branch_114_114_evaluates-condition_114",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_guard_clause_114_114",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_oninitializedasync_branch_114_114",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 114,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 114
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_121_invokes_121",
|
|
"from": "flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1",
|
|
"to": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_121",
|
|
"kind": "invokes",
|
|
"label": "CalculateProgress",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 121,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 121
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_121_flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_guard_clause_123_123_evaluates-condition_123",
|
|
"from": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_121",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_guard_clause_123_123",
|
|
"kind": "evaluates-condition",
|
|
"label": "return-0 / compute-percent",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 123,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 123
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_guard_clause_123_123_flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_return_125_125_returns_125",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_guard_clause_123_123",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_calculateprogress_return_125_125",
|
|
"kind": "returns",
|
|
"label": "Returns result",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 125,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 125
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_133_invokes_133",
|
|
"from": "flow_file_nexusreader_ui_shared_pages_account_profile_razor_file_1",
|
|
"to": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_133",
|
|
"kind": "invokes",
|
|
"label": "HandleLogout",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 133,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 133
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_133_flow_action_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_await_135_135_invokes_135",
|
|
"from": "flow_method_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_133",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_profile_razor_handlelogout_await_135_135",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"sourceLine": 135,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"line": 135
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_ui_shared_pages_account_register_razor_file_1_flow_method_nexusreader_ui_shared_pages_account_register_razor_handleregister_84_invokes_84",
|
|
"from": "flow_file_nexusreader_ui_shared_pages_account_register_razor_file_1",
|
|
"to": "flow_method_nexusreader_ui_shared_pages_account_register_razor_handleregister_84",
|
|
"kind": "invokes",
|
|
"label": "HandleRegister",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 84,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 84
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_ui_shared_pages_account_register_razor_handleregister_84_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_try_89_89_invokes_89",
|
|
"from": "flow_method_nexusreader_ui_shared_pages_account_register_razor_handleregister_84",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_try_89_89",
|
|
"kind": "invokes",
|
|
"label": "Begins protected execution",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_try_89_89_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_91_91_invokes_91",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_try_89_89",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_91_91",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 91,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 91
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_91_91_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_92_92_evaluates-condition_92",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_91_91",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_92_92",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 92,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 92
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_92_92_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_94_94_invokes_94",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_92_92",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_94_94",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 94,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 94
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_94_94_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_95_95_evaluates-condition_95",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_94_94",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_95_95",
|
|
"kind": "evaluates-condition",
|
|
"label": "true / false",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 95,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 95
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_95_95_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_98_98_invokes_98",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_branch_95_95",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_98_98",
|
|
"kind": "invokes",
|
|
"label": "Waits for async work",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 98,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 98
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_98_98_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_100_100_falls-back_100",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_await_98_98",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_100_100",
|
|
"kind": "falls-back",
|
|
"label": "fallback",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 100,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 100
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_100_100_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_105_105_falls-back_105",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_100_100",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_105_105",
|
|
"kind": "falls-back",
|
|
"label": "fallback",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 105,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 105
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_105_105_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_repository_read_107_107_invokes_107",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_fallback_105_105",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_repository_read_107_107",
|
|
"kind": "invokes",
|
|
"label": "Reads repository or persistence state",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 107,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 107
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_repository_read_107_107_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_catch_110_110_invokes_110",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_repository_read_107_107",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_catch_110_110",
|
|
"kind": "invokes",
|
|
"label": "handled exception",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 110,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 110
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_catch_110_110_flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_finally_114_114_invokes_114",
|
|
"from": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_catch_110_110",
|
|
"to": "flow_action_nexusreader_ui_shared_pages_account_register_razor_handleregister_finally_114_114",
|
|
"kind": "invokes",
|
|
"label": "Runs cleanup or finalization",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 114,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 114
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_ui_shared_pages_account_register_razor_file_1_flow_type_nexusreader_ui_shared_pages_account_register_razor_registermodel_120_maps-dto_120",
|
|
"from": "flow_file_nexusreader_ui_shared_pages_account_register_razor_file_1",
|
|
"to": "flow_type_nexusreader_ui_shared_pages_account_register_razor_registermodel_120",
|
|
"kind": "maps-dto",
|
|
"label": "dto RegisterModel",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"sourceLine": 120,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"line": 120
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_application_abstractions_messaging_icommand_cs_file_1_flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_6_defines-type_6",
|
|
"from": "flow_file_nexusreader_application_abstractions_messaging_icommand_cs_file_1",
|
|
"to": "flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_6",
|
|
"kind": "defines-type",
|
|
"label": "interface ICommand",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"sourceLine": 6,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"line": 6
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_application_abstractions_messaging_icommand_cs_file_1_flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_tresponse_10_defines-type_10",
|
|
"from": "flow_file_nexusreader_application_abstractions_messaging_icommand_cs_file_1",
|
|
"to": "flow_type_nexusreader_application_abstractions_messaging_icommand_cs_icommand_tresponse_10",
|
|
"kind": "defines-type",
|
|
"label": "interface ICommand<TResponse>",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"sourceLine": 10,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"line": 10
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_application_abstractions_messaging_icommandhandler_cs_file_1_flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_6_defines-type_6",
|
|
"from": "flow_file_nexusreader_application_abstractions_messaging_icommandhandler_cs_file_1",
|
|
"to": "flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_6",
|
|
"kind": "defines-type",
|
|
"label": "interface ICommandHandler<TCommand>",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"sourceLine": 6,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"line": 6
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_application_abstractions_messaging_icommandhandler_cs_file_1_flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_tresponse_11_defines-type_11",
|
|
"from": "flow_file_nexusreader_application_abstractions_messaging_icommandhandler_cs_file_1",
|
|
"to": "flow_type_nexusreader_application_abstractions_messaging_icommandhandler_cs_icommandhandler_tcommand_tresponse_11",
|
|
"kind": "defines-type",
|
|
"label": "interface ICommandHandler<TCommand, TResponse>",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"sourceLine": 11,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"line": 11
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_application_abstractions_messaging_iquery_cs_file_1_flow_type_nexusreader_application_abstractions_messaging_iquery_cs_iquery_tresponse_6_defines-type_6",
|
|
"from": "flow_file_nexusreader_application_abstractions_messaging_iquery_cs_file_1",
|
|
"to": "flow_type_nexusreader_application_abstractions_messaging_iquery_cs_iquery_tresponse_6",
|
|
"kind": "defines-type",
|
|
"label": "interface IQuery<TResponse>",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Abstractions/Messaging/IQuery.cs",
|
|
"sourceLine": 6,
|
|
"evidencePaths": [
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Application/Abstractions/Messaging/IQuery.cs",
|
|
"line": 6
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_flow_method_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_1_invokes_1",
|
|
"from": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
|
|
"to": "flow_method_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_1",
|
|
"kind": "invokes",
|
|
"label": "Render (Razor template / component render)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 1,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 1
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_1_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_switch_2_2_evaluates-condition_2",
|
|
"from": "flow_method_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_1",
|
|
"to": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_switch_2_2",
|
|
"kind": "evaluates-condition",
|
|
"label": "Name.ToLowerInvariant()",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 2,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 2
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_switch_2_2_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_branch_2_2_evaluates-condition_2",
|
|
"from": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_switch_2_2",
|
|
"to": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_branch_2_2",
|
|
"kind": "evaluates-condition",
|
|
"label": "home (lines 4-7) / map (lines 8-12) / share-2 (lines 13-19) / help-circle (lines 20-24)",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 2,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 2
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_branch_2_2_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89_falls-back_89",
|
|
"from": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_branch_2_2",
|
|
"to": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89",
|
|
"kind": "falls-back",
|
|
"label": "Default icon fallback",
|
|
"confidence": "medium",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89_flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89_falls-back_89",
|
|
"from": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89",
|
|
"to": "flow_action_nexusreader_ui_shared_components_atoms_nexusicon_razor_render_razor_template_component_render_fallback_89_89",
|
|
"kind": "falls-back",
|
|
"label": "fallback",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 89,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1_flow_type_nexusreader_ui_shared_components_atoms_nexusicon_razor_nexusicon_component_parameters_96_maps-dto_96",
|
|
"from": "flow_file_nexusreader_ui_shared_components_atoms_nexusicon_razor_file_1",
|
|
"to": "flow_type_nexusreader_ui_shared_components_atoms_nexusicon_razor_nexusicon_component_parameters_96",
|
|
"kind": "maps-dto",
|
|
"label": "view-model NexusIcon (component parameters)",
|
|
"confidence": "high",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"sourceLine": 96,
|
|
"evidencePaths": [
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"line": 96
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"flows": [
|
|
{
|
|
"id": "flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"name": "MauiProgram",
|
|
"category": "frontend-to-backend",
|
|
"entryNodeId": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"nodeIds": [
|
|
"flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"flow_file_nexusreader_web_program_cs_file_1",
|
|
"flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127"
|
|
],
|
|
"edgeIds": [
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
|
|
"edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers-service_44",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_program_top_level_29_invokes_29",
|
|
"edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates-condition_62",
|
|
"edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls-back_66",
|
|
"edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
|
|
"edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
|
|
"edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
|
|
"edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates-condition_129",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_invokes_250",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261_invokes_261",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330_invokes_330",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_invokes_355",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367_invokes_367",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410_invokes_410",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434_invokes_434",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451_invokes_451",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453_invokes_453",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463_invokes_463",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520_invokes_520",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_knowledgerequest_566_maps-dto_566",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_groundednessrequest_567_maps-dto_567",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_semanticsearchrequest_568_maps-dto_568",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_askquestionrequest_569_maps-dto_569"
|
|
],
|
|
"confidence": "high",
|
|
"businessValue": 75,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1
|
|
}
|
|
],
|
|
"businessSignals": [
|
|
"trigger",
|
|
"validation-decision"
|
|
],
|
|
"scoreBreakdown": {
|
|
"entrypointQuality": 25,
|
|
"crossLayerDepth": 7,
|
|
"businessSignals": 8,
|
|
"evidenceStrength": 20,
|
|
"contractCoverage": 15,
|
|
"total": 75
|
|
},
|
|
"validationIssues": [],
|
|
"recommendedDiagramKinds": [
|
|
"primary-runtime",
|
|
"control-flow",
|
|
"dependency-map",
|
|
"class-diagram",
|
|
"method-flow"
|
|
],
|
|
"producedArtifacts": [
|
|
{
|
|
"id": "business_overview_md_phase_inputs",
|
|
"label": "Phase Inputs",
|
|
"path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
|
|
"producerPath": "src/documentation/v4/phase4Generation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_context_bag",
|
|
"label": "Context Bag",
|
|
"path": "machine/context-bags/business_overview.context-bag.json",
|
|
"producerPath": "src/documentation/v4/buildContextBags.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_planning_debug",
|
|
"label": "Planning Debug",
|
|
"path": "debug/planning.debug.json",
|
|
"producerPath": "src/documentation/v4/phase1Orientation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_catalog",
|
|
"label": "Flow Catalog",
|
|
"path": "machine/flow-catalog.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_selection",
|
|
"label": "Flow Selection",
|
|
"path": "machine/flow-selection.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_business_map",
|
|
"label": "Business Map",
|
|
"path": "machine/business-map.json",
|
|
"producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_index_output",
|
|
"label": "Published Index",
|
|
"path": "index.md",
|
|
"producerPath": "src/documentation/v4/phase5Index.ts",
|
|
"status": "generated"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_0_nexusreader_web_program_cs",
|
|
"name": "Program.cs",
|
|
"category": "frontend-to-backend",
|
|
"entryNodeId": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"nodeIds": [
|
|
"flow_file_nexusreader_web_program_cs_file_1",
|
|
"flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"flow_type_nexusreader_web_program_cs_framework_34",
|
|
"flow_type_nexusreader_web_program_cs_webplatformservice_47",
|
|
"flow_type_nexusreader_web_program_cs_named_httpclient_58",
|
|
"flow_type_nexusreader_web_program_cs_serveridentityservice_75",
|
|
"flow_type_nexusreader_web_program_cs_addapplication_78",
|
|
"flow_type_nexusreader_web_program_cs_addinfrastructure_iconfiguration_79",
|
|
"flow_type_nexusreader_web_program_cs_registerservicesfromassemblies_81",
|
|
"flow_type_nexusreader_web_program_cs_tokenlimithandler_87",
|
|
"flow_type_nexusreader_web_program_cs_nexusreader_infrastructure_services_billingservice_93",
|
|
"flow_type_nexusreader_web_program_cs_identity_ef_stores_107",
|
|
"flow_method_nexusreader_web_program_cs_usehangfiredashboard_163",
|
|
"flow_method_nexusreader_web_program_cs_database_initialization_and_seeding_with_retries_175",
|
|
"flow_method_nexusreader_web_program_cs_configure_pipeline_and_run_225",
|
|
"flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
|
|
"flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261",
|
|
"flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330",
|
|
"flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
|
|
"flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367",
|
|
"flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410",
|
|
"flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434",
|
|
"flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451",
|
|
"flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453"
|
|
],
|
|
"edgeIds": [
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_program_top_level_29_invokes_29",
|
|
"edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates-condition_62",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_invokes_250",
|
|
"edge_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252_evaluates-condition_252",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261_invokes_261",
|
|
"edge_flow_method_nexusreader_web_program_cs_knowledge_api_group_mappings_261_flow_action_nexusreader_web_program_cs_knowledge_api_group_mappings_repository_read_267_267_invokes_267",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330_invokes_330",
|
|
"edge_flow_method_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_330_flow_action_nexusreader_web_program_cs_ingestebook_post_api_library_ingest_guard_clause_332_332_evaluates-condition_332",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_invokes_355",
|
|
"edge_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357_evaluates-condition_357",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367_invokes_367",
|
|
"edge_flow_method_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_367_flow_action_nexusreader_web_program_cs_stripewebhook_post_api_stripewebhook_await_373_373_invokes_373",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410_invokes_410",
|
|
"edge_flow_method_nexusreader_web_program_cs_handlesubscriptionsuccess_410_flow_action_nexusreader_web_program_cs_handlesubscriptionsuccess_guard_clause_416_416_evaluates-condition_416",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434_invokes_434",
|
|
"edge_flow_method_nexusreader_web_program_cs_handlesubscriptioncancellation_434_flow_action_nexusreader_web_program_cs_handlesubscriptioncancellation_guard_clause_439_439_evaluates-condition_439",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_map_identity_api_mapgroup_identity_451_invokes_451",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453_invokes_453",
|
|
"edge_flow_method_nexusreader_web_program_cs_identity_login_get_identity_login_google_453_flow_action_nexusreader_web_program_cs_identity_login_get_identity_login_google_return_460_460_returns_460",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_identity_callback_get_identity_callback_google_463_invokes_463",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_account_login_form_post_account_login_form_520_invokes_520",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_knowledgerequest_566_maps-dto_566",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_groundednessrequest_567_maps-dto_567",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_semanticsearchrequest_568_maps-dto_568",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_askquestionrequest_569_maps-dto_569",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_framework_34_registers-service_34",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_webplatformservice_47_registers-service_47",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_named_httpclient_58_registers-service_58",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_serveridentityservice_75_registers-service_75",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_addapplication_78_registers-service_78",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_addinfrastructure_iconfiguration_79_registers-service_79",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_registerservicesfromassemblies_81_registers-service_81",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_tokenlimithandler_87_registers-service_87",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_nexusreader_infrastructure_services_billingservice_93_registers-service_93",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_identity_ef_stores_107_registers-service_107",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_usehangfiredashboard_163_configures-pipeline_163",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_database_initialization_and_seeding_with_retries_175_configures-pipeline_175",
|
|
"edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_configure_pipeline_and_run_225_configures-pipeline_225"
|
|
],
|
|
"confidence": "high",
|
|
"businessValue": 68,
|
|
"evidencePaths": [
|
|
"NexusReader.Web/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web/Program.cs",
|
|
"line": 1
|
|
}
|
|
],
|
|
"businessSignals": [
|
|
"trigger",
|
|
"validation-decision"
|
|
],
|
|
"scoreBreakdown": {
|
|
"entrypointQuality": 25,
|
|
"crossLayerDepth": 0,
|
|
"businessSignals": 8,
|
|
"evidenceStrength": 20,
|
|
"contractCoverage": 15,
|
|
"total": 68
|
|
},
|
|
"validationIssues": [],
|
|
"recommendedDiagramKinds": [
|
|
"primary-runtime",
|
|
"dependency-map",
|
|
"class-diagram",
|
|
"method-flow"
|
|
],
|
|
"producedArtifacts": [
|
|
{
|
|
"id": "business_overview_md_phase_inputs",
|
|
"label": "Phase Inputs",
|
|
"path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
|
|
"producerPath": "src/documentation/v4/phase4Generation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_context_bag",
|
|
"label": "Context Bag",
|
|
"path": "machine/context-bags/business_overview.context-bag.json",
|
|
"producerPath": "src/documentation/v4/buildContextBags.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_planning_debug",
|
|
"label": "Planning Debug",
|
|
"path": "debug/planning.debug.json",
|
|
"producerPath": "src/documentation/v4/phase1Orientation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_catalog",
|
|
"label": "Flow Catalog",
|
|
"path": "machine/flow-catalog.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_selection",
|
|
"label": "Flow Selection",
|
|
"path": "machine/flow-selection.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_business_map",
|
|
"label": "Business Map",
|
|
"path": "machine/business-map.json",
|
|
"producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_index_output",
|
|
"label": "Published Index",
|
|
"path": "index.md",
|
|
"producerPath": "src/documentation/v4/phase5Index.ts",
|
|
"status": "generated"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "flow_1_nexusreader_web_client_program_cs",
|
|
"name": "Program.cs",
|
|
"category": "frontend-to-backend",
|
|
"entryNodeId": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"nodeIds": [
|
|
"flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"flow_method_nexusreader_web_client_program_cs_program_top_level_15",
|
|
"flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
|
|
"flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
|
|
"flow_type_nexusreader_web_client_program_cs_identityservice_32",
|
|
"flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
|
|
"flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49",
|
|
"flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55",
|
|
"flow_method_nexusreader_web_client_program_cs_buildandrun_59",
|
|
"flow_method_nexusreader_web_client_program_cs_createdbcontext_61",
|
|
"flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
|
|
"flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
|
|
"flow_method_nexusreader_web_client_program_cs_generateasync_69",
|
|
"flow_method_nexusreader_web_client_program_cs_getservice_71",
|
|
"flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74",
|
|
"flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74",
|
|
"flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74",
|
|
"flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74",
|
|
"flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
|
|
"flow_method_nexusreader_web_client_program_cs_addauthor_84",
|
|
"flow_method_nexusreader_web_client_program_cs_addebook_84",
|
|
"flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84",
|
|
"flow_method_nexusreader_web_client_program_cs_savechangesasync_84",
|
|
"flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84"
|
|
],
|
|
"edgeIds": [
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_program_top_level_15_invokes_15",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_program_top_level_15_flow_action_nexusreader_web_client_program_cs_program_top_level_await_59_59_invokes_59",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_createdbcontext_61_invokes_61",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_createdbcontext_61_flow_action_nexusreader_web_client_program_cs_createdbcontext_throw_63_63_invokes_63",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_generateasync_69_invokes_69",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_generateasync_69_flow_action_nexusreader_web_client_program_cs_generateasync_throw_70_70_invokes_70",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_getservice_71_invokes_71",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_getservice_71_flow_action_nexusreader_web_client_program_cs_getservice_return_71_71_returns_71",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74_invokes_74",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_saveebookasync_byte_74_flow_action_nexusreader_web_client_program_cs_saveebookasync_byte_throw_78_78_invokes_78",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74_invokes_74",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_saveebookasync_stream_74_flow_action_nexusreader_web_client_program_cs_saveebookasync_stream_throw_78_78_invokes_78",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74_invokes_74",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_savecoverasync_byte_74_flow_action_nexusreader_web_client_program_cs_savecoverasync_byte_throw_78_78_invokes_78",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74_invokes_74",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_savecoverasync_stream_74_flow_action_nexusreader_web_client_program_cs_savecoverasync_stream_throw_78_78_invokes_78",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84_invokes_84",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_findauthorbynameasync_84_flow_action_nexusreader_web_client_program_cs_findauthorbynameasync_repository_read_88_88_invokes_88",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addauthor_84_invokes_84",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_addauthor_84_flow_action_nexusreader_web_client_program_cs_addauthor_repository_read_88_88_invokes_88",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_addebook_84_invokes_84",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_addebook_84_flow_action_nexusreader_web_client_program_cs_addebook_repository_read_88_88_invokes_88",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_savechangesasync_84_invokes_84",
|
|
"edge_flow_method_nexusreader_web_client_program_cs_savechangesasync_84_flow_action_nexusreader_web_client_program_cs_savechangesasync_repository_read_88_88_invokes_88",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines-type_61",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines-type_66",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines-type_74",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines-type_84",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94_defines-type_94",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers-service_18",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers-service_19",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers-service_32",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers-service_40",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_49_registers-service_49",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_application_extension_55_registers-service_55",
|
|
"edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_method_nexusreader_web_client_program_cs_buildandrun_59_configures-pipeline_59"
|
|
],
|
|
"confidence": "high",
|
|
"businessValue": 68,
|
|
"evidencePaths": [
|
|
"NexusReader.Web.Client/Program.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Web.Client/Program.cs",
|
|
"line": 1
|
|
}
|
|
],
|
|
"businessSignals": [
|
|
"trigger",
|
|
"validation-decision"
|
|
],
|
|
"scoreBreakdown": {
|
|
"entrypointQuality": 25,
|
|
"crossLayerDepth": 0,
|
|
"businessSignals": 8,
|
|
"evidenceStrength": 20,
|
|
"contractCoverage": 15,
|
|
"total": 68
|
|
},
|
|
"validationIssues": [],
|
|
"recommendedDiagramKinds": [
|
|
"primary-runtime",
|
|
"dependency-map",
|
|
"class-diagram",
|
|
"method-flow"
|
|
],
|
|
"producedArtifacts": [
|
|
{
|
|
"id": "business_overview_md_phase_inputs",
|
|
"label": "Phase Inputs",
|
|
"path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
|
|
"producerPath": "src/documentation/v4/phase4Generation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_context_bag",
|
|
"label": "Context Bag",
|
|
"path": "machine/context-bags/business_overview.context-bag.json",
|
|
"producerPath": "src/documentation/v4/buildContextBags.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_planning_debug",
|
|
"label": "Planning Debug",
|
|
"path": "debug/planning.debug.json",
|
|
"producerPath": "src/documentation/v4/phase1Orientation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_catalog",
|
|
"label": "Flow Catalog",
|
|
"path": "machine/flow-catalog.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_selection",
|
|
"label": "Flow Selection",
|
|
"path": "machine/flow-selection.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_business_map",
|
|
"label": "Business Map",
|
|
"path": "machine/business-map.json",
|
|
"producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_index_output",
|
|
"label": "Published Index",
|
|
"path": "index.md",
|
|
"producerPath": "src/documentation/v4/phase5Index.ts",
|
|
"status": "generated"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "xref_business_overview_md_user_authentication_flow",
|
|
"name": "User Authentication Flow",
|
|
"category": "frontend-to-backend",
|
|
"entryNodeId": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"nodeIds": [
|
|
"flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35"
|
|
],
|
|
"edgeIds": [
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
|
|
"edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12"
|
|
],
|
|
"confidence": "high",
|
|
"businessValue": 68,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1
|
|
}
|
|
],
|
|
"businessSignals": [
|
|
"trigger",
|
|
"validation-decision"
|
|
],
|
|
"scoreBreakdown": {
|
|
"entrypointQuality": 25,
|
|
"crossLayerDepth": 0,
|
|
"businessSignals": 8,
|
|
"evidenceStrength": 20,
|
|
"contractCoverage": 15,
|
|
"total": 68
|
|
},
|
|
"validationIssues": [],
|
|
"recommendedDiagramKinds": [
|
|
"primary-runtime",
|
|
"control-flow",
|
|
"dependency-map",
|
|
"class-diagram",
|
|
"method-flow"
|
|
],
|
|
"producedArtifacts": [
|
|
{
|
|
"id": "business_overview_md_phase_inputs",
|
|
"label": "Phase Inputs",
|
|
"path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
|
|
"producerPath": "src/documentation/v4/phase4Generation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_context_bag",
|
|
"label": "Context Bag",
|
|
"path": "machine/context-bags/business_overview.context-bag.json",
|
|
"producerPath": "src/documentation/v4/buildContextBags.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_planning_debug",
|
|
"label": "Planning Debug",
|
|
"path": "debug/planning.debug.json",
|
|
"producerPath": "src/documentation/v4/phase1Orientation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_catalog",
|
|
"label": "Flow Catalog",
|
|
"path": "machine/flow-catalog.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_selection",
|
|
"label": "Flow Selection",
|
|
"path": "machine/flow-selection.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_business_map",
|
|
"label": "Business Map",
|
|
"path": "machine/business-map.json",
|
|
"producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_index_output",
|
|
"label": "Published Index",
|
|
"path": "index.md",
|
|
"producerPath": "src/documentation/v4/phase5Index.ts",
|
|
"status": "generated"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "xref_business_overview_md_token_refresh_request_retry_flow",
|
|
"name": "Token Refresh / Request Retry Flow",
|
|
"category": "frontend-to-backend",
|
|
"entryNodeId": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"nodeIds": [
|
|
"flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35"
|
|
],
|
|
"edgeIds": [
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
|
|
"edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12"
|
|
],
|
|
"confidence": "high",
|
|
"businessValue": 68,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1
|
|
}
|
|
],
|
|
"businessSignals": [
|
|
"trigger",
|
|
"validation-decision"
|
|
],
|
|
"scoreBreakdown": {
|
|
"entrypointQuality": 25,
|
|
"crossLayerDepth": 0,
|
|
"businessSignals": 8,
|
|
"evidenceStrength": 20,
|
|
"contractCoverage": 15,
|
|
"total": 68
|
|
},
|
|
"validationIssues": [],
|
|
"recommendedDiagramKinds": [
|
|
"primary-runtime",
|
|
"control-flow",
|
|
"dependency-map",
|
|
"class-diagram",
|
|
"method-flow"
|
|
],
|
|
"producedArtifacts": [
|
|
{
|
|
"id": "business_overview_md_phase_inputs",
|
|
"label": "Phase Inputs",
|
|
"path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
|
|
"producerPath": "src/documentation/v4/phase4Generation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_context_bag",
|
|
"label": "Context Bag",
|
|
"path": "machine/context-bags/business_overview.context-bag.json",
|
|
"producerPath": "src/documentation/v4/buildContextBags.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_planning_debug",
|
|
"label": "Planning Debug",
|
|
"path": "debug/planning.debug.json",
|
|
"producerPath": "src/documentation/v4/phase1Orientation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_catalog",
|
|
"label": "Flow Catalog",
|
|
"path": "machine/flow-catalog.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_selection",
|
|
"label": "Flow Selection",
|
|
"path": "machine/flow-selection.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_business_map",
|
|
"label": "Business Map",
|
|
"path": "machine/business-map.json",
|
|
"producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_index_output",
|
|
"label": "Published Index",
|
|
"path": "index.md",
|
|
"producerPath": "src/documentation/v4/phase5Index.ts",
|
|
"status": "generated"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "xref_business_overview_md_pro_access_authorization_flow",
|
|
"name": "Pro Access Authorization Flow",
|
|
"category": "frontend-to-backend",
|
|
"entryNodeId": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"nodeIds": [
|
|
"flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35"
|
|
],
|
|
"edgeIds": [
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
|
|
"edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12"
|
|
],
|
|
"confidence": "high",
|
|
"businessValue": 68,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1
|
|
}
|
|
],
|
|
"businessSignals": [
|
|
"trigger",
|
|
"validation-decision"
|
|
],
|
|
"scoreBreakdown": {
|
|
"entrypointQuality": 25,
|
|
"crossLayerDepth": 0,
|
|
"businessSignals": 8,
|
|
"evidenceStrength": 20,
|
|
"contractCoverage": 15,
|
|
"total": 68
|
|
},
|
|
"validationIssues": [],
|
|
"recommendedDiagramKinds": [
|
|
"primary-runtime",
|
|
"control-flow",
|
|
"dependency-map",
|
|
"class-diagram",
|
|
"method-flow"
|
|
],
|
|
"producedArtifacts": [
|
|
{
|
|
"id": "business_overview_md_phase_inputs",
|
|
"label": "Phase Inputs",
|
|
"path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
|
|
"producerPath": "src/documentation/v4/phase4Generation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_context_bag",
|
|
"label": "Context Bag",
|
|
"path": "machine/context-bags/business_overview.context-bag.json",
|
|
"producerPath": "src/documentation/v4/buildContextBags.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_planning_debug",
|
|
"label": "Planning Debug",
|
|
"path": "debug/planning.debug.json",
|
|
"producerPath": "src/documentation/v4/phase1Orientation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_catalog",
|
|
"label": "Flow Catalog",
|
|
"path": "machine/flow-catalog.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_selection",
|
|
"label": "Flow Selection",
|
|
"path": "machine/flow-selection.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_business_map",
|
|
"label": "Business Map",
|
|
"path": "machine/business-map.json",
|
|
"producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_index_output",
|
|
"label": "Published Index",
|
|
"path": "index.md",
|
|
"producerPath": "src/documentation/v4/phase5Index.ts",
|
|
"status": "generated"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "xref_business_overview_md_ebook_ingestion_flow",
|
|
"name": "Ebook Ingestion Flow",
|
|
"category": "frontend-to-backend",
|
|
"entryNodeId": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"nodeIds": [
|
|
"flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35"
|
|
],
|
|
"edgeIds": [
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
|
|
"edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines-type_10",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers-service_28",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers-service_29",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers-service_32",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers-service_33",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers-service_35",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers-service_38",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers-service_41",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers-service_42",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers-service_43",
|
|
"edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures-pipeline_12"
|
|
],
|
|
"confidence": "high",
|
|
"businessValue": 68,
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs"
|
|
],
|
|
"evidenceReferences": [
|
|
{
|
|
"path": "NexusReader.Maui/MauiProgram.cs",
|
|
"line": 1
|
|
}
|
|
],
|
|
"businessSignals": [
|
|
"trigger",
|
|
"validation-decision"
|
|
],
|
|
"scoreBreakdown": {
|
|
"entrypointQuality": 25,
|
|
"crossLayerDepth": 0,
|
|
"businessSignals": 8,
|
|
"evidenceStrength": 20,
|
|
"contractCoverage": 15,
|
|
"total": 68
|
|
},
|
|
"validationIssues": [],
|
|
"recommendedDiagramKinds": [
|
|
"primary-runtime",
|
|
"control-flow",
|
|
"dependency-map",
|
|
"class-diagram",
|
|
"method-flow"
|
|
],
|
|
"producedArtifacts": [
|
|
{
|
|
"id": "business_overview_md_phase_inputs",
|
|
"label": "Phase Inputs",
|
|
"path": "machine/phase-inputs/business__business-overview.phase-inputs.json",
|
|
"producerPath": "src/documentation/v4/phase4Generation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_context_bag",
|
|
"label": "Context Bag",
|
|
"path": "machine/context-bags/business_overview.context-bag.json",
|
|
"producerPath": "src/documentation/v4/buildContextBags.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_planning_debug",
|
|
"label": "Planning Debug",
|
|
"path": "debug/planning.debug.json",
|
|
"producerPath": "src/documentation/v4/phase1Orientation.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_catalog",
|
|
"label": "Flow Catalog",
|
|
"path": "machine/flow-catalog.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_flow_selection",
|
|
"label": "Flow Selection",
|
|
"path": "machine/flow-selection.json",
|
|
"producerPath": "src/documentation/v4/phase3_7FlowRanking.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_business_map",
|
|
"label": "Business Map",
|
|
"path": "machine/business-map.json",
|
|
"producerPath": "src/documentation/v4/phase3_5BusinessUnderstanding.ts",
|
|
"status": "generated"
|
|
},
|
|
{
|
|
"id": "business_overview_md_index_output",
|
|
"label": "Published Index",
|
|
"path": "index.md",
|
|
"producerPath": "src/documentation/v4/phase5Index.ts",
|
|
"status": "generated"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"testLinkMetadata": []
|
|
},
|
|
"generatedDiagrams": [
|
|
{
|
|
"id": "dependency_map_graph",
|
|
"kind": "dependency-map",
|
|
"title": "Dependency and Model Map",
|
|
"direction": "TD",
|
|
"nodes": [
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"kind": "service",
|
|
"label": "MauiProgram",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"kind": "dependency",
|
|
"label": "MauiProgram",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"kind": "dependency",
|
|
"label": "MauiPlatformService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"kind": "dependency",
|
|
"label": "MauiStorageService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"kind": "dependency",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"kind": "dependency",
|
|
"label": "NexusAuthenticationStateProvider (resolved)",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"kind": "dependency",
|
|
"label": "AuthorizationCore",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"kind": "dependency",
|
|
"label": "HttpClient",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"kind": "dependency",
|
|
"label": "ThemeService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"kind": "dependency",
|
|
"label": "FocusModeService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"kind": "dependency",
|
|
"label": "QuizStateService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"kind": "dependency",
|
|
"label": "ReaderNavigationService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"kind": "service",
|
|
"label": "Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
|
|
"kind": "dependency",
|
|
"label": "ThrowingDbContextFactory",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 61
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
|
|
"kind": "dependency",
|
|
"label": "ThrowingEmbeddingGenerator",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 66
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
|
|
"kind": "dependency",
|
|
"label": "ThrowingBookStorageService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
|
|
"kind": "dependency",
|
|
"label": "ThrowingEbookRepository",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
|
|
"kind": "dependency",
|
|
"label": "ThrowingSyncBroadcaster",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 94
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
|
|
"kind": "dependency",
|
|
"label": "WebPlatformService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 18
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
|
|
"kind": "dependency",
|
|
"label": "WebStorageService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 19
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"semanticLabel": "model MauiProgram",
|
|
"visibleLabel": "model MauiProgram",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"expandedLabel": "defines-type"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"semanticLabel": "IPlatformService",
|
|
"visibleLabel": "IPlatformService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"semanticLabel": "INativeStorageService",
|
|
"visibleLabel": "INativeStorageService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Native storage implementation for MAUI",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"semanticLabel": "NexusAuthenticationStateProvider",
|
|
"visibleLabel": "NexusAuthenticationStateProvider",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Authentication state provider registered for Blazor auth",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"semanticLabel": "AuthenticationStateProvider",
|
|
"visibleLabel": "AuthenticationStateProvider",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"semanticLabel": "Authorization",
|
|
"visibleLabel": "Authorization",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Adds authorization core services",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"semanticLabel": "HttpClient",
|
|
"visibleLabel": "HttpClient",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"semanticLabel": "IThemeService",
|
|
"visibleLabel": "IThemeService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "UI theme management",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"semanticLabel": "IFocusModeService",
|
|
"visibleLabel": "IFocusModeService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Focus mode UI behavior",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"semanticLabel": "IQuizStateService",
|
|
"visibleLabel": "IQuizStateService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Quiz state tracking",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"semanticLabel": "IReaderNavigationService",
|
|
"visibleLabel": "IReaderNavigationService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Reader navigation abstraction",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61_defines_type_61",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingdbcontextfactory_61",
|
|
"semanticLabel": "model ThrowingDbContextFactory",
|
|
"visibleLabel": "model ThrowingDbContextFactory",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 61,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "IDbContextFactory implementation that prevents EF DbContext usage in the WASM client by throwing.",
|
|
"expandedLabel": "defines-type"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66_defines_type_66",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingembeddinggenerator_66",
|
|
"semanticLabel": "model ThrowingEmbeddingGenerator",
|
|
"visibleLabel": "model ThrowingEmbeddingGenerator",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 66,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "IEmbeddingGenerator stub that throws on GenerateAsync to prevent embedding generation in WASM.",
|
|
"expandedLabel": "defines-type"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74_defines_type_74",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingbookstorageservice_74",
|
|
"semanticLabel": "model ThrowingBookStorageService",
|
|
"visibleLabel": "model ThrowingBookStorageService",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 74,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "IBookStorageService stub that throws for all file storage operations in the WASM client.",
|
|
"expandedLabel": "defines-type"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84_defines_type_84",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingebookrepository_84",
|
|
"semanticLabel": "model ThrowingEbookRepository",
|
|
"visibleLabel": "model ThrowingEbookRepository",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 84,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "IEbookRepository stub that throws for all repository operations to force use of server API.",
|
|
"expandedLabel": "defines-type"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94_defines_type_94",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_throwingsyncbroadcaster_94",
|
|
"semanticLabel": "model ThrowingSyncBroadcaster",
|
|
"visibleLabel": "model ThrowingSyncBroadcaster",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 94,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "ISyncBroadcaster stub that throws for real-time broadcasting operations in the WASM client.",
|
|
"expandedLabel": "defines-type"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers_service_18",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
|
|
"semanticLabel": "IPlatformService",
|
|
"visibleLabel": "IPlatformService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 18,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Platform abstraction for browser environment",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers_service_19",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
|
|
"semanticLabel": "INativeStorageService",
|
|
"visibleLabel": "INativeStorageService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 19,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Browser storage implementation",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
}
|
|
],
|
|
"metadata": {
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
},
|
|
"subgraphs": []
|
|
},
|
|
{
|
|
"id": "startup_runtime_graph",
|
|
"kind": "primary-runtime",
|
|
"title": "Startup and Service Registration Flow",
|
|
"direction": "TD",
|
|
"nodes": [
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"kind": "service",
|
|
"label": "MauiProgram",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"kind": "method",
|
|
"label": "CreateMauiApp",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"kind": "dependency",
|
|
"label": "MauiPlatformService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"kind": "dependency",
|
|
"label": "MauiStorageService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"kind": "dependency",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"kind": "dependency",
|
|
"label": "NexusAuthenticationStateProvider (resolved)",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"kind": "dependency",
|
|
"label": "AuthorizationCore",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"kind": "dependency",
|
|
"label": "HttpClient",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"kind": "dependency",
|
|
"label": "ThemeService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"kind": "dependency",
|
|
"label": "FocusModeService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"kind": "dependency",
|
|
"label": "QuizStateService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"kind": "dependency",
|
|
"label": "ReaderNavigationService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"kind": "service",
|
|
"label": "Program.cs",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
|
|
"kind": "dependency",
|
|
"label": "WebPlatformService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 18
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
|
|
"kind": "dependency",
|
|
"label": "WebStorageService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 19
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
|
|
"kind": "dependency",
|
|
"label": "IdentityService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 32
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
|
|
"kind": "dependency",
|
|
"label": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 40
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"semanticLabel": "IPlatformService",
|
|
"visibleLabel": "IPlatformService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"semanticLabel": "INativeStorageService",
|
|
"visibleLabel": "INativeStorageService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Native storage implementation for MAUI",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"semanticLabel": "NexusAuthenticationStateProvider",
|
|
"visibleLabel": "NexusAuthenticationStateProvider",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Authentication state provider registered for Blazor auth",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"semanticLabel": "AuthenticationStateProvider",
|
|
"visibleLabel": "AuthenticationStateProvider",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"semanticLabel": "Authorization",
|
|
"visibleLabel": "Authorization",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Adds authorization core services",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"semanticLabel": "HttpClient",
|
|
"visibleLabel": "HttpClient",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"semanticLabel": "IThemeService",
|
|
"visibleLabel": "IThemeService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "UI theme management",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"semanticLabel": "IFocusModeService",
|
|
"visibleLabel": "IFocusModeService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Focus mode UI behavior",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"semanticLabel": "IQuizStateService",
|
|
"visibleLabel": "IQuizStateService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Quiz state tracking",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"semanticLabel": "IReaderNavigationService",
|
|
"visibleLabel": "IReaderNavigationService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Reader navigation abstraction",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"semanticLabel": "unknown",
|
|
"visibleLabel": "unknown",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "unknown",
|
|
"expandedLabel": "configures-pipeline"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webplatformservice_18_registers_service_18",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_webplatformservice_18",
|
|
"semanticLabel": "IPlatformService",
|
|
"visibleLabel": "IPlatformService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 18,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Platform abstraction for browser environment",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_webstorageservice_19_registers_service_19",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_webstorageservice_19",
|
|
"semanticLabel": "INativeStorageService",
|
|
"visibleLabel": "INativeStorageService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 19,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Browser storage implementation",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_identityservice_32_registers_service_32",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_identityservice_32",
|
|
"semanticLabel": "IIdentityService",
|
|
"visibleLabel": "IIdentityService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 32,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Client-side identity interactions",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_program_cs_file_1_flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40_registers_service_40",
|
|
"from": "flow_file_nexusreader_web_client_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_client_program_cs_nexusreader_web_client_handlers_authenticationheaderhandler_40",
|
|
"semanticLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
|
|
"visibleLabel": "NexusReader.Web.Client.Handlers.AuthenticationHeaderHandler",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Program.cs",
|
|
"sourceLine": 40,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "HTTP message handler registered for adding auth headers",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
}
|
|
],
|
|
"subgraphs": [
|
|
{
|
|
"id": "flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"label": "MauiProgram"
|
|
},
|
|
{
|
|
"id": "flow_1_nexusreader_web_client_program_cs",
|
|
"label": "Program.cs"
|
|
},
|
|
{
|
|
"id": "Node_xref_business_overview_md_user_authentication_flow",
|
|
"label": "User Authentication Flow"
|
|
},
|
|
{
|
|
"id": "Node_xref_business_overview_md_token_refresh_request_retry_flow",
|
|
"label": "Token Refresh / Request Retry Flow"
|
|
},
|
|
{
|
|
"id": "Node_xref_business_overview_md_pro_access_authorization_flow",
|
|
"label": "Pro Access Authorization Flow"
|
|
}
|
|
],
|
|
"metadata": {
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "primary_runtime_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"kind": "primary-runtime",
|
|
"title": "MauiProgram Flow",
|
|
"direction": "TD",
|
|
"nodes": [
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"kind": "service",
|
|
"label": "MauiProgram",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"kind": "method",
|
|
"label": "CreateMauiApp",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"kind": "step",
|
|
"label": "Begins protected execution",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"kind": "return",
|
|
"label": "Build and return app",
|
|
"shape": "stadium",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"kind": "step",
|
|
"label": "Handles exception path",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"kind": "step",
|
|
"label": "Throws exception",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"kind": "dependency",
|
|
"label": "MauiProgram",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"kind": "dependency",
|
|
"label": "MauiPlatformService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"kind": "dependency",
|
|
"label": "MauiStorageService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"kind": "dependency",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"kind": "dependency",
|
|
"label": "NexusAuthenticationStateProvider (resolved)",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"kind": "dependency",
|
|
"label": "AuthorizationCore",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"kind": "dependency",
|
|
"label": "HttpClient",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"kind": "dependency",
|
|
"label": "ThemeService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"kind": "dependency",
|
|
"label": "FocusModeService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"kind": "dependency",
|
|
"label": "QuizStateService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"kind": "dependency",
|
|
"label": "ReaderNavigationService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"kind": "service",
|
|
"label": "Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"kind": "method",
|
|
"label": "Program (top-level)",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 29
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"kind": "step",
|
|
"label": "Evaluates branch condition",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 62
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"kind": "step",
|
|
"label": "Falls back to alternate path",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 66
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"kind": "step",
|
|
"label": "Reads repository or persistence state",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 125
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"kind": "step",
|
|
"label": "Reads repository or persistence state",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 126
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"kind": "step",
|
|
"label": "Reads repository or persistence state",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 127
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"semanticLabel": "CreateMauiApp",
|
|
"visibleLabel": "CreateMauiApp",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"expandedLabel": "handles-route"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"semanticLabel": "Begins protected execution",
|
|
"visibleLabel": "Begins protected execution",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "try",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"semanticLabel": "Build and return app",
|
|
"visibleLabel": "Build and return app",
|
|
"relation": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "return builder.Build()",
|
|
"expandedLabel": "returns"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"semanticLabel": "Returns result",
|
|
"visibleLabel": "Returns result",
|
|
"relation": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "return builder.Build();",
|
|
"expandedLabel": "returns"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"semanticLabel": "handled exception",
|
|
"visibleLabel": "handled exception",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "catch (Exception ex)",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"semanticLabel": "Throws exception",
|
|
"visibleLabel": "Throws exception",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "throw;",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"semanticLabel": "model MauiProgram",
|
|
"visibleLabel": "model MauiProgram",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"expandedLabel": "defines-type"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"semanticLabel": "IPlatformService",
|
|
"visibleLabel": "IPlatformService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"semanticLabel": "INativeStorageService",
|
|
"visibleLabel": "INativeStorageService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Native storage implementation for MAUI",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"semanticLabel": "NexusAuthenticationStateProvider",
|
|
"visibleLabel": "NexusAuthenticationStateProvider",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Authentication state provider registered for Blazor auth",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"semanticLabel": "AuthenticationStateProvider",
|
|
"visibleLabel": "AuthenticationStateProvider",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"semanticLabel": "Authorization",
|
|
"visibleLabel": "Authorization",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Adds authorization core services",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"semanticLabel": "HttpClient",
|
|
"visibleLabel": "HttpClient",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"semanticLabel": "IThemeService",
|
|
"visibleLabel": "IThemeService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "UI theme management",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"semanticLabel": "IFocusModeService",
|
|
"visibleLabel": "IFocusModeService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Focus mode UI behavior",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"semanticLabel": "IQuizStateService",
|
|
"visibleLabel": "IQuizStateService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Quiz state tracking",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"semanticLabel": "IReaderNavigationService",
|
|
"visibleLabel": "IReaderNavigationService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Reader navigation abstraction",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"semanticLabel": "unknown",
|
|
"visibleLabel": "unknown",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "unknown",
|
|
"expandedLabel": "configures-pipeline"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_program_top_level_29_invokes_29",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"semanticLabel": "Program (top-level)",
|
|
"visibleLabel": "Program top-level",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 29,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Configure DI, middleware, authentication/authorization, register endpoints and run the web host.",
|
|
"expandedLabel": "handles-route"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
|
|
"from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"semanticLabel": "true / false",
|
|
"visibleLabel": "true / false",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"expandedLabel": "evaluates-condition"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"semanticLabel": "fallback",
|
|
"visibleLabel": "fallback",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 66,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "else",
|
|
"expandedLabel": "falls-back"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"visibleLabel": "Reads repository or persistence state",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 125,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"visibleLabel": "Reads repository or persistence state",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 126,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"visibleLabel": "Reads repository or persistence state",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 127,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
}
|
|
],
|
|
"subgraphs": [
|
|
{
|
|
"id": "flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"label": "MauiProgram"
|
|
},
|
|
{
|
|
"id": "flow_0_nexusreader_web_program_cs",
|
|
"label": "Program.cs"
|
|
},
|
|
{
|
|
"id": "Node_xref_business_overview_md_user_authentication_flow",
|
|
"label": "User Authentication Flow"
|
|
},
|
|
{
|
|
"id": "Node_xref_business_overview_md_token_refresh_request_retry_flow",
|
|
"label": "Token Refresh / Request Retry Flow"
|
|
},
|
|
{
|
|
"id": "Node_xref_business_overview_md_pro_access_authorization_flow",
|
|
"label": "Pro Access Authorization Flow"
|
|
}
|
|
],
|
|
"metadata": {
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "control_flow_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"kind": "control-flow",
|
|
"title": "MauiProgram Execution Control Flow",
|
|
"direction": "TD",
|
|
"nodes": [
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"kind": "service",
|
|
"label": "MauiProgram",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"kind": "method",
|
|
"label": "CreateMauiApp",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"kind": "step",
|
|
"label": "Begins protected execution",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"kind": "return",
|
|
"label": "Build and return app",
|
|
"shape": "stadium",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"kind": "step",
|
|
"label": "Handles exception path",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"kind": "step",
|
|
"label": "Throws exception",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"kind": "service",
|
|
"label": "Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"kind": "method",
|
|
"label": "Program (top-level)",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 29
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"kind": "step",
|
|
"label": "Evaluates branch condition",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 62
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"kind": "step",
|
|
"label": "Falls back to alternate path",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 66
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"kind": "step",
|
|
"label": "Reads repository or persistence state",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 125
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"kind": "step",
|
|
"label": "Reads repository or persistence state",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 126
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"kind": "step",
|
|
"label": "Reads repository or persistence state",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 127
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
|
|
"kind": "step",
|
|
"label": "Evaluates branch condition",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 129
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"semanticLabel": "Begins protected execution",
|
|
"visibleLabel": "Begins protected execution",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "try",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"semanticLabel": "Build and return app",
|
|
"visibleLabel": "Build and return app",
|
|
"relation": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "return builder.Build()",
|
|
"expandedLabel": "returns"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"semanticLabel": "Returns result",
|
|
"visibleLabel": "Returns result",
|
|
"relation": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "return builder.Build();",
|
|
"expandedLabel": "returns"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"semanticLabel": "handled exception",
|
|
"visibleLabel": "handled exception",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "catch (Exception ex)",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"semanticLabel": "Throws exception",
|
|
"visibleLabel": "Throws exception",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "throw;",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
|
|
"from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"semanticLabel": "true / false",
|
|
"visibleLabel": "true / false",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"expandedLabel": "evaluates-condition"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"semanticLabel": "fallback",
|
|
"visibleLabel": "fallback",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 66,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "else",
|
|
"expandedLabel": "falls-back"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_invokes_125",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"visibleLabel": "Reads repository or persistence state",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 125,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "var isApiRequest = context.Request.Path.StartsWithSegments(\"/api\") ||",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_invokes_126",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_125_125",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"visibleLabel": "Reads repository or persistence state",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 126,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "context.Request.Path.StartsWithSegments(\"/identity\") ||",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_invokes_127",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_126_126",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"visibleLabel": "Reads repository or persistence state",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 127,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "context.Request.Headers[\"Accept\"].ToString().Contains(\"application/json\");",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates_condition_129",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
|
|
"semanticLabel": "true / false",
|
|
"visibleLabel": "true / false",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 129,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "if (isApiRequest)",
|
|
"expandedLabel": "evaluates-condition"
|
|
}
|
|
}
|
|
],
|
|
"subgraphs": [
|
|
{
|
|
"id": "NexusReader_Maui_MauiProgram",
|
|
"label": "MauiProgram"
|
|
},
|
|
{
|
|
"id": "NexusReader_Web_Program",
|
|
"label": "Program"
|
|
}
|
|
],
|
|
"metadata": {
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "contracts_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"kind": "class-diagram",
|
|
"title": "MauiProgram Contracts and Entities",
|
|
"direction": "LR",
|
|
"nodes": [
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"kind": "service",
|
|
"label": "MauiProgram",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"kind": "dependency",
|
|
"label": "MauiProgram",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"kind": "dependency",
|
|
"label": "MauiPlatformService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"kind": "dependency",
|
|
"label": "MauiStorageService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"kind": "dependency",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"kind": "dependency",
|
|
"label": "NexusAuthenticationStateProvider (resolved)",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"kind": "dependency",
|
|
"label": "AuthorizationCore",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"kind": "dependency",
|
|
"label": "HttpClient",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"kind": "dependency",
|
|
"label": "ThemeService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"kind": "dependency",
|
|
"label": "FocusModeService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"kind": "dependency",
|
|
"label": "QuizStateService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"kind": "dependency",
|
|
"label": "ReaderNavigationService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"kind": "service",
|
|
"label": "Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
|
|
"kind": "dependency",
|
|
"label": "KnowledgeRequest",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 566
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
|
|
"kind": "dependency",
|
|
"label": "GroundednessRequest",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 567
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
|
|
"kind": "dependency",
|
|
"label": "SemanticSearchRequest",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 568
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
|
|
"kind": "dependency",
|
|
"label": "AskQuestionRequest",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 569
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"semanticLabel": "model MauiProgram",
|
|
"visibleLabel": "model MauiProgram",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"expandedLabel": "defines-type"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_knowledgerequest_566_maps_dto_566",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_knowledgerequest_566",
|
|
"semanticLabel": "dto KnowledgeRequest",
|
|
"visibleLabel": "dto KnowledgeRequest",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 566,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "DTO for knowledge-related API calls containing input text and optional ebook id.",
|
|
"expandedLabel": "maps-dto"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_groundednessrequest_567_maps_dto_567",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_groundednessrequest_567",
|
|
"semanticLabel": "dto GroundednessRequest",
|
|
"visibleLabel": "dto GroundednessRequest",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 567,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "DTO for verifying groundedness of an answer against context.",
|
|
"expandedLabel": "maps-dto"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_semanticsearchrequest_568_maps_dto_568",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_semanticsearchrequest_568",
|
|
"semanticLabel": "dto SemanticSearchRequest",
|
|
"visibleLabel": "dto SemanticSearchRequest",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 568,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "DTO for semantic search requests.",
|
|
"expandedLabel": "maps-dto"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_type_nexusreader_web_program_cs_askquestionrequest_569_maps_dto_569",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_type_nexusreader_web_program_cs_askquestionrequest_569",
|
|
"semanticLabel": "dto AskQuestionRequest",
|
|
"visibleLabel": "dto AskQuestionRequest",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 569,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "DTO for asking a question against knowledge with optional ebook scope and limit.",
|
|
"expandedLabel": "maps-dto"
|
|
}
|
|
}
|
|
],
|
|
"metadata": {
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
],
|
|
"previewCompatibility": {
|
|
"preferredSurface": "two-d",
|
|
"fallback": "open-2d-preview",
|
|
"reason": "class-diagram is preserved for 2D Mermaid rendering while 3D preview stays flowchart-only."
|
|
}
|
|
},
|
|
"subgraphs": []
|
|
},
|
|
{
|
|
"id": "layer_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"kind": "dependency-map",
|
|
"title": "MauiProgram Layer View",
|
|
"direction": "LR",
|
|
"nodes": [
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"kind": "service",
|
|
"label": "MauiProgram",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"kind": "step",
|
|
"label": "Begins protected execution",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"kind": "return",
|
|
"label": "Build and return app",
|
|
"shape": "stadium",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"kind": "step",
|
|
"label": "Handles exception path",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"kind": "step",
|
|
"label": "Throws exception",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"kind": "dependency",
|
|
"label": "MauiProgram",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"kind": "dependency",
|
|
"label": "MauiPlatformService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"kind": "dependency",
|
|
"label": "MauiStorageService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"kind": "dependency",
|
|
"label": "NexusAuthenticationStateProvider",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"kind": "dependency",
|
|
"label": "NexusAuthenticationStateProvider (resolved)",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"kind": "dependency",
|
|
"label": "AuthorizationCore",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"kind": "dependency",
|
|
"label": "HttpClient",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"kind": "dependency",
|
|
"label": "ThemeService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"kind": "dependency",
|
|
"label": "FocusModeService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"kind": "dependency",
|
|
"label": "QuizStateService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"kind": "dependency",
|
|
"label": "ReaderNavigationService",
|
|
"shape": "doc",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"subgraphId": "layer_unknown"
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"kind": "service",
|
|
"label": "Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 1,
|
|
"subgraphId": "layer_application"
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"kind": "step",
|
|
"label": "Evaluates branch condition",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"subgraphId": "layer_application"
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"semanticLabel": "Build and return app",
|
|
"visibleLabel": "Build and return app",
|
|
"relation": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "return builder.Build()",
|
|
"expandedLabel": "returns"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"semanticLabel": "Returns result",
|
|
"visibleLabel": "Returns result",
|
|
"relation": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "return builder.Build();",
|
|
"expandedLabel": "returns"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_invokes_59",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"semanticLabel": "handled exception",
|
|
"visibleLabel": "handled exception",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 59,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "catch (Exception ex)",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63_invokes_63",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_catch_59_59",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_throw_63_63",
|
|
"semanticLabel": "Throws exception",
|
|
"visibleLabel": "Throws exception",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 63,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "throw;",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10_defines_type_10",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiprogram_10",
|
|
"semanticLabel": "model MauiProgram",
|
|
"visibleLabel": "model MauiProgram",
|
|
"relation": "transforms",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 10,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Static bootstrap helper class that exposes CreateMauiApp used to initialize the MAUI app.",
|
|
"expandedLabel": "defines-type"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28_registers_service_28",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauiplatformservice_28",
|
|
"semanticLabel": "IPlatformService",
|
|
"visibleLabel": "IPlatformService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 28,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Platform abstraction implemented by mobile-specific MauiPlatformService",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29_registers_service_29",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_mauistorageservice_29",
|
|
"semanticLabel": "INativeStorageService",
|
|
"visibleLabel": "INativeStorageService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 29,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Native storage implementation for MAUI",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32_registers_service_32",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_32",
|
|
"semanticLabel": "NexusAuthenticationStateProvider",
|
|
"visibleLabel": "NexusAuthenticationStateProvider",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 32,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Authentication state provider registered for Blazor auth",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33_registers_service_33",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_nexusauthenticationstateprovider_resolved_33",
|
|
"semanticLabel": "AuthenticationStateProvider",
|
|
"visibleLabel": "AuthenticationStateProvider",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 33,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Registers the framework AuthenticationStateProvider to resolve the NexusAuthenticationStateProvider",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35_registers_service_35",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_authorizationcore_35",
|
|
"semanticLabel": "Authorization",
|
|
"visibleLabel": "Authorization",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 35,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Adds authorization core services",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38_registers_service_38",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_httpclient_38",
|
|
"semanticLabel": "HttpClient",
|
|
"visibleLabel": "HttpClient",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 38,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "HttpClient with BaseAddress pointing to local dev backend (http://10.0.2.2:5000)",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41_registers_service_41",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_themeservice_41",
|
|
"semanticLabel": "IThemeService",
|
|
"visibleLabel": "IThemeService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 41,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "UI theme management",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42_registers_service_42",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_focusmodeservice_42",
|
|
"semanticLabel": "IFocusModeService",
|
|
"visibleLabel": "IFocusModeService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 42,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Focus mode UI behavior",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43_registers_service_43",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_quizstateservice_43",
|
|
"semanticLabel": "IQuizStateService",
|
|
"visibleLabel": "IQuizStateService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 43,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Quiz state tracking",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44_registers_service_44",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_type_nexusreader_maui_mauiprogram_cs_readernavigationservice_44",
|
|
"semanticLabel": "IReaderNavigationService",
|
|
"visibleLabel": "IReaderNavigationService",
|
|
"relation": "uses",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 44,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Reader navigation abstraction",
|
|
"expandedLabel": "registers-service"
|
|
}
|
|
}
|
|
],
|
|
"subgraphs": [
|
|
{
|
|
"id": "layer_unknown",
|
|
"label": "unknown"
|
|
},
|
|
{
|
|
"id": "layer_application",
|
|
"label": "application"
|
|
}
|
|
],
|
|
"metadata": {
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "failure_flow_2_nexusreader_maui_mauiprogram_cs",
|
|
"kind": "control-flow",
|
|
"title": "MauiProgram Guardrails and Failure Paths",
|
|
"direction": "TD",
|
|
"nodes": [
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"kind": "step",
|
|
"label": "Begins protected execution",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"kind": "return",
|
|
"label": "Build and return app",
|
|
"shape": "stadium",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"kind": "method",
|
|
"label": "Program (top-level)",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 29
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"kind": "step",
|
|
"label": "Evaluates branch condition",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 62
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"kind": "step",
|
|
"label": "Falls back to alternate path",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 66
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"kind": "step",
|
|
"label": "Reads repository or persistence state",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 127
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
|
|
"kind": "step",
|
|
"label": "Evaluates branch condition",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 129
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"semanticLabel": "Build and return app",
|
|
"visibleLabel": "Build and return app",
|
|
"relation": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "return builder.Build()",
|
|
"expandedLabel": "returns"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57_returns_57",
|
|
"from": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_return_57_57",
|
|
"semanticLabel": "Returns result",
|
|
"visibleLabel": "Returns result",
|
|
"relation": "returns",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 57,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "return builder.Build();",
|
|
"expandedLabel": "returns"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_program_top_level_29_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_evaluates_condition_62",
|
|
"from": "flow_method_nexusreader_web_program_cs_program_top_level_29",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"semanticLabel": "true / false",
|
|
"visibleLabel": "true / false",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 62,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "if (!string.IsNullOrEmpty(apiBaseUrl))",
|
|
"expandedLabel": "evaluates-condition"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62_flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66_falls_back_66",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_branch_62_62",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_fallback_66_66",
|
|
"semanticLabel": "fallback",
|
|
"visibleLabel": "fallback",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 66,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "else",
|
|
"expandedLabel": "falls-back"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127_flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129_evaluates_condition_129",
|
|
"from": "flow_action_nexusreader_web_program_cs_program_top_level_repository_read_127_127",
|
|
"to": "flow_action_nexusreader_web_program_cs_program_top_level_branch_129_129",
|
|
"semanticLabel": "true / false",
|
|
"visibleLabel": "true / false",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 129,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "if (isApiRequest)",
|
|
"expandedLabel": "evaluates-condition"
|
|
}
|
|
}
|
|
],
|
|
"subgraphs": [
|
|
{
|
|
"id": "NexusReader_Web_Program",
|
|
"label": "Program"
|
|
}
|
|
],
|
|
"metadata": {
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
],
|
|
"warnings": []
|
|
}
|
|
},
|
|
{
|
|
"id": "method_flows_graph",
|
|
"kind": "method-flow",
|
|
"title": "Method Flow Details",
|
|
"direction": "TD",
|
|
"nodes": [
|
|
{
|
|
"id": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"kind": "service",
|
|
"label": "MauiProgram",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"kind": "method",
|
|
"label": "CreateMauiApp",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"kind": "step",
|
|
"label": "Begins protected execution",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"kind": "service",
|
|
"label": "Program.cs",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
|
|
"kind": "method",
|
|
"label": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 250
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
|
|
"kind": "step",
|
|
"label": "Extract userId",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 252
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
|
|
"kind": "method",
|
|
"label": "GetMyEbooks (GET /api/library/books)",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 355
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
|
|
"kind": "step",
|
|
"label": "Ensure authenticated user",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web/Program.cs",
|
|
"sourceLine": 357
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
|
|
"kind": "dependency",
|
|
"label": "ProUserHandler",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
|
|
"kind": "method",
|
|
"label": "HandleRequirementAsync",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 20
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
|
|
"kind": "step",
|
|
"label": "Reads repository or persistence state",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 24
|
|
},
|
|
{
|
|
"id": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
|
|
"kind": "dependency",
|
|
"label": "AuthenticationHeaderHandler",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 1
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
|
|
"kind": "method",
|
|
"label": "SendAsync",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
|
|
"kind": "step",
|
|
"label": "Calls external dependency",
|
|
"shape": "rect",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27
|
|
},
|
|
{
|
|
"id": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
|
|
"kind": "method",
|
|
"label": "CloneHttpRequestMessageAsync",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 112
|
|
},
|
|
{
|
|
"id": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
|
|
"kind": "step",
|
|
"label": "Copy content if present",
|
|
"shape": "diamond",
|
|
"sourcePath": "NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 119
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_invokes_12",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"semanticLabel": "CreateMauiApp",
|
|
"visibleLabel": "CreateMauiApp",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Create and configure the MAUI app builder, register application and platform services, configure debugging tools in DEBUG, and build/return the app; catches startup exceptions and rethrows after logging.",
|
|
"expandedLabel": "handles-route"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14_invokes_14",
|
|
"from": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"to": "flow_action_nexusreader_maui_mauiprogram_cs_createmauiapp_try_14_14",
|
|
"semanticLabel": "Begins protected execution",
|
|
"visibleLabel": "Begins protected execution",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 14,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "try",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_maui_mauiprogram_cs_file_1_flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12_configures_pipeline_12",
|
|
"from": "flow_file_nexusreader_maui_mauiprogram_cs_file_1",
|
|
"to": "flow_method_nexusreader_maui_mauiprogram_cs_createmauiapp_12",
|
|
"semanticLabel": "unknown",
|
|
"visibleLabel": "unknown",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Maui/MauiProgram.cs",
|
|
"sourceLine": 12,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "unknown",
|
|
"expandedLabel": "configures-pipeline"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_invokes_250",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
|
|
"semanticLabel": "GetEpubContent (GET /api/epub/{ebookId}/{index})",
|
|
"visibleLabel": "GetEpubContent GET / api / epub / ebookId / index",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 250,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Return EPUB page content for an ebook index for the current user.",
|
|
"expandedLabel": "handles-route"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250_flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252_evaluates_condition_252",
|
|
"from": "flow_method_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_250",
|
|
"to": "flow_action_nexusreader_web_program_cs_getepubcontent_get_api_epub_ebookid_index_guard_clause_252_252",
|
|
"semanticLabel": "continue",
|
|
"visibleLabel": "continue",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 252,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "var userId = user.FindFirstValue(ClaimTypes.NameIdentifier)",
|
|
"expandedLabel": "evaluates-condition"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_program_cs_file_1_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_invokes_355",
|
|
"from": "flow_file_nexusreader_web_program_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
|
|
"semanticLabel": "GetMyEbooks (GET /api/library/books)",
|
|
"visibleLabel": "GetMyEbooks GET / api / library / books",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 355,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Return list of ebooks for the authenticated user via a GetMyEbooksQuery.",
|
|
"expandedLabel": "handles-route"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355_flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357_evaluates_condition_357",
|
|
"from": "flow_method_nexusreader_web_program_cs_getmyebooks_get_api_library_books_355",
|
|
"to": "flow_action_nexusreader_web_program_cs_getmyebooks_get_api_library_books_guard_clause_357_357",
|
|
"semanticLabel": "Unauthorized / continue",
|
|
"visibleLabel": "Unauthorized / continue",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web/Program.cs",
|
|
"sourceLine": 357,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Return Unauthorized if missing",
|
|
"expandedLabel": "evaluates-condition"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_invokes_20",
|
|
"from": "flow_file_nexusreader_application_security_authorization_prouserhandler_cs_file_1",
|
|
"to": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
|
|
"semanticLabel": "HandleRequirementAsync",
|
|
"visibleLabel": "HandleRequirementAsync",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 20,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Core authorization logic: loads the current user from the DB and grants the requirement when the user has unlimited tokens or remaining AI token quota.",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20_flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24_invokes_24",
|
|
"from": "flow_method_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_20",
|
|
"to": "flow_action_nexusreader_application_security_authorization_prouserhandler_cs_handlerequirementasync_repository_read_24_24",
|
|
"semanticLabel": "Reads repository or persistence state",
|
|
"visibleLabel": "Reads repository or persistence state",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"sourceLine": 24,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "var userId = context.User.FindFirstValue(ClaimTypes.NameIdentifier);",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_invokes_27",
|
|
"from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
|
|
"semanticLabel": "SendAsync",
|
|
"visibleLabel": "SendAsync",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Intercepts outgoing HTTP requests to add a Bearer token for trusted origins, forwards the request, and on 401 attempts a thread-safe token refresh and optionally retries the request with the new token.",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27_invokes_27",
|
|
"from": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_27",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_sendasync_external_call_27_27",
|
|
"semanticLabel": "Calls external dependency",
|
|
"visibleLabel": "Calls external dependency",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 27,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_invokes_112",
|
|
"from": "flow_file_nexusreader_web_client_handlers_authenticationheaderhandler_cs_file_1",
|
|
"to": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
|
|
"semanticLabel": "CloneHttpRequestMessageAsync",
|
|
"visibleLabel": "CloneHttpRequestMessageAsync",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 112,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Creates a deep clone of an HttpRequestMessage (including content stream and headers) suitable for resending.",
|
|
"expandedLabel": "invokes"
|
|
}
|
|
},
|
|
{
|
|
"id": "edge_flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112_flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119_evaluates_condition_119",
|
|
"from": "flow_method_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_112",
|
|
"to": "flow_action_nexusreader_web_client_handlers_authenticationheaderhandler_cs_clonehttprequestmessageasync_branch_119_119",
|
|
"semanticLabel": "copy-content / no-content",
|
|
"visibleLabel": "copy-content / no-content",
|
|
"relation": "calls",
|
|
"sourcePath": "c:/Users/micht/source/repos/Nexus.Reader/src/NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"sourceLine": 119,
|
|
"includeInMetadata": true,
|
|
"payload": {
|
|
"outputSummary": "Copy content if present",
|
|
"expandedLabel": "evaluates-condition"
|
|
}
|
|
}
|
|
],
|
|
"subgraphs": [
|
|
{
|
|
"id": "NexusReader_Maui_MauiProgram",
|
|
"label": "MauiProgram"
|
|
},
|
|
{
|
|
"id": "NexusReader_Web_Program",
|
|
"label": "Program"
|
|
},
|
|
{
|
|
"id": "NexusReader_Application_Security_Authorization_ProUserHandler",
|
|
"label": "ProUserHandler"
|
|
},
|
|
{
|
|
"id": "NexusReader_Web_Client_Handlers_AuthenticationHeaderHandler",
|
|
"label": "AuthenticationHeaderHandler"
|
|
}
|
|
],
|
|
"metadata": {
|
|
"evidencePaths": [
|
|
"NexusReader.Maui/MauiProgram.cs",
|
|
"NexusReader.Web.Client/Program.cs",
|
|
"NexusReader.Web/Program.cs",
|
|
"NexusReader.Application/DTOs/User/AuthorDto.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserHandler.cs",
|
|
"NexusReader.Application/Security/Authorization/ProUserRequirement.cs",
|
|
"NexusReader.Domain/Entities/Author.cs",
|
|
"NexusReader.UI.Shared/Layout/AuthLayout.razor",
|
|
"NexusReader.Web.Client/Handlers/AuthenticationHeaderHandler.cs",
|
|
"NexusReader.UI.Shared/Pages/Account/Login.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Profile.razor",
|
|
"NexusReader.UI.Shared/Components/Atoms/NexusIcon.razor",
|
|
"NexusReader.UI.Shared/Pages/Account/Register.razor",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommand.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/ICommandHandler.cs",
|
|
"NexusReader.Application/Abstractions/Messaging/IQuery.cs"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
} |