From a6985a853eb4b8089ccbbf309a310db40e1b733a Mon Sep 17 00:00:00 2001 From: bitbiter-dev Date: Mon, 28 Sep 2026 20:29:48 +0200 Subject: [PATCH 1/4] fix(api): Transact the revoke-then-save pairing in AdminUserService (#172) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit UpdateAsync and DeleteAsync revoked a user's sessions and then persisted a user mutation without a transaction. Revocation goes through ExecuteUpdateAsync, which bypasses the change tracker and issues SQL immediately, so a failing save left the two writes inconsistent: an admin disables an account, SaveChangesAsync throws, and the account is still enabled with every session gone. DeleteAsync had the same shape — sessions revoked, user row never deleted. Both now use ExecuteInTransactionAsync, matching AdminResetService and AuthService.ChangePasswordAsync, which already wrapped the identical pairing. The early returns stay outside: they write nothing, so a transaction would be cost without purpose. ⭐ The load-bearing assumption was verified rather than assumed: IUnitOfWork is registered as sp => sp.GetRequiredService(), the same scoped context EfRefreshTokenRepository holds, so the ExecuteUpdateAsync really does enlist in the transaction. No EnableRetryOnFailure is configured, so there is no execution-strategy conflict with manual BeginTransactionAsync. The issue said the pattern was transacted in one module and not two others. It was actually correct in two — AdminResetService and AuthService.ChangePasswordAsync — and wrong in AdminUserService's two methods. All four call sites of MarkAllSessionsRevokedAsync are now transacted. Tests assert something stronger than "a transaction was opened": the fixture records whether each write ran *while the transaction lambda was executing*, so code that opened a transaction and then wrote outside it would still fail. Before this change the suite contained no assertion on ExecuteInTransactionAsync at all, which is why it could not tell the two paths apart. Red-first: the new failure-case test reported exactly the defect — "otherwise the sessions stay revoked while the user mutation is lost". ⚠️ Scope held deliberately. The issue also floats reworking TokenService.IssueAsync so callers save once; that is interface depth, not a lost write, and it would put an auth-flow refactor inside a correctness fix. Left for its own issue. Co-Authored-By: Claude Opus 5 (1M context) --- .../Services/AdminUserServiceTests.cs | 84 ++++++++++++++++++- src/Anichron.API/Services/AdminUserService.cs | 23 +++-- 2 files changed, 101 insertions(+), 6 deletions(-) diff --git a/src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs b/src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs index 0d14698..e3e89dc 100644 --- a/src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs +++ b/src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs @@ -2,6 +2,7 @@ using Anichron.Core.Data; using Anichron.Core.Data.Repository; using Anichron.Core.Domain; +using NSubstitute.ExceptionExtensions; namespace Anichron.API.Tests.Unit.Services; @@ -16,7 +17,44 @@ private sealed class TestFixture public ITokenService TokenService { get; } = Substitute.For(); private readonly IClock _clock = Substitute.For(); - public TestFixture() => _clock.GetCurrentInstant().Returns(FixedNow); + // Record whether each write ran *while the transaction lambda was executing*, not merely + // that a transaction was opened somewhere: `Received().ExecuteInTransactionAsync(...)` + // alone would also pass on code that opened a transaction and wrote outside it. + public bool RevokedInsideTransaction { get; private set; } + public bool SavedInsideTransaction { get; private set; } + private bool insideTransaction; + + public TestFixture() + { + _clock.GetCurrentInstant().Returns(FixedNow); + + // The non-generic Func overload — the one AdminUserService uses. NSubstitute + // stubs per overload, so stubbing Func> here would leave the lambda + // silently un-invoked. + UnitOfWork + .ExecuteInTransactionAsync(Arg.Any>(), Arg.Any()) + .Returns(async callInfo => + { + insideTransaction = true; + try + { + await callInfo.Arg>()(); + } + finally + { + insideTransaction = false; + } + }); + + TokenService + .When(t => t.MarkAllSessionsRevokedAsync( + Arg.Any(), Arg.Any(), Arg.Any())) + .Do(_ => RevokedInsideTransaction = insideTransaction); + + UnitOfWork + .When(u => u.SaveChangesAsync(Arg.Any())) + .Do(_ => SavedInsideTransaction = insideTransaction); + } public AdminUserService CreateTestee() => new(Users, UnitOfWork, _clock, TokenService); } @@ -82,6 +120,8 @@ public async Task UpdateAsync_BothParamsNull_ReturnsUserWithoutSaving() result.IsSuccess.Should().BeTrue(); result.Value.Should().BeSameAs(user); await fixture.UnitOfWork.DidNotReceive().SaveChangesAsync(Arg.Any()); + // Nothing is written, so opening a transaction would be cost without purpose. + await fixture.UnitOfWork.DidNotReceive().ExecuteInTransactionAsync(Arg.Any>(), Arg.Any()); } [Fact] @@ -109,6 +149,7 @@ public async Task UpdateAsync_UserNotFound_ReturnsUserNotFound() result.IsSuccess.Should().BeFalse(); result.Error.Should().Be(AuthError.UserNotFound); await fixture.UnitOfWork.DidNotReceive().SaveChangesAsync(Arg.Any()); + await fixture.UnitOfWork.DidNotReceive().ExecuteInTransactionAsync(Arg.Any>(), Arg.Any()); } [Fact] @@ -136,6 +177,11 @@ public async Task UpdateAsync_SetIsDisabledTrue_RevokesSessionsAndSaves() await fixture.TokenService.Received(1).MarkAllSessionsRevokedAsync(user.Id, FixedNow, Arg.Any()); await fixture.UnitOfWork.Received(1).SaveChangesAsync(Arg.Any()); + await fixture.UnitOfWork.Received(1).ExecuteInTransactionAsync(Arg.Any>(), Arg.Any()); + fixture.RevokedInsideTransaction.Should().BeTrue( + "revoking sessions outside the transaction cannot be rolled back when the save fails"); + fixture.SavedInsideTransaction.Should().BeTrue( + "the user mutation must commit atomically with the revocation"); } [Fact] @@ -195,6 +241,7 @@ public async Task DeleteAsync_UserNotFound_ReturnsUserNotFound() result.Error.Should().Be(AuthError.UserNotFound); fixture.Users.DidNotReceive().Remove(Arg.Any()); await fixture.UnitOfWork.DidNotReceive().SaveChangesAsync(Arg.Any()); + await fixture.UnitOfWork.DidNotReceive().ExecuteInTransactionAsync(Arg.Any>(), Arg.Any()); } [Fact] @@ -210,5 +257,40 @@ public async Task DeleteAsync_ValidUser_RevokesSessionsRemovesUserAndSaves() await fixture.TokenService.Received(1).MarkAllSessionsRevokedAsync(user.Id, FixedNow, Arg.Any()); fixture.Users.Received(1).Remove(user); await fixture.UnitOfWork.Received(1).SaveChangesAsync(Arg.Any()); + await fixture.UnitOfWork.Received(1).ExecuteInTransactionAsync(Arg.Any>(), Arg.Any()); + fixture.RevokedInsideTransaction.Should().BeTrue(); + fixture.SavedInsideTransaction.Should().BeTrue(); + } + + // ========================================================================== + // Transactional integrity — issue #172 + // + // Revoking sessions uses ExecuteUpdateAsync, which bypasses the change tracker and issues + // SQL immediately. Untransacted, a failing SaveChangesAsync therefore leaves the sessions + // revoked and the user mutation lost: an admin "disables" an account, the save fails, and + // the account is still enabled while its sessions are gone. + // ========================================================================== + + [Fact] + public async Task UpdateAsync_SaveThrows_TheRevocationRanInsideTheFailedTransaction() + { + var fixture = new TestFixture(); + var user = new User { Id = Guid.NewGuid(), IsDisabled = false, StorageConfigs = [] }; + fixture.Users.FindByIdWithConfigsAsync(user.Id, Arg.Any()).Returns(user); + fixture.UnitOfWork + .SaveChangesAsync(Arg.Any()) + .ThrowsAsync(new InvalidOperationException("constraint violation")); + + var act = async () => await fixture.CreateTestee() + .UpdateAsync(Guid.NewGuid(), user.Id, isAdmin: null, isDisabled: true, CancellationToken.None); + + // The throw propagating is not the interesting part — it did that before the fix too. + // What matters is that BOTH writes sat inside the transaction that failed, so the + // rollback covers them. + await act.Should().ThrowAsync(); + fixture.RevokedInsideTransaction.Should().BeTrue( + "otherwise the sessions stay revoked while the user mutation is lost — the #172 defect"); + fixture.SavedInsideTransaction.Should().BeTrue( + "the save that failed must itself have been inside the transaction"); } } diff --git a/src/Anichron.API/Services/AdminUserService.cs b/src/Anichron.API/Services/AdminUserService.cs index 0262ad7..7536b46 100644 --- a/src/Anichron.API/Services/AdminUserService.cs +++ b/src/Anichron.API/Services/AdminUserService.cs @@ -43,10 +43,17 @@ public async Task> UpdateAsync(Guid callerId, Guid targetId, bo if (isDisabled.HasValue) user.IsDisabled = isDisabled.Value; - if (shouldRevokeSessions) - await tokenService.MarkAllSessionsRevokedAsync(targetId, clock.GetCurrentInstant(), ct); + // Both writes, or neither: revocation goes through ExecuteUpdateAsync, which bypasses the + // change tracker and commits immediately, so untransacted a failing save would leave the + // sessions revoked and the user mutation lost. + await unitOfWork.ExecuteInTransactionAsync(async () => + { + if (shouldRevokeSessions) + await tokenService.MarkAllSessionsRevokedAsync(targetId, clock.GetCurrentInstant(), ct); + + await unitOfWork.SaveChangesAsync(ct); + }, ct); - await unitOfWork.SaveChangesAsync(ct); return AuthResult.Ok(user); } @@ -59,9 +66,15 @@ public async Task DeleteAsync(Guid callerId, Guid targetId, Cancella if (user is null) return AuthResult.Fail(AuthError.UserNotFound); - await tokenService.MarkAllSessionsRevokedAsync(targetId, clock.GetCurrentInstant(), ct); + // Same revoke-then-save pairing as UpdateAsync, transacted for the same reason — here the + // loss would be a user whose sessions are all revoked but whose row was never deleted. users.Remove(user); - await unitOfWork.SaveChangesAsync(ct); + await unitOfWork.ExecuteInTransactionAsync(async () => + { + await tokenService.MarkAllSessionsRevokedAsync(targetId, clock.GetCurrentInstant(), ct); + await unitOfWork.SaveChangesAsync(ct); + }, ct); + return AuthResult.Ok(); } } From 8a307630f68f78d773241736a8abeca758f65c83 Mon Sep 17 00:00:00 2001 From: bitbiter-dev Date: Mon, 28 Sep 2026 20:31:12 +0200 Subject: [PATCH 2/4] chore(graph): Regenerate after the AdminUserService transaction fix Co-Authored-By: Claude Opus 5 (1M context) --- graphify-out/GRAPH_REPORT.md | 531 +- graphify-out/graph.json | 18476 +++++++++++++++++---------------- 2 files changed, 9651 insertions(+), 9356 deletions(-) diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md index 14ba6af..53815df 100644 --- a/graphify-out/GRAPH_REPORT.md +++ b/graphify-out/GRAPH_REPORT.md @@ -1,17 +1,17 @@ -# Graph Report - anichron (2026-09-27) +# Graph Report - anichron (2026-09-28) ## Corpus Check -- 228 files · ~82,301 words +- 228 files · ~82,961 words - Verdict: corpus is large enough that graph structure adds value. - Unclassified: 11 file(s) not represented in the graph (top: (none) 6, .props 2, .example 1) ## Summary -- 5817 nodes · 10980 edges · 398 communities (384 shown, 14 thin omitted) -- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 565 edges (avg confidence: 0.84) +- 5823 nodes · 10996 edges · 391 communities (379 shown, 12 thin omitted) +- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 567 edges (avg confidence: 0.84) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `3c0ca799` +- Built from commit: `a6985a85` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -21,7 +21,7 @@ - AuthResult - IngestionPipelineRunnerTests - Anichron -- TestFixture +- AdminCreatedUser - ExifExtractionMiddleware - TestFixture - Anichron.Worker.Tests.Unit/packages.lock.json @@ -37,11 +37,11 @@ - Anichron.API/packages.lock.json - IAuthResponseMapper - AppIniInitializer -- AuthTokens +- .Ok - WorkerSettings - EfUserRepository - MustChangePasswordMiddleware -- SingleFileItem +- TestFixture - LockoutServiceTests - FileIngestionPipeline - Anichron.API.Tests.Unit/packages.lock.json @@ -49,12 +49,12 @@ - Microsoft.Extensions.Configuration.Abstractions - UserStorageConfig - TestFixture -- Anichron.API.Settings -- FfmpegVideoProcessorTests +- Anichron.API.Infrastructure +- FfmpegVideoProcessor - IIngestionMiddleware - Anichron.Core.Domain - IngestionContext -- .DeleteAsync +- EfUserStorageConfigRepository - LivePhotoPairItem - Anichron.Infrastructure.Tests.Unit/packages.lock.json - dependencies @@ -63,10 +63,10 @@ - Anichron.Core.Tests.Unit/packages.lock.json - BootstrapResetService - dependencies -- .ChangePasswordAsync +- PasswordPolicy - Microsoft.VisualStudio.Threading.Analyzers - mutation-ratchet.sh -- LockoutService +- TestFixture - TestFixture - mutation-ratchet.test.sh - Anichron.API @@ -81,10 +81,10 @@ - Microsoft.Extensions.DependencyInjection.Abstractions - Anichron.Worker - WorkerServiceCollectionExtensionsTests -- LoggingMiddleware +- .InvokeAsync - Microsoft.Extensions.Primitives - publish-badges.test.sh -- CapturingLogger +- TestFixture - Microsoft.EntityFrameworkCore - .InvokeAsync_KnownHash_DoesNotCallNextAsync - IdempotencyCheckMiddleware @@ -98,7 +98,7 @@ - MediaAsset - Anichron.Core - dependencies -- dependencies +- Microsoft.EntityFrameworkCore.Relational - dependencies - net10.0 - Anichron.Infrastructure @@ -124,8 +124,8 @@ - dependencies - Container (Dockerfile) - Anichron.Infrastructure/packages.lock.json -- FfmpegVideoProcessor -- WorkerDefaults.cs +- TokenService +- Worker - Microsoft.Extensions.Primitives - publish-badges.sh - Argon2PasswordHasher @@ -136,7 +136,7 @@ - WorkerSettingsValidatorTests - .Placeholder_Always_Passes - System.IdentityModel.Tokens.Jwt -- TestFixture +- CapturingLogger - Anichron.Worker.Ingestion.Pipeline - Microsoft.Testing.Extensions.Telemetry - User @@ -161,7 +161,7 @@ - Microsoft.Extensions.Caching.Memory - derive-db-docs.test.sh - AssetInteraction -- Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime +- dependencies - xunit.v3.extensibility.core - TestableIO.System.IO.Abstractions.TestingHelpers - xunit.v3.extensibility.core @@ -170,7 +170,7 @@ - NodaTime (No DateTime) Convention - Dependabot GitHub Actions Updates - Dependabot NuGet Updates -- ExifExtractionMiddleware.cs +- EfRefreshTokenRepository - Polly.Extensions - TestableIO.System.IO.Abstractions - Microsoft.IdentityModel.JsonWebTokens @@ -178,7 +178,7 @@ - Microsoft.Extensions.Caching.Abstractions - TestableIO.System.IO.Abstractions - MediaAsset Entity -- Microsoft.CodeAnalysis.Analyzers +- TestFixture - Anichron.Worker - CLAUDE.md - Anichron.Worker Project @@ -198,9 +198,9 @@ - xunit.v3.mtp-v1 - Blurhash.ImageSharp - System.IO.Abstractions -- ImageProcessor.cs +- microsoft_extensions_options - Microsoft.NET.Test.Sdk -- IMediaAssetRepository +- BootstrapSeeder - xunit.v3.mtp-v1 - Issue tracker: GitHub - Anichron.API.Tests.Unit/GlobalUsings.cs @@ -212,7 +212,7 @@ - Microsoft.Extensions.Http.Diagnostics - Microsoft.IdentityModel.Protocols.OpenIdConnect - Microsoft.TestPlatform.TestHost -- Microsoft.Extensions.DependencyInjection.AutoActivation +- Anichron.Infrastructure.Configuration - System.IO.Abstractions.TestingHelpers - xunit.v3 - Npgsql.NodaTime @@ -247,7 +247,7 @@ - Castle.Core - xunit.v3.common - Blurhash.Core -- .RunAsync +- RefreshToken - Mono.TextTemplating - Blurhash.Core - Blurhash.ImageSharp @@ -256,8 +256,8 @@ - Architecture - CI Build & Test Job - mutation-report.test.sh -- AuthCookieSettings -- Polly.Core +- IRefreshTokenRepository +- MediaType - Humanizer.Core - Npgsql - Roslynator.Analyzers @@ -299,7 +299,7 @@ - xunit.runner.visualstudio - Microsoft.Extensions.Hosting - Microsoft.VisualStudio.Threading.Analyzers -- ExifData +- IGuidFactory - SonarAnalyzer.CSharp - Microsoft.VisualStudio.Threading.Analyzers - FluentAssertions @@ -307,17 +307,21 @@ - IngestionPipelineRunner - Microsoft.Extensions.DependencyInjection - PersistenceMiddleware -- Microsoft.VisualStudio.Threading.Analyzers +- LivePhotoLinker - Roslynator.Analyzers +- SingleFileItem - Microsoft.EntityFrameworkCore - Self-host mutation reports; do not use the Stryker Dashboard +- Microsoft.EntityFrameworkCore.Design - System.IO.Hashing +- SonarAnalyzer.CSharp - CapturingLogger +- .IsInProgress - coverlet.collector - Microsoft.IdentityModel.Abstractions - Roslynator.Analyzers - Newtonsoft.Json -- Microsoft.Extensions.FileProviders.Abstractions +- Microsoft.Extensions.Configuration.Abstractions - Anichron.Core.Tests.Unit - System.Composition.Runtime - SonarAnalyzer.CSharp @@ -325,27 +329,30 @@ - Microsoft.AspNetCore.TestHost - Microsoft.Bcl.AsyncInterfaces - Microsoft.CodeCoverage -- Log +- LoggingMiddleware - Microsoft.Extensions.Primitives - Microsoft.EntityFrameworkCore.Abstractions - Microsoft.Win32.Registry +- Microsoft.EntityFrameworkCore.Analyzers - Microsoft.Extensions.Diagnostics.ExceptionSummarization - .BuildWithMiddlewares -- AuthMessages.cs +- Microsoft.Extensions.AmbientMetadata.Application +- Microsoft.Extensions.Compliance.Abstractions - assemble-pages.test.sh - Microsoft.VisualStudio.SolutionPersistence - Microsoft.Extensions.DependencyInjection.AutoActivation +- System.Composition.AttributedModel - Microsoft.EntityFrameworkCore.Abstractions - .ExecuteInTransactionAsync -- MediaTypeDetectorTests.cs +- LivePhotoLinkerTests.cs - Microsoft.Extensions.Logging.Console - Microsoft.Extensions.FileSystemGlobbing -- Castle.Core +- Microsoft.EntityFrameworkCore.Analyzers - Microsoft.VisualStudio.SolutionPersistence - Microsoft.Extensions.ObjectPool -- Microsoft.Extensions.Logging.Abstractions +- Microsoft.Extensions.FileSystemGlobbing - Microsoft.Extensions.Logging.EventLog -- xunit.runner.visualstudio +- Microsoft.Extensions.Logging.Configuration - Microsoft.OpenApi - Newtonsoft.Json - Humanizer.Core @@ -379,41 +386,27 @@ - Microsoft.Build.Framework - System.CodeDom - Microsoft.Extensions.DependencyModel -- Microsoft.CodeCoverage +- Testably.Abstractions.FileSystem.Interface - Microsoft.Bcl.AsyncInterfaces -- Microsoft.Extensions.Caching.Memory +- CorsSettings.cs - Humanizer.Core -- Microsoft.Extensions.Configuration.CommandLine -- Microsoft.Extensions.Configuration.FileExtensions - Microsoft.EntityFrameworkCore.Abstractions - Microsoft.CodeAnalysis.Analyzers -- Microsoft.Extensions.Diagnostics.Abstractions - Microsoft.Extensions.Diagnostics - Microsoft.Extensions.Hosting.Abstractions -- Microsoft.Extensions.Configuration.Binder -- Microsoft.Extensions.FileProviders.Physical -- Microsoft.Extensions.Logging.Console -- Microsoft.Extensions.Logging -- Microsoft.Extensions.Logging.EventSource -- Microsoft.Extensions.Logging.EventLog - Microsoft.NETCore.Platforms - Microsoft.Extensions.Options.ConfigurationExtensions -- Microsoft.Extensions.Options - Microsoft.TestPlatform.ObjectModel - Microsoft.Extensions.Logging.Configuration -- System.Diagnostics.EventLog - Microsoft.Extensions.Options.ConfigurationExtensions - xunit.v3.assert - Microsoft.Extensions.Primitives - System.Composition.Runtime - Newtonsoft.Json -- Microsoft.Extensions.Configuration.Json - triage-labels.md - pre-commit - pre-push -- Microsoft.Win32.Registry - XmpCore -- xunit.analyzers ## God Nodes (most connected - your core abstractions) 1. `UserStorageConfig` - 82 edges @@ -447,39 +440,39 @@ - **CI Pipeline: Build/Test then Pages and Docker** — github_workflows_ci_build_and_test, github_workflows_ci_deploy_pages, github_workflows_ci_docker_job [EXTRACTED 1.00] - **MediaAsset-Centric Domain Graph** — claude_md_mediaasset, claude_md_metadata, claude_md_proxyfile, claude_md_burst, claude_md_assetinteraction [EXTRACTED 1.00] -## Communities (398 total, 14 thin omitted) +## Communities (391 total, 12 thin omitted) ### Community 0 - "TestFixture" Cohesion: 0.06 -Nodes (43): ArgumentNullException, GeneratedRegex, Regex, AuthError, AccountDisabled, AccountTemporarilyLocked, CannotModifySelf, EmailTaken (+35 more) +Nodes (42): ArgumentNullException, GeneratedRegex, Regex, AuthError, AccountDisabled, AccountTemporarilyLocked, CannotModifySelf, EmailTaken (+34 more) ### Community 1 - "AuthResponseMapperTests" -Cohesion: 0.11 -Nodes (26): Created, JsonOptions, AdminStorageConfigResponse, AdminUserResponse, PasswordPolicy, CheckPwnedPasswords, MaxLength, MinLength (+18 more) +Cohesion: 0.12 +Nodes (21): Created, JsonOptions, AdminStorageConfigResponse, AdminUserResponse, AuthTokens, AuthResponseMapperTests, TestFixture, DefaultHttpContext (+13 more) ### Community 2 - "AuthResult" -Cohesion: 0.12 -Nodes (14): AuthResponseMapper, HttpContext, IClock, IResult, List, AuthResult, Error, IsSuccess (+6 more) +Cohesion: 0.11 +Nodes (14): SameSiteMode, AuthResponseMapper, HttpContext, IClock, IResult, List, AuthResult, Error (+6 more) ### Community 3 - "IngestionPipelineRunnerTests" -Cohesion: 0.21 +Cohesion: 0.20 Nodes (18): IngestionPipelineRunnerTests, ProxyDirectoryCreatingMiddleware, Order, ProxyWritingMiddleware, Order, TestFixture, DirectoryStrategy, FileSystem (+10 more) ### Community 4 - "Anichron" Cohesion: 0.17 Nodes (11): Month/Day Composite Index (On This Day), FFmpeg GPU Detection Fallback Chain, Anichron.UI (Planned NextJS/React), Anichron, Documentation, Get started, Highlights, License (+3 more) -### Community 5 - "TestFixture" -Cohesion: 0.09 -Nodes (26): CapturingLogger, HttpMessageHandler, HttpRequestMessage, HttpResponseMessage, IDisposable, CapturingLogger, Entries, FakeHttpMessageHandler (+18 more) +### Community 5 - "AdminCreatedUser" +Cohesion: 0.13 +Nodes (15): AdminCreatedUserResponse, AdminPasswordResetResponse, CreateAdminUserRequest, AdminResetService, AdminUserPasswordReset, IAdminResetService, CancellationToken, Guid (+7 more) ### Community 6 - "ExifExtractionMiddleware" Cohesion: 0.08 Nodes (27): Directory, ExifIfd0Directory, ExifSubIfdDirectory, GpsDirectory, Latitude, LocalDateTimePattern, Longitude, QuickTimeMovieHeaderDirectory (+19 more) ### Community 7 - "TestFixture" -Cohesion: 0.08 -Nodes (35): TestFixture, Tokens, UnitOfWork, TokenServiceTests, Action, CancellationToken, Fact, IClock (+27 more) +Cohesion: 0.20 +Nodes (13): TestFixture, Tokens, UnitOfWork, TokenServiceTests, Action, CancellationToken, Fact, IClock (+5 more) ### Community 8 - "Anichron.Worker.Tests.Unit/packages.lock.json" Cohesion: 0.03 @@ -490,16 +483,16 @@ Cohesion: 0.03 Nodes (62): Microsoft.Extensions.Configuration.CommandLine, Microsoft.Extensions.Configuration.EnvironmentVariables, Microsoft.Extensions.Configuration.UserSecrets, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.Logging.Debug, Microsoft.Extensions.Logging.EventLog, Microsoft.Extensions.Logging.EventSource, Blurhash.Core (+54 more) ### Community 10 - "TestFixture" -Cohesion: 0.10 -Nodes (23): BootstrapSeeder, IBootstrapSeeder, Log, CancellationToken, Exception, IConfiguration, IGuidFactory, ILogger (+15 more) +Cohesion: 0.19 +Nodes (13): BootstrapSeederTests, TestFixture, UnitOfWork, Users, Action, CancellationToken, DbUpdateException, Exception (+5 more) ### Community 11 - "TestFixture" -Cohesion: 0.19 -Nodes (14): PersistenceMiddlewareTests, TestFixture, Clock, FileSystem, GuidFactory, Now, Repository, UnitOfWork (+6 more) +Cohesion: 0.17 +Nodes (17): ExifData, Empty, LocalDateTime, PersistenceMiddlewareTests, TestFixture, Clock, FileSystem, GuidFactory (+9 more) ### Community 12 - "IUnitOfWork" -Cohesion: 0.07 -Nodes (30): PostgresException, AdminPasswordResetResponse, IPasswordHasher, AdminResetService, AdminUserPasswordReset, IAdminResetService, CancellationToken, Guid (+22 more) +Cohesion: 0.11 +Nodes (18): PostgresException, IPasswordHasher, AdminUserService, CancellationToken, Guid, IClock, List, Task (+10 more) ### Community 13 - "net10.0" Cohesion: 0.04 @@ -514,8 +507,8 @@ Cohesion: 0.06 Nodes (49): MediaType, Image, LivePhoto, Video, IImageProcessor, ImageSharpProcessor, CancellationToken, Image (+41 more) ### Community 16 - "WorkerInitializer" -Cohesion: 0.06 -Nodes (35): IHostedService, WorkerState, ResolvedUserId, Guid, DatabaseMigratorService, RetryDelay, Log, CancellationToken (+27 more) +Cohesion: 0.07 +Nodes (31): IHostedService, WorkerState, ResolvedUserId, Guid, DatabaseMigratorService, RetryDelay, Log, CancellationToken (+23 more) ### Community 17 - "JwtFactoryTests" Cohesion: 0.12 @@ -526,20 +519,20 @@ Cohesion: 0.04 Nodes (54): Konscious.Security.Cryptography.Blake2, Microsoft.Extensions.Http.Diagnostics, Microsoft.Extensions.Resilience, Microsoft.IdentityModel.JsonWebTokens, Microsoft.IdentityModel.Protocols.OpenIdConnect, Microsoft.OpenApi, Polly.Core, Humanizer.Core (+46 more) ### Community 19 - "IAuthResponseMapper" -Cohesion: 0.11 -Nodes (30): AdminCreatedUserResponse, AdminEndpoints, CreateAdminUserRequest, CreateStorageConfigRequest, PatchAdminUserRequest, CancellationToken, ClaimsPrincipal, Guid (+22 more) +Cohesion: 0.15 +Nodes (23): AdminEndpoints, CreateStorageConfigRequest, PatchAdminUserRequest, CancellationToken, ClaimsPrincipal, Guid, IEndpointRouteBuilder, IResult (+15 more) ### Community 20 - "AppIniInitializer" -Cohesion: 0.14 -Nodes (16): IDirectory, IFileStreamFactory, IPath, AppIniInitializer, IniEntry, Func, IFileSystem, IReadOnlyList (+8 more) +Cohesion: 0.15 +Nodes (15): IDirectory, IFileStreamFactory, IPath, AppIniInitializer, IniEntry, Func, IFileSystem, IReadOnlyList (+7 more) -### Community 21 - "AuthTokens" -Cohesion: 0.17 -Nodes (20): microsoft_aspnetcore_mvc, AuthEndpoints, LoginRequest, RefreshRequest, RegisterRequest, CancellationToken, HttpContext, IEndpointRouteBuilder (+12 more) +### Community 21 - ".Ok" +Cohesion: 0.16 +Nodes (22): AuthEndpoints, LoginRequest, RefreshRequest, RegisterRequest, CancellationToken, HttpContext, IEndpointRouteBuilder, IOptions (+14 more) ### Community 22 - "WorkerSettings" -Cohesion: 0.08 -Nodes (20): Anichron.Worker.Tests.Unit.Settings, WorkerSettings, BlurhashSampleWidth, CrawlIntervalHours, FfmpegPath, MaxConcurrentFiles, PreviewJpegQuality, PreviewMaxWidth (+12 more) +Cohesion: 0.11 +Nodes (17): Anichron.Worker.Tests.Unit.Settings, WorkerSettings, BlurhashSampleWidth, CrawlIntervalHours, FfmpegPath, MaxConcurrentFiles, PreviewJpegQuality, PreviewMaxWidth (+9 more) ### Community 23 - "EfUserRepository" Cohesion: 0.30 @@ -549,17 +542,17 @@ Nodes (5): EfUserRepository, AnichronDbContext, UserRepositoryTests, Fact, Task Cohesion: 0.20 Nodes (15): Claim, HttpRequest, Method, Path, PathString, RequestDelegate, MustChangePasswordMiddleware, HttpContext (+7 more) -### Community 25 - "SingleFileItem" -Cohesion: 0.20 -Nodes (14): DirectoryNotFoundException, SingleFileItem, PrimaryMediaType, SecondaryFile, FileIngestionPipelineTests, TestFixture, FileSystem, ProcessedContexts (+6 more) +### Community 25 - "TestFixture" +Cohesion: 0.28 +Nodes (9): DirectoryNotFoundException, FileIngestionPipelineTests, TestFixture, FileSystem, ProcessedContexts, Fact, MockFileSystem, OperationCanceledException (+1 more) ### Community 26 - "LockoutServiceTests" -Cohesion: 0.39 -Nodes (5): LockoutServiceTests, TestFixture, Fact, Instant, Task +Cohesion: 0.15 +Nodes (12): ILockoutService, LockoutService, CancellationToken, Instant, Task, LockoutServiceTests, TestFixture, Fact (+4 more) ### Community 27 - "FileIngestionPipeline" -Cohesion: 0.05 -Nodes (44): ChannelReader, ChannelWriter, IList, IReadOnlySet, MediaType, FileIngestionPipeline, IFileIngestionPipeline, Log (+36 more) +Cohesion: 0.15 +Nodes (17): ChannelReader, ChannelWriter, IList, FileIngestionPipeline, IFileIngestionPipeline, Log, CancellationToken, Exception (+9 more) ### Community 28 - "Anichron.API.Tests.Unit/packages.lock.json" Cohesion: 0.04 @@ -574,36 +567,36 @@ Cohesion: 0.05 Nodes (53): Microsoft.Extensions.Configuration, Microsoft.Extensions.Configuration.Abstractions, Microsoft.Extensions.Configuration.FileExtensions, Microsoft.Extensions.Configuration.Json, Microsoft.Extensions.Diagnostics.Abstractions, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Physical, contentHash (+45 more) ### Community 31 - "UserStorageConfig" -Cohesion: 0.06 -Nodes (57): AdminStorageConfigServiceTests, TestFixture, GuidFactory, StorageConfigs, UnitOfWork, Users, CancellationToken, Fact (+49 more) +Cohesion: 0.18 +Nodes (14): IUserStorageConfigRepository, CancellationToken, Guid, List, Task, UserStorageConfig, Assets, Id (+6 more) ### Community 32 - "TestFixture" -Cohesion: 0.27 -Nodes (11): AdminUserServiceTests, TestFixture, TokenService, UnitOfWork, Users, CancellationToken, Fact, Guid (+3 more) +Cohesion: 0.22 +Nodes (15): AdminUserServiceTests, TestFixture, RevokedInsideTransaction, SavedInsideTransaction, TokenService, UnitOfWork, Users, CancellationToken (+7 more) -### Community 33 - "Anichron.API.Settings" -Cohesion: 0.07 -Nodes (26): Anichron.API.Tests.Unit.Security, Anichron.API.Tests.Unit.Infrastructure, Anichron.API.Endpoints, Anichron.API.Infrastructure, Anichron.API.Settings, Anichron.API.Tests.Unit.Endpoints, konscious_security_cryptography, microsoft_aspnetcore_authentication_jwtbearer (+18 more) +### Community 33 - "Anichron.API.Infrastructure" +Cohesion: 0.11 +Nodes (13): Anichron.API.Tests.Unit.Infrastructure, Anichron.API.Endpoints, Anichron.API.Infrastructure, Anichron.API.Tests.Unit.Endpoints, microsoft_aspnetcore_http, microsoft_aspnetcore_http_json, microsoft_aspnetcore_mvc, microsoft_extensions_diagnostics_healthchecks (+5 more) -### Community 34 - "FfmpegVideoProcessorTests" -Cohesion: 0.28 -Nodes (11): Exception, FfmpegException, ExitCode, Stderr, FfmpegVideoProcessorTests, TestFixture, Launcher, CancellationToken (+3 more) +### Community 34 - "FfmpegVideoProcessor" +Cohesion: 0.08 +Nodes (35): Exception, SemaphoreSlim, IProcessLauncher, ProcessResult, SystemProcessLauncher, CancellationToken, IReadOnlyList, Task (+27 more) ### Community 35 - "IIngestionMiddleware" Cohesion: 0.12 Nodes (12): IIngestionMiddleware, Order, IngestionOrder, CancellationToken, IngestionDelegate, Task, CancellingMiddleware, Order (+4 more) ### Community 36 - "Anichron.Core.Domain" -Cohesion: 0.13 -Nodes (16): Anichron.API.Tests.Unit.Services, Anichron.API.Security, Anichron.Infrastructure.Tests.Unit.Infrastructure, Anichron.Core.Tests.Unit.Data.Repository, Anichron.Core.Data, Anichron.Core.Domain, Anichron.API.Services, Anichron.Core.Data.Repository (+8 more) +Cohesion: 0.08 +Nodes (30): Anichron.API.Tests.Unit.Security, Anichron.API.Tests.Unit.Services, Anichron.API.Security, Anichron.Core.Tests.Unit.Data.Repository, Anichron.Core.Data, Anichron.Core.Domain, Anichron.API.Settings, Anichron.API.Services (+22 more) ### Community 37 - "IngestionContext" -Cohesion: 0.07 -Nodes (25): Lock, IngestionContext, Asset, AssetId, Config, ContentHash, Exif, Item (+17 more) +Cohesion: 0.08 +Nodes (23): Lock, IngestionContext, Asset, AssetId, Config, ContentHash, Exif, Item (+15 more) -### Community 38 - ".DeleteAsync" -Cohesion: 0.32 -Nodes (6): AdminUserService, CancellationToken, Guid, IClock, List, Task +### Community 38 - "EfUserStorageConfigRepository" +Cohesion: 0.35 +Nodes (6): EfUserStorageConfigRepository, AnichronDbContext, UserStorageConfigRepositoryTests, Fact, Guid, Task ### Community 39 - "LivePhotoPairItem" Cohesion: 0.26 @@ -637,9 +630,9 @@ Nodes (8): BootstrapResetService, IBootstrapResetService, Log, CancellationToken Cohesion: 0.06 Nodes (44): Humanizer.Core, Microsoft.Build.Framework, Microsoft.CodeAnalysis.Analyzers, Microsoft.CodeAnalysis.Common, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild (+36 more) -### Community 47 - ".ChangePasswordAsync" -Cohesion: 0.16 -Nodes (19): NotFound, ChangePasswordRequest, UserEndpoints, UserProfileResponse, CancellationToken, ClaimsPrincipal, Guid, IEndpointRouteBuilder (+11 more) +### Community 47 - "PasswordPolicy" +Cohesion: 0.13 +Nodes (25): NotFound, ChangePasswordRequest, UserEndpoints, UserProfileResponse, CancellationToken, ClaimsPrincipal, Guid, IEndpointRouteBuilder (+17 more) ### Community 48 - "Microsoft.VisualStudio.Threading.Analyzers" Cohesion: 0.40 @@ -649,13 +642,13 @@ Nodes (5): contentHash, requested, resolved, type, Microsoft.VisualStudio.Thread Cohesion: 0.57 Nodes (7): cmd_advance(), cmd_thresholds(), config_threshold(), read_mark(), mutation-ratchet.sh script, SLACK, usage() -### Community 50 - "LockoutService" -Cohesion: 0.22 -Nodes (7): ILockoutService, LockoutService, CancellationToken, Instant, Task, InlineData, Theory +### Community 50 - "TestFixture" +Cohesion: 0.23 +Nodes (13): AdminStorageConfigServiceTests, TestFixture, GuidFactory, StorageConfigs, UnitOfWork, Users, CancellationToken, Fact (+5 more) ### Community 51 - "TestFixture" -Cohesion: 0.07 -Nodes (39): Log, VideoProxyMiddleware, Order, CancellationToken, IEnumerable, ILogger, IngestionDelegate, LoggerMessage (+31 more) +Cohesion: 0.10 +Nodes (27): Log, VideoProxyMiddleware, Order, IEnumerable, ILogger, LoggerMessage, IVideoProxyGenerator, FileName (+19 more) ### Community 52 - "mutation-ratchet.test.sh" Cohesion: 0.81 @@ -667,15 +660,15 @@ Nodes (14): Konscious.Security.Cryptography.Argon2, Microsoft.AspNetCore.Authent ### Community 54 - "dependencies" Cohesion: 0.06 -Nodes (44): Humanizer.Core, Microsoft.Build.Framework, Microsoft.CodeAnalysis.Analyzers, Microsoft.CodeAnalysis.Common, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild (+36 more) +Nodes (39): Humanizer.Core, Microsoft.Build.Framework, Microsoft.CodeAnalysis.Analyzers, Microsoft.CodeAnalysis.Common, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild (+31 more) ### Community 55 - "net10.0" -Cohesion: 0.04 -Nodes (47): dependencies, net10.0, contentHash, resolved, type, contentHash, resolved, type (+39 more) +Cohesion: 0.05 +Nodes (44): dependencies, net10.0, contentHash, resolved, type, contentHash, resolved, type (+36 more) ### Community 56 - ".WriteResponseAsync" -Cohesion: 0.27 -Nodes (9): HealthReport, HttpContext, Task, HealthCheckResponseWriterTests, DefaultHttpContext, Fact, HealthReport, HttpResponse (+1 more) +Cohesion: 0.25 +Nodes (10): HealthCheckResponseWriter, HealthReport, HttpContext, Task, HealthCheckResponseWriterTests, DefaultHttpContext, Fact, HealthReport (+2 more) ### Community 57 - "ImageProxyMiddleware" Cohesion: 0.15 @@ -694,8 +687,8 @@ Cohesion: 0.40 Nodes (5): NodaTime, contentHash, requested, resolved, type ### Community 61 - "Microsoft.Extensions.DependencyInjection.Abstractions" -Cohesion: 0.11 -Nodes (37): Microsoft.Extensions.Caching.Abstractions, Microsoft.Extensions.Configuration, Microsoft.Extensions.Configuration.Abstractions, Microsoft.Extensions.Configuration.Binder, Microsoft.Extensions.Configuration.FileExtensions, Microsoft.Extensions.Configuration.Json, Microsoft.Extensions.DependencyInjection, Microsoft.Extensions.DependencyInjection.Abstractions (+29 more) +Cohesion: 0.05 +Nodes (52): contentHash, dependencies, resolved, type, Microsoft.Extensions.Caching.Abstractions, Microsoft.Extensions.Configuration.Binder, Microsoft.Extensions.DependencyInjection, Microsoft.Extensions.DependencyInjection.Abstractions (+44 more) ### Community 62 - "Microsoft.Extensions.DependencyInjection.Abstractions" Cohesion: 0.05 @@ -705,9 +698,9 @@ Nodes (56): contentHash, dependencies, resolved, type, Microsoft.Extensions.Conf Cohesion: 0.15 Nodes (13): Blurhash.ImageSharp, MetadataExtractor, Microsoft.Extensions.Hosting, Microsoft.Extensions.Options.DataAnnotations, SixLabors.ImageSharp, System.IO.Hashing, Microsoft.NET.Sdk.Worker, Anichron.Worker (+5 more) -### Community 65 - "LoggingMiddleware" -Cohesion: 0.28 -Nodes (9): LoggingMiddleware, Order, CancellationToken, IngestionDelegate, Task, LoggingMiddlewareTests, Fact, InvalidOperationException (+1 more) +### Community 65 - ".InvokeAsync" +Cohesion: 0.30 +Nodes (8): ILogger, CancellationToken, IngestionDelegate, Task, LoggingMiddlewareTests, Fact, InvalidOperationException, Task ### Community 66 - "Microsoft.Extensions.Primitives" Cohesion: 0.07 @@ -717,9 +710,9 @@ Nodes (27): Microsoft.Extensions.Caching.Abstractions, Microsoft.Extensions.Prim Cohesion: 0.87 Nodes (5): assert_absent_on_badges(), assert_eq(), fail(), pass(), publish-badges.test.sh script -### Community 68 - "CapturingLogger" -Cohesion: 0.18 -Nodes (10): ILogger, CapturingLogger, Entries, EventId, Exception, Func, IDisposable, IReadOnlyList (+2 more) +### Community 68 - "TestFixture" +Cohesion: 0.22 +Nodes (13): TestFixture, StorageConfigRepository, UnitOfWork, UserRepository, WorkerState, WorkerInitializerTests, CancellationToken, Fact (+5 more) ### Community 69 - "Microsoft.EntityFrameworkCore" Cohesion: 0.09 @@ -734,16 +727,16 @@ Cohesion: 0.17 Nodes (9): IdempotencyCheckMiddleware, Order, Log, CancellationToken, ILogger, IngestionDelegate, LoggerMessage, Task (+1 more) ### Community 72 - "TestFixture" -Cohesion: 0.05 -Nodes (42): MockFile, MockFileSystem, IGuidFactory, TimeOrderedGuidFactory, ProxyFileBuilder, IClock, ProxyType, Log (+34 more) +Cohesion: 0.06 +Nodes (37): MockFile, MockFileSystem, Log, ProxyStagingWriter, CancellationToken, Exception, Func, IClock (+29 more) ### Community 73 - "TestFixture" -Cohesion: 0.15 -Nodes (18): HttpClient, IPwnedPasswordClient, Log, PwnedPasswordClient, CancellationToken, Exception, ILogger, LoggerMessage (+10 more) +Cohesion: 0.06 +Nodes (43): CapturingLogger, HttpClient, HttpMessageHandler, HttpRequestMessage, HttpResponseMessage, IDisposable, IPwnedPasswordClient, Log (+35 more) ### Community 74 - "Anichron.Infrastructure.Data" -Cohesion: 0.17 -Nodes (8): Anichron.Infrastructure.Data, DatabaseFacade, DatabaseFacadeExtensions, CancellationToken, Task, PostgresConstants, SuppressMessage, system_diagnostics_codeanalysis +Cohesion: 0.13 +Nodes (12): Anichron.Infrastructure.Data, DatabaseFacade, DatabaseFacadeExtensions, CancellationToken, Task, PostgresConstants, EfDatabaseMigrator, IDatabaseMigrator (+4 more) ### Community 75 - "Microsoft.Extensions.Primitives" Cohesion: 0.06 @@ -762,8 +755,8 @@ Cohesion: 0.13 Nodes (16): IInviteRepository, CancellationToken, Instant, Task, Invite, CreatedAt, CreatedBy, CreatedByUserId (+8 more) ### Community 79 - "MediaAsset" -Cohesion: 0.08 -Nodes (24): MediaAsset, Burst, BurstId, ContentHash, DateCaptured, Day, FileName, FilePath (+16 more) +Cohesion: 0.07 +Nodes (30): EfMediaAssetRepository, IMediaAssetRepository, AnichronDbContext, CancellationToken, Guid, Task, MediaAsset, Burst (+22 more) ### Community 80 - "Anichron.Core" Cohesion: 0.25 @@ -773,9 +766,9 @@ Nodes (8): Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime, Anichron.Core, Micros Cohesion: 0.06 Nodes (33): Microsoft.Extensions.Caching.Abstractions, Microsoft.Extensions.DependencyInjection.Abstractions, Microsoft.Extensions.Primitives, contentHash, dependencies, resolved, type, contentHash (+25 more) -### Community 82 - "dependencies" -Cohesion: 0.06 -Nodes (35): dependencies, type, dependencies, type, Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.Relational, NodaTime, Npgsql (+27 more) +### Community 82 - "Microsoft.EntityFrameworkCore.Relational" +Cohesion: 0.09 +Nodes (25): dependencies, type, Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.Relational, Npgsql, System.IO.Abstractions, contentHash, dependencies (+17 more) ### Community 83 - "dependencies" Cohesion: 0.08 @@ -877,9 +870,13 @@ Nodes (21): commandName, environmentVariables, launchUrl, publishAllPorts, useSS Cohesion: 0.09 Nodes (21): Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.Abstractions, Microsoft.EntityFrameworkCore.Analyzers, Microsoft.Extensions.Caching.Abstractions, Microsoft.Extensions.Caching.Memory, Microsoft.Extensions.Configuration, Microsoft.Extensions.Configuration.Abstractions, Microsoft.Extensions.Configuration.FileExtensions (+13 more) -### Community 108 - "FfmpegVideoProcessor" -Cohesion: 0.24 -Nodes (8): SemaphoreSlim, FfmpegVideoProcessor, Log, CancellationToken, ILogger, IOptions, LoggerMessage, Task +### Community 108 - "TokenService" +Cohesion: 0.25 +Nodes (9): ITokenService, TokenService, CancellationToken, Guid, IClock, IGuidFactory, Instant, IOptions (+1 more) + +### Community 109 - "Worker" +Cohesion: 0.18 +Nodes (11): BackgroundService, Log, Worker, CancellationToken, Guid, ILogger, IOptions, IServiceScopeFactory (+3 more) ### Community 110 - "Microsoft.Extensions.Primitives" Cohesion: 0.10 @@ -905,6 +902,10 @@ Nodes (32): Consequences, Mutation testing with Stryker.NET on the Microsoft.Tes Cohesion: 0.11 Nodes (19): dependencies, net10.0, contentHash, resolved, type, contentHash, dependencies, resolved (+11 more) +### Community 117 - "WorkerSettingsValidatorTests" +Cohesion: 0.23 +Nodes (4): WorkerSettingsValidatorTests, Fact, IReadOnlyList, ValidationResult + ### Community 118 - ".Placeholder_Always_Passes" Cohesion: 0.33 Nodes (4): Anichron.API.Tests.Unit, PlaceholderTest, Fact, IDisposable @@ -913,13 +914,13 @@ Nodes (4): Anichron.API.Tests.Unit, PlaceholderTest, Fact, IDisposable Cohesion: 0.11 Nodes (18): Microsoft.IdentityModel.JsonWebTokens, Microsoft.IdentityModel.Tokens, contentHash, dependencies, resolved, type, contentHash, dependencies (+10 more) -### Community 120 - "TestFixture" -Cohesion: 0.14 -Nodes (17): TestFixture, Clock, Now, Repository, ScopeFactory, TokenCleanupServiceTests, CancellationToken, Fact (+9 more) +### Community 120 - "CapturingLogger" +Cohesion: 0.09 +Nodes (26): CapturingLogger, Entries, TestFixture, Clock, Now, Repository, ScopeFactory, TokenCleanupServiceTests (+18 more) ### Community 121 - "Anichron.Worker.Ingestion.Pipeline" -Cohesion: 0.07 -Nodes (32): Anichron.Worker.Tests.Unit.Startup, Anichron.Worker.Tests.Unit.Ingestion.Middlewares, Anichron.Worker.Tests.Unit.Crawling, Anichron.Worker.Startup, Anichron.Worker.Tests.Unit.Ingestion.Pipeline, Anichron.Worker.Tests.Unit.Maintenance, Anichron.Infrastructure.Configuration, Anichron.Worker.Maintenance (+24 more) +Cohesion: 0.09 +Nodes (24): Anichron.Worker.Tests.Unit.Ingestion.Middlewares, Anichron.Worker.Tests.Unit.Ingestion.Pipeline, Anichron.Worker.Ingestion.Pipeline, Anichron.Infrastructure.Tests.Unit.Configuration, Anichron.Worker.Ingestion.Middlewares, Anichron.Worker.Tests.Unit.Infrastructure, Anichron.Worker.Ingestion, Anichron.Worker.Tests.Unit.TestDoubles (+16 more) ### Community 122 - "Microsoft.Testing.Extensions.Telemetry" Cohesion: 0.12 @@ -983,7 +984,7 @@ Nodes (13): AppDefaults, Argon2, Email, Jwt, Lockout, Password, Pwned, RateLimit ### Community 138 - "TokenCleanupService" Cohesion: 0.19 -Nodes (11): BackgroundService, Log, TokenCleanupService, CancellationToken, Exception, IClock, ILogger, IOptions (+3 more) +Nodes (10): Log, TokenCleanupService, CancellationToken, Exception, IClock, ILogger, IOptions, IServiceScopeFactory (+2 more) ### Community 139 - "Npgsql.EntityFrameworkCore.PostgreSQL" Cohesion: 0.13 @@ -1009,9 +1010,9 @@ Nodes (5): assert_contains(), assert_eq(), fail(), pass(), derive-db-docs.test.s Cohesion: 0.15 Nodes (12): AssetInteraction, Asset, AssetId, Id, IsHidden, IsLiked, IsStarred, LastViewed (+4 more) -### Community 145 - "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime" -Cohesion: 0.25 -Nodes (8): Npgsql.EntityFrameworkCore.PostgreSQL, Npgsql.NodaTime, Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime, contentHash, dependencies, requested, resolved, type +### Community 145 - "dependencies" +Cohesion: 0.11 +Nodes (18): dependencies, type, NodaTime, Npgsql.EntityFrameworkCore.PostgreSQL, Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime, Npgsql.NodaTime, anichron.core, Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime (+10 more) ### Community 146 - "xunit.v3.extensibility.core" Cohesion: 0.17 @@ -1029,9 +1030,9 @@ Nodes (12): Microsoft.Win32.Registry, xunit.v3.common, xunit.v3.extensibility.co Cohesion: 0.17 Nodes (12): Microsoft.Win32.Registry, xunit.v3.common, xunit.v3.extensibility.core, xunit.v3.runner.common, contentHash, dependencies, resolved, type (+4 more) -### Community 154 - "ExifExtractionMiddleware.cs" -Cohesion: 0.40 -Nodes (4): metadataextractor, metadataextractor_formats_exif, metadataextractor_formats_quicktime, nodatime_text +### Community 154 - "EfRefreshTokenRepository" +Cohesion: 0.33 +Nodes (7): EfRefreshTokenRepository, AnichronDbContext, RefreshTokenRepositoryTests, Fact, Guid, Instant, Task ### Community 155 - "Polly.Extensions" Cohesion: 0.18 @@ -1046,8 +1047,8 @@ Cohesion: 0.18 Nodes (11): Microsoft.IdentityModel.Tokens, contentHash, dependencies, resolved, type, contentHash, dependencies, resolved (+3 more) ### Community 158 - "ProxyFile" -Cohesion: 0.18 -Nodes (10): ProxyFile, Asset, AssetId, CreatedAt, Id, ProxyPath, ProxyType, SizeBytes (+2 more) +Cohesion: 0.13 +Nodes (12): ProxyFile, Asset, AssetId, CreatedAt, Id, ProxyPath, ProxyType, SizeBytes (+4 more) ### Community 159 - "Microsoft.Extensions.Caching.Abstractions" Cohesion: 0.18 @@ -1061,9 +1062,9 @@ Nodes (11): Testably.Abstractions.FileSystem.Interface, TestableIO.System.IO.Abs Cohesion: 0.24 Nodes (10): Flashback Interaction Rules, AssetInteraction Entity, Burst Entity, Burst Detection, MediaAsset Entity, Metadata Entity, Soft-Delete Global Query Filter, User Entity (+2 more) -### Community 162 - "Microsoft.CodeAnalysis.Analyzers" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.CodeAnalysis.Analyzers +### Community 162 - "TestFixture" +Cohesion: 0.27 +Nodes (11): TestFixture, ConfigRepository, Pipeline, WorkerState, WorkerTests, CancellationToken, Fact, Guid (+3 more) ### Community 163 - "Anichron.Worker" Cohesion: 0.20 @@ -1141,17 +1142,17 @@ Nodes (8): contentHash, dependencies, requested, resolved, type, Blurhash.Core, Cohesion: 0.25 Nodes (8): TestableIO.System.IO.Abstractions, TestableIO.System.IO.Abstractions.Wrappers, System.IO.Abstractions, contentHash, dependencies, requested, resolved, type -### Community 182 - "ImageProcessor.cs" -Cohesion: 0.22 -Nodes (6): blurhash_imagesharp, Anichron.Worker.Tests.Unit.Ingestion.Proxy, sixlabors_imagesharp, sixlabors_imagesharp_formats_jpeg, sixlabors_imagesharp_pixelformats, sixlabors_imagesharp_processing +### Community 182 - "microsoft_extensions_options" +Cohesion: 0.12 +Nodes (16): blurhash_imagesharp, Anichron.Worker.Tests.Unit.Startup, Anichron.Worker.Tests.Unit.Crawling, Anichron.Worker.Startup, Anichron.Worker.Tests.Unit.Maintenance, Anichron.Worker.Maintenance, Anichron.Worker.Settings, Anichron.Worker.Crawling (+8 more) ### Community 183 - "Microsoft.NET.Test.Sdk" Cohesion: 0.25 Nodes (8): Microsoft.CodeCoverage, Microsoft.TestPlatform.TestHost, contentHash, dependencies, requested, resolved, type, Microsoft.NET.Test.Sdk -### Community 184 - "IMediaAssetRepository" -Cohesion: 0.31 -Nodes (6): EfMediaAssetRepository, IMediaAssetRepository, AnichronDbContext, CancellationToken, Guid, Task +### Community 184 - "BootstrapSeeder" +Cohesion: 0.19 +Nodes (10): BootstrapSeeder, IBootstrapSeeder, Log, CancellationToken, Exception, IConfiguration, IGuidFactory, ILogger (+2 more) ### Community 185 - "xunit.v3.mtp-v1" Cohesion: 0.25 @@ -1197,9 +1198,9 @@ Nodes (7): Microsoft.IdentityModel.Protocols, System.IdentityModel.Tokens.Jwt, c Cohesion: 0.29 Nodes (7): Microsoft.TestPlatform.ObjectModel, Newtonsoft.Json, contentHash, dependencies, resolved, type, Microsoft.TestPlatform.TestHost -### Community 196 - "Microsoft.Extensions.DependencyInjection.AutoActivation" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.DependencyInjection.AutoActivation +### Community 196 - "Anichron.Infrastructure.Configuration" +Cohesion: 0.18 +Nodes (7): Anichron.Infrastructure.Tests.Unit.Infrastructure, Anichron.Infrastructure.Configuration, Anichron.Worker.Infrastructure, microsoft_extensions_configuration, WebApplicationBuilderExtensions, HostApplicationBuilderExtensions, system_globalization ### Community 197 - "System.IO.Abstractions.TestingHelpers" Cohesion: 0.29 @@ -1337,9 +1338,9 @@ Nodes (6): Microsoft.Bcl.AsyncInterfaces, xunit.v3.common, contentHash, dependen Cohesion: 0.33 Nodes (6): contentHash, dependencies, resolved, type, NETStandard.Library, Blurhash.Core -### Community 231 - ".RunAsync" -Cohesion: 0.42 -Nodes (6): IProcessLauncher, ProcessResult, SystemProcessLauncher, CancellationToken, IReadOnlyList, Task +### Community 231 - "RefreshToken" +Cohesion: 0.17 +Nodes (10): RefreshToken, CreatedAt, ExpiresAt, Id, RevokedAt, TokenHash, User, UserId (+2 more) ### Community 232 - "Mono.TextTemplating" Cohesion: 0.33 @@ -1373,13 +1374,13 @@ Nodes (5): CI Build & Test Job, Coverage Badge (badges branch), Code Coverage Re Cohesion: 0.81 Nodes (6): assert_contains(), assert_eq(), assert_fails(), fail(), pass(), mutation-report.test.sh script -### Community 240 - "AuthCookieSettings" -Cohesion: 0.40 -Nodes (4): SameSiteMode, AuthCookieSettings, RefreshTokenDays, SameSite +### Community 240 - "IRefreshTokenRepository" +Cohesion: 0.41 +Nodes (5): IRefreshTokenRepository, CancellationToken, Guid, Instant, Task -### Community 241 - "Polly.Core" -Cohesion: 0.50 -Nodes (4): Polly.Core, contentHash, resolved, type +### Community 241 - "MediaType" +Cohesion: 0.38 +Nodes (6): MediaType, MediaTypeDetector, Dictionary, MediaTypeDetectorTests, InlineData, Theory ### Community 242 - "Humanizer.Core" Cohesion: 0.50 @@ -1402,8 +1403,8 @@ Cohesion: 0.40 Nodes (6): EfInviteRepository, AnichronDbContext, InviteRepositoryTests, Fact, Instant, Task ### Community 248 - "net10.0" -Cohesion: 0.05 -Nodes (39): dependencies, net10.0, contentHash, resolved, type, contentHash, resolved, type (+31 more) +Cohesion: 0.07 +Nodes (30): dependencies, net10.0, contentHash, resolved, type, contentHash, resolved, type (+22 more) ### Community 249 - "Microsoft.Extensions.DependencyModel" Cohesion: 0.50 @@ -1426,7 +1427,7 @@ Cohesion: 0.40 Nodes (5): Roslynator.Analyzers, contentHash, requested, resolved, type ### Community 254 - ".AddAsync" -Cohesion: 0.32 +Cohesion: 0.36 Nodes (6): AdminStorageConfigService, CancellationToken, Guid, IGuidFactory, List, Task ### Community 255 - "xunit.runner.visualstudio" @@ -1541,9 +1542,9 @@ Nodes (5): contentHash, requested, resolved, type, Microsoft.Extensions.Hosting Cohesion: 0.40 Nodes (5): contentHash, requested, resolved, type, Microsoft.VisualStudio.Threading.Analyzers -### Community 283 - "ExifData" -Cohesion: 0.67 -Nodes (3): ExifData, Empty, LocalDateTime +### Community 283 - "IGuidFactory" +Cohesion: 0.29 +Nodes (6): IGuidFactory, TimeOrderedGuidFactory, Guid, ProxyFileBuilder, IClock, ProxyType ### Community 284 - "SonarAnalyzer.CSharp" Cohesion: 0.40 @@ -1566,21 +1567,25 @@ Cohesion: 0.15 Nodes (13): IIngestionPipelineRunner, IngestionPipelineRunner, Log, CancellationToken, Exception, IEnumerable, IFileSystem, ILogger (+5 more) ### Community 289 - "Microsoft.Extensions.DependencyInjection" -Cohesion: 0.40 -Nodes (5): contentHash, dependencies, resolved, type, Microsoft.Extensions.DependencyInjection +Cohesion: 0.11 +Nodes (15): contentHash, dependencies, resolved, type, contentHash, dependencies, resolved, type (+7 more) ### Community 290 - "PersistenceMiddleware" Cohesion: 0.12 Nodes (14): SecondaryFileDescriptor, Log, PersistenceMiddleware, Order, CancellationToken, Guid, IClock, IFileSystem (+6 more) -### Community 291 - "Microsoft.VisualStudio.Threading.Analyzers" -Cohesion: 0.40 -Nodes (5): contentHash, requested, resolved, type, Microsoft.VisualStudio.Threading.Analyzers +### Community 291 - "LivePhotoLinker" +Cohesion: 0.31 +Nodes (7): IReadOnlySet, ILivePhotoLinker, LivePhotoLinker, LivePhotoLinkResult, IEnumerable, IFileSystem, IReadOnlyList ### Community 292 - "Roslynator.Analyzers" Cohesion: 0.40 Nodes (5): Roslynator.Analyzers, contentHash, requested, resolved, type +### Community 293 - "SingleFileItem" +Cohesion: 0.31 +Nodes (6): SecondaryFileDescriptor, SingleFileItem, PrimaryMediaType, SecondaryFile, IngestionContextTests, Fact + ### Community 294 - "Microsoft.EntityFrameworkCore" Cohesion: 0.33 Nodes (6): contentHash, dependencies, requested, resolved, type, Microsoft.EntityFrameworkCore @@ -1589,14 +1594,26 @@ Nodes (6): contentHash, dependencies, requested, resolved, type, Microsoft.Entit Cohesion: 0.50 Nodes (3): Consequences, Self-host mutation reports; do not use the Stryker Dashboard, Why, when the dashboard is the obvious path +### Community 296 - "Microsoft.EntityFrameworkCore.Design" +Cohesion: 0.40 +Nodes (5): contentHash, requested, resolved, type, Microsoft.EntityFrameworkCore.Design + ### Community 297 - "System.IO.Hashing" Cohesion: 0.40 Nodes (5): System.IO.Hashing, contentHash, requested, resolved, type +### Community 298 - "SonarAnalyzer.CSharp" +Cohesion: 0.40 +Nodes (5): SonarAnalyzer.CSharp, contentHash, requested, resolved, type + ### Community 299 - "CapturingLogger" Cohesion: 0.16 Nodes (11): CapturingLogger, Entries, EventId, Exception, Func, IDisposable, IReadOnlyList, Level (+3 more) +### Community 300 - ".IsInProgress" +Cohesion: 0.40 +Nodes (3): IngestionShutdown, CancellationToken, Exception + ### Community 301 - "coverlet.collector" Cohesion: 0.40 Nodes (5): contentHash, requested, resolved, type, coverlet.collector @@ -1613,9 +1630,9 @@ Nodes (5): Roslynator.Analyzers, contentHash, requested, resolved, type Cohesion: 0.50 Nodes (4): Newtonsoft.Json, contentHash, resolved, type -### Community 305 - "Microsoft.Extensions.FileProviders.Abstractions" -Cohesion: 0.40 -Nodes (5): contentHash, dependencies, resolved, type, Microsoft.Extensions.FileProviders.Abstractions +### Community 305 - "Microsoft.Extensions.Configuration.Abstractions" +Cohesion: 0.05 +Nodes (52): Microsoft.Extensions.Configuration, Microsoft.Extensions.Configuration.Abstractions, Microsoft.Extensions.Configuration.FileExtensions, Microsoft.Extensions.Configuration.Json, Microsoft.Extensions.Diagnostics.Abstractions, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Physical, Microsoft.Extensions.FileSystemGlobbing (+44 more) ### Community 306 - "Anichron.Core.Tests.Unit" Cohesion: 0.50 @@ -1645,9 +1662,9 @@ Nodes (4): contentHash, resolved, type, Microsoft.Bcl.AsyncInterfaces Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.CodeCoverage -### Community 313 - "Log" -Cohesion: 0.60 -Nodes (3): Log, ILogger, LoggerMessage +### Community 313 - "LoggingMiddleware" +Cohesion: 0.43 +Nodes (5): Log, LoggingMiddleware, Order, ILogger, LoggerMessage ### Community 314 - "Microsoft.Extensions.Primitives" Cohesion: 0.50 @@ -1661,13 +1678,25 @@ Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Abstractio Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Win32.Registry +### Community 317 - "Microsoft.EntityFrameworkCore.Analyzers" +Cohesion: 0.50 +Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Analyzers + ### Community 318 - "Microsoft.Extensions.Diagnostics.ExceptionSummarization" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Diagnostics.ExceptionSummarization ### Community 319 - ".BuildWithMiddlewares" -Cohesion: 0.17 -Nodes (11): IServiceProvider, IServiceScope, IProxyDirectoryStrategy, TwoLevelHexShardStrategy, Guid, Guid, IEnumerable, ILogger (+3 more) +Cohesion: 0.13 +Nodes (14): IServiceProvider, IServiceScope, CancellationToken, IngestionDelegate, Task, IProxyDirectoryStrategy, TwoLevelHexShardStrategy, Guid (+6 more) + +### Community 320 - "Microsoft.Extensions.AmbientMetadata.Application" +Cohesion: 0.50 +Nodes (4): contentHash, resolved, type, Microsoft.Extensions.AmbientMetadata.Application + +### Community 321 - "Microsoft.Extensions.Compliance.Abstractions" +Cohesion: 0.50 +Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Compliance.Abstractions ### Community 322 - "assemble-pages.test.sh" Cohesion: 0.64 @@ -1681,6 +1710,10 @@ Nodes (4): contentHash, resolved, type, Microsoft.VisualStudio.SolutionPersisten Cohesion: 0.33 Nodes (6): Microsoft.Extensions.Hosting.Abstractions, contentHash, dependencies, resolved, type, Microsoft.Extensions.DependencyInjection.AutoActivation +### Community 325 - "System.Composition.AttributedModel" +Cohesion: 0.50 +Nodes (4): System.Composition.AttributedModel, contentHash, resolved, type + ### Community 326 - "Microsoft.EntityFrameworkCore.Abstractions" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Abstractions @@ -1689,8 +1722,8 @@ Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Abstractio Cohesion: 0.50 Nodes (3): CancellationToken, Func, Task -### Community 328 - "MediaTypeDetectorTests.cs" -Cohesion: 0.33 +### Community 328 - "LivePhotoLinkerTests.cs" +Cohesion: 0.29 Nodes (3): Anichron.Worker.Tests.Unit.Ingestion, ExifDataTests, Fact ### Community 329 - "Microsoft.Extensions.Logging.Console" @@ -1701,9 +1734,9 @@ Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging.Console Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.FileSystemGlobbing -### Community 331 - "Castle.Core" -Cohesion: 0.33 -Nodes (6): contentHash, dependencies, resolved, type, System.Diagnostics.EventLog, Castle.Core +### Community 331 - "Microsoft.EntityFrameworkCore.Analyzers" +Cohesion: 0.50 +Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Analyzers ### Community 332 - "Microsoft.VisualStudio.SolutionPersistence" Cohesion: 0.50 @@ -1713,17 +1746,17 @@ Nodes (4): contentHash, resolved, type, Microsoft.VisualStudio.SolutionPersisten Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.ObjectPool -### Community 334 - "Microsoft.Extensions.Logging.Abstractions" -Cohesion: 0.40 -Nodes (5): contentHash, dependencies, resolved, type, Microsoft.Extensions.Logging.Abstractions +### Community 334 - "Microsoft.Extensions.FileSystemGlobbing" +Cohesion: 0.50 +Nodes (4): contentHash, resolved, type, Microsoft.Extensions.FileSystemGlobbing ### Community 335 - "Microsoft.Extensions.Logging.EventLog" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging.EventLog -### Community 336 - "xunit.runner.visualstudio" -Cohesion: 0.40 -Nodes (5): xunit.runner.visualstudio, contentHash, requested, resolved, type +### Community 336 - "Microsoft.Extensions.Logging.Configuration" +Cohesion: 0.50 +Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging.Configuration ### Community 337 - "Microsoft.OpenApi" Cohesion: 0.50 @@ -1857,30 +1890,18 @@ Nodes (4): System.CodeDom, contentHash, resolved, type Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.DependencyModel -### Community 370 - "Microsoft.CodeCoverage" +### Community 370 - "Testably.Abstractions.FileSystem.Interface" Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.CodeCoverage +Nodes (4): Testably.Abstractions.FileSystem.Interface, contentHash, resolved, type ### Community 371 - "Microsoft.Bcl.AsyncInterfaces" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Bcl.AsyncInterfaces -### Community 372 - "Microsoft.Extensions.Caching.Memory" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Caching.Memory - ### Community 373 - "Humanizer.Core" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Humanizer.Core -### Community 374 - "Microsoft.Extensions.Configuration.CommandLine" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Configuration.CommandLine - -### Community 375 - "Microsoft.Extensions.Configuration.FileExtensions" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Configuration.FileExtensions - ### Community 376 - "Microsoft.EntityFrameworkCore.Abstractions" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Abstractions @@ -1889,10 +1910,6 @@ Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Abstractio Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.CodeAnalysis.Analyzers -### Community 378 - "Microsoft.Extensions.Diagnostics.Abstractions" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Diagnostics.Abstractions - ### Community 379 - "Microsoft.Extensions.Diagnostics" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Diagnostics @@ -1901,30 +1918,6 @@ Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Diagnostics Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Hosting.Abstractions -### Community 381 - "Microsoft.Extensions.Configuration.Binder" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Configuration.Binder - -### Community 382 - "Microsoft.Extensions.FileProviders.Physical" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.FileProviders.Physical - -### Community 383 - "Microsoft.Extensions.Logging.Console" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging.Console - -### Community 384 - "Microsoft.Extensions.Logging" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging - -### Community 385 - "Microsoft.Extensions.Logging.EventSource" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging.EventSource - -### Community 386 - "Microsoft.Extensions.Logging.EventLog" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging.EventLog - ### Community 387 - "Microsoft.NETCore.Platforms" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.NETCore.Platforms @@ -1933,10 +1926,6 @@ Nodes (4): contentHash, resolved, type, Microsoft.NETCore.Platforms Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Options.ConfigurationExtensions -### Community 389 - "Microsoft.Extensions.Options" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Options - ### Community 390 - "Microsoft.TestPlatform.ObjectModel" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.TestPlatform.ObjectModel @@ -1945,10 +1934,6 @@ Nodes (4): contentHash, resolved, type, Microsoft.TestPlatform.ObjectModel Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging.Configuration -### Community 392 - "System.Diagnostics.EventLog" -Cohesion: 0.50 -Nodes (4): System.Diagnostics.EventLog, contentHash, resolved, type - ### Community 393 - "Microsoft.Extensions.Options.ConfigurationExtensions" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Options.ConfigurationExtensions @@ -1969,41 +1954,29 @@ Nodes (4): System.Composition.Runtime, contentHash, resolved, type Cohesion: 0.50 Nodes (4): Newtonsoft.Json, contentHash, resolved, type -### Community 403 - "Microsoft.Extensions.Configuration.Json" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Configuration.Json - -### Community 408 - "Microsoft.Win32.Registry" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Win32.Registry - ### Community 409 - "XmpCore" Cohesion: 0.50 Nodes (4): XmpCore, contentHash, resolved, type -### Community 410 - "xunit.analyzers" -Cohesion: 0.50 -Nodes (4): xunit.analyzers, contentHash, resolved, type - ## Knowledge Gaps -- **2489 isolated node(s):** `$schema`, `tasks`, `SLACK`, `TALLY`, `Microsoft.AspNetCore.Mvc.Testing` (+2484 more) - These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 2877 node(s) total have ≤1 connection when file, concept and rationale nodes are included.) -- **14 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. +- **2491 isolated node(s):** `$schema`, `tasks`, `SLACK`, `TALLY`, `Microsoft.AspNetCore.Mvc.Testing` (+2486 more) + These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 2881 node(s) total have ≤1 connection when file, concept and rationale nodes are included.) +- **12 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `UserStorageConfig` connect `UserStorageConfig` to `AuthResponseMapperTests`, `AuthResult`, `IngestionPipelineRunnerTests`, `ExifExtractionMiddleware`, `TestFixture`, `User`, `TestFixture`, `WorkerInitializer`, `IAuthResponseMapper`, `EfUserRepository`, `SingleFileItem`, `FileIngestionPipeline`, `IngestionContext`, `TestFixture`, `LoggingMiddleware`, `.InvokeAsync_KnownHash_DoesNotCallNextAsync`, `TestFixture`, `.Build`, `MediaAsset`, `ContentHashingMiddleware`, `AnichronDbContext`, `User`, `.AddAsync`?** - _High betweenness centrality (0.024) - this node is a cross-community bridge._ -- **Why does `Anichron.Core.Domain` connect `Anichron.Core.Domain` to `Schema documentation is generated, and its rationale lives in the schema`, `Anichron.API.Settings`, `TestFixture`, `MediaTypeDetectorTests.cs`, `Metadata`, `Invite`, `MediaAsset`, `AssetInteraction`, `Burst`, `TestFixture`, `ImageProcessor.cs`, `Anichron.Worker.Ingestion.Pipeline`, `User`, `ProxyFile`, `UserStorageConfig`?** - _High betweenness centrality (0.020) - this node is a cross-community bridge._ -- **Why does `IngestionContext` connect `IngestionContext` to `IngestionPipelineRunnerTests`, `ExifExtractionMiddleware`, `TestFixture`, `TestFixture`, `SingleFileItem`, `FileIngestionPipeline`, `ProxyFile`, `UserStorageConfig`, `IngestionPipelineRunner`, `PersistenceMiddleware`, `IIngestionMiddleware`, `TestFixture`, `ImageProxyMiddleware`, `LoggingMiddleware`, `.InvokeAsync_KnownHash_DoesNotCallNextAsync`, `IdempotencyCheckMiddleware`, `TestFixture`, `.Build`, `MediaAsset`, `ContentHashingMiddleware`, `Anichron.Worker.Ingestion.Pipeline`?** - _High betweenness centrality (0.017) - this node is a cross-community bridge._ +- **Why does `UserStorageConfig` connect `UserStorageConfig` to `AuthResponseMapperTests`, `AuthResult`, `IngestionPipelineRunnerTests`, `ExifExtractionMiddleware`, `TestFixture`, `User`, `TestFixture`, `WorkerInitializer`, `IAuthResponseMapper`, `EfUserRepository`, `TestFixture`, `FileIngestionPipeline`, `TestFixture`, `IngestionContext`, `EfUserStorageConfigRepository`, `SingleFileItem`, `TestFixture`, `TestFixture`, `.InvokeAsync`, `TestFixture`, `.InvokeAsync_KnownHash_DoesNotCallNextAsync`, `TestFixture`, `.Build`, `MediaAsset`, `ContentHashingMiddleware`, `Worker`, `AnichronDbContext`, `User`, `.AddAsync`?** + _High betweenness centrality (0.022) - this node is a cross-community bridge._ +- **Why does `Anichron.Core.Domain` connect `Anichron.Core.Domain` to `Schema documentation is generated, and its rationale lives in the schema`, `Anichron.API.Infrastructure`, `SingleFileItem`, `RefreshToken`, `LivePhotoLinkerTests.cs`, `Metadata`, `Invite`, `MediaAsset`, `AssetInteraction`, `Burst`, `TestFixture`, `microsoft_extensions_options`, `Anichron.Worker.Ingestion.Pipeline`, `LockoutServiceTests`, `User`, `ProxyFile`, `UserStorageConfig`?** + _High betweenness centrality (0.018) - this node is a cross-community bridge._ +- **Why does `IUnitOfWork` connect `IUnitOfWork` to `TestFixture`, `TestFixture`, `PersistenceMiddleware`, `TestFixture`, `AdminCreatedUser`, `TestFixture`, `TestFixture`, `TestFixture`, `TokenService`, `BootstrapResetService`, `WorkerInitializer`, `AnichronDbContext`, `TestFixture`, `BootstrapSeeder`, `LockoutServiceTests`, `TestFixture`, `TestFixture`, `.AddAsync`?** + _High betweenness centrality (0.014) - this node is a cross-community bridge._ - **Are the 27 inferred relationships involving `UserStorageConfig` (e.g. with `.CreateStorageConfigAsync_CallsServiceWithUserIdAndRootPathAndReturnsMapperResult()` and `.GetAdminCreateStorageConfigResult_Success_Returns201WithLocationAndMappedBody()`) actually correct?** _`UserStorageConfig` has 27 INFERRED edges - model-reasoned connections that need verification._ - **Are the 3 inferred relationships involving `IngestionContext` (e.g. with `.ConsumeAsync()` and `.Asset_CanBeSetAndRead()`) actually correct?** _`IngestionContext` has 3 INFERRED edges - model-reasoned connections that need verification._ - **What connects `$schema`, `tasks`, `SLACK` to the rest of the system?** - _2489 weakly-connected nodes found - possible documentation gaps or missing edges._ + _2491 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `TestFixture` be split into smaller, more focused modules?** - _Cohesion score 0.05511111111111111 - nodes in this community are weakly interconnected._ \ No newline at end of file + _Cohesion score 0.057177129148340666 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/graphify-out/graph.json b/graphify-out/graph.json index 9723e94..3311095 100644 --- a/graphify-out/graph.json +++ b/graphify-out/graph.json @@ -182,8 +182,8 @@ "source_location": "L135" }, { - "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy", - "label": "PasswordPolicy", + "id": "src_anichron_api_services_authservice_anichron_api_services_authtokens", + "label": "AuthTokens", "_callable": true, "_callable_class": true, "_origin": "ast", @@ -191,14 +191,14 @@ "community_name": "AuthResponseMapperTests", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Settings", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s0" + "s253" ] }, - "norm_label": "passwordpolicy", - "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", - "source_location": "L3" + "norm_label": "authtokens", + "source_file": "src/Anichron.API/Services/AuthService.cs", + "source_location": "L13" }, { "id": "src_anichron_api_tests_unit_endpoints_authresponsemappertests_anichron_api_tests_unit_endpoints_authresponsemappertests", @@ -239,66 +239,6 @@ "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", "source_location": "L14" }, - { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_bootstrapseeder", - "label": "BootstrapSeeder", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "is_partial": true, - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s201" - ] - }, - "norm_label": "bootstrapseeder", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L16" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_ibootstrapseeder", - "label": "IBootstrapSeeder", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s201" - ] - }, - "norm_label": "ibootstrapseeder", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L11" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log", - "label": "Log", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "is_nested_type": true, - "is_partial": true, - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s201" - ] - }, - "norm_label": "log", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L57" - }, { "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_bootstrapseedertests", "label": "BootstrapSeederTests", @@ -379,84 +319,102 @@ "source_location": "L15" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor", - "label": "FfmpegVideoProcessor", + "id": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice", + "label": "ITokenService", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 108, - "community_name": "FfmpegVideoProcessor", + "community_name": "TokenService", "file_type": "code", "metadata": { - "is_partial": true, - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s69" + "s222" ] }, - "norm_label": "ffmpegvideoprocessor", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "norm_label": "itokenservice", + "source_file": "src/Anichron.API/Services/TokenService.cs", "source_location": "L11" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_log", - "label": "Log", + "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice", + "label": "TokenService", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 108, - "community_name": "FfmpegVideoProcessor", + "community_name": "TokenService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s222" + ] + }, + "norm_label": "tokenservice", + "source_file": "src/Anichron.API/Services/TokenService.cs", + "source_location": "L19" + }, + { + "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_log", + "label": "Log", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 109, + "community_name": "Worker", "file_type": "code", "metadata": { "is_nested_type": true, "is_partial": true, - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.Worker.Crawling", "scope_chain": [ - "s69" + "s134" ] }, "norm_label": "log", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", - "source_location": "L104" + "source_file": "src/Anichron.Worker/Crawling/Worker.cs", + "source_location": "L50" }, { - "id": "src_anichron_worker_settings_workerdefaults_anichron_worker_settings_migrator", - "label": "Migrator", + "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_worker", + "label": "Worker", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 109, - "community_name": "WorkerDefaults.cs", + "community_name": "Worker", "file_type": "code", "metadata": { - "is_nested_type": true, - "namespace": "Anichron.Worker.Settings", + "is_partial": true, + "namespace": "Anichron.Worker.Crawling", "scope_chain": [ - "s0" + "s134" ] }, - "norm_label": "migrator", - "source_file": "src/Anichron.Worker/Settings/WorkerDefaults.cs", - "source_location": "L5" + "norm_label": "worker", + "source_file": "src/Anichron.Worker/Crawling/Worker.cs", + "source_location": "L8" }, { - "id": "src_anichron_worker_settings_workerdefaults_anichron_worker_settings_workerdefaults", - "label": "WorkerDefaults", + "id": "src_anichron_worker_ingestion_exifdata_anichron_worker_ingestion_exifdata", + "label": "ExifData", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 109, - "community_name": "WorkerDefaults.cs", + "community": 11, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Settings", + "namespace": "Anichron.Worker.Ingestion", "scope_chain": [ - "s0" + "s17" ] }, - "norm_label": "workerdefaults", - "source_file": "src/Anichron.Worker/Settings/WorkerDefaults.cs", - "source_location": "L3" + "norm_label": "exifdata", + "source_file": "src/Anichron.Worker/Ingestion/ExifData.cs", + "source_location": "L5" }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_persistencemiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_persistencemiddlewaretests", @@ -630,25 +588,6 @@ "source_file": "src/Anichron.API.Tests.Unit/PlaceholderTest.cs", "source_location": "L5" }, - { - "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_adminpasswordresetresponse", - "label": "AdminPasswordResetResponse", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Endpoints", - "scope_chain": [ - "s95" - ] - }, - "norm_label": "adminpasswordresetresponse", - "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", - "source_location": "L134" - }, { "id": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher", "label": "IPasswordHasher", @@ -669,8 +608,8 @@ "source_location": "L8" }, { - "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminresetservice", - "label": "AdminResetService", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice", + "label": "AdminUserService", "_callable": true, "_callable_class": true, "_origin": "ast", @@ -680,51 +619,13 @@ "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s129" + "s92" ] }, - "norm_label": "adminresetservice", - "source_file": "src/Anichron.API/Services/AdminResetService.cs", + "norm_label": "adminuserservice", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", "source_location": "L15" }, - { - "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminuserpasswordreset", - "label": "AdminUserPasswordReset", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s129" - ] - }, - "norm_label": "adminuserpasswordreset", - "source_file": "src/Anichron.API/Services/AdminResetService.cs", - "source_location": "L8" - }, - { - "id": "src_anichron_api_services_adminresetservice_anichron_api_services_iadminresetservice", - "label": "IAdminResetService", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s129" - ] - }, - "norm_label": "iadminresetservice", - "source_file": "src/Anichron.API/Services/AdminResetService.cs", - "source_location": "L10" - }, { "id": "src_anichron_api_services_authservice_anichron_api_services_authservice", "label": "AuthService", @@ -745,27 +646,8 @@ "source_location": "L53" }, { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice", - "label": "ITokenService", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s222" - ] - }, - "norm_label": "itokenservice", - "source_file": "src/Anichron.API/Services/TokenService.cs", - "source_location": "L11" - }, - { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice", - "label": "TokenService", + "id": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork", + "label": "IUnitOfWork", "_callable": true, "_callable_class": true, "_origin": "ast", @@ -773,33 +655,34 @@ "community_name": "IUnitOfWork", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.Core.Data", "scope_chain": [ - "s222" + "s0" ] }, - "norm_label": "tokenservice", - "source_file": "src/Anichron.API/Services/TokenService.cs", - "source_location": "L19" + "norm_label": "iunitofwork", + "source_file": "src/Anichron.Core/Data/IUnitOfWork.cs", + "source_location": "L3" }, { - "id": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork", - "label": "IUnitOfWork", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger", + "label": "CapturingLogger", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", + "community": 120, + "community_name": "CapturingLogger", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data", + "is_nested_type": true, + "namespace": "Anichron.Worker.Tests.Unit.Maintenance", "scope_chain": [ - "s0" + "s241" ] }, - "norm_label": "iunitofwork", - "source_file": "src/Anichron.Core/Data/IUnitOfWork.cs", - "source_location": "L3" + "norm_label": "capturinglogger", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L88" }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_testfixture", @@ -808,7 +691,7 @@ "_callable_class": true, "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "is_nested_type": true, @@ -828,7 +711,7 @@ "_callable_class": true, "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -840,44 +723,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", "source_location": "L11" }, - { - "id": "src_anichron_api_infrastructure_webapplicationbuilderextensions_anichron_api_infrastructure_webapplicationbuilderextensions", - "label": "WebApplicationBuilderExtensions", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Infrastructure", - "scope_chain": [ - "s112" - ] - }, - "norm_label": "webapplicationbuilderextensions", - "source_file": "src/Anichron.API/Infrastructure/WebApplicationBuilderExtensions.cs", - "source_location": "L7" - }, - { - "id": "src_anichron_worker_infrastructure_hostapplicationbuilderextensions_anichron_worker_infrastructure_hostapplicationbuilderextensions", - "label": "HostApplicationBuilderExtensions", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Infrastructure", - "scope_chain": [ - "s76" - ] - }, - "norm_label": "hostapplicationbuilderextensions", - "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", - "source_location": "L6" - }, { "id": "src_anichron_worker_ingestion_mediafileextensions_anichron_worker_ingestion_mediafileextensions", "label": "MediaFileExtensions", @@ -897,25 +742,6 @@ "source_file": "src/Anichron.Worker/Ingestion/MediaFileExtensions.cs", "source_location": "L3" }, - { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_h264encoder", - "label": "H264Encoder", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", - "scope_chain": [ - "s69" - ] - }, - "norm_label": "h264encoder", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", - "source_location": "L114" - }, { "id": "src_anichron_core_domain_user_anichron_core_domain_user", "label": "User", @@ -1483,6 +1309,44 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ImageProxyGeneratorsTests.cs", "source_location": "L8" }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository", + "label": "EfRefreshTokenRepository", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": "efrefreshtokenrepository", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L15" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests", + "label": "RefreshTokenRepositoryTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s145" + ] + }, + "norm_label": "refreshtokenrepositorytests", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", + "source_location": "L9" + }, { "id": "src_anichron_core_domain_proxyfile_anichron_core_domain_proxyfile", "label": "ProxyFile", @@ -1562,44 +1426,6 @@ "source_file": "src/Anichron.Worker/Startup/DatabaseMigratorService.cs", "source_location": "L40" }, - { - "id": "src_anichron_worker_startup_idatabasemigrator_anichron_worker_startup_efdatabasemigrator", - "label": "EfDatabaseMigrator", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Startup", - "scope_chain": [ - "s63" - ] - }, - "norm_label": "efdatabasemigrator", - "source_file": "src/Anichron.Worker/Startup/IDatabaseMigrator.cs", - "source_location": "L11" - }, - { - "id": "src_anichron_worker_startup_idatabasemigrator_anichron_worker_startup_idatabasemigrator", - "label": "IDatabaseMigrator", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Startup", - "scope_chain": [ - "s63" - ] - }, - "norm_label": "idatabasemigrator", - "source_file": "src/Anichron.Worker/Startup/IDatabaseMigrator.cs", - "source_location": "L6" - }, { "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_log", "label": "Log", @@ -1680,6 +1506,45 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Startup/DatabaseMigratorServiceTests.cs", "source_location": "L9" }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_testfixture", + "label": "TestFixture", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "is_nested_type": true, + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s306" + ] + }, + "norm_label": "testfixture", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L14" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests", + "label": "WorkerTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s306" + ] + }, + "norm_label": "workertests", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L12" + }, { "id": "src_anichron_api_security_jwtfactory_anichron_api_security_ijwtfactory", "label": "IJwtFactory", @@ -1777,84 +1642,126 @@ "source_location": "L19" }, { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository", - "label": "EfMediaAssetRepository", + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_h264encoder", + "label": "H264Encoder", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 184, - "community_name": "IMediaAssetRepository", + "community": 182, + "community_name": "microsoft_extensions_options", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s66" + "s69" ] }, - "norm_label": "efmediaassetrepository", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L12" + "norm_label": "h264encoder", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "source_location": "L114" }, { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository", - "label": "IMediaAssetRepository", + "id": "src_anichron_worker_settings_workerdefaults_anichron_worker_settings_migrator", + "label": "Migrator", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "is_nested_type": true, + "namespace": "Anichron.Worker.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "migrator", + "source_file": "src/Anichron.Worker/Settings/WorkerDefaults.cs", + "source_location": "L5" + }, + { + "id": "src_anichron_worker_settings_workerdefaults_anichron_worker_settings_workerdefaults", + "label": "WorkerDefaults", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "workerdefaults", + "source_file": "src/Anichron.Worker/Settings/WorkerDefaults.cs", + "source_location": "L3" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_bootstrapseeder", + "label": "BootstrapSeeder", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 184, - "community_name": "IMediaAssetRepository", + "community_name": "BootstrapSeeder", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "is_partial": true, + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s201" ] }, - "norm_label": "imediaassetrepository", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L6" + "norm_label": "bootstrapseeder", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L16" }, { - "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_admincreateduserresponse", - "label": "AdminCreatedUserResponse", + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_ibootstrapseeder", + "label": "IBootstrapSeeder", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 19, - "community_name": "IAuthResponseMapper", + "community": 184, + "community_name": "BootstrapSeeder", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Endpoints", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s95" + "s201" ] }, - "norm_label": "admincreateduserresponse", - "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", - "source_location": "L133" + "norm_label": "ibootstrapseeder", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L11" }, { - "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_adminendpoints", - "label": "AdminEndpoints", + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log", + "label": "Log", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 19, - "community_name": "IAuthResponseMapper", + "community": 184, + "community_name": "BootstrapSeeder", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Endpoints", + "is_nested_type": true, + "is_partial": true, + "namespace": "Anichron.API.Services", "scope_chain": [ - "s95" + "s201" ] }, - "norm_label": "adminendpoints", - "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", - "source_location": "L7" + "norm_label": "log", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L57" }, { - "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_createadminuserrequest", - "label": "CreateAdminUserRequest", + "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_adminendpoints", + "label": "AdminEndpoints", "_callable": true, "_callable_class": true, "_origin": "ast", @@ -1867,9 +1774,9 @@ "s95" ] }, - "norm_label": "createadminuserrequest", + "norm_label": "adminendpoints", "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", - "source_location": "L132" + "source_location": "L7" }, { "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_createstorageconfigrequest", @@ -1966,44 +1873,6 @@ "source_file": "src/Anichron.API/Services/AdminUserService.cs", "source_location": "L7" }, - { - "id": "src_anichron_api_services_authservice_anichron_api_services_admincreateduser", - "label": "AdminCreatedUser", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 19, - "community_name": "IAuthResponseMapper", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s253" - ] - }, - "norm_label": "admincreateduser", - "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L14" - }, - { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests", - "label": "AdminEndpointsTests", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 19, - "community_name": "IAuthResponseMapper", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Endpoints", - "scope_chain": [ - "s93" - ] - }, - "norm_label": "adminendpointstests", - "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", - "source_location": "L7" - }, { "id": "src_anichron_api_tests_unit_endpoints_adminstorageconfigendpointstests_anichron_api_tests_unit_endpoints_adminstorageconfigendpointstests", "label": "AdminStorageConfigEndpointsTests", @@ -2042,6 +1911,44 @@ "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminUserEndpointsTests.cs", "source_location": "L9" }, + { + "id": "src_anichron_api_infrastructure_webapplicationbuilderextensions_anichron_api_infrastructure_webapplicationbuilderextensions", + "label": "WebApplicationBuilderExtensions", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 196, + "community_name": "Anichron.Infrastructure.Configuration", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Infrastructure", + "scope_chain": [ + "s112" + ] + }, + "norm_label": "webapplicationbuilderextensions", + "source_file": "src/Anichron.API/Infrastructure/WebApplicationBuilderExtensions.cs", + "source_location": "L7" + }, + { + "id": "src_anichron_worker_infrastructure_hostapplicationbuilderextensions_anichron_worker_infrastructure_hostapplicationbuilderextensions", + "label": "HostApplicationBuilderExtensions", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 196, + "community_name": "Anichron.Infrastructure.Configuration", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Infrastructure", + "scope_chain": [ + "s76" + ] + }, + "norm_label": "hostapplicationbuilderextensions", + "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", + "source_location": "L6" + }, { "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_authresponsemapper", "label": "AuthResponseMapper", @@ -2081,8 +1988,8 @@ "source_location": "L16" }, { - "id": "src_anichron_api_settings_usernamepolicy_anichron_api_settings_usernamepolicy", - "label": "UsernamePolicy", + "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings", + "label": "AuthCookieSettings", "_callable": true, "_callable_class": true, "_origin": "ast", @@ -2090,15 +1997,14 @@ "community_name": "AuthResult", "file_type": "code", "metadata": { - "is_partial": true, "namespace": "Anichron.API.Settings", "scope_chain": [ - "s39" + "s0" ] }, - "norm_label": "usernamepolicy", - "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", - "source_location": "L5" + "norm_label": "authcookiesettings", + "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", + "source_location": "L3" }, { "id": "src_anichron_infrastructure_configuration_appiniinitializer_anichron_infrastructure_configuration_appiniinitializer", @@ -2183,7 +2089,7 @@ "_callable_class": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -2202,7 +2108,7 @@ "_callable_class": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -2221,7 +2127,7 @@ "_callable_class": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -2240,7 +2146,7 @@ "_callable_class": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -2253,13 +2159,13 @@ "source_location": "L92" }, { - "id": "src_anichron_api_services_authservice_anichron_api_services_authtokens", - "label": "AuthTokens", + "id": "src_anichron_api_services_authservice_anichron_api_services_iauthservice", + "label": "IAuthService", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -2267,28 +2173,29 @@ "s253" ] }, - "norm_label": "authtokens", + "norm_label": "iauthservice", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L13" + "source_location": "L43" }, { - "id": "src_anichron_api_services_authservice_anichron_api_services_iauthservice", - "label": "IAuthService", + "id": "src_anichron_api_settings_usernamepolicy_anichron_api_settings_usernamepolicy", + "label": "UsernamePolicy", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "is_partial": true, + "namespace": "Anichron.API.Settings", "scope_chain": [ - "s253" + "s39" ] }, - "norm_label": "iauthservice", - "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L43" + "norm_label": "usernamepolicy", + "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", + "source_location": "L5" }, { "id": "src_anichron_api_tests_unit_endpoints_authendpointstests_anichron_api_tests_unit_endpoints_authendpointstests", @@ -2297,7 +2204,7 @@ "_callable_class": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -2386,118 +2293,118 @@ "source_location": "L8" }, { - "id": "src_anichron_worker_ingestion_proxy_processlauncher_anichron_worker_ingestion_proxy_iprocesslauncher", - "label": "IProcessLauncher", + "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken", + "label": "RefreshToken", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 231, - "community_name": ".RunAsync", + "community_name": "RefreshToken", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.Core.Domain", "scope_chain": [ - "s27" + "s0" ] }, - "norm_label": "iprocesslauncher", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", - "source_location": "L5" + "norm_label": "refreshtoken", + "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", + "source_location": "L3" }, { - "id": "src_anichron_worker_ingestion_proxy_processlauncher_anichron_worker_ingestion_proxy_processresult", - "label": "ProcessResult", + "id": "src_anichron_api_infrastructure_mustchangepasswordmiddleware_anichron_api_infrastructure_mustchangepasswordmiddleware", + "label": "MustChangePasswordMiddleware", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 231, - "community_name": ".RunAsync", + "community": 24, + "community_name": "MustChangePasswordMiddleware", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.API.Infrastructure", "scope_chain": [ - "s27" + "s30" ] }, - "norm_label": "processresult", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", - "source_location": "L10" + "norm_label": "mustchangepasswordmiddleware", + "source_file": "src/Anichron.API/Infrastructure/MustChangePasswordMiddleware.cs", + "source_location": "L5" }, { - "id": "src_anichron_worker_ingestion_proxy_processlauncher_anichron_worker_ingestion_proxy_systemprocesslauncher", - "label": "SystemProcessLauncher", + "id": "src_anichron_api_tests_unit_infrastructure_mustchangepasswordmiddlewaretests_anichron_api_tests_unit_infrastructure_mustchangepasswordmiddlewaretests", + "label": "MustChangePasswordMiddlewareTests", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 231, - "community_name": ".RunAsync", + "community": 24, + "community_name": "MustChangePasswordMiddleware", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.API.Tests.Unit.Infrastructure", "scope_chain": [ - "s27" + "s99" ] }, - "norm_label": "systemprocesslauncher", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", - "source_location": "L12" + "norm_label": "mustchangepasswordmiddlewaretests", + "source_file": "src/Anichron.API.Tests.Unit/Infrastructure/MustChangePasswordMiddlewareTests.cs", + "source_location": "L7" }, { - "id": "src_anichron_api_infrastructure_mustchangepasswordmiddleware_anichron_api_infrastructure_mustchangepasswordmiddleware", - "label": "MustChangePasswordMiddleware", + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository", + "label": "IRefreshTokenRepository", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 24, - "community_name": "MustChangePasswordMiddleware", + "community": 240, + "community_name": "IRefreshTokenRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Infrastructure", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s30" + "s66" ] }, - "norm_label": "mustchangepasswordmiddleware", - "source_file": "src/Anichron.API/Infrastructure/MustChangePasswordMiddleware.cs", - "source_location": "L5" + "norm_label": "irefreshtokenrepository", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L6" }, { - "id": "src_anichron_api_tests_unit_infrastructure_mustchangepasswordmiddlewaretests_anichron_api_tests_unit_infrastructure_mustchangepasswordmiddlewaretests", - "label": "MustChangePasswordMiddlewareTests", + "id": "src_anichron_worker_ingestion_mediatypedetector_anichron_worker_ingestion_mediatypedetector", + "label": "MediaTypeDetector", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 24, - "community_name": "MustChangePasswordMiddleware", + "community": 241, + "community_name": "MediaType", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Infrastructure", + "namespace": "Anichron.Worker.Ingestion", "scope_chain": [ - "s99" + "s29" ] }, - "norm_label": "mustchangepasswordmiddlewaretests", - "source_file": "src/Anichron.API.Tests.Unit/Infrastructure/MustChangePasswordMiddlewareTests.cs", - "source_location": "L7" + "norm_label": "mediatypedetector", + "source_file": "src/Anichron.Worker/Ingestion/MediaTypeDetector.cs", + "source_location": "L5" }, { - "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings", - "label": "AuthCookieSettings", + "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_anichron_worker_tests_unit_ingestion_mediatypedetectortests", + "label": "MediaTypeDetectorTests", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 240, - "community_name": "AuthCookieSettings", + "community": 241, + "community_name": "MediaType", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Settings", + "namespace": "Anichron.Worker.Tests.Unit.Ingestion", "scope_chain": [ - "s0" + "s62" ] }, - "norm_label": "authcookiesettings", - "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", - "source_location": "L3" + "norm_label": "mediatypedetectortests", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", + "source_location": "L6" }, { "id": "src_anichron_core_data_repository_inviterepository_anichron_core_data_repository_efinviterepository", @@ -2537,25 +2444,6 @@ "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/InviteRepositoryTests.cs", "source_location": "L9" }, - { - "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem", - "label": "SingleFileItem", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 25, - "community_name": "SingleFileItem", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s29" - ] - }, - "norm_label": "singlefileitem", - "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", - "source_location": "L16" - }, { "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_anichron_worker_tests_unit_crawling_fileingestionpipelinetests", "label": "FileIngestionPipelineTests", @@ -2563,7 +2451,7 @@ "_callable_class": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -2582,7 +2470,7 @@ "_callable_class": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "is_nested_type": true, @@ -2596,42 +2484,61 @@ "source_location": "L24" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests", - "label": "IngestionContextTests", + "id": "src_anichron_api_services_adminstorageconfigservice_anichron_api_services_adminstorageconfigservice", + "label": "AdminStorageConfigService", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 25, - "community_name": "SingleFileItem", + "community": 254, + "community_name": ".AddAsync", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s104" + "s92" ] }, - "norm_label": "ingestioncontexttests", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", + "norm_label": "adminstorageconfigservice", + "source_file": "src/Anichron.API/Services/AdminStorageConfigService.cs", + "source_location": "L14" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice", + "label": "ILockoutService", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": "ilockoutservice", + "source_file": "src/Anichron.API/Services/LockoutService.cs", "source_location": "L7" }, { - "id": "src_anichron_api_services_adminstorageconfigservice_anichron_api_services_adminstorageconfigservice", - "label": "AdminStorageConfigService", + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice", + "label": "LockoutService", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 254, - "community_name": ".AddAsync", + "community": 26, + "community_name": "LockoutServiceTests", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s92" + "s84" ] }, - "norm_label": "adminstorageconfigservice", - "source_file": "src/Anichron.API/Services/AdminStorageConfigService.cs", - "source_location": "L14" + "norm_label": "lockoutservice", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L15" }, { "id": "src_anichron_api_tests_unit_services_lockoutservicetests_anichron_api_tests_unit_services_lockoutservicetests", @@ -2732,47 +2639,6 @@ "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", "source_location": "L124" }, - { - "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_log", - "label": "Log", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "is_nested_type": true, - "is_partial": true, - "namespace": "Anichron.Worker.Crawling", - "scope_chain": [ - "s134" - ] - }, - "norm_label": "log", - "source_file": "src/Anichron.Worker/Crawling/Worker.cs", - "source_location": "L50" - }, - { - "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_worker", - "label": "Worker", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "is_partial": true, - "namespace": "Anichron.Worker.Crawling", - "scope_chain": [ - "s134" - ] - }, - "norm_label": "worker", - "source_file": "src/Anichron.Worker/Crawling/Worker.cs", - "source_location": "L8" - }, { "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_ingestionitem", "label": "IngestionItem", @@ -2793,156 +2659,61 @@ "source_location": "L10" }, { - "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_secondaryfiledescriptor", - "label": "SecondaryFileDescriptor", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s29" - ] - }, - "norm_label": "secondaryfiledescriptor", - "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", - "source_location": "L5" - }, - { - "id": "src_anichron_worker_ingestion_ingestionshutdown_anichron_worker_ingestion_ingestionshutdown", - "label": "IngestionShutdown", + "id": "src_anichron_core_guidfactory_anichron_core_iguidfactory", + "label": "IGuidFactory", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", + "community": 283, + "community_name": "IGuidFactory", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion", + "namespace": "Anichron.Core", "scope_chain": [ "s0" ] }, - "norm_label": "ingestionshutdown", - "source_file": "src/Anichron.Worker/Ingestion/IngestionShutdown.cs", + "norm_label": "iguidfactory", + "source_file": "src/Anichron.Core/GuidFactory.cs", "source_location": "L3" }, { - "id": "src_anichron_worker_ingestion_livephotolinker_anichron_worker_ingestion_ilivephotolinker", - "label": "ILivePhotoLinker", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s59" - ] - }, - "norm_label": "ilivephotolinker", - "source_file": "src/Anichron.Worker/Ingestion/LivePhotoLinker.cs", - "source_location": "L10" - }, - { - "id": "src_anichron_worker_ingestion_livephotolinker_anichron_worker_ingestion_livephotolinker", - "label": "LivePhotoLinker", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s59" - ] - }, - "norm_label": "livephotolinker", - "source_file": "src/Anichron.Worker/Ingestion/LivePhotoLinker.cs", - "source_location": "L15" - }, - { - "id": "src_anichron_worker_ingestion_livephotolinker_anichron_worker_ingestion_livephotolinkresult", - "label": "LivePhotoLinkResult", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s59" - ] - }, - "norm_label": "livephotolinkresult", - "source_file": "src/Anichron.Worker/Ingestion/LivePhotoLinker.cs", - "source_location": "L6" - }, - { - "id": "src_anichron_worker_ingestion_mediatypedetector_anichron_worker_ingestion_mediatypedetector", - "label": "MediaTypeDetector", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s29" - ] - }, - "norm_label": "mediatypedetector", - "source_file": "src/Anichron.Worker/Ingestion/MediaTypeDetector.cs", - "source_location": "L5" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_anichron_worker_tests_unit_ingestion_mediatypedetectortests", - "label": "MediaTypeDetectorTests", + "id": "src_anichron_core_guidfactory_anichron_core_timeorderedguidfactory", + "label": "TimeOrderedGuidFactory", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", + "community": 283, + "community_name": "IGuidFactory", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion", + "namespace": "Anichron.Core", "scope_chain": [ - "s62" + "s0" ] }, - "norm_label": "mediatypedetectortests", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", - "source_location": "L6" + "norm_label": "timeorderedguidfactory", + "source_file": "src/Anichron.Core/GuidFactory.cs", + "source_location": "L8" }, { - "id": "src_anichron_worker_ingestion_exifdata_anichron_worker_ingestion_exifdata", - "label": "ExifData", + "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_anichron_worker_ingestion_proxy_proxyfilebuilder", + "label": "ProxyFileBuilder", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 283, - "community_name": "ExifData", + "community_name": "IGuidFactory", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s17" + "s108" ] }, - "norm_label": "exifdata", - "source_file": "src/Anichron.Worker/Ingestion/ExifData.cs", - "source_location": "L5" + "norm_label": "proxyfilebuilder", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyFileBuilder.cs", + "source_location": "L8" }, { "id": "src_anichron_worker_ingestion_pipeline_ingestionpipelinerunner_anichron_worker_ingestion_pipeline_iingestionpipelinerunner", @@ -3084,6 +2855,120 @@ "source_file": "src/Anichron.Worker/Ingestion/Middlewares/PersistenceMiddleware.cs", "source_location": "L11" }, + { + "id": "src_anichron_worker_ingestion_livephotolinker_anichron_worker_ingestion_ilivephotolinker", + "label": "ILivePhotoLinker", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 291, + "community_name": "LivePhotoLinker", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s59" + ] + }, + "norm_label": "ilivephotolinker", + "source_file": "src/Anichron.Worker/Ingestion/LivePhotoLinker.cs", + "source_location": "L10" + }, + { + "id": "src_anichron_worker_ingestion_livephotolinker_anichron_worker_ingestion_livephotolinker", + "label": "LivePhotoLinker", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 291, + "community_name": "LivePhotoLinker", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s59" + ] + }, + "norm_label": "livephotolinker", + "source_file": "src/Anichron.Worker/Ingestion/LivePhotoLinker.cs", + "source_location": "L15" + }, + { + "id": "src_anichron_worker_ingestion_livephotolinker_anichron_worker_ingestion_livephotolinkresult", + "label": "LivePhotoLinkResult", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 291, + "community_name": "LivePhotoLinker", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s59" + ] + }, + "norm_label": "livephotolinkresult", + "source_file": "src/Anichron.Worker/Ingestion/LivePhotoLinker.cs", + "source_location": "L6" + }, + { + "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_secondaryfiledescriptor", + "label": "SecondaryFileDescriptor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 293, + "community_name": "SingleFileItem", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s29" + ] + }, + "norm_label": "secondaryfiledescriptor", + "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", + "source_location": "L5" + }, + { + "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem", + "label": "SingleFileItem", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 293, + "community_name": "SingleFileItem", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s29" + ] + }, + "norm_label": "singlefileitem", + "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", + "source_location": "L16" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests", + "label": "IngestionContextTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 293, + "community_name": "SingleFileItem", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s104" + ] + }, + "norm_label": "ingestioncontexttests", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", + "source_location": "L7" + }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_capturinglogger", "label": "CapturingLogger", @@ -3204,62 +3089,23 @@ "source_location": "L339" }, { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests", - "label": "AdminStorageConfigServiceTests", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ] - }, - "norm_label": "adminstorageconfigservicetests", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L8" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_testfixture", - "label": "TestFixture", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "is_nested_type": true, - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ] - }, - "norm_label": "testfixture", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L10" - }, - { - "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository", - "label": "EfUserStorageConfigRepository", + "id": "src_anichron_worker_ingestion_ingestionshutdown_anichron_worker_ingestion_ingestionshutdown", + "label": "IngestionShutdown", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 300, + "community_name": ".IsInProgress", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.Worker.Ingestion", "scope_chain": [ - "s66" + "s0" ] }, - "norm_label": "efuserstorageconfigrepository", - "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", - "source_location": "L17" + "norm_label": "ingestionshutdown", + "source_file": "src/Anichron.Worker/Ingestion/IngestionShutdown.cs", + "source_location": "L3" }, { "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_iuserstorageconfigrepository", @@ -3300,122 +3146,45 @@ "source_location": "L3" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests", - "label": "UserStorageConfigRepositoryTests", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", - "scope_chain": [ - "s129" - ] - }, - "norm_label": "userstorageconfigrepositorytests", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L8" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_testfixture", - "label": "TestFixture", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "is_nested_type": true, - "namespace": "Anichron.Worker.Tests.Unit.Crawling", - "scope_chain": [ - "s306" - ] - }, - "norm_label": "testfixture", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L14" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests", - "label": "WorkerTests", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", - "scope_chain": [ - "s306" - ] - }, - "norm_label": "workertests", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L12" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture", - "label": "TestFixture", + "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_log", + "label": "Log", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 313, + "community_name": "LoggingMiddleware", "file_type": "code", "metadata": { "is_nested_type": true, - "namespace": "Anichron.Worker.Tests.Unit.Startup", - "scope_chain": [ - "s307" - ] - }, - "norm_label": "testfixture", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L15" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests", - "label": "WorkerInitializerTests", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", + "is_partial": true, + "namespace": "Anichron.Worker.Ingestion.Middlewares", "scope_chain": [ - "s307" + "s43" ] }, - "norm_label": "workerinitializertests", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L13" + "norm_label": "log", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", + "source_location": "L17" }, { - "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_log", - "label": "Log", + "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_loggingmiddleware", + "label": "LoggingMiddleware", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 313, - "community_name": "Log", + "community_name": "LoggingMiddleware", "file_type": "code", "metadata": { - "is_nested_type": true, "is_partial": true, "namespace": "Anichron.Worker.Ingestion.Middlewares", "scope_chain": [ "s43" ] }, - "norm_label": "log", + "norm_label": "loggingmiddleware", "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", - "source_location": "L17" + "source_location": "L5" }, { "id": "src_anichron_worker_ingestion_proxy_proxyshardstrategy_anichron_worker_ingestion_proxy_iproxydirectorystrategy", @@ -3486,12 +3255,12 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s121" + "s160" ] }, "norm_label": "adminuserservicetests", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L8" + "source_location": "L9" }, { "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture", @@ -3506,12 +3275,31 @@ "is_nested_type": true, "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s121" + "s160" ] }, "norm_label": "testfixture", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L12" + "source_location": "L13" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests_anichron_worker_tests_unit_ingestion_exifdatatests", + "label": "ExifDataTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 328, + "community_name": "LivePhotoLinkerTests.cs", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion", + "scope_chain": [ + "s34" + ] + }, + "norm_label": "exifdatatests", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", + "source_location": "L5" }, { "id": "src_anichron_api_infrastructure_authmessages_anichron_api_infrastructure_authmessages", @@ -3519,8 +3307,8 @@ "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 321, - "community_name": "AuthMessages.cs", + "community": 33, + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "metadata": { "namespace": "Anichron.API.Infrastructure", @@ -3538,8 +3326,8 @@ "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 321, - "community_name": "AuthMessages.cs", + "community": 33, + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "metadata": { "namespace": "Anichron.API.Infrastructure", @@ -3551,25 +3339,6 @@ "source_file": "src/Anichron.API/Infrastructure/AuthMessages.cs", "source_location": "L25" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests_anichron_worker_tests_unit_ingestion_exifdatatests", - "label": "ExifDataTests", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 328, - "community_name": "MediaTypeDetectorTests.cs", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion", - "scope_chain": [ - "s34" - ] - }, - "norm_label": "exifdatatests", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", - "source_location": "L5" - }, { "id": "src_anichron_api_infrastructure_authpolicies_anichron_api_infrastructure_authpolicies", "label": "AuthPolicies", @@ -3577,7 +3346,7 @@ "_callable_class": true, "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "metadata": { "namespace": "Anichron.API.Infrastructure", @@ -3590,61 +3359,61 @@ "source_location": "L3" }, { - "id": "src_anichron_api_infrastructure_healthcheckresponsewriter_anichron_api_infrastructure_healthcheckresponsewriter", - "label": "HealthCheckResponseWriter", + "id": "src_anichron_worker_ingestion_proxy_processlauncher_anichron_worker_ingestion_proxy_iprocesslauncher", + "label": "IProcessLauncher", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Infrastructure", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s54" + "s27" ] }, - "norm_label": "healthcheckresponsewriter", - "source_file": "src/Anichron.API/Infrastructure/HealthCheckResponseWriter.cs", + "norm_label": "iprocesslauncher", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", "source_location": "L5" }, { - "id": "src_anichron_api_infrastructure_servicecollectionextensions_anichron_api_infrastructure_servicecollectionextensions", - "label": "ServiceCollectionExtensions", + "id": "src_anichron_worker_ingestion_proxy_processlauncher_anichron_worker_ingestion_proxy_processresult", + "label": "ProcessResult", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Infrastructure", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s529" + "s27" ] }, - "norm_label": "servicecollectionextensions", - "source_file": "src/Anichron.API/Infrastructure/ServiceCollectionExtensions.cs", - "source_location": "L19" + "norm_label": "processresult", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", + "source_location": "L10" }, { - "id": "src_anichron_api_settings_corssettings_anichron_api_settings_corssettings", - "label": "CorsSettings", + "id": "src_anichron_worker_ingestion_proxy_processlauncher_anichron_worker_ingestion_proxy_systemprocesslauncher", + "label": "SystemProcessLauncher", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Settings", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s0" + "s27" ] }, - "norm_label": "corssettings", - "source_file": "src/Anichron.API/Settings/CorsSettings.cs", - "source_location": "L3" + "norm_label": "systemprocesslauncher", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", + "source_location": "L12" }, { "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegexception", @@ -3653,7 +3422,7 @@ "_callable_class": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Proxy", @@ -3665,6 +3434,85 @@ "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", "source_location": "L122" }, + { + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor", + "label": "FfmpegVideoProcessor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "metadata": { + "is_partial": true, + "namespace": "Anichron.Worker.Ingestion.Proxy", + "scope_chain": [ + "s69" + ] + }, + "norm_label": "ffmpegvideoprocessor", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "source_location": "L11" + }, + { + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ivideoprocessor", + "label": "IVideoProcessor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Proxy", + "scope_chain": [ + "s69" + ] + }, + "norm_label": "ivideoprocessor", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "source_location": "L6" + }, + { + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_log", + "label": "Log", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "metadata": { + "is_nested_type": true, + "is_partial": true, + "namespace": "Anichron.Worker.Ingestion.Proxy", + "scope_chain": [ + "s69" + ] + }, + "norm_label": "log", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "source_location": "L104" + }, + { + "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_video720pgenerator", + "label": "Video720PGenerator", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Proxy", + "scope_chain": [ + "s29" + ] + }, + "norm_label": "video720pgenerator", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", + "source_location": "L12" + }, { "id": "src_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests", "label": "FfmpegVideoProcessorTests", @@ -3672,7 +3520,7 @@ "_callable_class": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -3691,7 +3539,7 @@ "_callable_class": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "is_nested_type": true, @@ -3704,6 +3552,25 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/FfmpegVideoProcessorTests.cs", "source_location": "L10" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests", + "label": "VideoProxyGeneratorsTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", + "scope_chain": [ + "s68" + ] + }, + "norm_label": "videoproxygeneratorstests", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", + "source_location": "L6" + }, { "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_iingestionmiddleware", "label": "IIngestionMiddleware", @@ -3782,6 +3649,25 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", "source_location": "L286" }, + { + "id": "src_anichron_api_infrastructure_servicecollectionextensions_anichron_api_infrastructure_servicecollectionextensions", + "label": "ServiceCollectionExtensions", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Infrastructure", + "scope_chain": [ + "s529" + ] + }, + "norm_label": "servicecollectionextensions", + "source_file": "src/Anichron.API/Infrastructure/ServiceCollectionExtensions.cs", + "source_location": "L19" + }, { "id": "src_anichron_api_security_appclaimtypes_anichron_api_security_appclaimtypes", "label": "AppClaimTypes", @@ -3880,23 +3766,61 @@ "source_location": "L312" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice", - "label": "AdminUserService", + "id": "src_anichron_api_settings_corssettings_anichron_api_settings_corssettings", + "label": "CorsSettings", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 372, + "community_name": "CorsSettings.cs", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "corssettings", + "source_file": "src/Anichron.API/Settings/CorsSettings.cs", + "source_location": "L3" + }, + { + "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository", + "label": "EfUserStorageConfigRepository", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s92" + "s66" ] }, - "norm_label": "adminuserservice", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L15" + "norm_label": "efuserstorageconfigrepository", + "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", + "source_location": "L17" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests", + "label": "UserStorageConfigRepositoryTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 38, + "community_name": "EfUserStorageConfigRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s129" + ] + }, + "norm_label": "userstorageconfigrepositorytests", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L8" }, { "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_livephotopairitem", @@ -4041,7 +3965,7 @@ "_callable_class": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -4060,7 +3984,7 @@ "_callable_class": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -4079,7 +4003,7 @@ "_callable_class": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -4091,6 +4015,25 @@ "source_file": "src/Anichron.API/Endpoints/UserEndpoints.cs", "source_location": "L54" }, + { + "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy", + "label": "PasswordPolicy", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 47, + "community_name": "PasswordPolicy", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "passwordpolicy", + "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", + "source_location": "L3" + }, { "id": "src_anichron_api_tests_unit_endpoints_userendpointstests_anichron_api_tests_unit_endpoints_userendpointstests", "label": "UserEndpointsTests", @@ -4098,7 +4041,7 @@ "_callable_class": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -4111,186 +4054,199 @@ "source_location": "L12" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger", - "label": "CapturingLogger", + "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_admincreateduserresponse", + "label": "AdminCreatedUserResponse", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "is_nested_type": true, - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Endpoints", "scope_chain": [ - "s84" + "s95" ] }, - "norm_label": "capturinglogger", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L109" + "norm_label": "admincreateduserresponse", + "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", + "source_location": "L133" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_fakehttpmessagehandler", - "label": "FakeHttpMessageHandler", + "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_adminpasswordresetresponse", + "label": "AdminPasswordResetResponse", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "is_nested_type": true, - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Endpoints", "scope_chain": [ - "s84" + "s95" ] }, - "norm_label": "fakehttpmessagehandler", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L97" + "norm_label": "adminpasswordresetresponse", + "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", + "source_location": "L134" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests", - "label": "PwnedPasswordClientTests", + "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_createadminuserrequest", + "label": "CreateAdminUserRequest", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Endpoints", "scope_chain": [ - "s84" + "s95" ] }, - "norm_label": "pwnedpasswordclienttests", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L7" + "norm_label": "createadminuserrequest", + "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", + "source_location": "L132" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture", - "label": "TestFixture", + "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminresetservice", + "label": "AdminResetService", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "is_nested_type": true, - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s84" + "s129" ] }, - "norm_label": "testfixture", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L69" + "norm_label": "adminresetservice", + "source_file": "src/Anichron.API/Services/AdminResetService.cs", + "source_location": "L15" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_throwinghttpmessagehandler", - "label": "ThrowingHttpMessageHandler", + "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminuserpasswordreset", + "label": "AdminUserPasswordReset", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "is_nested_type": true, - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s84" + "s129" ] }, - "norm_label": "throwinghttpmessagehandler", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L103" + "norm_label": "adminuserpasswordreset", + "source_file": "src/Anichron.API/Services/AdminResetService.cs", + "source_location": "L8" }, { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice", - "label": "ILockoutService", + "id": "src_anichron_api_services_adminresetservice_anichron_api_services_iadminresetservice", + "label": "IAdminResetService", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 50, - "community_name": "LockoutService", + "community": 5, + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s84" + "s129" ] }, - "norm_label": "ilockoutservice", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L7" + "norm_label": "iadminresetservice", + "source_file": "src/Anichron.API/Services/AdminResetService.cs", + "source_location": "L10" }, { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice", - "label": "LockoutService", + "id": "src_anichron_api_services_authservice_anichron_api_services_admincreateduser", + "label": "AdminCreatedUser", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 50, - "community_name": "LockoutService", + "community": 5, + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s84" + "s253" ] }, - "norm_label": "lockoutservice", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L15" + "norm_label": "admincreateduser", + "source_file": "src/Anichron.API/Services/AuthService.cs", + "source_location": "L14" }, { - "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_anichron_worker_ingestion_middlewares_log", - "label": "Log", + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests", + "label": "AdminEndpointsTests", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 51, + "community": 5, + "community_name": "AdminCreatedUser", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Endpoints", + "scope_chain": [ + "s93" + ] + }, + "norm_label": "adminendpointstests", + "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", + "source_location": "L7" + }, + { + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests", + "label": "AdminStorageConfigServiceTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 50, "community_name": "TestFixture", "file_type": "code", "metadata": { - "is_nested_type": true, - "is_partial": true, - "namespace": "Anichron.Worker.Ingestion.Middlewares", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s110" + "s121" ] }, - "norm_label": "log", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/VideoProxyMiddleware.cs", - "source_location": "L39" + "norm_label": "adminstorageconfigservicetests", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L8" }, { - "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_anichron_worker_ingestion_middlewares_videoproxymiddleware", - "label": "VideoProxyMiddleware", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_testfixture", + "label": "TestFixture", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 51, + "community": 50, "community_name": "TestFixture", "file_type": "code", "metadata": { - "is_partial": true, - "namespace": "Anichron.Worker.Ingestion.Middlewares", + "is_nested_type": true, + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s110" + "s121" ] }, - "norm_label": "videoproxymiddleware", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/VideoProxyMiddleware.cs", - "source_location": "L7" + "norm_label": "testfixture", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L10" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ivideoprocessor", - "label": "IVideoProcessor", + "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_anichron_worker_ingestion_middlewares_log", + "label": "Log", "_callable": true, "_callable_class": true, "_origin": "ast", @@ -4298,18 +4254,20 @@ "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "is_nested_type": true, + "is_partial": true, + "namespace": "Anichron.Worker.Ingestion.Middlewares", "scope_chain": [ - "s69" + "s110" ] }, - "norm_label": "ivideoprocessor", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", - "source_location": "L6" + "norm_label": "log", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/VideoProxyMiddleware.cs", + "source_location": "L39" }, { - "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_ivideoproxygenerator", - "label": "IVideoProxyGenerator", + "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_anichron_worker_ingestion_middlewares_videoproxymiddleware", + "label": "VideoProxyMiddleware", "_callable": true, "_callable_class": true, "_origin": "ast", @@ -4317,18 +4275,19 @@ "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "is_partial": true, + "namespace": "Anichron.Worker.Ingestion.Middlewares", "scope_chain": [ - "s29" + "s110" ] }, - "norm_label": "ivideoproxygenerator", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", - "source_location": "L5" + "norm_label": "videoproxymiddleware", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/VideoProxyMiddleware.cs", + "source_location": "L7" }, { - "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_video720pgenerator", - "label": "Video720PGenerator", + "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_ivideoproxygenerator", + "label": "IVideoProxyGenerator", "_callable": true, "_callable_class": true, "_origin": "ast", @@ -4341,9 +4300,9 @@ "s29" ] }, - "norm_label": "video720pgenerator", + "norm_label": "ivideoproxygenerator", "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", - "source_location": "L12" + "source_location": "L5" }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_videoproxymiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_testfixture", @@ -4385,23 +4344,23 @@ "source_location": "L15" }, { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests", - "label": "VideoProxyGeneratorsTests", + "id": "src_anichron_api_infrastructure_healthcheckresponsewriter_anichron_api_infrastructure_healthcheckresponsewriter", + "label": "HealthCheckResponseWriter", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 51, - "community_name": "TestFixture", + "community": 56, + "community_name": ".WriteResponseAsync", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", + "namespace": "Anichron.API.Infrastructure", "scope_chain": [ - "s68" + "s54" ] }, - "norm_label": "videoproxygeneratorstests", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", - "source_location": "L6" + "norm_label": "healthcheckresponsewriter", + "source_file": "src/Anichron.API/Infrastructure/HealthCheckResponseWriter.cs", + "source_location": "L5" }, { "id": "src_anichron_api_tests_unit_infrastructure_healthcheckresponsewritertests_anichron_api_tests_unit_infrastructure_healthcheckresponsewritertests", @@ -4543,63 +4502,62 @@ "source_location": "L13" }, { - "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_loggingmiddleware", - "label": "LoggingMiddleware", + "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests", + "label": "LoggingMiddlewareTests", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "metadata": { - "is_partial": true, - "namespace": "Anichron.Worker.Ingestion.Middlewares", + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", "scope_chain": [ - "s43" + "s185" ] }, - "norm_label": "loggingmiddleware", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", - "source_location": "L5" + "norm_label": "loggingmiddlewaretests", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/LoggingMiddlewareTests.cs", + "source_location": "L9" }, { - "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests", - "label": "LoggingMiddlewareTests", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture", + "label": "TestFixture", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 65, - "community_name": "LoggingMiddleware", + "community": 68, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", + "is_nested_type": true, + "namespace": "Anichron.Worker.Tests.Unit.Startup", "scope_chain": [ - "s185" + "s307" ] }, - "norm_label": "loggingmiddlewaretests", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/LoggingMiddlewareTests.cs", - "source_location": "L9" + "norm_label": "testfixture", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L15" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger", - "label": "CapturingLogger", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests", + "label": "WorkerInitializerTests", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "is_nested_type": true, - "namespace": "Anichron.Worker.Tests.Unit.Maintenance", + "namespace": "Anichron.Worker.Tests.Unit.Startup", "scope_chain": [ - "s241" + "s307" ] }, - "norm_label": "capturinglogger", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L88" + "norm_label": "workerinitializertests", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L13" }, { "id": "src_anichron_api_tests_unit_services_tokenservicetests_anichron_api_tests_unit_services_testfixture", @@ -4640,82 +4598,6 @@ "source_file": "src/Anichron.API.Tests.Unit/Services/TokenServiceTests.cs", "source_location": "L12" }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository", - "label": "EfRefreshTokenRepository", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": "efrefreshtokenrepository", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L15" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository", - "label": "IRefreshTokenRepository", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": "irefreshtokenrepository", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L6" - }, - { - "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken", - "label": "RefreshToken", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "refreshtoken", - "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", - "source_location": "L3" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests", - "label": "RefreshTokenRepositoryTests", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", - "scope_chain": [ - "s145" - ] - }, - "norm_label": "refreshtokenrepositorytests", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", - "source_location": "L9" - }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_idempotencycheckmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_idempotencycheckmiddlewaretests", "label": "IdempotencyCheckMiddlewareTests", @@ -4796,63 +4678,6 @@ "source_file": "src/Anichron.Worker/Ingestion/Middlewares/IdempotencyCheckMiddleware.cs", "source_location": "L26" }, - { - "id": "src_anichron_core_guidfactory_anichron_core_iguidfactory", - "label": "IGuidFactory", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 72, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "iguidfactory", - "source_file": "src/Anichron.Core/GuidFactory.cs", - "source_location": "L3" - }, - { - "id": "src_anichron_core_guidfactory_anichron_core_timeorderedguidfactory", - "label": "TimeOrderedGuidFactory", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 72, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "timeorderedguidfactory", - "source_file": "src/Anichron.Core/GuidFactory.cs", - "source_location": "L8" - }, - { - "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_anichron_worker_ingestion_proxy_proxyfilebuilder", - "label": "ProxyFileBuilder", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 72, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", - "scope_chain": [ - "s108" - ] - }, - "norm_label": "proxyfilebuilder", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyFileBuilder.cs", - "source_location": "L8" - }, { "id": "src_anichron_worker_ingestion_proxy_proxystagingwriter_anichron_worker_ingestion_proxy_log", "label": "Log", @@ -5051,6 +4876,105 @@ "source_file": "src/Anichron.API/Services/PwnedPasswordClient.cs", "source_location": "L11" }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger", + "label": "CapturingLogger", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "is_nested_type": true, + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": "capturinglogger", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L109" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_fakehttpmessagehandler", + "label": "FakeHttpMessageHandler", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "is_nested_type": true, + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": "fakehttpmessagehandler", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L97" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests", + "label": "PwnedPasswordClientTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": "pwnedpasswordclienttests", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L7" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture", + "label": "TestFixture", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "is_nested_type": true, + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": "testfixture", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L69" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_throwinghttpmessagehandler", + "label": "ThrowingHttpMessageHandler", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "is_nested_type": true, + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": "throwinghttpmessagehandler", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L103" + }, { "id": "src_anichron_api_tests_unit_services_registrationvalidatortests_anichron_api_tests_unit_services_registrationvalidatortests", "label": "RegistrationValidatorTests", @@ -5128,6 +5052,44 @@ "source_file": "src/Anichron.Infrastructure/Data/PostgresConstants.cs", "source_location": "L3" }, + { + "id": "src_anichron_worker_startup_idatabasemigrator_anichron_worker_startup_efdatabasemigrator", + "label": "EfDatabaseMigrator", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 74, + "community_name": "Anichron.Infrastructure.Data", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Startup", + "scope_chain": [ + "s63" + ] + }, + "norm_label": "efdatabasemigrator", + "source_file": "src/Anichron.Worker/Startup/IDatabaseMigrator.cs", + "source_location": "L11" + }, + { + "id": "src_anichron_worker_startup_idatabasemigrator_anichron_worker_startup_idatabasemigrator", + "label": "IDatabaseMigrator", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 74, + "community_name": "Anichron.Infrastructure.Data", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Startup", + "scope_chain": [ + "s63" + ] + }, + "norm_label": "idatabasemigrator", + "source_file": "src/Anichron.Worker/Startup/IDatabaseMigrator.cs", + "source_location": "L6" + }, { "id": "src_anichron_worker_ingestion_pipeline_ingestionpipelinebuilder_anichron_worker_ingestion_pipeline_ingestionpipelinebuilder", "label": "IngestionPipelineBuilder", @@ -5266,6 +5228,44 @@ "source_file": "src/Anichron.Core/Domain/Invite.cs", "source_location": "L3" }, + { + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository", + "label": "EfMediaAssetRepository", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 79, + "community_name": "MediaAsset", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": "efmediaassetrepository", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L12" + }, + { + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository", + "label": "IMediaAssetRepository", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 79, + "community_name": "MediaAsset", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": "imediaassetrepository", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L6" + }, { "id": "src_anichron_core_domain_mediaasset_anichron_core_domain_mediaasset", "label": "MediaAsset", @@ -5520,38 +5520,6 @@ "source_file": "src/Anichron.API/Infrastructure/ApiPaths.cs", "source_location": "L22" }, - { - "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_hashinvitetoken", - "label": ".HashInviteToken()", - "_callable": true, - "_origin": "ast", - "community": 0, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s253" - ], - "unresolved_calls": [ - { - "callee": "ToBase64String", - "receiver_type": "Convert", - "lang": "csharp", - "line": "L123" - }, - { - "callee": "HashData", - "receiver_type": "SHA256", - "lang": "csharp", - "line": "L123" - } - ] - }, - "norm_label": ".hashinvitetoken()", - "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L122" - }, { "id": "src_anichron_api_services_registrationvalidator_anichron_api_services_iregistrationvalidator_validateasync", "label": ".ValidateAsync()", @@ -7560,32 +7528,6 @@ "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", "source_location": "L471" }, - { - "id": "src_anichron_api_tests_unit_endpoints_authresponsemappertests_anichron_api_tests_unit_endpoints_authresponsemappertests_getadmincreateuserresult_success_returns201withlocationandbody", - "label": ".GetAdminCreateUserResult_Success_Returns201WithLocationAndBody()", - "_callable": true, - "_origin": "ast", - "community": 1, - "community_name": "AuthResponseMapperTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Endpoints", - "scope_chain": [ - "s208" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L458" - } - ] - }, - "norm_label": ".getadmincreateuserresult_success_returns201withlocationandbody()", - "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", - "source_location": "L455" - }, { "id": "src_anichron_api_tests_unit_endpoints_authresponsemappertests_anichron_api_tests_unit_endpoints_authresponsemappertests_getadmincreateuserresult_undefinedautherror_throwsunreachableexception", "label": ".GetAdminCreateUserResult_UndefinedAuthError_ThrowsUnreachableException()", @@ -8636,78 +8578,6 @@ "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", "source_location": "L25" }, - { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_bootstrapseeder_seedasync", - "label": ".SeedAsync()", - "_callable": true, - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s201" - ] - }, - "norm_label": ".seedasync()", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L24" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_ibootstrapseeder_seedasync", - "label": ".SeedAsync()", - "_callable": true, - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s201" - ] - }, - "norm_label": ".seedasync()", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L13" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log_bootstrapadminalreadyexists", - "label": ".BootstrapAdminAlreadyExists()", - "_callable": true, - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s201" - ] - }, - "norm_label": ".bootstrapadminalreadyexists()", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L62" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log_creatingbootstrapadmin", - "label": ".CreatingBootstrapAdmin()", - "_callable": true, - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s201" - ] - }, - "norm_label": ".creatingbootstrapadmin()", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L59" - }, { "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_bootstrapseedertests_nonuniqueviolation", "label": ".NonUniqueViolation()", @@ -8988,24 +8858,6 @@ "source_file": "src/Anichron.API.Tests.Unit/Services/BootstrapSeederTests.cs", "source_location": "L51" }, - { - "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_testfixture_createtestee", - "label": ".CreateTestee()", - "_callable": true, - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s308" - ] - }, - "norm_label": ".createtestee()", - "source_file": "src/Anichron.API.Tests.Unit/Services/BootstrapSeederTests.cs", - "source_location": "L57" - }, { "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_testfixture_withconfig", "label": ".WithConfig()", @@ -9299,170 +9151,404 @@ "source_location": "L20" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor_detectencoderasync", - "label": ".DetectEncoderAsync()", + "id": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_issueasync", + "label": ".IssueAsync()", "_callable": true, "_origin": "ast", "community": 108, - "community_name": "FfmpegVideoProcessor", + "community_name": "TokenService", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s69" + "s222" ] }, - "norm_label": ".detectencoderasync()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", - "source_location": "L44" + "norm_label": ".issueasync()", + "source_file": "src/Anichron.API/Services/TokenService.cs", + "source_location": "L13" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor_dispose", - "label": ".Dispose()", + "id": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_markallsessionsrevokedasync", + "label": ".MarkAllSessionsRevokedAsync()", "_callable": true, "_origin": "ast", "community": 108, - "community_name": "FfmpegVideoProcessor", + "community_name": "TokenService", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s69" + "s222" + ] + }, + "norm_label": ".markallsessionsrevokedasync()", + "source_file": "src/Anichron.API/Services/TokenService.cs", + "source_location": "L16" + }, + { + "id": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_refreshasync", + "label": ".RefreshAsync()", + "_callable": true, + "_origin": "ast", + "community": 108, + "community_name": "TokenService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s222" + ] + }, + "norm_label": ".refreshasync()", + "source_file": "src/Anichron.API/Services/TokenService.cs", + "source_location": "L14" + }, + { + "id": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_revokeasync", + "label": ".RevokeAsync()", + "_callable": true, + "_origin": "ast", + "community": 108, + "community_name": "TokenService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s222" + ] + }, + "norm_label": ".revokeasync()", + "source_file": "src/Anichron.API/Services/TokenService.cs", + "source_location": "L15" + }, + { + "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_generaterefreshtoken", + "label": ".GenerateRefreshToken()", + "_callable": true, + "_origin": "ast", + "community": 108, + "community_name": "TokenService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s222" ], "unresolved_calls": [ { - "callee": "Dispose", - "receiver_type": "SemaphoreSlim", + "callee": "ToBase64String", + "receiver_type": "Convert", "lang": "csharp", - "line": "L102" + "line": "L100" + }, + { + "callee": "GetBytes", + "receiver_type": "RandomNumberGenerator", + "lang": "csharp", + "line": "L100" } ] }, - "norm_label": ".dispose()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "norm_label": ".generaterefreshtoken()", + "source_file": "src/Anichron.API/Services/TokenService.cs", + "source_location": "L99" + }, + { + "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_hashtoken", + "label": ".HashToken()", + "_callable": true, + "_origin": "ast", + "community": 108, + "community_name": "TokenService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s222" + ], + "unresolved_calls": [ + { + "callee": "ToBase64String", + "receiver_type": "Convert", + "lang": "csharp", + "line": "L103" + }, + { + "callee": "HashData", + "receiver_type": "SHA256", + "lang": "csharp", + "line": "L103" + }, + { + "callee": "FromBase64String", + "receiver_type": "Convert", + "lang": "csharp", + "line": "L103" + } + ] + }, + "norm_label": ".hashtoken()", + "source_file": "src/Anichron.API/Services/TokenService.cs", "source_location": "L102" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor_probeencoderasync", - "label": ".ProbeEncoderAsync()", + "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_issueasync", + "label": ".IssueAsync()", "_callable": true, "_origin": "ast", "community": 108, - "community_name": "FfmpegVideoProcessor", + "community_name": "TokenService", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s69" + "s222" + ], + "unresolved_calls": [ + { + "callee": "GetCurrentInstant", + "receiver_type": "IClock", + "lang": "csharp", + "line": "L32" + }, + { + "callee": "FromDays", + "receiver_type": "Duration", + "lang": "csharp", + "line": "L40" + } ] }, - "norm_label": ".probeencoderasync()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", - "source_location": "L61" + "norm_label": ".issueasync()", + "source_file": "src/Anichron.API/Services/TokenService.cs", + "source_location": "L29" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor_runffmpegasync", - "label": ".RunFfmpegAsync()", + "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_markallsessionsrevokedasync", + "label": ".MarkAllSessionsRevokedAsync()", "_callable": true, "_origin": "ast", "community": 108, - "community_name": "FfmpegVideoProcessor", + "community_name": "TokenService", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s69" + "s222" ] }, - "norm_label": ".runffmpegasync()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", - "source_location": "L78" + "norm_label": ".markallsessionsrevokedasync()", + "source_file": "src/Anichron.API/Services/TokenService.cs", + "source_location": "L96" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor_transcodeasync", - "label": ".TranscodeAsync()", + "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_refreshasync", + "label": ".RefreshAsync()", "_callable": true, "_origin": "ast", "community": 108, - "community_name": "FfmpegVideoProcessor", + "community_name": "TokenService", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s69" + "s222" ], "unresolved_calls": [ { - "callee": "WaitAsync", - "receiver_type": "SemaphoreSlim", + "callee": "GetCurrentInstant", + "receiver_type": "IClock", "lang": "csharp", - "line": "L30" + "line": "L51" }, { - "callee": "Release", - "receiver_type": "SemaphoreSlim", + "callee": "Max", + "receiver_type": "Math", "lang": "csharp", - "line": "L38" + "line": "L74" + }, + { + "callee": "Ceiling", + "receiver_type": "Math", + "lang": "csharp", + "line": "L74" } ] }, - "norm_label": ".transcodeasync()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", - "source_location": "L27" + "norm_label": ".refreshasync()", + "source_file": "src/Anichron.API/Services/TokenService.cs", + "source_location": "L48" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ivideoprocessor_transcodeasync", - "label": ".TranscodeAsync()", + "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_revokeasync", + "label": ".RevokeAsync()", "_callable": true, "_origin": "ast", "community": 108, - "community_name": "FfmpegVideoProcessor", + "community_name": "TokenService", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s69" + "s222" + ], + "unresolved_calls": [ + { + "callee": "GetCurrentInstant", + "receiver_type": "IClock", + "lang": "csharp", + "line": "L92" + } ] }, - "norm_label": ".transcodeasync()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", - "source_location": "L8" + "norm_label": ".revokeasync()", + "source_file": "src/Anichron.API/Services/TokenService.cs", + "source_location": "L83" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_log_encoderselected", - "label": ".EncoderSelected()", + "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_log_crawlingpath", + "label": ".CrawlingPath()", "_callable": true, "_origin": "ast", - "community": 108, - "community_name": "FfmpegVideoProcessor", + "community": 109, + "community_name": "Worker", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.Worker.Crawling", "scope_chain": [ - "s69" + "s134" ] }, - "norm_label": ".encoderselected()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", - "source_location": "L106" + "norm_label": ".crawlingpath()", + "source_file": "src/Anichron.Worker/Crawling/Worker.cs", + "source_location": "L55" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_log_encoderunavailable", - "label": ".EncoderUnavailable()", + "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_log_starting", + "label": ".Starting()", "_callable": true, "_origin": "ast", - "community": 108, - "community_name": "FfmpegVideoProcessor", + "community": 109, + "community_name": "Worker", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.Worker.Crawling", "scope_chain": [ - "s69" + "s134" ] }, - "norm_label": ".encoderunavailable()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", - "source_location": "L109" + "norm_label": ".starting()", + "source_file": "src/Anichron.Worker/Crawling/Worker.cs", + "source_location": "L52" + }, + { + "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_worker_crawlallasync", + "label": ".CrawlAllAsync()", + "_callable": true, + "_origin": "ast", + "community": 109, + "community_name": "Worker", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Crawling", + "scope_chain": [ + "s134" + ], + "unresolved_calls": [ + { + "callee": "CreateScope", + "receiver_type": "IServiceScopeFactory", + "lang": "csharp", + "line": "L33" + } + ] + }, + "norm_label": ".crawlallasync()", + "source_file": "src/Anichron.Worker/Crawling/Worker.cs", + "source_location": "L31" + }, + { + "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_worker_crawlasync", + "label": ".CrawlAsync()", + "_callable": true, + "_origin": "ast", + "community": 109, + "community_name": "Worker", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Crawling", + "scope_chain": [ + "s134" + ] + }, + "norm_label": ".crawlasync()", + "source_file": "src/Anichron.Worker/Crawling/Worker.cs", + "source_location": "L44" + }, + { + "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_worker_executeasync", + "label": ".ExecuteAsync()", + "_callable": true, + "_origin": "ast", + "community": 109, + "community_name": "Worker", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Crawling", + "scope_chain": [ + "s134" + ], + "unresolved_calls": [ + { + "callee": "Delay", + "receiver_type": "Task", + "lang": "csharp", + "line": "L27" + }, + { + "callee": "FromHours", + "receiver_type": "TimeSpan", + "lang": "csharp", + "line": "L27" + } + ] + }, + "norm_label": ".executeasync()", + "source_file": "src/Anichron.Worker/Crawling/Worker.cs", + "source_location": "L17" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_testfixture_build", + "label": ".Build()", + "_callable": true, + "_origin": "ast", + "community": 109, + "community_name": "Worker", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s306" + ], + "unresolved_calls": [ + { + "callee": "Create", + "receiver_type": "Options", + "lang": "csharp", + "line": "L44" + }, + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L45" + } + ] + }, + "norm_label": ".build()", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L39" }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_persistencemiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_persistencemiddlewaretests_invokeasync_always_addsassettorepositoryasync", @@ -10162,6 +10248,32 @@ "source_file": "src/Anichron.Core/Data/AnichronDbContextFactory.cs", "source_location": "L8" }, + { + "id": "src_anichron_worker_tests_unit_settings_workersettingsvalidatortests_anichron_worker_tests_unit_settings_workersettingsvalidatortests_getfailures", + "label": ".GetFailures()", + "_callable": true, + "_origin": "ast", + "community": 117, + "community_name": "WorkerSettingsValidatorTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Settings", + "scope_chain": [ + "s78" + ], + "unresolved_calls": [ + { + "callee": "TryValidateObject", + "receiver_type": "Validator", + "lang": "csharp", + "line": "L30" + } + ] + }, + "norm_label": ".getfailures()", + "source_file": "src/Anichron.Worker.Tests.Unit/Settings/WorkerSettingsValidatorTests.cs", + "source_location": "L27" + }, { "id": "src_anichron_worker_tests_unit_settings_workersettingsvalidatortests_anichron_worker_tests_unit_settings_workersettingsvalidatortests_isvalid", "label": ".IsValid()", @@ -10503,94 +10615,88 @@ "source_location": "L7" }, { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_authresponsemapper_getadminresetpasswordresult", - "label": ".GetAdminResetPasswordResult()", + "id": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_hash", + "label": ".Hash()", "_callable": true, "_origin": "ast", "community": 12, "community_name": "IUnitOfWork", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Endpoints", + "namespace": "Anichron.API.Security", "scope_chain": [ - "s195" - ], - "unresolved_calls": [ - { - "callee": "NotFound", - "receiver_type": "Results", - "lang": "csharp", - "line": "L137" - }, - { - "callee": "Ok", - "receiver_type": "Results", - "lang": "csharp", - "line": "L138" - } + "s124" ] }, - "norm_label": ".getadminresetpasswordresult()", - "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L135" + "norm_label": ".hash()", + "source_file": "src/Anichron.API/Security/PasswordHasher.cs", + "source_location": "L10" }, { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadminresetpasswordresult", - "label": ".GetAdminResetPasswordResult()", + "id": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_verify", + "label": ".Verify()", "_callable": true, "_origin": "ast", "community": 12, "community_name": "IUnitOfWork", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Endpoints", + "namespace": "Anichron.API.Security", "scope_chain": [ - "s195" + "s124" ] }, - "norm_label": ".getadminresetpasswordresult()", - "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L17" + "norm_label": ".verify()", + "source_file": "src/Anichron.API/Security/PasswordHasher.cs", + "source_location": "L11" }, { - "id": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_hash", - "label": ".Hash()", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_deleteasync", + "label": ".DeleteAsync()", "_callable": true, "_origin": "ast", "community": 12, "community_name": "IUnitOfWork", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Security", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s124" + "s92" + ], + "unresolved_calls": [ + { + "callee": "GetCurrentInstant", + "receiver_type": "IClock", + "lang": "csharp", + "line": "L74" + } ] }, - "norm_label": ".hash()", - "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L10" + "norm_label": ".deleteasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L60" }, { - "id": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_verify", - "label": ".Verify()", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_getallasync", + "label": ".GetAllAsync()", "_callable": true, "_origin": "ast", "community": 12, "community_name": "IUnitOfWork", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Security", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s124" + "s92" ] }, - "norm_label": ".verify()", - "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L11" + "norm_label": ".getallasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L21" }, { - "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminresetservice_resetuserpasswordasync", - "label": ".ResetUserPasswordAsync()", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_getbyidasync", + "label": ".GetByIdAsync()", "_callable": true, "_origin": "ast", "community": 12, @@ -10599,36 +10705,42 @@ "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s129" + "s92" + ] + }, + "norm_label": ".getbyidasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L24" + }, + { + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_updateasync", + "label": ".UpdateAsync()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "IUnitOfWork", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s92" ], "unresolved_calls": [ - { - "callee": "ToBase64String", - "receiver_type": "Convert", - "lang": "csharp", - "line": "L28" - }, - { - "callee": "GetBytes", - "receiver_type": "RandomNumberGenerator", - "lang": "csharp", - "line": "L28" - }, { "callee": "GetCurrentInstant", "receiver_type": "IClock", "lang": "csharp", - "line": "L31" + "line": "L52" } ] }, - "norm_label": ".resetuserpasswordasync()", - "source_file": "src/Anichron.API/Services/AdminResetService.cs", - "source_location": "L22" + "norm_label": ".updateasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L27" }, { - "id": "src_anichron_api_services_adminresetservice_anichron_api_services_iadminresetservice_resetuserpasswordasync", - "label": ".ResetUserPasswordAsync()", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_deleteasync", + "label": ".DeleteAsync()", "_callable": true, "_origin": "ast", "community": 12, @@ -10637,13 +10749,49 @@ "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s129" + "s92" ] }, - "norm_label": ".resetuserpasswordasync()", - "source_file": "src/Anichron.API/Services/AdminResetService.cs", + "norm_label": ".deleteasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", "source_location": "L12" }, + { + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_getallasync", + "label": ".GetAllAsync()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "IUnitOfWork", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s92" + ] + }, + "norm_label": ".getallasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L9" + }, + { + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_getbyidasync", + "label": ".GetByIdAsync()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "IUnitOfWork", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s92" + ] + }, + "norm_label": ".getbyidasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L10" + }, { "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_admincreateuserasync", "label": ".AdminCreateUserAsync()", @@ -10732,6 +10880,38 @@ "source_file": "src/Anichron.API/Services/AuthService.cs", "source_location": "L243" }, + { + "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_hashinvitetoken", + "label": ".HashInviteToken()", + "_callable": true, + "_origin": "ast", + "community": 12, + "community_name": "IUnitOfWork", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s253" + ], + "unresolved_calls": [ + { + "callee": "ToBase64String", + "receiver_type": "Convert", + "lang": "csharp", + "line": "L123" + }, + { + "callee": "HashData", + "receiver_type": "SHA256", + "lang": "csharp", + "line": "L123" + } + ] + }, + "norm_label": ".hashinvitetoken()", + "source_file": "src/Anichron.API/Services/AuthService.cs", + "source_location": "L122" + }, { "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_loginasync", "label": ".LoginAsync()", @@ -10881,8 +11061,8 @@ "source_location": "L49" }, { - "id": "src_anichron_api_services_authservice_anichron_api_services_iauthservice_refreshasync", - "label": ".RefreshAsync()", + "id": "src_anichron_api_services_authservice_anichron_api_services_iauthservice_loginasync", + "label": ".LoginAsync()", "_callable": true, "_origin": "ast", "community": 12, @@ -10894,13 +11074,13 @@ "s253" ] }, - "norm_label": ".refreshasync()", + "norm_label": ".loginasync()", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L47" + "source_location": "L46" }, { - "id": "src_anichron_api_services_authservice_anichron_api_services_iauthservice_revokeasync", - "label": ".RevokeAsync()", + "id": "src_anichron_api_services_authservice_anichron_api_services_iauthservice_refreshasync", + "label": ".RefreshAsync()", "_callable": true, "_origin": "ast", "community": 12, @@ -10912,49 +11092,13 @@ "s253" ] }, - "norm_label": ".revokeasync()", + "norm_label": ".refreshasync()", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L48" - }, - { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_issueasync", - "label": ".IssueAsync()", - "_callable": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s222" - ] - }, - "norm_label": ".issueasync()", - "source_file": "src/Anichron.API/Services/TokenService.cs", - "source_location": "L13" - }, - { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_markallsessionsrevokedasync", - "label": ".MarkAllSessionsRevokedAsync()", - "_callable": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s222" - ] - }, - "norm_label": ".markallsessionsrevokedasync()", - "source_file": "src/Anichron.API/Services/TokenService.cs", - "source_location": "L16" + "source_location": "L47" }, { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_refreshasync", - "label": ".RefreshAsync()", + "id": "src_anichron_api_services_authservice_anichron_api_services_iauthservice_registerasync", + "label": ".RegisterAsync()", "_callable": true, "_origin": "ast", "community": 12, @@ -10963,15 +11107,15 @@ "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s222" + "s253" ] }, - "norm_label": ".refreshasync()", - "source_file": "src/Anichron.API/Services/TokenService.cs", - "source_location": "L14" + "norm_label": ".registerasync()", + "source_file": "src/Anichron.API/Services/AuthService.cs", + "source_location": "L45" }, { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_revokeasync", + "id": "src_anichron_api_services_authservice_anichron_api_services_iauthservice_revokeasync", "label": ".RevokeAsync()", "_callable": true, "_origin": "ast", @@ -10981,199 +11125,15 @@ "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s222" + "s253" ] }, "norm_label": ".revokeasync()", - "source_file": "src/Anichron.API/Services/TokenService.cs", - "source_location": "L15" - }, - { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_generaterefreshtoken", - "label": ".GenerateRefreshToken()", - "_callable": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s222" - ], - "unresolved_calls": [ - { - "callee": "ToBase64String", - "receiver_type": "Convert", - "lang": "csharp", - "line": "L100" - }, - { - "callee": "GetBytes", - "receiver_type": "RandomNumberGenerator", - "lang": "csharp", - "line": "L100" - } - ] - }, - "norm_label": ".generaterefreshtoken()", - "source_file": "src/Anichron.API/Services/TokenService.cs", - "source_location": "L99" - }, - { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_hashtoken", - "label": ".HashToken()", - "_callable": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s222" - ], - "unresolved_calls": [ - { - "callee": "ToBase64String", - "receiver_type": "Convert", - "lang": "csharp", - "line": "L103" - }, - { - "callee": "HashData", - "receiver_type": "SHA256", - "lang": "csharp", - "line": "L103" - }, - { - "callee": "FromBase64String", - "receiver_type": "Convert", - "lang": "csharp", - "line": "L103" - } - ] - }, - "norm_label": ".hashtoken()", - "source_file": "src/Anichron.API/Services/TokenService.cs", - "source_location": "L102" - }, - { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_issueasync", - "label": ".IssueAsync()", - "_callable": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s222" - ], - "unresolved_calls": [ - { - "callee": "GetCurrentInstant", - "receiver_type": "IClock", - "lang": "csharp", - "line": "L32" - }, - { - "callee": "FromDays", - "receiver_type": "Duration", - "lang": "csharp", - "line": "L40" - } - ] - }, - "norm_label": ".issueasync()", - "source_file": "src/Anichron.API/Services/TokenService.cs", - "source_location": "L29" - }, - { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_markallsessionsrevokedasync", - "label": ".MarkAllSessionsRevokedAsync()", - "_callable": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s222" - ] - }, - "norm_label": ".markallsessionsrevokedasync()", - "source_file": "src/Anichron.API/Services/TokenService.cs", - "source_location": "L96" - }, - { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_refreshasync", - "label": ".RefreshAsync()", - "_callable": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s222" - ], - "unresolved_calls": [ - { - "callee": "GetCurrentInstant", - "receiver_type": "IClock", - "lang": "csharp", - "line": "L51" - }, - { - "callee": "Max", - "receiver_type": "Math", - "lang": "csharp", - "line": "L74" - }, - { - "callee": "Ceiling", - "receiver_type": "Math", - "lang": "csharp", - "line": "L74" - } - ] - }, - "norm_label": ".refreshasync()", - "source_file": "src/Anichron.API/Services/TokenService.cs", + "source_file": "src/Anichron.API/Services/AuthService.cs", "source_location": "L48" }, { - "id": "src_anichron_api_services_tokenservice_anichron_api_services_tokenservice_revokeasync", - "label": ".RevokeAsync()", - "_callable": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s222" - ], - "unresolved_calls": [ - { - "callee": "GetCurrentInstant", - "receiver_type": "IClock", - "lang": "csharp", - "line": "L92" - } - ] - }, - "norm_label": ".revokeasync()", - "source_file": "src/Anichron.API/Services/TokenService.cs", - "source_location": "L83" - }, - { - "id": "src_anichron_api_tests_unit_services_adminresetservicetests_anichron_api_tests_unit_services_testfixture_createtestee", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture_createtestee", "label": ".CreateTestee()", "_callable": true, "_origin": "ast", @@ -11183,12 +11143,12 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s150" + "s160" ] }, "norm_label": ".createtestee()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminResetServiceTests.cs", - "source_location": "L28" + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L59" }, { "id": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork_executeintransactionasync", @@ -11227,56 +11187,48 @@ "source_location": "L5" }, { - "id": "src_anichron_core_guidfactory_anichron_core_iguidfactory_newguid", - "label": ".NewGuid()", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_beginscope", + "label": ".BeginScope()", "_callable": true, "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", + "community": 120, + "community_name": "CapturingLogger", "file_type": "code", "metadata": { - "namespace": "Anichron.Core", + "namespace": "Anichron.Worker.Tests.Unit.Maintenance", "scope_chain": [ - "s0" + "s241" ] }, - "norm_label": ".newguid()", - "source_file": "src/Anichron.Core/GuidFactory.cs", - "source_location": "L5" + "norm_label": ".beginscope()", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L97" }, { - "id": "src_anichron_core_guidfactory_anichron_core_timeorderedguidfactory_newguid", - "label": ".NewGuid()", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_isenabled", + "label": ".IsEnabled()", "_callable": true, "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", + "community": 120, + "community_name": "CapturingLogger", "file_type": "code", "metadata": { - "namespace": "Anichron.Core", + "namespace": "Anichron.Worker.Tests.Unit.Maintenance", "scope_chain": [ - "s0" - ], - "unresolved_calls": [ - { - "callee": "CreateVersion7", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L10" - } + "s241" ] }, - "norm_label": ".newguid()", - "source_file": "src/Anichron.Core/GuidFactory.cs", - "source_location": "L10" + "norm_label": ".isenabled()", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L96" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_testfixture_build", - "label": ".Build()", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_log", + "label": ".Log()", "_callable": true, "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -11285,22 +11237,16 @@ ], "unresolved_calls": [ { - "callee": "Create", - "receiver_type": "Options", - "lang": "csharp", - "line": "L38" - }, - { - "callee": "For", - "receiver_type": "Substitute", + "callee": "Add", + "receiver_type": "List", "lang": "csharp", - "line": "L39" + "line": "L94" } ] }, - "norm_label": ".build()", + "norm_label": ".log()", "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L36" + "source_location": "L93" }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_runcleanupasync_callsdeleteexpiredwithcurrentinstantasync", @@ -11308,7 +11254,7 @@ "_callable": true, "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -11334,7 +11280,7 @@ "_callable": true, "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -11366,7 +11312,7 @@ "_callable": true, "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -11486,6 +11432,38 @@ "source_file": "src/Anichron.Worker/Maintenance/TokenCleanupService.cs", "source_location": "L33" }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_testfixture_build", + "label": ".Build()", + "_callable": true, + "_origin": "ast", + "community": 138, + "community_name": "TokenCleanupService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Maintenance", + "scope_chain": [ + "s241" + ], + "unresolved_calls": [ + { + "callee": "Create", + "receiver_type": "Options", + "lang": "csharp", + "line": "L38" + }, + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L39" + } + ] + }, + "norm_label": ".build()", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L36" + }, { "id": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_efuserrepository_add", "label": ".Add()", @@ -12816,6 +12794,344 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ImageProxyGeneratorsTests.cs", "source_location": "L20" }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_findbyhashasync", + "label": ".FindByHashAsync()", + "_callable": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".findbyhashasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L20" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_add_addstokentocontext", + "label": ".Add_AddsTokenToContext()", + "_callable": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s145" + ] + }, + "norm_label": ".add_addstokentocontext()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", + "source_location": "L105" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_createdb", + "label": ".CreateDb()", + "_callable": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s145" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L16" + } + ] + }, + "norm_label": ".createdb()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", + "source_location": "L13" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_findbyhashasync_knownhash_returnstoken", + "label": ".FindByHashAsync_KnownHash_ReturnsToken()", + "_callable": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s145" + ] + }, + "norm_label": ".findbyhashasync_knownhash_returnstoken()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", + "source_location": "L72" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_findbyhashasync_unknownhash_returnsnull", + "label": ".FindByHashAsync_UnknownHash_ReturnsNull()", + "_callable": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s145" + ] + }, + "norm_label": ".findbyhashasync_unknownhash_returnsnull()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", + "source_location": "L90" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_findbyhashwithuserasync_knownhash_returnstokenwithuserloaded", + "label": ".FindByHashWithUserAsync_KnownHash_ReturnsTokenWithUserLoaded()", + "_callable": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s145" + ] + }, + "norm_label": ".findbyhashwithuserasync_knownhash_returnstokenwithuserloaded()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", + "source_location": "L39" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_findbyhashwithuserasync_unknownhash_returnsnull", + "label": ".FindByHashWithUserAsync_UnknownHash_ReturnsNull()", + "_callable": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s145" + ] + }, + "norm_label": ".findbyhashwithuserasync_unknownhash_returnsnull()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", + "source_location": "L57" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_maketoken", + "label": ".MakeToken()", + "_callable": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s145" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L27" + }, + { + "callee": "FromDays", + "receiver_type": "Duration", + "lang": "csharp", + "line": "L31" + } + ] + }, + "norm_label": ".maketoken()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", + "source_location": "L24" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_makeuser", + "label": ".MakeUser()", + "_callable": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s145" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L22" + } + ] + }, + "norm_label": ".makeuser()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", + "source_location": "L21" + }, + { + "id": "src_anichron_worker_ingestion_pipeline_ingestioncontext_anichron_worker_ingestion_pipeline_ingestioncontext_addproxyfile", + "label": ".AddProxyFile()", + "_callable": true, + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Pipeline", + "scope_chain": [ + "s29" + ], + "unresolved_calls": [ + { + "callee": "Add", + "receiver_type": "List", + "lang": "csharp", + "line": "L35" + } + ] + }, + "norm_label": ".addproxyfile()", + "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IngestionContext.cs", + "source_location": "L32" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_cancellingmiddleware_invokeasync", + "label": ".InvokeAsync()", + "_callable": true, + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s368" + ], + "unresolved_calls": [ + { + "callee": "CancelAsync", + "receiver_type": "CancellationTokenSource", + "lang": "csharp", + "line": "L359" + }, + { + "callee": "ThrowIfCancellationRequested", + "receiver_type": "CancellationToken", + "lang": "csharp", + "line": "L360" + } + ] + }, + "norm_label": ".invokeasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L356" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxydirectorycreatingmiddleware_invokeasync", + "label": ".InvokeAsync()", + "_callable": true, + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s368" + ] + }, + "norm_label": ".invokeasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L332" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxywritingmiddleware_invokeasync", + "label": ".InvokeAsync()", + "_callable": true, + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s368" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L315" + } + ] + }, + "norm_label": ".invokeasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L306" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_stubmiddleware_invokeasync", + "label": ".InvokeAsync()", + "_callable": true, + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s368" + ], + "unresolved_calls": [ + { + "callee": "Add", + "receiver_type": "List", + "lang": "csharp", + "line": "L293" + } + ] + }, + "norm_label": ".invokeasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L291" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_throwingmiddleware_invokeasync", + "label": ".InvokeAsync()", + "_callable": true, + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s368" + ] + }, + "norm_label": ".invokeasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L344" + }, { "id": "src_anichron_worker_startup_databasemigratorservice_anichron_worker_startup_databasemigratorservice_startasync", "label": ".StartAsync()", @@ -12920,42 +13236,6 @@ "source_file": "src/Anichron.Worker/Startup/DatabaseMigratorService.cs", "source_location": "L42" }, - { - "id": "src_anichron_worker_startup_idatabasemigrator_anichron_worker_startup_efdatabasemigrator_migrateasync", - "label": ".MigrateAsync()", - "_callable": true, - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Startup", - "scope_chain": [ - "s63" - ] - }, - "norm_label": ".migrateasync()", - "source_file": "src/Anichron.Worker/Startup/IDatabaseMigrator.cs", - "source_location": "L13" - }, - { - "id": "src_anichron_worker_startup_idatabasemigrator_anichron_worker_startup_idatabasemigrator_migrateasync", - "label": ".MigrateAsync()", - "_callable": true, - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Startup", - "scope_chain": [ - "s63" - ] - }, - "norm_label": ".migrateasync()", - "source_file": "src/Anichron.Worker/Startup/IDatabaseMigrator.cs", - "source_location": "L8" - }, { "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_log_allusermode", "label": ".AllUserMode()", @@ -13246,6 +13526,154 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Startup/DatabaseMigratorServiceTests.cs", "source_location": "L27" }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests_crawlallasync_activeconfig_runspipelinewithcorrectconfigasync", + "label": ".CrawlAllAsync_ActiveConfig_RunsPipelineWithCorrectConfigAsync()", + "_callable": true, + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s306" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L122" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L123" + } + ] + }, + "norm_label": ".crawlallasync_activeconfig_runspipelinewithcorrectconfigasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L118" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests_crawlallasync_multipleactiveconfigs_runspipelineforeachasync", + "label": ".CrawlAllAsync_MultipleActiveConfigs_RunsPipelineForEachAsync()", + "_callable": true, + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s306" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L94" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L97" + } + ] + }, + "norm_label": ".crawlallasync_multipleactiveconfigs_runspipelineforeachasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L88" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests_crawlallasync_noactiveconfigs_pipelineisnevercalledasync", + "label": ".CrawlAllAsync_NoActiveConfigs_PipelineIsNeverCalledAsync()", + "_callable": true, + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s306" + ], + "unresolved_calls": [ + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L115" + } + ] + }, + "norm_label": ".crawlallasync_noactiveconfigs_pipelineisnevercalledasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L106" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests_crawlallasync_noresolveduserid_callsgetallactiveasync", + "label": ".CrawlAllAsync_NoResolvedUserId_CallsGetAllActiveAsync()", + "_callable": true, + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s306" + ], + "unresolved_calls": [ + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L60" + } + ] + }, + "norm_label": ".crawlallasync_noresolveduserid_callsgetallactiveasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L52" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests_crawlallasync_withresolveduserid_callsgetactivebyuseridasync", + "label": ".CrawlAllAsync_WithResolvedUserId_CallsGetActiveByUserIdAsync()", + "_callable": true, + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s306" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L73" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L80" + } + ] + }, + "norm_label": ".crawlallasync_withresolveduserid_callsgetactivebyuseridasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L69" + }, { "id": "src_anichron_api_security_jwtfactory_anichron_api_security_ijwtfactory_create", "label": ".Create()", @@ -13695,76 +14123,94 @@ "source_location": "L37" }, { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository_add", - "label": ".Add()", + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_bootstrapseeder_seedasync", + "label": ".SeedAsync()", "_callable": true, "_origin": "ast", "community": 184, - "community_name": "IMediaAssetRepository", + "community_name": "BootstrapSeeder", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s201" ] }, - "norm_label": ".add()", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L18" + "norm_label": ".seedasync()", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L24" }, { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository_findbyhashasync", - "label": ".FindByHashAsync()", + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_ibootstrapseeder_seedasync", + "label": ".SeedAsync()", "_callable": true, "_origin": "ast", "community": 184, - "community_name": "IMediaAssetRepository", + "community_name": "BootstrapSeeder", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s201" ] }, - "norm_label": ".findbyhashasync()", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L14" + "norm_label": ".seedasync()", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L13" }, { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository_add", - "label": ".Add()", + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log_bootstrapadminalreadyexists", + "label": ".BootstrapAdminAlreadyExists()", "_callable": true, "_origin": "ast", "community": 184, - "community_name": "IMediaAssetRepository", + "community_name": "BootstrapSeeder", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s201" ] }, - "norm_label": ".add()", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L9" + "norm_label": ".bootstrapadminalreadyexists()", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L62" }, { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository_findbyhashasync", - "label": ".FindByHashAsync()", + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log_creatingbootstrapadmin", + "label": ".CreatingBootstrapAdmin()", "_callable": true, "_origin": "ast", "community": 184, - "community_name": "IMediaAssetRepository", + "community_name": "BootstrapSeeder", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s201" ] }, - "norm_label": ".findbyhashasync()", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L8" + "norm_label": ".creatingbootstrapadmin()", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L59" + }, + { + "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_testfixture_createtestee", + "label": ".CreateTestee()", + "_callable": true, + "_origin": "ast", + "community": 184, + "community_name": "BootstrapSeeder", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s308" + ] + }, + "norm_label": ".createtestee()", + "source_file": "src/Anichron.API.Tests.Unit/Services/BootstrapSeederTests.cs", + "source_location": "L57" }, { "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_adminendpoints_createstorageconfigasync", @@ -13995,192 +14441,22 @@ "source_location": "L41" }, { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_authresponsemapper_getadmincreateuserresult", - "label": ".GetAdminCreateUserResult()", - "_callable": true, - "_origin": "ast", - "community": 19, - "community_name": "IAuthResponseMapper", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Endpoints", - "scope_chain": [ - "s195" - ], - "unresolved_calls": [ - { - "callee": "UnprocessableEntity", - "receiver_type": "Results", - "lang": "csharp", - "line": "L121" - }, - { - "callee": "Conflict", - "receiver_type": "Results", - "lang": "csharp", - "line": "L123" - }, - { - "callee": "Created", - "receiver_type": "Results", - "lang": "csharp", - "line": "L131" - } - ] - }, - "norm_label": ".getadmincreateuserresult()", - "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L115" - }, - { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmincreateuserresult", - "label": ".GetAdminCreateUserResult()", - "_callable": true, - "_origin": "ast", - "community": 19, - "community_name": "IAuthResponseMapper", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Endpoints", - "scope_chain": [ - "s195" - ] - }, - "norm_label": ".getadmincreateuserresult()", - "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L16" - }, - { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_createuserasync_callsmapperwithserviceresult", - "label": ".CreateUserAsync_CallsMapperWithServiceResult()", - "_callable": true, - "_origin": "ast", - "community": 19, - "community_name": "IAuthResponseMapper", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Endpoints", - "scope_chain": [ - "s93" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L18" - }, - { - "callee": "Created", - "receiver_type": "Results", - "lang": "csharp", - "line": "L20" - }, - { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L21" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L23" - } - ] - }, - "norm_label": ".createuserasync_callsmapperwithserviceresult()", - "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", - "source_location": "L15" - }, - { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_createuserasync_callsservicewithrequestvalues", - "label": ".CreateUserAsync_CallsServiceWithRequestValues()", - "_callable": true, - "_origin": "ast", - "community": 19, - "community_name": "IAuthResponseMapper", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Endpoints", - "scope_chain": [ - "s93" - ], - "unresolved_calls": [ - { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L36" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L38" - }, - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L39" - }, - { - "callee": "Created", - "receiver_type": "Results", - "lang": "csharp", - "line": "L41" - } - ] - }, - "norm_label": ".createuserasync_callsservicewithrequestvalues()", - "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", - "source_location": "L33" - }, - { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_resetuserpasswordasync_callsservicewithuseridandpassesresulttomapper", - "label": ".ResetUserPasswordAsync_CallsServiceWithUserIdAndPassesResultToMapper()", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_updateasync", + "label": ".UpdateAsync()", "_callable": true, "_origin": "ast", "community": 19, "community_name": "IAuthResponseMapper", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Endpoints", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s93" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L56" - }, - { - "callee": "Ok", - "receiver_type": "Results", - "lang": "csharp", - "line": "L58" - }, - { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L59" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L61" - } + "s92" ] }, - "norm_label": ".resetuserpasswordasync_callsservicewithuseridandpassesresulttomapper()", - "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", - "source_location": "L53" + "norm_label": ".updateasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L11" }, { "id": "src_anichron_api_tests_unit_endpoints_adminstorageconfigendpointstests_anichron_api_tests_unit_endpoints_adminstorageconfigendpointstests_createstorageconfigasync_callsservicewithuseridandrootpathandreturnsmapperresult", @@ -15862,7 +16138,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -15880,7 +16156,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -15898,7 +16174,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -15916,7 +16192,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -15942,7 +16218,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -15968,7 +16244,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -15994,7 +16270,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -16020,7 +16296,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -16046,7 +16322,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -16064,7 +16340,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -16076,49 +16352,13 @@ "source_file": "src/Anichron.API/Services/AuthService.cs", "source_location": "L30" }, - { - "id": "src_anichron_api_services_authservice_anichron_api_services_iauthservice_loginasync", - "label": ".LoginAsync()", - "_callable": true, - "_origin": "ast", - "community": 21, - "community_name": "AuthTokens", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s253" - ] - }, - "norm_label": ".loginasync()", - "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L46" - }, - { - "id": "src_anichron_api_services_authservice_anichron_api_services_iauthservice_registerasync", - "label": ".RegisterAsync()", - "_callable": true, - "_origin": "ast", - "community": 21, - "community_name": "AuthTokens", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s253" - ] - }, - "norm_label": ".registerasync()", - "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L45" - }, { "id": "src_anichron_api_tests_unit_endpoints_authendpointstests_anichron_api_tests_unit_endpoints_authendpointstests_loginmobileasync_callsauthservicewithcredentials", "label": ".LoginMobileAsync_CallsAuthServiceWithCredentials()", "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16150,7 +16390,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16182,7 +16422,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16214,7 +16454,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16246,7 +16486,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16278,7 +16518,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16310,7 +16550,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16342,7 +16582,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16360,7 +16600,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16378,7 +16618,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16410,7 +16650,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16442,7 +16682,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16474,7 +16714,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16512,7 +16752,7 @@ "_callable": true, "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -16550,64 +16790,6 @@ "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthEndpointsTests.cs", "source_location": "L49" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests_anichron_worker_tests_unit_ingestion_proxy_testfixture_build", - "label": ".Build()", - "_callable": true, - "_origin": "ast", - "community": 22, - "community_name": "WorkerSettings", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", - "scope_chain": [ - "s144" - ], - "unresolved_calls": [ - { - "callee": "Create", - "receiver_type": "Options", - "lang": "csharp", - "line": "L17" - }, - { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L18" - } - ] - }, - "norm_label": ".build()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/FfmpegVideoProcessorTests.cs", - "source_location": "L14" - }, - { - "id": "src_anichron_worker_tests_unit_settings_workersettingsvalidatortests_anichron_worker_tests_unit_settings_workersettingsvalidatortests_getfailures", - "label": ".GetFailures()", - "_callable": true, - "_origin": "ast", - "community": 22, - "community_name": "WorkerSettings", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Settings", - "scope_chain": [ - "s78" - ], - "unresolved_calls": [ - { - "callee": "TryValidateObject", - "receiver_type": "Validator", - "lang": "csharp", - "line": "L30" - } - ] - }, - "norm_label": ".getfailures()", - "source_file": "src/Anichron.Worker.Tests.Unit/Settings/WorkerSettingsValidatorTests.cs", - "source_location": "L27" - }, { "id": "src_anichron_core_tests_unit_data_repository_userrepositorytests_anichron_core_tests_unit_data_repository_userrepositorytests_add_addsusertocontext", "label": ".Add_AddsUserToContext()", @@ -17125,66 +17307,40 @@ "source_location": "L360" }, { - "id": "src_anichron_worker_ingestion_proxy_processlauncher_anichron_worker_ingestion_proxy_iprocesslauncher_runasync", - "label": ".RunAsync()", + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_add", + "label": ".Add()", "_callable": true, "_origin": "ast", "community": 231, - "community_name": ".RunAsync", + "community_name": "RefreshToken", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s27" + "s66" ] }, - "norm_label": ".runasync()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", - "source_location": "L7" + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L23" }, { - "id": "src_anichron_worker_ingestion_proxy_processlauncher_anichron_worker_ingestion_proxy_systemprocesslauncher_runasync", - "label": ".RunAsync()", + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_add", + "label": ".Add()", "_callable": true, "_origin": "ast", "community": 231, - "community_name": ".RunAsync", + "community_name": "RefreshToken", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s27" - ], - "unresolved_calls": [ - { - "callee": "Start", - "receiver_type": "Process", - "lang": "csharp", - "line": "L28" - }, - { - "callee": "WaitForExitAsync", - "receiver_type": "Process", - "lang": "csharp", - "line": "L35" - }, - { - "callee": "Kill", - "receiver_type": "Process", - "lang": "csharp", - "line": "L43" - }, - { - "callee": "WhenAll", - "receiver_type": "Task", - "lang": "csharp", - "line": "L45" - } + "s66" ] }, - "norm_label": ".runasync()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", - "source_location": "L14" + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L10" }, { "id": "src_anichron_api_infrastructure_mustchangepasswordmiddleware_anichron_api_infrastructure_mustchangepasswordmiddleware_invokeasync", @@ -17474,6 +17630,236 @@ "source_file": "src/Anichron.API.Tests.Unit/Infrastructure/MustChangePasswordMiddlewareTests.cs", "source_location": "L24" }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_deleteexpiredasync", + "label": ".DeleteExpiredAsync()", + "_callable": true, + "_origin": "ast", + "community": 240, + "community_name": "IRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".deleteexpiredasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L31" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_findbyhashwithuserasync", + "label": ".FindByHashWithUserAsync()", + "_callable": true, + "_origin": "ast", + "community": 240, + "community_name": "IRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".findbyhashwithuserasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L17" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_revokeallactivebyuseridasync", + "label": ".RevokeAllActiveByUserIdAsync()", + "_callable": true, + "_origin": "ast", + "community": 240, + "community_name": "IRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".revokeallactivebyuseridasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L26" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_deleteexpiredasync", + "label": ".DeleteExpiredAsync()", + "_callable": true, + "_origin": "ast", + "community": 240, + "community_name": "IRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".deleteexpiredasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L12" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_findbyhashasync", + "label": ".FindByHashAsync()", + "_callable": true, + "_origin": "ast", + "community": 240, + "community_name": "IRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".findbyhashasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L9" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_findbyhashwithuserasync", + "label": ".FindByHashWithUserAsync()", + "_callable": true, + "_origin": "ast", + "community": 240, + "community_name": "IRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".findbyhashwithuserasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L8" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_revokeallactivebyuseridasync", + "label": ".RevokeAllActiveByUserIdAsync()", + "_callable": true, + "_origin": "ast", + "community": 240, + "community_name": "IRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".revokeallactivebyuseridasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L11" + }, + { + "id": "src_anichron_worker_ingestion_mediatypedetector_anichron_worker_ingestion_mediatypedetector_detect", + "label": ".Detect()", + "_callable": true, + "_origin": "ast", + "community": 241, + "community_name": "MediaType", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s29" + ], + "unresolved_calls": [ + { + "callee": "GetExtension", + "receiver_type": "Path", + "lang": "csharp", + "line": "L30" + }, + { + "callee": "TryGetValue", + "receiver_type": "Dictionary", + "lang": "csharp", + "line": "L31" + } + ] + }, + "norm_label": ".detect()", + "source_file": "src/Anichron.Worker/Ingestion/MediaTypeDetector.cs", + "source_location": "L28" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_anichron_worker_tests_unit_ingestion_mediatypedetectortests_detect_imageextension_returnsimage", + "label": ".Detect_ImageExtension_ReturnsImage()", + "_callable": true, + "_origin": "ast", + "community": 241, + "community_name": "MediaType", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion", + "scope_chain": [ + "s62" + ] + }, + "norm_label": ".detect_imageextension_returnsimage()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", + "source_location": "L12" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_anichron_worker_tests_unit_ingestion_mediatypedetectortests_detect_unknownextension_returnsnull", + "label": ".Detect_UnknownExtension_ReturnsNull()", + "_callable": true, + "_origin": "ast", + "community": 241, + "community_name": "MediaType", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion", + "scope_chain": [ + "s62" + ] + }, + "norm_label": ".detect_unknownextension_returnsnull()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", + "source_location": "L63" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_anichron_worker_tests_unit_ingestion_mediatypedetectortests_detect_uppercaseextension_returnscorrecttype", + "label": ".Detect_UppercaseExtension_ReturnsCorrectType()", + "_callable": true, + "_origin": "ast", + "community": 241, + "community_name": "MediaType", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion", + "scope_chain": [ + "s62" + ] + }, + "norm_label": ".detect_uppercaseextension_returnscorrecttype()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", + "source_location": "L48" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_anichron_worker_tests_unit_ingestion_mediatypedetectortests_detect_videoextension_returnsvideo", + "label": ".Detect_VideoExtension_ReturnsVideo()", + "_callable": true, + "_origin": "ast", + "community": 241, + "community_name": "MediaType", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion", + "scope_chain": [ + "s62" + ] + }, + "norm_label": ".detect_videoextension_returnsvideo()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", + "source_location": "L32" + }, { "id": "src_anichron_core_data_repository_inviterepository_anichron_core_data_repository_efinviterepository_add", "label": ".Add()", @@ -17662,7 +18048,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17688,7 +18074,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17714,7 +18100,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17732,7 +18118,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17750,7 +18136,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17768,7 +18154,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17786,7 +18172,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17812,7 +18198,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17830,7 +18216,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17848,7 +18234,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17866,7 +18252,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17884,7 +18270,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17902,7 +18288,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17920,7 +18306,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -17932,58 +18318,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/FileIngestionPipelineTests.cs", "source_location": "L160" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_asset_canbesetandread", - "label": ".Asset_CanBeSetAndRead()", - "_callable": true, - "_origin": "ast", - "community": 25, - "community_name": "SingleFileItem", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", - "scope_chain": [ - "s104" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L27" - } - ] - }, - "norm_label": ".asset_canbesetandread()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", - "source_location": "L21" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_proxyfiles_defaultstoemptylist", - "label": ".ProxyFiles_DefaultsToEmptyList()", - "_callable": true, - "_origin": "ast", - "community": 25, - "community_name": "SingleFileItem", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", - "scope_chain": [ - "s104" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L15" - } - ] - }, - "norm_label": ".proxyfiles_defaultstoemptylist()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", - "source_location": "L9" - }, { "id": "src_anichron_api_services_adminstorageconfigservice_anichron_api_services_adminstorageconfigservice_addasync", "label": ".AddAsync()", @@ -18119,22 +18453,170 @@ "source_location": "L17" }, { - "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_iuserstorageconfigrepository_add", - "label": ".Add()", + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_islockedout", + "label": ".IsLockedOut()", "_callable": true, "_origin": "ast", - "community": 254, - "community_name": ".AddAsync", + "community": 26, + "community_name": "LockoutServiceTests", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s84" ] }, - "norm_label": ".add()", - "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", - "source_location": "L13" + "norm_label": ".islockedout()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L9" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_preparereset", + "label": ".PrepareReset()", + "_callable": true, + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".preparereset()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L12" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_recordfailedattemptasync", + "label": ".RecordFailedAttemptAsync()", + "_callable": true, + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".recordfailedattemptasync()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L10" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_computebackoffseconds", + "label": ".ComputeBackoffSeconds()", + "_callable": true, + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ], + "unresolved_calls": [ + { + "callee": "Pow", + "receiver_type": "Math", + "lang": "csharp", + "line": "L39" + } + ] + }, + "norm_label": ".computebackoffseconds()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L35" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_islockedout", + "label": ".IsLockedOut()", + "_callable": true, + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".islockedout()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L17" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_preparereset", + "label": ".PrepareReset()", + "_callable": true, + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".preparereset()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L29" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_recordfailedattemptasync", + "label": ".RecordFailedAttemptAsync()", + "_callable": true, + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ], + "unresolved_calls": [ + { + "callee": "Plus", + "receiver_type": "Instant", + "lang": "csharp", + "line": "L25" + }, + { + "callee": "FromSeconds", + "receiver_type": "Duration", + "lang": "csharp", + "line": "L25" + } + ] + }, + "norm_label": ".recordfailedattemptasync()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L20" + }, + { + "id": "src_anichron_api_tests_unit_services_lockoutservicetests_anichron_api_tests_unit_services_lockoutservicetests_computebackoffseconds_returnsexpectedseconds", + "label": ".ComputeBackoffSeconds_ReturnsExpectedSeconds()", + "_callable": true, + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".computebackoffseconds_returnsexpectedseconds()", + "source_file": "src/Anichron.API.Tests.Unit/Services/LockoutServiceTests.cs", + "source_location": "L154" }, { "id": "src_anichron_api_tests_unit_services_lockoutservicetests_anichron_api_tests_unit_services_lockoutservicetests_islockedout_lockeduntilexactlynow_returnsfalse", @@ -18593,326 +19075,74 @@ "source_location": "L126" }, { - "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_log_crawlingpath", - "label": ".CrawlingPath()", - "_callable": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Crawling", - "scope_chain": [ - "s134" - ] - }, - "norm_label": ".crawlingpath()", - "source_file": "src/Anichron.Worker/Crawling/Worker.cs", - "source_location": "L55" - }, - { - "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_log_starting", - "label": ".Starting()", - "_callable": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Crawling", - "scope_chain": [ - "s134" - ] - }, - "norm_label": ".starting()", - "source_file": "src/Anichron.Worker/Crawling/Worker.cs", - "source_location": "L52" - }, - { - "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_worker_crawlallasync", - "label": ".CrawlAllAsync()", - "_callable": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Crawling", - "scope_chain": [ - "s134" - ], - "unresolved_calls": [ - { - "callee": "CreateScope", - "receiver_type": "IServiceScopeFactory", - "lang": "csharp", - "line": "L33" - } - ] - }, - "norm_label": ".crawlallasync()", - "source_file": "src/Anichron.Worker/Crawling/Worker.cs", - "source_location": "L31" - }, - { - "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_worker_crawlasync", - "label": ".CrawlAsync()", - "_callable": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Crawling", - "scope_chain": [ - "s134" - ] - }, - "norm_label": ".crawlasync()", - "source_file": "src/Anichron.Worker/Crawling/Worker.cs", - "source_location": "L44" - }, - { - "id": "src_anichron_worker_crawling_worker_anichron_worker_crawling_worker_executeasync", - "label": ".ExecuteAsync()", - "_callable": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Crawling", - "scope_chain": [ - "s134" - ], - "unresolved_calls": [ - { - "callee": "Delay", - "receiver_type": "Task", - "lang": "csharp", - "line": "L27" - }, - { - "callee": "FromHours", - "receiver_type": "TimeSpan", - "lang": "csharp", - "line": "L27" - } - ] - }, - "norm_label": ".executeasync()", - "source_file": "src/Anichron.Worker/Crawling/Worker.cs", - "source_location": "L17" - }, - { - "id": "src_anichron_worker_ingestion_ingestionshutdown_anichron_worker_ingestion_ingestionshutdown_isinprogress", - "label": ".IsInProgress()", + "id": "src_anichron_core_guidfactory_anichron_core_iguidfactory_newguid", + "label": ".NewGuid()", "_callable": true, "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", + "community": 283, + "community_name": "IGuidFactory", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion", + "namespace": "Anichron.Core", "scope_chain": [ "s0" ] }, - "norm_label": ".isinprogress()", - "source_file": "src/Anichron.Worker/Ingestion/IngestionShutdown.cs", - "source_location": "L9" - }, - { - "id": "src_anichron_worker_ingestion_livephotolinker_anichron_worker_ingestion_ilivephotolinker_link", - "label": ".Link()", - "_callable": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s59" - ] - }, - "norm_label": ".link()", - "source_file": "src/Anichron.Worker/Ingestion/LivePhotoLinker.cs", - "source_location": "L12" - }, - { - "id": "src_anichron_worker_ingestion_livephotolinker_anichron_worker_ingestion_livephotolinker_link", - "label": ".Link()", - "_callable": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s59" - ], - "unresolved_calls": [ - { - "callee": "Add", - "receiver_type": "List", - "lang": "csharp", - "line": "L26" - }, - { - "callee": "Add", - "receiver_type": "HashSet", - "lang": "csharp", - "line": "L36" - }, - { - "callee": "TryGetValue", - "receiver_type": "Dictionary", - "lang": "csharp", - "line": "L40" - } - ] - }, - "norm_label": ".link()", - "source_file": "src/Anichron.Worker/Ingestion/LivePhotoLinker.cs", - "source_location": "L17" + "norm_label": ".newguid()", + "source_file": "src/Anichron.Core/GuidFactory.cs", + "source_location": "L5" }, { - "id": "src_anichron_worker_ingestion_mediatypedetector_anichron_worker_ingestion_mediatypedetector_detect", - "label": ".Detect()", + "id": "src_anichron_core_guidfactory_anichron_core_timeorderedguidfactory_newguid", + "label": ".NewGuid()", "_callable": true, "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", + "community": 283, + "community_name": "IGuidFactory", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion", + "namespace": "Anichron.Core", "scope_chain": [ - "s29" + "s0" ], "unresolved_calls": [ { - "callee": "GetExtension", - "receiver_type": "Path", - "lang": "csharp", - "line": "L30" - }, - { - "callee": "TryGetValue", - "receiver_type": "Dictionary", + "callee": "CreateVersion7", + "receiver_type": "Guid", "lang": "csharp", - "line": "L31" + "line": "L10" } ] }, - "norm_label": ".detect()", - "source_file": "src/Anichron.Worker/Ingestion/MediaTypeDetector.cs", - "source_location": "L28" + "norm_label": ".newguid()", + "source_file": "src/Anichron.Core/GuidFactory.cs", + "source_location": "L10" }, { - "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_testfixture_build", + "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_anichron_worker_ingestion_proxy_proxyfilebuilder_build", "label": ".Build()", "_callable": true, "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", + "community": 283, + "community_name": "IGuidFactory", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s306" + "s108" ], "unresolved_calls": [ { - "callee": "Create", - "receiver_type": "Options", - "lang": "csharp", - "line": "L44" - }, - { - "callee": "For", - "receiver_type": "Substitute", + "callee": "GetCurrentInstant", + "receiver_type": "IClock", "lang": "csharp", - "line": "L45" + "line": "L24" } ] }, "norm_label": ".build()", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L39" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_anichron_worker_tests_unit_ingestion_mediatypedetectortests_detect_imageextension_returnsimage", - "label": ".Detect_ImageExtension_ReturnsImage()", - "_callable": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion", - "scope_chain": [ - "s62" - ] - }, - "norm_label": ".detect_imageextension_returnsimage()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", - "source_location": "L12" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_anichron_worker_tests_unit_ingestion_mediatypedetectortests_detect_unknownextension_returnsnull", - "label": ".Detect_UnknownExtension_ReturnsNull()", - "_callable": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion", - "scope_chain": [ - "s62" - ] - }, - "norm_label": ".detect_unknownextension_returnsnull()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", - "source_location": "L63" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_anichron_worker_tests_unit_ingestion_mediatypedetectortests_detect_uppercaseextension_returnscorrecttype", - "label": ".Detect_UppercaseExtension_ReturnsCorrectType()", - "_callable": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion", - "scope_chain": [ - "s62" - ] - }, - "norm_label": ".detect_uppercaseextension_returnscorrecttype()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", - "source_location": "L48" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_anichron_worker_tests_unit_ingestion_mediatypedetectortests_detect_videoextension_returnsvideo", - "label": ".Detect_VideoExtension_ReturnsVideo()", - "_callable": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion", - "scope_chain": [ - "s62" - ] - }, - "norm_label": ".detect_videoextension_returnsvideo()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", - "source_location": "L32" + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyFileBuilder.cs", + "source_location": "L10" }, { "id": "src_anichron_worker_ingestion_pipeline_ingestionpipelinerunner_anichron_worker_ingestion_pipeline_iingestionpipelinerunner_runasync", @@ -19546,6 +19776,114 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/PersistenceMiddlewareTests.cs", "source_location": "L42" }, + { + "id": "src_anichron_worker_ingestion_livephotolinker_anichron_worker_ingestion_ilivephotolinker_link", + "label": ".Link()", + "_callable": true, + "_origin": "ast", + "community": 291, + "community_name": "LivePhotoLinker", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s59" + ] + }, + "norm_label": ".link()", + "source_file": "src/Anichron.Worker/Ingestion/LivePhotoLinker.cs", + "source_location": "L12" + }, + { + "id": "src_anichron_worker_ingestion_livephotolinker_anichron_worker_ingestion_livephotolinker_link", + "label": ".Link()", + "_callable": true, + "_origin": "ast", + "community": 291, + "community_name": "LivePhotoLinker", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s59" + ], + "unresolved_calls": [ + { + "callee": "Add", + "receiver_type": "List", + "lang": "csharp", + "line": "L26" + }, + { + "callee": "Add", + "receiver_type": "HashSet", + "lang": "csharp", + "line": "L36" + }, + { + "callee": "TryGetValue", + "receiver_type": "Dictionary", + "lang": "csharp", + "line": "L40" + } + ] + }, + "norm_label": ".link()", + "source_file": "src/Anichron.Worker/Ingestion/LivePhotoLinker.cs", + "source_location": "L17" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_asset_canbesetandread", + "label": ".Asset_CanBeSetAndRead()", + "_callable": true, + "_origin": "ast", + "community": 293, + "community_name": "SingleFileItem", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s104" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L27" + } + ] + }, + "norm_label": ".asset_canbesetandread()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", + "source_location": "L21" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_proxyfiles_defaultstoemptylist", + "label": ".ProxyFiles_DefaultsToEmptyList()", + "_callable": true, + "_origin": "ast", + "community": 293, + "community_name": "SingleFileItem", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s104" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L15" + } + ] + }, + "norm_label": ".proxyfiles_defaultstoemptylist()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", + "source_location": "L9" + }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_capturinglogger_beginscope", "label": ".BeginScope()", @@ -19940,6 +20278,24 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", "source_location": "L204" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxydirectorycreatingmiddleware_caninvoke", + "label": ".CanInvoke()", + "_callable": true, + "_origin": "ast", + "community": 3, + "community_name": "IngestionPipelineRunnerTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s368" + ] + }, + "norm_label": ".caninvoke()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L330" + }, { "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_testfixture_build", "label": ".Build()", @@ -19973,316 +20329,22 @@ "source_location": "L27" }, { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_addasync_pathalreadyassigned_returnspathalreadyassigned", - "label": ".AddAsync_PathAlreadyAssigned_ReturnsPathAlreadyAssigned()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L94" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L95" - } - ] - }, - "norm_label": ".addasync_pathalreadyassigned_returnspathalreadyassigned()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L90" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_addasync_usernotfound_returnsusernotfound", - "label": ".AddAsync_UserNotFound_ReturnsUserNotFound()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L79" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L80" - } - ] - }, - "norm_label": ".addasync_usernotfound_returnsusernotfound()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L75" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_addasync_validinput_addsconfigandsaves", - "label": ".AddAsync_ValidInput_AddsConfigAndSaves()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L111" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L113" - }, - { - "callee": "Is", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L125" - } - ] - }, - "norm_label": ".addasync_validinput_addsconfigandsaves()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L107" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_addasync_whitespacerootpath_returnspathinvalid", - "label": ".AddAsync_WhitespaceRootPath_ReturnsPathInvalid()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L67" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L71" - } - ] - }, - "norm_label": ".addasync_whitespacerootpath_returnspathinvalid()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L60" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_deleteasync_configbelongstodifferentuser_returnsstorageconfignotfound", - "label": ".DeleteAsync_ConfigBelongsToDifferentUser_ReturnsStorageConfigNotFound()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L153" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L156" - } - ] - }, - "norm_label": ".deleteasync_configbelongstodifferentuser_returnsstorageconfignotfound()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L149" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_deleteasync_confignotfound_returnsstorageconfignotfound", - "label": ".DeleteAsync_ConfigNotFound_ReturnsStorageConfigNotFound()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L137" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L139" - } - ] - }, - "norm_label": ".deleteasync_confignotfound_returnsstorageconfignotfound()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L133" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_deleteasync_validinput_removesconfigandsaves", - "label": ".DeleteAsync_ValidInput_RemovesConfigAndSaves()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L170" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L173" - } - ] - }, - "norm_label": ".deleteasync_validinput_removesconfigandsaves()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L166" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_getbyuseridasync_userexists_returnsconfigs", - "label": ".GetByUserIdAsync_UserExists_ReturnsConfigs()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L42" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L43" - } - ] - }, - "norm_label": ".getbyuseridasync_userexists_returnsconfigs()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L38" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_getbyuseridasync_usernotfound_returnsusernotfound", - "label": ".GetByUserIdAsync_UserNotFound_ReturnsUserNotFound()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L28" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L29" - } - ] - }, - "norm_label": ".getbyuseridasync_usernotfound_returnsusernotfound()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L24" - }, - { - "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository_add", - "label": ".Add()", + "id": "src_anichron_worker_ingestion_ingestionshutdown_anichron_worker_ingestion_ingestionshutdown_isinprogress", + "label": ".IsInProgress()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 300, + "community_name": ".IsInProgress", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.Worker.Ingestion", "scope_chain": [ - "s66" + "s0" ] }, - "norm_label": ".add()", - "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", - "source_location": "L34" + "norm_label": ".isinprogress()", + "source_file": "src/Anichron.Worker/Ingestion/IngestionShutdown.cs", + "source_location": "L9" }, { "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository_findbyidasync", @@ -20302,24 +20364,6 @@ "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", "source_location": "L19" }, - { - "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository_findbyrootpathasync", - "label": ".FindByRootPathAsync()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".findbyrootpathasync()", - "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", - "source_location": "L22" - }, { "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository_getactivebyuseridasync", "label": ".GetActiveByUserIdAsync()", @@ -20392,6 +20436,24 @@ "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", "source_location": "L37" }, + { + "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_iuserstorageconfigrepository_add", + "label": ".Add()", + "_callable": true, + "_origin": "ast", + "community": 31, + "community_name": "UserStorageConfig", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", + "source_location": "L13" + }, { "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_iuserstorageconfigrepository_findbyidasync", "label": ".FindByIdAsync()", @@ -20501,1496 +20563,1018 @@ "source_location": "L14" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_add_config_appearsinsubsequentquery", - "label": ".Add_Config_AppearsInSubsequentQuery()", + "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_log_itemcompleted", + "label": ".ItemCompleted()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 313, + "community_name": "LoggingMiddleware", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.Worker.Ingestion.Middlewares", "scope_chain": [ - "s129" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L156" - } + "s43" ] }, - "norm_label": ".add_config_appearsinsubsequentquery()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L150" + "norm_label": ".itemcompleted()", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", + "source_location": "L22" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_createdb", - "label": ".CreateDb()", + "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_log_itemstarted", + "label": ".ItemStarted()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 313, + "community_name": "LoggingMiddleware", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.Worker.Ingestion.Middlewares", "scope_chain": [ - "s129" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L13" - } + "s43" ] }, - "norm_label": ".createdb()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L10" + "norm_label": ".itemstarted()", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", + "source_location": "L19" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_findbyidasync_matchingid_returnsconfig", - "label": ".FindByIdAsync_MatchingId_ReturnsConfig()", + "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_anichron_worker_ingestion_middlewares_videoproxymiddleware_invokeasync", + "label": ".InvokeAsync()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 319, + "community_name": ".BuildWithMiddlewares", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.Worker.Ingestion.Middlewares", "scope_chain": [ - "s129" + "s110" ], "unresolved_calls": [ { - "callee": "NewGuid", - "receiver_type": "Guid", + "callee": "ToArray", + "receiver_type": "IEnumerable", "lang": "csharp", - "line": "L175" + "line": "L23" } ] }, - "norm_label": ".findbyidasync_matchingid_returnsconfig()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L170" + "norm_label": ".invokeasync()", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/VideoProxyMiddleware.cs", + "source_location": "L17" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_findbyidasync_nomatch_returnsnull", - "label": ".FindByIdAsync_NoMatch_ReturnsNull()", + "id": "src_anichron_worker_ingestion_proxy_proxyshardstrategy_anichron_worker_ingestion_proxy_iproxydirectorystrategy_getdirectory", + "label": ".GetDirectory()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 319, + "community_name": ".BuildWithMiddlewares", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s129" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L191" - } + "s0" ] }, - "norm_label": ".findbyidasync_nomatch_returnsnull()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L186" + "norm_label": ".getdirectory()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyShardStrategy.cs", + "source_location": "L5" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_findbyrootpathasync_matchingrootpath_returnsconfig", - "label": ".FindByRootPathAsync_MatchingRootPath_ReturnsConfig()", + "id": "src_anichron_worker_ingestion_proxy_proxyshardstrategy_anichron_worker_ingestion_proxy_twolevelhexshardstrategy_getdirectory", + "label": ".GetDirectory()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 319, + "community_name": ".BuildWithMiddlewares", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s129" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L32" - } + "s0" ] }, - "norm_label": ".findbyrootpathasync_matchingrootpath_returnsconfig()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L25" + "norm_label": ".getdirectory()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyShardStrategy.cs", + "source_location": "L16" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_findbyrootpathasync_nomatch_returnsnull", - "label": ".FindByRootPathAsync_NoMatch_ReturnsNull()", + "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_anichron_worker_tests_unit_crawling_testfixture_buildwithmiddlewares", + "label": ".BuildWithMiddlewares()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 319, + "community_name": ".BuildWithMiddlewares", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.Worker.Tests.Unit.Crawling", "scope_chain": [ - "s129" + "s393" ], "unresolved_calls": [ { - "callee": "NewGuid", - "receiver_type": "Guid", + "callee": "For", + "receiver_type": "Substitute", "lang": "csharp", - "line": "L48" + "line": "L52" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L53" + }, + { + "callee": "Create", + "receiver_type": "Options", + "lang": "csharp", + "line": "L59" } ] }, - "norm_label": ".findbyrootpathasync_nomatch_returnsnull()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L43" + "norm_label": ".buildwithmiddlewares()", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/FileIngestionPipelineTests.cs", + "source_location": "L48" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_findbyrootpathasync_partialpath_returnsnull", - "label": ".FindByRootPathAsync_PartialPath_ReturnsNull()", + "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_getdirectory_differentconfigssamehash_producedifferentdirectories", + "label": ".GetDirectory_DifferentConfigsSameHash_ProduceDifferentDirectories()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 319, + "community_name": ".BuildWithMiddlewares", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", "scope_chain": [ - "s129" + "s40" ], "unresolved_calls": [ { - "callee": "NewGuid", + "callee": "Parse", "receiver_type": "Guid", "lang": "csharp", - "line": "L62" + "line": "L49" } ] }, - "norm_label": ".findbyrootpathasync_partialpath_returnsnull()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L57" + "norm_label": ".getdirectory_differentconfigssamehash_producedifferentdirectories()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", + "source_location": "L44" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getactivebyuseridasync_inactiveconfigforuser_excluded", - "label": ".GetActiveByUserIdAsync_InactiveConfigForUser_Excluded()", + "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_getdirectory_differenthashsameconfig_bucketfollowsthecontenthash", + "label": ".GetDirectory_DifferentHashSameConfig_BucketFollowsTheContentHash()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 319, + "community_name": ".BuildWithMiddlewares", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", "scope_chain": [ - "s129" + "s40" ], "unresolved_calls": [ { - "callee": "NewGuid", + "callee": "Parse", "receiver_type": "Guid", "lang": "csharp", - "line": "L136" + "line": "L24" } ] }, - "norm_label": ".getactivebyuseridasync_inactiveconfigforuser_excluded()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L131" + "norm_label": ".getdirectory_differenthashsameconfig_bucketfollowsthecontenthash()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", + "source_location": "L21" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getactivebyuseridasync_matchinguserid_returnsonlythatusersconfigs", - "label": ".GetActiveByUserIdAsync_MatchingUserId_ReturnsOnlyThatUsersConfigs()", + "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_getdirectory_knownconfigandhash_producesliteraltwolevelpath", + "label": ".GetDirectory_KnownConfigAndHash_ProducesLiteralTwoLevelPath()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 319, + "community_name": ".BuildWithMiddlewares", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", "scope_chain": [ - "s129" + "s40" ], "unresolved_calls": [ { - "callee": "NewGuid", + "callee": "Parse", "receiver_type": "Guid", "lang": "csharp", - "line": "L117" + "line": "L14" } ] }, - "norm_label": ".getactivebyuseridasync_matchinguserid_returnsonlythatusersconfigs()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L112" + "norm_label": ".getdirectory_knownconfigandhash_producesliteraltwolevelpath()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", + "source_location": "L11" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getallactiveasync_mixedactive_returnsonlyactive", - "label": ".GetAllActiveAsync_MixedActive_ReturnsOnlyActive()", + "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_getdirectory_sameconfigandhash_isstableacrosscalls", + "label": ".GetDirectory_SameConfigAndHash_IsStableAcrossCalls()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 319, + "community_name": ".BuildWithMiddlewares", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", "scope_chain": [ - "s129" + "s40" ], "unresolved_calls": [ { - "callee": "NewGuid", + "callee": "Parse", "receiver_type": "Guid", "lang": "csharp", - "line": "L80" + "line": "L35" } ] }, - "norm_label": ".getallactiveasync_mixedactive_returnsonlyactive()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L75" + "norm_label": ".getdirectory_sameconfigandhash_isstableacrosscalls()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", + "source_location": "L31" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getallactiveasync_noneactive_returnsempty", - "label": ".GetAllActiveAsync_NoneActive_ReturnsEmpty()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_selfdeletion_returnscannotmodifyself", + "label": ".DeleteAsync_SelfDeletion_ReturnsCannotModifySelf()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s129" + "s160" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L99" + "line": "L220" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L227" } ] }, - "norm_label": ".getallactiveasync_noneactive_returnsempty()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L94" + "norm_label": ".deleteasync_selfdeletion_returnscannotmodifyself()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L217" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getbyuseridasync_noconfigs_returnsempty", - "label": ".GetByUserIdAsync_NoConfigs_ReturnsEmpty()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_usernotfound_returnsusernotfound", + "label": ".DeleteAsync_UserNotFound_ReturnsUserNotFound()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s129" + "s160" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L232" + "line": "L235" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L236" } ] }, - "norm_label": ".getbyuseridasync_noconfigs_returnsempty()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L225" + "norm_label": ".deleteasync_usernotfound_returnsusernotfound()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L231" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getbyuseridasync_returnsallconfigsforuser_includinginactive", - "label": ".GetByUserIdAsync_ReturnsAllConfigsForUser_IncludingInactive()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_validuser_revokessessionsremovesuserandsaves", + "label": ".DeleteAsync_ValidUser_RevokesSessionsRemovesUserAndSaves()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s129" + "s160" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L209" + "line": "L251" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L252" } ] }, - "norm_label": ".getbyuseridasync_returnsallconfigsforuser_includinginactive()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L204" + "norm_label": ".deleteasync_validuser_revokessessionsremovesuserandsaves()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L247" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_makeconfig", - "label": ".MakeConfig()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getallasync_returnsallusersfromrepository", + "label": ".GetAllAsync_ReturnsAllUsersFromRepository()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s129" + "s160" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L19" + "line": "L70" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L71" } ] }, - "norm_label": ".makeconfig()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L18" + "norm_label": ".getallasync_returnsallusersfromrepository()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L66" }, { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_remove_config_disappearsfromsubsequentquery", - "label": ".Remove_Config_DisappearsFromSubsequentQuery()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getbyidasync_userfound_returnsuser", + "label": ".GetByIdAsync_UserFound_ReturnsUser()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s129" + "s160" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L246" + "line": "L86" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L88" } ] }, - "norm_label": ".remove_config_disappearsfromsubsequentquery()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", - "source_location": "L241" + "norm_label": ".getbyidasync_userfound_returnsuser()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L82" }, { - "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests_crawlallasync_activeconfig_runspipelinewithcorrectconfigasync", - "label": ".CrawlAllAsync_ActiveConfig_RunsPipelineWithCorrectConfigAsync()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getbyidasync_usernotfound_returnsnull", + "label": ".GetByIdAsync_UserNotFound_ReturnsNull()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s306" + "s160" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L122" + "line": "L99" }, { "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L123" + "line": "L100" } ] }, - "norm_label": ".crawlallasync_activeconfig_runspipelinewithcorrectconfigasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L118" + "norm_label": ".getbyidasync_usernotfound_returnsnull()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L95" }, { - "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests_crawlallasync_multipleactiveconfigs_runspipelineforeachasync", - "label": ".CrawlAllAsync_MultipleActiveConfigs_RunsPipelineForEachAsync()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_bothparamsnull_returnsuserwithoutsaving", + "label": ".UpdateAsync_BothParamsNull_ReturnsUserWithoutSaving()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s306" + "s160" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L94" + "line": "L115" }, { "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L97" + "line": "L116" } ] }, - "norm_label": ".crawlallasync_multipleactiveconfigs_runspipelineforeachasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L88" + "norm_label": ".updateasync_bothparamsnull_returnsuserwithoutsaving()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L111" }, { - "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests_crawlallasync_noactiveconfigs_pipelineisnevercalledasync", - "label": ".CrawlAllAsync_NoActiveConfigs_PipelineIsNeverCalledAsync()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_savethrows_therevocationraninsidethefailedtransaction", + "label": ".UpdateAsync_SaveThrows_TheRevocationRanInsideTheFailedTransaction()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s306" + "s160" ], "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L278" + }, { "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L115" + "line": "L279" } ] }, - "norm_label": ".crawlallasync_noactiveconfigs_pipelineisnevercalledasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L106" + "norm_label": ".updateasync_savethrows_therevocationraninsidethefailedtransaction()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L274" }, { - "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests_crawlallasync_noresolveduserid_callsgetallactiveasync", - "label": ".CrawlAllAsync_NoResolvedUserId_CallsGetAllActiveAsync()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_selfmodification_returnscannotmodifyself", + "label": ".UpdateAsync_SelfModification_ReturnsCannotModifySelf()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s306" + "s160" ], "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L130" + }, { "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L60" + "line": "L137" } ] }, - "norm_label": ".crawlallasync_noresolveduserid_callsgetallactiveasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L52" + "norm_label": ".updateasync_selfmodification_returnscannotmodifyself()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L127" }, { - "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_workertests_crawlallasync_withresolveduserid_callsgetactivebyuseridasync", - "label": ".CrawlAllAsync_WithResolvedUserId_CallsGetActiveByUserIdAsync()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisadmin_updatesuserandreturnsupdateduser", + "label": ".UpdateAsync_SetIsAdmin_UpdatesUserAndReturnsUpdatedUser()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s306" + "s160" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L73" + "line": "L159" }, { "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L80" + "line": "L160" } ] }, - "norm_label": ".crawlallasync_withresolveduserid_callsgetactivebyuseridasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L69" + "norm_label": ".updateasync_setisadmin_updatesuserandreturnsupdateduser()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L155" }, { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture_build", - "label": ".Build()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledfalse_doesnotrevokesessionsbutsaves", + "label": ".UpdateAsync_SetIsDisabledFalse_DoesNotRevokeSessionsButSaves()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s307" + "s160" ], "unresolved_calls": [ { - "callee": "Create", - "receiver_type": "Options", + "callee": "NewGuid", + "receiver_type": "Guid", "lang": "csharp", - "line": "L40" + "line": "L204" }, { - "callee": "For", - "receiver_type": "Substitute", + "callee": "Any", + "receiver_type": "Arg", "lang": "csharp", - "line": "L43" + "line": "L205" } ] }, - "norm_label": ".build()", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L38" + "norm_label": ".updateasync_setisdisabledfalse_doesnotrevokesessionsbutsaves()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L200" }, { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_credentialnormalized_trimsandlowercasesasync", - "label": ".StartAsync_CredentialNormalized_TrimsAndLowercasesAsync()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledtrue_revokessessionsandsaves", + "label": ".UpdateAsync_SetIsDisabledTrue_RevokesSessionsAndSaves()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s307" + "s160" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L105" + "line": "L173" }, { "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L106" + "line": "L174" } ] }, - "norm_label": ".startasync_credentialnormalized_trimsandlowercasesasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L100" + "norm_label": ".updateasync_setisdisabledtrue_revokessessionsandsaves()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L169" }, { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_existingconfigdifferentuser_throwsinvalidoperationexceptionwithrootpathinmessageasync", - "label": ".StartAsync_ExistingConfigDifferentUser_ThrowsInvalidOperationExceptionWithRootPathInMessageAsync()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledtrue_whenalreadydisabled_doesnotrevokesessionsbutsaves", + "label": ".UpdateAsync_SetIsDisabledTrue_WhenAlreadyDisabled_DoesNotRevokeSessionsButSaves()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s307" + "s160" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L150" + "line": "L191" }, { "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L152" + "line": "L192" } ] }, - "norm_label": ".startasync_existingconfigdifferentuser_throwsinvalidoperationexceptionwithrootpathinmessageasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L145" + "norm_label": ".updateasync_setisdisabledtrue_whenalreadydisabled_doesnotrevokesessionsbutsaves()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L187" }, { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_existingconfigsameuser_skipssaveandsetsresolveduseridasync", - "label": ".StartAsync_ExistingConfigSameUser_SkipsSaveAndSetsResolvedUserIdAsync()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", - "scope_chain": [ - "s307" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L128" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L130" - } - ] - }, - "norm_label": ".startasync_existingconfigsameuser_skipssaveandsetsresolveduseridasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L123" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_noexistingconfig_createsstorageconfigwithcorrectfieldsandsetsresolveduseridasync", - "label": ".StartAsync_NoExistingConfig_CreatesStorageConfigWithCorrectFieldsAndSetsResolvedUserIdAsync()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_usernotfound_returnsusernotfound", + "label": ".UpdateAsync_UserNotFound_ReturnsUserNotFound()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 32, + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s307" + "s160" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L171" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L172" + "line": "L144" }, - { - "callee": "Is", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L180" - } - ] - }, - "norm_label": ".startasync_noexistingconfig_createsstorageconfigwithcorrectfieldsandsetsresolveduseridasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L166" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_unknownuser_throwsinvalidoperationexceptionwithuserinmessageasync", - "label": ".StartAsync_UnknownUser_ThrowsInvalidOperationExceptionWithUserInMessageAsync()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", - "scope_chain": [ - "s307" - ], - "unresolved_calls": [ - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L86" - } - ] - }, - "norm_label": ".startasync_unknownuser_throwsinvalidoperationexceptionwithuserinmessageasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L81" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_userisempty_logsallusermodeandmakesnodbcallsasync", - "label": ".StartAsync_UserIsEmpty_LogsAllUserModeAndMakesNoDbCallsAsync()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", - "scope_chain": [ - "s307" - ], - "unresolved_calls": [ { "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L59" + "line": "L145" } ] }, - "norm_label": ".startasync_userisempty_logsallusermodeandmakesnodbcallsasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L50" + "norm_label": ".updateasync_usernotfound_returnsusernotfound()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L140" }, { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_useriswhitespace_logsallusermodeandmakesnodbcallsasync", - "label": ".StartAsync_UserIsWhitespace_LogsAllUserModeAndMakesNoDbCallsAsync()", + "id": "src_anichron_core_data_anichrondbcontext_anichron_core_data_anichrondbcontext_executeintransactionasync", + "label": ".ExecuteInTransactionAsync()", "_callable": true, "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", + "community": 327, + "community_name": ".ExecuteInTransactionAsync", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", + "namespace": "Anichron.Core.Data", "scope_chain": [ - "s307" + "s69" ], "unresolved_calls": [ { - "callee": "Any", - "receiver_type": "Arg", + "callee": "BeginTransactionAsync", + "receiver_type": "Database", "lang": "csharp", - "line": "L73" + "line": "L20" } ] }, - "norm_label": ".startasync_useriswhitespace_logsallusermodeandmakesnodbcallsasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L64" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_stopasync_alwayscompletessuccessfullyasync", - "label": ".StopAsync_AlwaysCompletesSuccessfullyAsync()", - "_callable": true, - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", - "scope_chain": [ - "s307" - ] - }, - "norm_label": ".stopasync_alwayscompletessuccessfullyasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L192" - }, - { - "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_log_itemcompleted", - "label": ".ItemCompleted()", - "_callable": true, - "_origin": "ast", - "community": 313, - "community_name": "Log", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Middlewares", - "scope_chain": [ - "s43" - ] - }, - "norm_label": ".itemcompleted()", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", - "source_location": "L22" + "norm_label": ".executeintransactionasync()", + "source_file": "src/Anichron.Core/Data/AnichronDbContext.cs", + "source_location": "L18" }, { - "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_log_itemstarted", - "label": ".ItemStarted()", + "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests_anichron_worker_tests_unit_ingestion_exifdatatests_empty_hasallzeroandnullfields", + "label": ".Empty_HasAllZeroAndNullFields()", "_callable": true, "_origin": "ast", - "community": 313, - "community_name": "Log", + "community": 328, + "community_name": "LivePhotoLinkerTests.cs", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Middlewares", + "namespace": "Anichron.Worker.Tests.Unit.Ingestion", "scope_chain": [ - "s43" + "s34" ] }, - "norm_label": ".itemstarted()", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", - "source_location": "L19" + "norm_label": ".empty_hasallzeroandnullfields()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", + "source_location": "L7" }, { - "id": "src_anichron_worker_ingestion_proxy_proxyshardstrategy_anichron_worker_ingestion_proxy_iproxydirectorystrategy_getdirectory", - "label": ".GetDirectory()", + "id": "src_anichron_api_infrastructure_authmessages_anichron_api_infrastructure_authmessages_accounttemporarilylocked", + "label": ".AccountTemporarilyLocked()", "_callable": true, "_origin": "ast", - "community": 319, - "community_name": ".BuildWithMiddlewares", + "community": 33, + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.API.Infrastructure", "scope_chain": [ "s0" ] }, - "norm_label": ".getdirectory()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyShardStrategy.cs", - "source_location": "L5" + "norm_label": ".accounttemporarilylocked()", + "source_file": "src/Anichron.API/Infrastructure/AuthMessages.cs", + "source_location": "L14" }, { - "id": "src_anichron_worker_ingestion_proxy_proxyshardstrategy_anichron_worker_ingestion_proxy_twolevelhexshardstrategy_getdirectory", - "label": ".GetDirectory()", + "id": "src_anichron_worker_ingestion_proxy_processlauncher_anichron_worker_ingestion_proxy_iprocesslauncher_runasync", + "label": ".RunAsync()", "_callable": true, "_origin": "ast", - "community": 319, - "community_name": ".BuildWithMiddlewares", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s0" + "s27" ] }, - "norm_label": ".getdirectory()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyShardStrategy.cs", - "source_location": "L16" + "norm_label": ".runasync()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", + "source_location": "L7" }, { - "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_anichron_worker_tests_unit_crawling_testfixture_buildwithmiddlewares", - "label": ".BuildWithMiddlewares()", + "id": "src_anichron_worker_ingestion_proxy_processlauncher_anichron_worker_ingestion_proxy_systemprocesslauncher_runasync", + "label": ".RunAsync()", "_callable": true, "_origin": "ast", - "community": 319, - "community_name": ".BuildWithMiddlewares", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s393" + "s27" ], "unresolved_calls": [ { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L52" - }, - { - "callee": "Any", - "receiver_type": "Arg", + "callee": "Start", + "receiver_type": "Process", "lang": "csharp", - "line": "L53" + "line": "L28" }, { - "callee": "Create", - "receiver_type": "Options", - "lang": "csharp", - "line": "L59" - } - ] - }, - "norm_label": ".buildwithmiddlewares()", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/FileIngestionPipelineTests.cs", - "source_location": "L48" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_getdirectory_differentconfigssamehash_producedifferentdirectories", - "label": ".GetDirectory_DifferentConfigsSameHash_ProduceDifferentDirectories()", - "_callable": true, - "_origin": "ast", - "community": 319, - "community_name": ".BuildWithMiddlewares", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", - "scope_chain": [ - "s40" - ], - "unresolved_calls": [ - { - "callee": "Parse", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L49" - } - ] - }, - "norm_label": ".getdirectory_differentconfigssamehash_producedifferentdirectories()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", - "source_location": "L44" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_getdirectory_differenthashsameconfig_bucketfollowsthecontenthash", - "label": ".GetDirectory_DifferentHashSameConfig_BucketFollowsTheContentHash()", - "_callable": true, - "_origin": "ast", - "community": 319, - "community_name": ".BuildWithMiddlewares", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", - "scope_chain": [ - "s40" - ], - "unresolved_calls": [ - { - "callee": "Parse", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L24" - } - ] - }, - "norm_label": ".getdirectory_differenthashsameconfig_bucketfollowsthecontenthash()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", - "source_location": "L21" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_getdirectory_knownconfigandhash_producesliteraltwolevelpath", - "label": ".GetDirectory_KnownConfigAndHash_ProducesLiteralTwoLevelPath()", - "_callable": true, - "_origin": "ast", - "community": 319, - "community_name": ".BuildWithMiddlewares", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", - "scope_chain": [ - "s40" - ], - "unresolved_calls": [ - { - "callee": "Parse", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L14" - } - ] - }, - "norm_label": ".getdirectory_knownconfigandhash_producesliteraltwolevelpath()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", - "source_location": "L11" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_getdirectory_sameconfigandhash_isstableacrosscalls", - "label": ".GetDirectory_SameConfigAndHash_IsStableAcrossCalls()", - "_callable": true, - "_origin": "ast", - "community": 319, - "community_name": ".BuildWithMiddlewares", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", - "scope_chain": [ - "s40" - ], - "unresolved_calls": [ - { - "callee": "Parse", - "receiver_type": "Guid", + "callee": "WaitForExitAsync", + "receiver_type": "Process", "lang": "csharp", "line": "L35" - } - ] - }, - "norm_label": ".getdirectory_sameconfigandhash_isstableacrosscalls()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", - "source_location": "L31" - }, - { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_selfdeletion_returnscannotmodifyself", - "label": ".DeleteAsync_SelfDeletion_ReturnsCannotModifySelf()", - "_callable": true, - "_origin": "ast", - "community": 32, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L174" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L181" - } - ] - }, - "norm_label": ".deleteasync_selfdeletion_returnscannotmodifyself()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L171" - }, - { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_usernotfound_returnsusernotfound", - "label": ".DeleteAsync_UserNotFound_ReturnsUserNotFound()", - "_callable": true, - "_origin": "ast", - "community": 32, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L189" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L190" - } - ] - }, - "norm_label": ".deleteasync_usernotfound_returnsusernotfound()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L185" - }, - { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_validuser_revokessessionsremovesuserandsaves", - "label": ".DeleteAsync_ValidUser_RevokesSessionsRemovesUserAndSaves()", - "_callable": true, - "_origin": "ast", - "community": 32, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L204" }, { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L205" - } - ] - }, - "norm_label": ".deleteasync_validuser_revokessessionsremovesuserandsaves()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L200" - }, - { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getallasync_returnsallusersfromrepository", - "label": ".GetAllAsync_ReturnsAllUsersFromRepository()", - "_callable": true, - "_origin": "ast", - "community": 32, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", + "callee": "Kill", + "receiver_type": "Process", "lang": "csharp", - "line": "L32" + "line": "L43" }, { - "callee": "Any", - "receiver_type": "Arg", + "callee": "WhenAll", + "receiver_type": "Task", "lang": "csharp", - "line": "L33" + "line": "L45" } ] }, - "norm_label": ".getallasync_returnsallusersfromrepository()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L28" + "norm_label": ".runasync()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", + "source_location": "L14" }, { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getbyidasync_userfound_returnsuser", - "label": ".GetByIdAsync_UserFound_ReturnsUser()", + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor_detectencoderasync", + "label": ".DetectEncoderAsync()", "_callable": true, "_origin": "ast", - "community": 32, - "community_name": "TestFixture", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L48" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L50" - } + "s69" ] }, - "norm_label": ".getbyidasync_userfound_returnsuser()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "norm_label": ".detectencoderasync()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", "source_location": "L44" }, { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getbyidasync_usernotfound_returnsnull", - "label": ".GetByIdAsync_UserNotFound_ReturnsNull()", - "_callable": true, - "_origin": "ast", - "community": 32, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L61" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L62" - } - ] - }, - "norm_label": ".getbyidasync_usernotfound_returnsnull()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L57" - }, - { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_bothparamsnull_returnsuserwithoutsaving", - "label": ".UpdateAsync_BothParamsNull_ReturnsUserWithoutSaving()", - "_callable": true, - "_origin": "ast", - "community": 32, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L77" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L78" - } - ] - }, - "norm_label": ".updateasync_bothparamsnull_returnsuserwithoutsaving()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L73" - }, - { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_selfmodification_returnscannotmodifyself", - "label": ".UpdateAsync_SelfModification_ReturnsCannotModifySelf()", + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor_dispose", + "label": ".Dispose()", "_callable": true, "_origin": "ast", - "community": 32, - "community_name": "TestFixture", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s121" + "s69" ], "unresolved_calls": [ { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L90" - }, - { - "callee": "Any", - "receiver_type": "Arg", + "callee": "Dispose", + "receiver_type": "SemaphoreSlim", "lang": "csharp", - "line": "L97" + "line": "L102" } ] }, - "norm_label": ".updateasync_selfmodification_returnscannotmodifyself()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L87" + "norm_label": ".dispose()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "source_location": "L102" }, { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisadmin_updatesuserandreturnsupdateduser", - "label": ".UpdateAsync_SetIsAdmin_UpdatesUserAndReturnsUpdatedUser()", + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor_probeencoderasync", + "label": ".ProbeEncoderAsync()", "_callable": true, "_origin": "ast", - "community": 32, - "community_name": "TestFixture", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L118" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L119" - } + "s69" ] }, - "norm_label": ".updateasync_setisadmin_updatesuserandreturnsupdateduser()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L114" + "norm_label": ".probeencoderasync()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "source_location": "L61" }, { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledfalse_doesnotrevokesessionsbutsaves", - "label": ".UpdateAsync_SetIsDisabledFalse_DoesNotRevokeSessionsButSaves()", + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor_runffmpegasync", + "label": ".RunFfmpegAsync()", "_callable": true, "_origin": "ast", - "community": 32, - "community_name": "TestFixture", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L158" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L159" - } + "s69" ] }, - "norm_label": ".updateasync_setisdisabledfalse_doesnotrevokesessionsbutsaves()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L154" + "norm_label": ".runffmpegasync()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "source_location": "L78" }, { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledtrue_revokessessionsandsaves", - "label": ".UpdateAsync_SetIsDisabledTrue_RevokesSessionsAndSaves()", + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegvideoprocessor_transcodeasync", + "label": ".TranscodeAsync()", "_callable": true, "_origin": "ast", - "community": 32, - "community_name": "TestFixture", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s121" + "s69" ], "unresolved_calls": [ { - "callee": "NewGuid", - "receiver_type": "Guid", + "callee": "WaitAsync", + "receiver_type": "SemaphoreSlim", "lang": "csharp", - "line": "L132" + "line": "L30" }, { - "callee": "Any", - "receiver_type": "Arg", + "callee": "Release", + "receiver_type": "SemaphoreSlim", "lang": "csharp", - "line": "L133" + "line": "L38" } ] }, - "norm_label": ".updateasync_setisdisabledtrue_revokessessionsandsaves()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L128" + "norm_label": ".transcodeasync()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "source_location": "L27" }, { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledtrue_whenalreadydisabled_doesnotrevokesessionsbutsaves", - "label": ".UpdateAsync_SetIsDisabledTrue_WhenAlreadyDisabled_DoesNotRevokeSessionsButSaves()", + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ivideoprocessor_transcodeasync", + "label": ".TranscodeAsync()", "_callable": true, "_origin": "ast", - "community": 32, - "community_name": "TestFixture", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L145" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L146" - } + "s69" ] }, - "norm_label": ".updateasync_setisdisabledtrue_whenalreadydisabled_doesnotrevokesessionsbutsaves()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L141" + "norm_label": ".transcodeasync()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "source_location": "L8" }, { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_usernotfound_returnsusernotfound", - "label": ".UpdateAsync_UserNotFound_ReturnsUserNotFound()", + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_log_encoderselected", + "label": ".EncoderSelected()", "_callable": true, "_origin": "ast", - "community": 32, - "community_name": "TestFixture", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s121" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L104" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L105" - } + "s69" ] }, - "norm_label": ".updateasync_usernotfound_returnsusernotfound()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L100" + "norm_label": ".encoderselected()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "source_location": "L106" }, { - "id": "src_anichron_api_infrastructure_authmessages_anichron_api_infrastructure_authmessages_accounttemporarilylocked", - "label": ".AccountTemporarilyLocked()", + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_log_encoderunavailable", + "label": ".EncoderUnavailable()", "_callable": true, "_origin": "ast", - "community": 321, - "community_name": "AuthMessages.cs", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Infrastructure", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s0" + "s69" ] }, - "norm_label": ".accounttemporarilylocked()", - "source_file": "src/Anichron.API/Infrastructure/AuthMessages.cs", - "source_location": "L14" + "norm_label": ".encoderunavailable()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", + "source_location": "L109" }, { - "id": "src_anichron_core_data_anichrondbcontext_anichron_core_data_anichrondbcontext_executeintransactionasync", - "label": ".ExecuteInTransactionAsync()", + "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_ivideoproxygenerator_transcodeasync", + "label": ".TranscodeAsync()", "_callable": true, "_origin": "ast", - "community": 327, - "community_name": ".ExecuteInTransactionAsync", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s69" - ], - "unresolved_calls": [ - { - "callee": "BeginTransactionAsync", - "receiver_type": "Database", - "lang": "csharp", - "line": "L20" - } + "s29" ] }, - "norm_label": ".executeintransactionasync()", - "source_file": "src/Anichron.Core/Data/AnichronDbContext.cs", - "source_location": "L18" + "norm_label": ".transcodeasync()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", + "source_location": "L9" }, { - "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests_anichron_worker_tests_unit_ingestion_exifdatatests_empty_hasallzeroandnullfields", - "label": ".Empty_HasAllZeroAndNullFields()", + "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_video720pgenerator_transcodeasync", + "label": ".TranscodeAsync()", "_callable": true, "_origin": "ast", - "community": 328, - "community_name": "MediaTypeDetectorTests.cs", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion", + "namespace": "Anichron.Worker.Ingestion.Proxy", "scope_chain": [ - "s34" + "s29" ] }, - "norm_label": ".empty_hasallzeroandnullfields()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", - "source_location": "L7" + "norm_label": ".transcodeasync()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", + "source_location": "L17" }, { "id": "src_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests_dispose_doesnotthrow", @@ -21998,7 +21582,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22016,7 +21600,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22034,7 +21618,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22052,7 +21636,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22070,7 +21654,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22096,7 +21680,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22122,7 +21706,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22154,7 +21738,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22186,7 +21770,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22218,7 +21802,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22250,7 +21834,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22282,7 +21866,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22314,7 +21898,7 @@ "_callable": true, "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -22334,6 +21918,116 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/FfmpegVideoProcessorTests.cs", "source_location": "L106" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests_anichron_worker_tests_unit_ingestion_proxy_testfixture_build", + "label": ".Build()", + "_callable": true, + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", + "scope_chain": [ + "s144" + ], + "unresolved_calls": [ + { + "callee": "Create", + "receiver_type": "Options", + "lang": "csharp", + "line": "L17" + }, + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L18" + } + ] + }, + "norm_label": ".build()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/FfmpegVideoProcessorTests.cs", + "source_location": "L14" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_video720pgenerator_filename_isvideo720pmp4", + "label": ".Video720PGenerator_FileName_IsVideo720pMp4()", + "_callable": true, + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", + "scope_chain": [ + "s68" + ], + "unresolved_calls": [ + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L15" + } + ] + }, + "norm_label": ".video720pgenerator_filename_isvideo720pmp4()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", + "source_location": "L12" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_video720pgenerator_proxytype_iswebvideo", + "label": ".Video720PGenerator_ProxyType_IsWebVideo()", + "_callable": true, + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", + "scope_chain": [ + "s68" + ], + "unresolved_calls": [ + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L23" + } + ] + }, + "norm_label": ".video720pgenerator_proxytype_iswebvideo()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", + "source_location": "L20" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_video720pgenerator_transcodeasync_delegatestovideoprocessorasync", + "label": ".Video720PGenerator_TranscodeAsync_DelegatesToVideoProcessorAsync()", + "_callable": true, + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", + "scope_chain": [ + "s68" + ], + "unresolved_calls": [ + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L31" + } + ] + }, + "norm_label": ".video720pgenerator_transcodeasync_delegatestovideoprocessorasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", + "source_location": "L28" + }, { "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_iingestionmiddleware_caninvoke", "label": ".CanInvoke()", @@ -22575,8 +22269,8 @@ "source_location": "L61" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_cancellingmiddleware_invokeasync", - "label": ".InvokeAsync()", + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxywritingmiddleware_caninvoke", + "label": ".CanInvoke()", "_callable": true, "_origin": "ast", "community": 37, @@ -22586,28 +22280,14 @@ "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", "scope_chain": [ "s368" - ], - "unresolved_calls": [ - { - "callee": "CancelAsync", - "receiver_type": "CancellationTokenSource", - "lang": "csharp", - "line": "L359" - }, - { - "callee": "ThrowIfCancellationRequested", - "receiver_type": "CancellationToken", - "lang": "csharp", - "line": "L360" - } ] }, - "norm_label": ".invokeasync()", + "norm_label": ".caninvoke()", "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L356" + "source_location": "L304" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxydirectorycreatingmiddleware_caninvoke", + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_throwingmiddleware_caninvoke", "label": ".CanInvoke()", "_callable": true, "_origin": "ast", @@ -22622,309 +22302,433 @@ }, "norm_label": ".caninvoke()", "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L330" + "source_location": "L342" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxydirectorycreatingmiddleware_invokeasync", - "label": ".InvokeAsync()", + "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository_add", + "label": ".Add()", "_callable": true, "_origin": "ast", - "community": 37, - "community_name": "IngestionContext", + "community": 38, + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s368" + "s66" ] }, - "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L332" + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", + "source_location": "L34" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxywritingmiddleware_caninvoke", - "label": ".CanInvoke()", + "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository_findbyrootpathasync", + "label": ".FindByRootPathAsync()", "_callable": true, "_origin": "ast", - "community": 37, - "community_name": "IngestionContext", + "community": 38, + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s368" + "s66" ] }, - "norm_label": ".caninvoke()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L304" + "norm_label": ".findbyrootpathasync()", + "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", + "source_location": "L22" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxywritingmiddleware_invokeasync", - "label": ".InvokeAsync()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_add_config_appearsinsubsequentquery", + "label": ".Add_Config_AppearsInSubsequentQuery()", "_callable": true, "_origin": "ast", - "community": 37, - "community_name": "IngestionContext", + "community": 38, + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s368" + "s129" ], "unresolved_calls": [ { "callee": "NewGuid", "receiver_type": "Guid", "lang": "csharp", - "line": "L315" + "line": "L156" } ] }, - "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L306" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_stubmiddleware_invokeasync", - "label": ".InvokeAsync()", + "norm_label": ".add_config_appearsinsubsequentquery()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L150" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_createdb", + "label": ".CreateDb()", "_callable": true, "_origin": "ast", - "community": 37, - "community_name": "IngestionContext", + "community": 38, + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s368" + "s129" ], "unresolved_calls": [ { - "callee": "Add", - "receiver_type": "List", + "callee": "NewGuid", + "receiver_type": "Guid", "lang": "csharp", - "line": "L293" + "line": "L13" } ] }, - "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L291" + "norm_label": ".createdb()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L10" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_throwingmiddleware_caninvoke", - "label": ".CanInvoke()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_findbyidasync_matchingid_returnsconfig", + "label": ".FindByIdAsync_MatchingId_ReturnsConfig()", "_callable": true, "_origin": "ast", - "community": 37, - "community_name": "IngestionContext", + "community": 38, + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s368" + "s129" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L175" + } ] }, - "norm_label": ".caninvoke()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L342" + "norm_label": ".findbyidasync_matchingid_returnsconfig()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L170" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_throwingmiddleware_invokeasync", - "label": ".InvokeAsync()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_findbyidasync_nomatch_returnsnull", + "label": ".FindByIdAsync_NoMatch_ReturnsNull()", "_callable": true, "_origin": "ast", - "community": 37, - "community_name": "IngestionContext", + "community": 38, + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s368" + "s129" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L191" + } ] }, - "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L344" + "norm_label": ".findbyidasync_nomatch_returnsnull()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L186" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_deleteasync", - "label": ".DeleteAsync()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_findbyrootpathasync_matchingrootpath_returnsconfig", + "label": ".FindByRootPathAsync_MatchingRootPath_ReturnsConfig()", "_callable": true, "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s92" + "s129" ], "unresolved_calls": [ { - "callee": "GetCurrentInstant", - "receiver_type": "IClock", + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L32" + } + ] + }, + "norm_label": ".findbyrootpathasync_matchingrootpath_returnsconfig()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L25" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_findbyrootpathasync_nomatch_returnsnull", + "label": ".FindByRootPathAsync_NoMatch_ReturnsNull()", + "_callable": true, + "_origin": "ast", + "community": 38, + "community_name": "EfUserStorageConfigRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s129" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L48" + } + ] + }, + "norm_label": ".findbyrootpathasync_nomatch_returnsnull()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L43" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_findbyrootpathasync_partialpath_returnsnull", + "label": ".FindByRootPathAsync_PartialPath_ReturnsNull()", + "_callable": true, + "_origin": "ast", + "community": 38, + "community_name": "EfUserStorageConfigRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", + "scope_chain": [ + "s129" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", "lang": "csharp", "line": "L62" } ] }, - "norm_label": ".deleteasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L53" + "norm_label": ".findbyrootpathasync_partialpath_returnsnull()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L57" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_getallasync", - "label": ".GetAllAsync()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getactivebyuseridasync_inactiveconfigforuser_excluded", + "label": ".GetActiveByUserIdAsync_InactiveConfigForUser_Excluded()", "_callable": true, "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s92" + "s129" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L136" + } ] }, - "norm_label": ".getallasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L21" + "norm_label": ".getactivebyuseridasync_inactiveconfigforuser_excluded()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L131" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_getbyidasync", - "label": ".GetByIdAsync()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getactivebyuseridasync_matchinguserid_returnsonlythatusersconfigs", + "label": ".GetActiveByUserIdAsync_MatchingUserId_ReturnsOnlyThatUsersConfigs()", "_callable": true, "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s92" + "s129" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L117" + } ] }, - "norm_label": ".getbyidasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L24" + "norm_label": ".getactivebyuseridasync_matchinguserid_returnsonlythatusersconfigs()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L112" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_updateasync", - "label": ".UpdateAsync()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getallactiveasync_mixedactive_returnsonlyactive", + "label": ".GetAllActiveAsync_MixedActive_ReturnsOnlyActive()", "_callable": true, "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s92" + "s129" ], "unresolved_calls": [ { - "callee": "GetCurrentInstant", - "receiver_type": "IClock", + "callee": "NewGuid", + "receiver_type": "Guid", "lang": "csharp", - "line": "L47" + "line": "L80" } ] }, - "norm_label": ".updateasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L27" + "norm_label": ".getallactiveasync_mixedactive_returnsonlyactive()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L75" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_deleteasync", - "label": ".DeleteAsync()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getallactiveasync_noneactive_returnsempty", + "label": ".GetAllActiveAsync_NoneActive_ReturnsEmpty()", "_callable": true, "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s92" + "s129" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L99" + } ] }, - "norm_label": ".deleteasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L12" + "norm_label": ".getallactiveasync_noneactive_returnsempty()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L94" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_getallasync", - "label": ".GetAllAsync()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getbyuseridasync_noconfigs_returnsempty", + "label": ".GetByUserIdAsync_NoConfigs_ReturnsEmpty()", "_callable": true, "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s92" + "s129" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L232" + } ] }, - "norm_label": ".getallasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L9" + "norm_label": ".getbyuseridasync_noconfigs_returnsempty()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L225" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_getbyidasync", - "label": ".GetByIdAsync()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_getbyuseridasync_returnsallconfigsforuser_includinginactive", + "label": ".GetByUserIdAsync_ReturnsAllConfigsForUser_IncludingInactive()", "_callable": true, "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s92" + "s129" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L209" + } ] }, - "norm_label": ".getbyidasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L10" + "norm_label": ".getbyuseridasync_returnsallconfigsforuser_includinginactive()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L204" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_updateasync", - "label": ".UpdateAsync()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_makeconfig", + "label": ".MakeConfig()", "_callable": true, "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s92" + "s129" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L19" + } ] }, - "norm_label": ".updateasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L11" + "norm_label": ".makeconfig()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L18" }, { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture_createtestee", - "label": ".CreateTestee()", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_remove_config_disappearsfromsubsequentquery", + "label": ".Remove_Config_DisappearsFromSubsequentQuery()", "_callable": true, "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.Core.Tests.Unit.Data.Repository", "scope_chain": [ - "s121" + "s129" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L246" + } ] }, - "norm_label": ".createtestee()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L21" + "norm_label": ".remove_config_disappearsfromsubsequentquery()", + "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", + "source_location": "L241" }, { "id": "src_anichron_worker_tests_unit_ingestion_livephotolinkertests_anichron_worker_tests_unit_ingestion_livephotolinkertests_link_emptydirectory_returnsemptyresult", @@ -23566,7 +23370,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -23604,7 +23408,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -23654,7 +23458,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Endpoints", @@ -23680,7 +23484,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -23718,7 +23522,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -23756,7 +23560,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -23806,7 +23610,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -23856,7 +23660,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -23906,7 +23710,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -23938,7 +23742,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -23970,7 +23774,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -24008,7 +23812,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -24046,7 +23850,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -24064,7 +23868,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -24090,7 +23894,7 @@ "_callable": true, "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Endpoints", @@ -24103,460 +23907,636 @@ "source_location": "L22" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_beginscope", - "label": ".BeginScope()", - "_callable": true, - "_origin": "ast", - "community": 5, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".beginscope()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L118" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_isenabled", - "label": ".IsEnabled()", + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_authresponsemapper_getadmincreateuserresult", + "label": ".GetAdminCreateUserResult()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Endpoints", "scope_chain": [ - "s84" + "s195" + ], + "unresolved_calls": [ + { + "callee": "UnprocessableEntity", + "receiver_type": "Results", + "lang": "csharp", + "line": "L121" + }, + { + "callee": "Conflict", + "receiver_type": "Results", + "lang": "csharp", + "line": "L123" + }, + { + "callee": "Created", + "receiver_type": "Results", + "lang": "csharp", + "line": "L131" + } ] }, - "norm_label": ".isenabled()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L117" + "norm_label": ".getadmincreateuserresult()", + "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", + "source_location": "L115" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_log", - "label": ".Log()", + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_authresponsemapper_getadminresetpasswordresult", + "label": ".GetAdminResetPasswordResult()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Endpoints", "scope_chain": [ - "s84" + "s195" ], "unresolved_calls": [ { - "callee": "Add", - "receiver_type": "List", + "callee": "NotFound", + "receiver_type": "Results", "lang": "csharp", - "line": "L115" + "line": "L137" + }, + { + "callee": "Ok", + "receiver_type": "Results", + "lang": "csharp", + "line": "L138" } ] }, - "norm_label": ".log()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L114" + "norm_label": ".getadminresetpasswordresult()", + "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", + "source_location": "L135" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_fakehttpmessagehandler_sendasync", - "label": ".SendAsync()", + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmincreateuserresult", + "label": ".GetAdminCreateUserResult()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Endpoints", "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "FromResult", - "receiver_type": "Task", - "lang": "csharp", - "line": "L100" - } + "s195" ] }, - "norm_label": ".sendasync()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L99" + "norm_label": ".getadmincreateuserresult()", + "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", + "source_location": "L16" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_httpclientthrows_logswarning", - "label": ".IsPwnedAsync_HttpClientThrows_LogsWarning()", + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadminresetpasswordresult", + "label": ".GetAdminResetPasswordResult()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Endpoints", "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "Multiple", - "receiver_type": "Assert", - "lang": "csharp", - "line": "L63" - } + "s195" ] }, - "norm_label": ".ispwnedasync_httpclientthrows_logswarning()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L55" + "norm_label": ".getadminresetpasswordresult()", + "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", + "source_location": "L17" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_httpclientthrows_returnsfalse", - "label": ".IsPwnedAsync_HttpClientThrows_ReturnsFalse()", + "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminresetservice_resetuserpasswordasync", + "label": ".ResetUserPasswordAsync()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s84" + "s129" + ], + "unresolved_calls": [ + { + "callee": "ToBase64String", + "receiver_type": "Convert", + "lang": "csharp", + "line": "L28" + }, + { + "callee": "GetBytes", + "receiver_type": "RandomNumberGenerator", + "lang": "csharp", + "line": "L28" + }, + { + "callee": "GetCurrentInstant", + "receiver_type": "IClock", + "lang": "csharp", + "line": "L31" + } ] }, - "norm_label": ".ispwnedasync_httpclientthrows_returnsfalse()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L43" + "norm_label": ".resetuserpasswordasync()", + "source_file": "src/Anichron.API/Services/AdminResetService.cs", + "source_location": "L22" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_passwordhashfoundinresponse_returnstrue", - "label": ".IsPwnedAsync_PasswordHashFoundInResponse_ReturnsTrue()", + "id": "src_anichron_api_services_adminresetservice_anichron_api_services_iadminresetservice_resetuserpasswordasync", + "label": ".ResetUserPasswordAsync()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s84" + "s129" ] }, - "norm_label": ".ispwnedasync_passwordhashfoundinresponse_returnstrue()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "norm_label": ".resetuserpasswordasync()", + "source_file": "src/Anichron.API/Services/AdminResetService.cs", "source_location": "L12" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_passwordhashnotfoundinresponse_returnsfalse", - "label": ".IsPwnedAsync_PasswordHashNotFoundInResponse_ReturnsFalse()", + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_createuserasync_callsmapperwithserviceresult", + "label": ".CreateUserAsync_CallsMapperWithServiceResult()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Tests.Unit.Endpoints", "scope_chain": [ - "s84" + "s93" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L18" + }, + { + "callee": "Created", + "receiver_type": "Results", + "lang": "csharp", + "line": "L20" + }, + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L21" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L23" + } ] }, - "norm_label": ".ispwnedasync_passwordhashnotfoundinresponse_returnsfalse()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L28" + "norm_label": ".createuserasync_callsmapperwithserviceresult()", + "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", + "source_location": "L15" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_createtestee", - "label": ".CreateTestee()", + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_createuserasync_callsservicewithrequestvalues", + "label": ".CreateUserAsync_CallsServiceWithRequestValues()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Tests.Unit.Endpoints", "scope_chain": [ - "s84" + "s93" + ], + "unresolved_calls": [ + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L36" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L38" + }, + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L39" + }, + { + "callee": "Created", + "receiver_type": "Results", + "lang": "csharp", + "line": "L41" + } ] }, - "norm_label": ".createtestee()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L88" + "norm_label": ".createuserasync_callsservicewithrequestvalues()", + "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", + "source_location": "L33" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_dispose", - "label": ".Dispose()", + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_resetuserpasswordasync_callsservicewithuseridandpassesresulttomapper", + "label": ".ResetUserPasswordAsync_CallsServiceWithUserIdAndPassesResultToMapper()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Tests.Unit.Endpoints", "scope_chain": [ - "s84" + "s93" ], "unresolved_calls": [ { - "callee": "Dispose", - "receiver_type": "HttpMessageHandler", + "callee": "NewGuid", + "receiver_type": "Guid", "lang": "csharp", - "line": "L94" + "line": "L56" + }, + { + "callee": "Ok", + "receiver_type": "Results", + "lang": "csharp", + "line": "L58" + }, + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L59" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L61" } ] }, - "norm_label": ".dispose()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L94" + "norm_label": ".resetuserpasswordasync_callsservicewithuseridandpassesresulttomapper()", + "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", + "source_location": "L53" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_withhttpresponsebody", - "label": ".WithHttpResponseBody()", + "id": "src_anichron_api_tests_unit_endpoints_authresponsemappertests_anichron_api_tests_unit_endpoints_authresponsemappertests_getadmincreateuserresult_success_returns201withlocationandbody", + "label": ".GetAdminCreateUserResult_Success_Returns201WithLocationAndBody()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Tests.Unit.Endpoints", "scope_chain": [ - "s84" + "s208" ], "unresolved_calls": [ { - "callee": "Dispose", - "receiver_type": "HttpMessageHandler", + "callee": "NewGuid", + "receiver_type": "Guid", "lang": "csharp", - "line": "L76" + "line": "L458" } ] }, - "norm_label": ".withhttpresponsebody()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L74" + "norm_label": ".getadmincreateuserresult_success_returns201withlocationandbody()", + "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", + "source_location": "L455" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_withhttpthrowing", - "label": ".WithHttpThrowing()", + "id": "src_anichron_api_tests_unit_services_adminresetservicetests_anichron_api_tests_unit_services_testfixture_createtestee", + "label": ".CreateTestee()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "Dispose", - "receiver_type": "HttpMessageHandler", - "lang": "csharp", - "line": "L83" - } + "s150" ] }, - "norm_label": ".withhttpthrowing()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L81" + "norm_label": ".createtestee()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminResetServiceTests.cs", + "source_location": "L28" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_throwinghttpmessagehandler_sendasync", - "label": ".SendAsync()", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_addasync_pathalreadyassigned_returnspathalreadyassigned", + "label": ".AddAsync_PathAlreadyAssigned_ReturnsPathAlreadyAssigned()", "_callable": true, "_origin": "ast", - "community": 5, + "community": 50, "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" + "s121" ], "unresolved_calls": [ { - "callee": "FromException", - "receiver_type": "Task", + "callee": "NewGuid", + "receiver_type": "Guid", "lang": "csharp", - "line": "L106" + "line": "L94" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L95" } ] }, - "norm_label": ".sendasync()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L105" + "norm_label": ".addasync_pathalreadyassigned_returnspathalreadyassigned()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L90" }, { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_islockedout", - "label": ".IsLockedOut()", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_addasync_usernotfound_returnsusernotfound", + "label": ".AddAsync_UserNotFound_ReturnsUserNotFound()", "_callable": true, "_origin": "ast", "community": 50, - "community_name": "LockoutService", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" + "s121" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L79" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L80" + } ] }, - "norm_label": ".islockedout()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L9" + "norm_label": ".addasync_usernotfound_returnsusernotfound()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L75" }, { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_preparereset", - "label": ".PrepareReset()", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_addasync_validinput_addsconfigandsaves", + "label": ".AddAsync_ValidInput_AddsConfigAndSaves()", "_callable": true, "_origin": "ast", "community": 50, - "community_name": "LockoutService", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" + "s121" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L111" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L113" + }, + { + "callee": "Is", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L125" + } ] }, - "norm_label": ".preparereset()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L12" + "norm_label": ".addasync_validinput_addsconfigandsaves()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L107" }, { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_recordfailedattemptasync", - "label": ".RecordFailedAttemptAsync()", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_addasync_whitespacerootpath_returnspathinvalid", + "label": ".AddAsync_WhitespaceRootPath_ReturnsPathInvalid()", "_callable": true, "_origin": "ast", "community": 50, - "community_name": "LockoutService", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" + "s121" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L67" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L71" + } ] }, - "norm_label": ".recordfailedattemptasync()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L10" + "norm_label": ".addasync_whitespacerootpath_returnspathinvalid()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L60" }, { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_computebackoffseconds", - "label": ".ComputeBackoffSeconds()", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_deleteasync_configbelongstodifferentuser_returnsstorageconfignotfound", + "label": ".DeleteAsync_ConfigBelongsToDifferentUser_ReturnsStorageConfigNotFound()", "_callable": true, "_origin": "ast", "community": 50, - "community_name": "LockoutService", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" + "s121" ], "unresolved_calls": [ { - "callee": "Pow", - "receiver_type": "Math", + "callee": "NewGuid", + "receiver_type": "Guid", "lang": "csharp", - "line": "L39" + "line": "L153" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L156" } ] }, - "norm_label": ".computebackoffseconds()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L35" + "norm_label": ".deleteasync_configbelongstodifferentuser_returnsstorageconfignotfound()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L149" }, { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_islockedout", - "label": ".IsLockedOut()", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_deleteasync_confignotfound_returnsstorageconfignotfound", + "label": ".DeleteAsync_ConfigNotFound_ReturnsStorageConfigNotFound()", "_callable": true, "_origin": "ast", "community": 50, - "community_name": "LockoutService", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" + "s121" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L137" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L139" + } ] }, - "norm_label": ".islockedout()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L17" + "norm_label": ".deleteasync_confignotfound_returnsstorageconfignotfound()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L133" }, { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_preparereset", - "label": ".PrepareReset()", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_deleteasync_validinput_removesconfigandsaves", + "label": ".DeleteAsync_ValidInput_RemovesConfigAndSaves()", "_callable": true, "_origin": "ast", "community": 50, - "community_name": "LockoutService", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" + "s121" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L170" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L173" + } ] }, - "norm_label": ".preparereset()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L29" + "norm_label": ".deleteasync_validinput_removesconfigandsaves()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L166" }, { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_recordfailedattemptasync", - "label": ".RecordFailedAttemptAsync()", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_getbyuseridasync_userexists_returnsconfigs", + "label": ".GetByUserIdAsync_UserExists_ReturnsConfigs()", "_callable": true, "_origin": "ast", "community": 50, - "community_name": "LockoutService", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" + "s121" ], "unresolved_calls": [ { - "callee": "Plus", - "receiver_type": "Instant", + "callee": "NewGuid", + "receiver_type": "Guid", "lang": "csharp", - "line": "L25" + "line": "L42" }, { - "callee": "FromSeconds", - "receiver_type": "Duration", + "callee": "Any", + "receiver_type": "Arg", "lang": "csharp", - "line": "L25" + "line": "L43" } ] }, - "norm_label": ".recordfailedattemptasync()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L20" + "norm_label": ".getbyuseridasync_userexists_returnsconfigs()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L38" }, { - "id": "src_anichron_api_tests_unit_services_lockoutservicetests_anichron_api_tests_unit_services_lockoutservicetests_computebackoffseconds_returnsexpectedseconds", - "label": ".ComputeBackoffSeconds_ReturnsExpectedSeconds()", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_getbyuseridasync_usernotfound_returnsusernotfound", + "label": ".GetByUserIdAsync_UserNotFound_ReturnsUserNotFound()", "_callable": true, "_origin": "ast", "community": 50, - "community_name": "LockoutService", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" + "s121" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L28" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L29" + } ] }, - "norm_label": ".computebackoffseconds_returnsexpectedseconds()", - "source_file": "src/Anichron.API.Tests.Unit/Services/LockoutServiceTests.cs", - "source_location": "L154" + "norm_label": ".getbyuseridasync_usernotfound_returnsusernotfound()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L24" }, { "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_anichron_worker_ingestion_middlewares_log_proxiesgenerated", @@ -24594,68 +24574,6 @@ "source_file": "src/Anichron.Worker/Ingestion/Middlewares/VideoProxyMiddleware.cs", "source_location": "L14" }, - { - "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_anichron_worker_ingestion_middlewares_videoproxymiddleware_invokeasync", - "label": ".InvokeAsync()", - "_callable": true, - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Middlewares", - "scope_chain": [ - "s110" - ], - "unresolved_calls": [ - { - "callee": "ToArray", - "receiver_type": "IEnumerable", - "lang": "csharp", - "line": "L23" - } - ] - }, - "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/VideoProxyMiddleware.cs", - "source_location": "L17" - }, - { - "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_ivideoproxygenerator_transcodeasync", - "label": ".TranscodeAsync()", - "_callable": true, - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", - "scope_chain": [ - "s29" - ] - }, - "norm_label": ".transcodeasync()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", - "source_location": "L9" - }, - { - "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_video720pgenerator_transcodeasync", - "label": ".TranscodeAsync()", - "_callable": true, - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", - "scope_chain": [ - "s29" - ] - }, - "norm_label": ".transcodeasync()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", - "source_location": "L17" - }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_videoproxymiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_testfixture_build", "label": ".Build()", @@ -25194,84 +25112,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/VideoProxyMiddlewareTests.cs", "source_location": "L74" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_video720pgenerator_filename_isvideo720pmp4", - "label": ".Video720PGenerator_FileName_IsVideo720pMp4()", - "_callable": true, - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", - "scope_chain": [ - "s68" - ], - "unresolved_calls": [ - { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L15" - } - ] - }, - "norm_label": ".video720pgenerator_filename_isvideo720pmp4()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", - "source_location": "L12" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_video720pgenerator_proxytype_iswebvideo", - "label": ".Video720PGenerator_ProxyType_IsWebVideo()", - "_callable": true, - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", - "scope_chain": [ - "s68" - ], - "unresolved_calls": [ - { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L23" - } - ] - }, - "norm_label": ".video720pgenerator_proxytype_iswebvideo()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", - "source_location": "L20" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_video720pgenerator_transcodeasync_delegatestovideoprocessorasync", - "label": ".Video720PGenerator_TranscodeAsync_DelegatesToVideoProcessorAsync()", - "_callable": true, - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", - "scope_chain": [ - "s68" - ], - "unresolved_calls": [ - { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L31" - } - ] - }, - "norm_label": ".video720pgenerator_transcodeasync_delegatestovideoprocessorasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", - "source_location": "L28" - }, { "id": "src_anichron_api_infrastructure_healthcheckresponsewriter_anichron_api_infrastructure_healthcheckresponsewriter_writeresponseasync", "label": ".WriteResponseAsync()", @@ -26316,7 +26156,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Middlewares", @@ -26334,7 +26174,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -26360,7 +26200,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -26378,7 +26218,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -26396,7 +26236,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -26422,7 +26262,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -26440,7 +26280,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -26461,66 +26301,266 @@ "source_location": "L11" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_beginscope", - "label": ".BeginScope()", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture_build", + "label": ".Build()", "_callable": true, "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Maintenance", + "namespace": "Anichron.Worker.Tests.Unit.Startup", "scope_chain": [ - "s241" + "s307" + ], + "unresolved_calls": [ + { + "callee": "Create", + "receiver_type": "Options", + "lang": "csharp", + "line": "L40" + }, + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L43" + } ] }, - "norm_label": ".beginscope()", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L97" + "norm_label": ".build()", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L38" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_isenabled", - "label": ".IsEnabled()", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_credentialnormalized_trimsandlowercasesasync", + "label": ".StartAsync_CredentialNormalized_TrimsAndLowercasesAsync()", "_callable": true, "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Maintenance", + "namespace": "Anichron.Worker.Tests.Unit.Startup", "scope_chain": [ - "s241" + "s307" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L105" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L106" + } ] }, - "norm_label": ".isenabled()", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L96" + "norm_label": ".startasync_credentialnormalized_trimsandlowercasesasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L100" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_log", - "label": ".Log()", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_existingconfigdifferentuser_throwsinvalidoperationexceptionwithrootpathinmessageasync", + "label": ".StartAsync_ExistingConfigDifferentUser_ThrowsInvalidOperationExceptionWithRootPathInMessageAsync()", "_callable": true, "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Maintenance", + "namespace": "Anichron.Worker.Tests.Unit.Startup", "scope_chain": [ - "s241" + "s307" ], "unresolved_calls": [ { - "callee": "Add", - "receiver_type": "List", + "callee": "NewGuid", + "receiver_type": "Guid", "lang": "csharp", - "line": "L94" + "line": "L150" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L152" } ] }, - "norm_label": ".log()", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L93" + "norm_label": ".startasync_existingconfigdifferentuser_throwsinvalidoperationexceptionwithrootpathinmessageasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L145" + }, + { + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_existingconfigsameuser_skipssaveandsetsresolveduseridasync", + "label": ".StartAsync_ExistingConfigSameUser_SkipsSaveAndSetsResolvedUserIdAsync()", + "_callable": true, + "_origin": "ast", + "community": 68, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Startup", + "scope_chain": [ + "s307" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L128" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L130" + } + ] + }, + "norm_label": ".startasync_existingconfigsameuser_skipssaveandsetsresolveduseridasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L123" + }, + { + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_noexistingconfig_createsstorageconfigwithcorrectfieldsandsetsresolveduseridasync", + "label": ".StartAsync_NoExistingConfig_CreatesStorageConfigWithCorrectFieldsAndSetsResolvedUserIdAsync()", + "_callable": true, + "_origin": "ast", + "community": 68, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Startup", + "scope_chain": [ + "s307" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L171" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L172" + }, + { + "callee": "Is", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L180" + } + ] + }, + "norm_label": ".startasync_noexistingconfig_createsstorageconfigwithcorrectfieldsandsetsresolveduseridasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L166" + }, + { + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_unknownuser_throwsinvalidoperationexceptionwithuserinmessageasync", + "label": ".StartAsync_UnknownUser_ThrowsInvalidOperationExceptionWithUserInMessageAsync()", + "_callable": true, + "_origin": "ast", + "community": 68, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Startup", + "scope_chain": [ + "s307" + ], + "unresolved_calls": [ + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L86" + } + ] + }, + "norm_label": ".startasync_unknownuser_throwsinvalidoperationexceptionwithuserinmessageasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L81" + }, + { + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_userisempty_logsallusermodeandmakesnodbcallsasync", + "label": ".StartAsync_UserIsEmpty_LogsAllUserModeAndMakesNoDbCallsAsync()", + "_callable": true, + "_origin": "ast", + "community": 68, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Startup", + "scope_chain": [ + "s307" + ], + "unresolved_calls": [ + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L59" + } + ] + }, + "norm_label": ".startasync_userisempty_logsallusermodeandmakesnodbcallsasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L50" + }, + { + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_startasync_useriswhitespace_logsallusermodeandmakesnodbcallsasync", + "label": ".StartAsync_UserIsWhitespace_LogsAllUserModeAndMakesNoDbCallsAsync()", + "_callable": true, + "_origin": "ast", + "community": 68, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Startup", + "scope_chain": [ + "s307" + ], + "unresolved_calls": [ + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L73" + } + ] + }, + "norm_label": ".startasync_useriswhitespace_logsallusermodeandmakesnodbcallsasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L64" + }, + { + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_workerinitializertests_stopasync_alwayscompletessuccessfullyasync", + "label": ".StopAsync_AlwaysCompletesSuccessfullyAsync()", + "_callable": true, + "_origin": "ast", + "community": 68, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Startup", + "scope_chain": [ + "s307" + ] + }, + "norm_label": ".stopasync_alwayscompletessuccessfullyasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L192" }, { "id": "src_anichron_api_tests_unit_services_tokenservicetests_anichron_api_tests_unit_services_testfixture_captureaddedtoken", @@ -27120,360 +27160,6 @@ "source_file": "src/Anichron.API.Tests.Unit/Services/TokenServiceTests.cs", "source_location": "L255" }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_add", - "label": ".Add()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".add()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L23" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_deleteexpiredasync", - "label": ".DeleteExpiredAsync()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".deleteexpiredasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L31" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_findbyhashasync", - "label": ".FindByHashAsync()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".findbyhashasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L20" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_findbyhashwithuserasync", - "label": ".FindByHashWithUserAsync()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".findbyhashwithuserasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L17" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_revokeallactivebyuseridasync", - "label": ".RevokeAllActiveByUserIdAsync()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".revokeallactivebyuseridasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L26" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_add", - "label": ".Add()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".add()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L10" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_deleteexpiredasync", - "label": ".DeleteExpiredAsync()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".deleteexpiredasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L12" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_findbyhashasync", - "label": ".FindByHashAsync()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".findbyhashasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L9" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_findbyhashwithuserasync", - "label": ".FindByHashWithUserAsync()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".findbyhashwithuserasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L8" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_revokeallactivebyuseridasync", - "label": ".RevokeAllActiveByUserIdAsync()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".revokeallactivebyuseridasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L11" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_add_addstokentocontext", - "label": ".Add_AddsTokenToContext()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", - "scope_chain": [ - "s145" - ] - }, - "norm_label": ".add_addstokentocontext()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", - "source_location": "L105" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_createdb", - "label": ".CreateDb()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", - "scope_chain": [ - "s145" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L16" - } - ] - }, - "norm_label": ".createdb()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", - "source_location": "L13" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_findbyhashasync_knownhash_returnstoken", - "label": ".FindByHashAsync_KnownHash_ReturnsToken()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", - "scope_chain": [ - "s145" - ] - }, - "norm_label": ".findbyhashasync_knownhash_returnstoken()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", - "source_location": "L72" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_findbyhashasync_unknownhash_returnsnull", - "label": ".FindByHashAsync_UnknownHash_ReturnsNull()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", - "scope_chain": [ - "s145" - ] - }, - "norm_label": ".findbyhashasync_unknownhash_returnsnull()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", - "source_location": "L90" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_findbyhashwithuserasync_knownhash_returnstokenwithuserloaded", - "label": ".FindByHashWithUserAsync_KnownHash_ReturnsTokenWithUserLoaded()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", - "scope_chain": [ - "s145" - ] - }, - "norm_label": ".findbyhashwithuserasync_knownhash_returnstokenwithuserloaded()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", - "source_location": "L39" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_findbyhashwithuserasync_unknownhash_returnsnull", - "label": ".FindByHashWithUserAsync_UnknownHash_ReturnsNull()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", - "scope_chain": [ - "s145" - ] - }, - "norm_label": ".findbyhashwithuserasync_unknownhash_returnsnull()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", - "source_location": "L57" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_maketoken", - "label": ".MakeToken()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", - "scope_chain": [ - "s145" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L27" - }, - { - "callee": "FromDays", - "receiver_type": "Duration", - "lang": "csharp", - "line": "L31" - } - ] - }, - "norm_label": ".maketoken()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", - "source_location": "L24" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_makeuser", - "label": ".MakeUser()", - "_callable": true, - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Tests.Unit.Data.Repository", - "scope_chain": [ - "s145" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L22" - } - ] - }, - "norm_label": ".makeuser()", - "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", - "source_location": "L21" - }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_idempotencycheckmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_idempotencycheckmiddlewaretests_invokeasync_knownhash_doesnotcallnextasync", "label": ".InvokeAsync_KnownHash_DoesNotCallNextAsync()", @@ -27664,58 +27350,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/IdempotencyCheckMiddlewareTests.cs", "source_location": "L16" }, - { - "id": "src_anichron_worker_ingestion_pipeline_ingestioncontext_anichron_worker_ingestion_pipeline_ingestioncontext_addproxyfile", - "label": ".AddProxyFile()", - "_callable": true, - "_origin": "ast", - "community": 72, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Pipeline", - "scope_chain": [ - "s29" - ], - "unresolved_calls": [ - { - "callee": "Add", - "receiver_type": "List", - "lang": "csharp", - "line": "L35" - } - ] - }, - "norm_label": ".addproxyfile()", - "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IngestionContext.cs", - "source_location": "L32" - }, - { - "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_anichron_worker_ingestion_proxy_proxyfilebuilder_build", - "label": ".Build()", - "_callable": true, - "_origin": "ast", - "community": 72, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", - "scope_chain": [ - "s108" - ], - "unresolved_calls": [ - { - "callee": "GetCurrentInstant", - "receiver_type": "IClock", - "lang": "csharp", - "line": "L24" - } - ] - }, - "norm_label": ".build()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyFileBuilder.cs", - "source_location": "L10" - }, { "id": "src_anichron_worker_ingestion_proxy_proxystagingwriter_anichron_worker_ingestion_proxy_log_discardfailed", "label": ".DiscardFailed()", @@ -28240,6 +27874,296 @@ "source_file": "src/Anichron.API/Services/PwnedPasswordClient.cs", "source_location": "L13" }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_beginscope", + "label": ".BeginScope()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".beginscope()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L118" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_isenabled", + "label": ".IsEnabled()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".isenabled()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L117" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_log", + "label": ".Log()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ], + "unresolved_calls": [ + { + "callee": "Add", + "receiver_type": "List", + "lang": "csharp", + "line": "L115" + } + ] + }, + "norm_label": ".log()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L114" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_fakehttpmessagehandler_sendasync", + "label": ".SendAsync()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ], + "unresolved_calls": [ + { + "callee": "FromResult", + "receiver_type": "Task", + "lang": "csharp", + "line": "L100" + } + ] + }, + "norm_label": ".sendasync()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L99" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_httpclientthrows_logswarning", + "label": ".IsPwnedAsync_HttpClientThrows_LogsWarning()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ], + "unresolved_calls": [ + { + "callee": "Multiple", + "receiver_type": "Assert", + "lang": "csharp", + "line": "L63" + } + ] + }, + "norm_label": ".ispwnedasync_httpclientthrows_logswarning()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L55" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_httpclientthrows_returnsfalse", + "label": ".IsPwnedAsync_HttpClientThrows_ReturnsFalse()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".ispwnedasync_httpclientthrows_returnsfalse()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L43" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_passwordhashfoundinresponse_returnstrue", + "label": ".IsPwnedAsync_PasswordHashFoundInResponse_ReturnsTrue()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".ispwnedasync_passwordhashfoundinresponse_returnstrue()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L12" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_passwordhashnotfoundinresponse_returnsfalse", + "label": ".IsPwnedAsync_PasswordHashNotFoundInResponse_ReturnsFalse()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".ispwnedasync_passwordhashnotfoundinresponse_returnsfalse()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L28" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_createtestee", + "label": ".CreateTestee()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".createtestee()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L88" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_dispose", + "label": ".Dispose()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ], + "unresolved_calls": [ + { + "callee": "Dispose", + "receiver_type": "HttpMessageHandler", + "lang": "csharp", + "line": "L94" + } + ] + }, + "norm_label": ".dispose()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L94" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_withhttpresponsebody", + "label": ".WithHttpResponseBody()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ], + "unresolved_calls": [ + { + "callee": "Dispose", + "receiver_type": "HttpMessageHandler", + "lang": "csharp", + "line": "L76" + } + ] + }, + "norm_label": ".withhttpresponsebody()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L74" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_withhttpthrowing", + "label": ".WithHttpThrowing()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ], + "unresolved_calls": [ + { + "callee": "Dispose", + "receiver_type": "HttpMessageHandler", + "lang": "csharp", + "line": "L83" + } + ] + }, + "norm_label": ".withhttpthrowing()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L81" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_throwinghttpmessagehandler_sendasync", + "label": ".SendAsync()", + "_callable": true, + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ], + "unresolved_calls": [ + { + "callee": "FromException", + "receiver_type": "Task", + "lang": "csharp", + "line": "L106" + } + ] + }, + "norm_label": ".sendasync()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L105" + }, { "id": "src_anichron_api_tests_unit_services_registrationvalidatortests_anichron_api_tests_unit_services_registrationvalidatortests_validateasync_allinputsvalid_returnsnull", "label": ".ValidateAsync_AllInputsValid_ReturnsNull()", @@ -28772,6 +28696,42 @@ "source_file": "src/Anichron.Infrastructure/Data/DatabaseFacadeExtensions.cs", "source_location": "L21" }, + { + "id": "src_anichron_worker_startup_idatabasemigrator_anichron_worker_startup_efdatabasemigrator_migrateasync", + "label": ".MigrateAsync()", + "_callable": true, + "_origin": "ast", + "community": 74, + "community_name": "Anichron.Infrastructure.Data", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Startup", + "scope_chain": [ + "s63" + ] + }, + "norm_label": ".migrateasync()", + "source_file": "src/Anichron.Worker/Startup/IDatabaseMigrator.cs", + "source_location": "L13" + }, + { + "id": "src_anichron_worker_startup_idatabasemigrator_anichron_worker_startup_idatabasemigrator_migrateasync", + "label": ".MigrateAsync()", + "_callable": true, + "_origin": "ast", + "community": 74, + "community_name": "Anichron.Infrastructure.Data", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Startup", + "scope_chain": [ + "s63" + ] + }, + "norm_label": ".migrateasync()", + "source_file": "src/Anichron.Worker/Startup/IDatabaseMigrator.cs", + "source_location": "L8" + }, { "id": "src_anichron_worker_ingestion_pipeline_ingestionpipelinebuilder_anichron_worker_ingestion_pipeline_ingestionpipelinebuilder_build", "label": ".Build()", @@ -29106,6 +29066,78 @@ "source_file": "src/Anichron.Core/Data/Repository/InviteRepository.cs", "source_location": "L8" }, + { + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository_add", + "label": ".Add()", + "_callable": true, + "_origin": "ast", + "community": 79, + "community_name": "MediaAsset", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L18" + }, + { + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository_findbyhashasync", + "label": ".FindByHashAsync()", + "_callable": true, + "_origin": "ast", + "community": 79, + "community_name": "MediaAsset", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".findbyhashasync()", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L14" + }, + { + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository_add", + "label": ".Add()", + "_callable": true, + "_origin": "ast", + "community": 79, + "community_name": "MediaAsset", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L9" + }, + { + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository_findbyhashasync", + "label": ".FindByHashAsync()", + "_callable": true, + "_origin": "ast", + "community": 79, + "community_name": "MediaAsset", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".findbyhashasync()", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L8" + }, { "id": "src_anichron_api_infrastructure_applicationextensions_anichron_api_infrastructure_log_databasenotready", "label": ".DatabaseNotReady()", @@ -30138,17 +30170,6 @@ "source_file": "src/Anichron.API/Services/AuthError.cs", "source_location": "L19" }, - { - "id": "src_anichron_api_services_registrationvalidator", - "label": "RegistrationValidator.cs", - "_origin": "ast", - "community": 0, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "registrationvalidator.cs", - "source_file": "src/Anichron.API/Services/RegistrationValidator.cs", - "source_location": "L1" - }, { "id": "src_anichron_api_services_registrationvalidator_cs_cancellationtoken", "label": "CancellationToken", @@ -30347,91 +30368,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy_checkpwnedpasswords", - "label": "CheckPwnedPasswords", - "_origin": "ast", - "community": 1, - "community_name": "AuthResponseMapperTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "checkpwnedpasswords", - "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", - "source_location": "L7" - }, - { - "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy_maxlength", - "label": "MaxLength", - "_origin": "ast", - "community": 1, - "community_name": "AuthResponseMapperTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "maxlength", - "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", - "source_location": "L6" - }, - { - "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy_minlength", - "label": "MinLength", - "_origin": "ast", - "community": 1, - "community_name": "AuthResponseMapperTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "minlength", - "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", - "source_location": "L5" - }, - { - "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy_toolongmessage", - "label": "TooLongMessage", - "_origin": "ast", - "community": 1, - "community_name": "AuthResponseMapperTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "toolongmessage", - "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", - "source_location": "L10" - }, - { - "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy_tooshortmessage", - "label": "TooShortMessage", - "_origin": "ast", - "community": 1, - "community_name": "AuthResponseMapperTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "tooshortmessage", - "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", - "source_location": "L9" - }, { "id": "src_anichron_api_tests_unit_endpoints_authresponsemappertests_cs_defaulthttpcontext", "label": "DefaultHttpContext", @@ -30586,83 +30522,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_api_services_bootstrapseeder_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_cs_exception", - "label": "Exception", - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "exception", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_cs_iconfiguration", - "label": "IConfiguration", - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "iconfiguration", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_cs_iguidfactory", - "label": "IGuidFactory", - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "iguidfactory", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_cs_ilogger", - "label": "ILogger", - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "ilogger", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_cs_loggermessage", - "label": "LoggerMessage", - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "loggermessage", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_cs_task", - "label": "Task", - "_origin": "ast", - "community": 10, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_testfixture_unitofwork", "label": "UnitOfWork", @@ -32848,81 +32707,208 @@ "source_location": "L211" }, { - "id": "semaphoreslim", - "label": "SemaphoreSlim", + "id": "src_anichron_api_services_tokenservice_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", "community": 108, - "community_name": "FfmpegVideoProcessor", + "community_name": "TokenService", "file_type": "code", - "norm_label": "semaphoreslim", + "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_cs_cancellationtoken", - "label": "CancellationToken", + "id": "src_anichron_api_services_tokenservice_cs_guid", + "label": "Guid", "_origin": "ast", "community": 108, - "community_name": "FfmpegVideoProcessor", + "community_name": "TokenService", + "file_type": "code", + "norm_label": "guid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_tokenservice_cs_iclock", + "label": "IClock", + "_origin": "ast", + "community": 108, + "community_name": "TokenService", + "file_type": "code", + "norm_label": "iclock", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_tokenservice_cs_iguidfactory", + "label": "IGuidFactory", + "_origin": "ast", + "community": 108, + "community_name": "TokenService", + "file_type": "code", + "norm_label": "iguidfactory", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_tokenservice_cs_instant", + "label": "Instant", + "_origin": "ast", + "community": 108, + "community_name": "TokenService", + "file_type": "code", + "norm_label": "instant", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_tokenservice_cs_ioptions", + "label": "IOptions", + "_origin": "ast", + "community": 108, + "community_name": "TokenService", + "file_type": "code", + "norm_label": "ioptions", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_tokenservice_cs_task", + "label": "Task", + "_origin": "ast", + "community": 108, + "community_name": "TokenService", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, + { + "id": "backgroundservice", + "label": "BackgroundService", + "_origin": "ast", + "community": 109, + "community_name": "Worker", + "file_type": "code", + "norm_label": "backgroundservice", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_crawling_worker_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 109, + "community_name": "Worker", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_cs_ilogger", + "id": "src_anichron_worker_crawling_worker_cs_guid", + "label": "Guid", + "_origin": "ast", + "community": 109, + "community_name": "Worker", + "file_type": "code", + "norm_label": "guid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_crawling_worker_cs_ilogger", "label": "ILogger", "_origin": "ast", - "community": 108, - "community_name": "FfmpegVideoProcessor", + "community": 109, + "community_name": "Worker", "file_type": "code", "norm_label": "ilogger", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_cs_ioptions", + "id": "src_anichron_worker_crawling_worker_cs_ioptions", "label": "IOptions", "_origin": "ast", - "community": 108, - "community_name": "FfmpegVideoProcessor", + "community": 109, + "community_name": "Worker", "file_type": "code", "norm_label": "ioptions", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_cs_loggermessage", + "id": "src_anichron_worker_crawling_worker_cs_iservicescopefactory", + "label": "IServiceScopeFactory", + "_origin": "ast", + "community": 109, + "community_name": "Worker", + "file_type": "code", + "norm_label": "iservicescopefactory", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_crawling_worker_cs_loggermessage", "label": "LoggerMessage", "_origin": "ast", - "community": 108, - "community_name": "FfmpegVideoProcessor", + "community": 109, + "community_name": "Worker", "file_type": "code", "norm_label": "loggermessage", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor_cs_task", + "id": "src_anichron_worker_crawling_worker_cs_task", "label": "Task", "_origin": "ast", - "community": 108, - "community_name": "FfmpegVideoProcessor", + "community": 109, + "community_name": "Worker", "file_type": "code", "norm_label": "task", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_settings_workerdefaults", - "label": "WorkerDefaults.cs", + "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_ilogger", + "label": "ILogger", "_origin": "ast", "community": 109, - "community_name": "WorkerDefaults.cs", + "community_name": "Worker", "file_type": "code", - "norm_label": "workerdefaults.cs", - "source_file": "src/Anichron.Worker/Settings/WorkerDefaults.cs", - "source_location": "L1" + "norm_label": "ilogger", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_exifdata_anichron_worker_ingestion_exifdata_empty", + "label": "Empty", + "_origin": "ast", + "community": 11, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s17" + ] + }, + "norm_label": "empty", + "source_file": "src/Anichron.Worker/Ingestion/ExifData.cs", + "source_location": "L17" + }, + { + "id": "src_anichron_worker_ingestion_exifdata_cs_localdatetime", + "label": "LocalDateTime", + "_origin": "ast", + "community": 11, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "localdatetime", + "source_file": "", + "source_location": "" }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_persistencemiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_testfixture_clock", @@ -34520,6 +34506,28 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_settings_workersettingsvalidatortests_cs_ireadonlylist", + "label": "IReadOnlyList", + "_origin": "ast", + "community": 117, + "community_name": "WorkerSettingsValidatorTests", + "file_type": "code", + "norm_label": "ireadonlylist", + "source_file": "", + "source_location": "" + }, + { + "id": "validationresult", + "label": "ValidationResult", + "_origin": "ast", + "community": 117, + "community_name": "WorkerSettingsValidatorTests", + "file_type": "code", + "norm_label": "validationresult", + "source_file": "", + "source_location": "" + }, { "id": "csharp_namespace:0f69f014f0e3a3cd", "label": "Anichron.API.Tests.Unit", @@ -34779,51 +34787,7 @@ "source_location": "" }, { - "id": "src_anichron_api_services_adminresetservice_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_adminresetservice_cs_guid", - "label": "Guid", - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "norm_label": "guid", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_adminresetservice_cs_iclock", - "label": "IClock", - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "norm_label": "iclock", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_adminresetservice_cs_task", - "label": "Task", - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_authservice_cs_cancellationtoken", + "id": "src_anichron_api_services_adminuserservice_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 12, @@ -34834,7 +34798,7 @@ "source_location": "" }, { - "id": "src_anichron_api_services_authservice_cs_guid", + "id": "src_anichron_api_services_adminuserservice_cs_guid", "label": "Guid", "_origin": "ast", "community": 12, @@ -34845,7 +34809,7 @@ "source_location": "" }, { - "id": "src_anichron_api_services_authservice_cs_iclock", + "id": "src_anichron_api_services_adminuserservice_cs_iclock", "label": "IClock", "_origin": "ast", "community": 12, @@ -34856,18 +34820,18 @@ "source_location": "" }, { - "id": "src_anichron_api_services_authservice_cs_iguidfactory", - "label": "IGuidFactory", + "id": "src_anichron_api_services_adminuserservice_cs_list", + "label": "List", "_origin": "ast", "community": 12, "community_name": "IUnitOfWork", "file_type": "code", - "norm_label": "iguidfactory", + "norm_label": "list", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_authservice_cs_task", + "id": "src_anichron_api_services_adminuserservice_cs_task", "label": "Task", "_origin": "ast", "community": 12, @@ -34878,7 +34842,7 @@ "source_location": "" }, { - "id": "src_anichron_api_services_tokenservice_cs_cancellationtoken", + "id": "src_anichron_api_services_authservice_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 12, @@ -34889,7 +34853,7 @@ "source_location": "" }, { - "id": "src_anichron_api_services_tokenservice_cs_guid", + "id": "src_anichron_api_services_authservice_cs_guid", "label": "Guid", "_origin": "ast", "community": 12, @@ -34900,7 +34864,7 @@ "source_location": "" }, { - "id": "src_anichron_api_services_tokenservice_cs_iclock", + "id": "src_anichron_api_services_authservice_cs_iclock", "label": "IClock", "_origin": "ast", "community": 12, @@ -34911,7 +34875,7 @@ "source_location": "" }, { - "id": "src_anichron_api_services_tokenservice_cs_iguidfactory", + "id": "src_anichron_api_services_authservice_cs_iguidfactory", "label": "IGuidFactory", "_origin": "ast", "community": 12, @@ -34922,29 +34886,7 @@ "source_location": "" }, { - "id": "src_anichron_api_services_tokenservice_cs_instant", - "label": "Instant", - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "norm_label": "instant", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_tokenservice_cs_ioptions", - "label": "IOptions", - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "norm_label": "ioptions", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_tokenservice_cs_task", + "id": "src_anichron_api_services_authservice_cs_task", "label": "Task", "_origin": "ast", "community": 12, @@ -34999,22 +34941,28 @@ "source_location": "" }, { - "id": "src_anichron_core_guidfactory_cs_guid", - "label": "Guid", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_entries", + "label": "Entries", "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", + "community": 120, + "community_name": "CapturingLogger", "file_type": "code", - "norm_label": "guid", - "source_file": "", - "source_location": "" + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Maintenance", + "scope_chain": [ + "s241" + ] + }, + "norm_label": "entries", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L91" }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_testfixture_clock", "label": "Clock", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -35031,7 +34979,7 @@ "label": "Now", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -35048,7 +34996,7 @@ "label": "Repository", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -35065,7 +35013,7 @@ "label": "ScopeFactory", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -35082,40 +35030,84 @@ "label": "CancellationToken", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_eventid", + "label": "EventId", + "_origin": "ast", + "community": 120, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "eventid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_exception", + "label": "Exception", + "_origin": "ast", + "community": 120, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "exception", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_fact", "label": "Fact", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "fact", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_func", + "label": "Func", + "_origin": "ast", + "community": 120, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "func", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_iclock", "label": "IClock", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "iclock", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_idisposable", + "label": "IDisposable", + "_origin": "ast", + "community": 120, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "idisposable", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_inlinedata", "label": "InlineData", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "inlinedata", "source_file": "", @@ -35126,7 +35118,7 @@ "label": "Instant", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "instant", "source_file": "", @@ -35137,18 +35129,29 @@ "label": "InvalidOperationException", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "invalidoperationexception", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_ireadonlylist", + "label": "IReadOnlyList", + "_origin": "ast", + "community": 120, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "ireadonlylist", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_iservicescopefactory", "label": "IServiceScopeFactory", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "iservicescopefactory", "source_file": "", @@ -35159,18 +35162,40 @@ "label": "Level", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "level", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_list", + "label": "List", + "_origin": "ast", + "community": 120, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "list", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_loglevel", + "label": "LogLevel", + "_origin": "ast", + "community": 120, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "loglevel", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_message", "label": "Message", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "message", "source_file": "", @@ -35181,7 +35206,7 @@ "label": "Task", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "task", "source_file": "", @@ -35192,28 +35217,12 @@ "label": "Theory", "_origin": "ast", "community": 120, - "community_name": "TestFixture", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "theory", "source_file": "", "source_location": "" }, - { - "id": "csharp_namespace:0e87d3b0dd864944", - "label": "Anichron.Worker.Tests.Unit.Startup", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Tests.Unit.Startup" - }, - "norm_label": "anichron.worker.tests.unit.startup", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/DatabaseMigratorServiceTests.cs", - "source_location": "L5", - "type": "namespace" - }, { "id": "csharp_namespace:290f4f8a9cf17aba", "label": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -35230,38 +35239,6 @@ "source_location": "L7", "type": "namespace" }, - { - "id": "csharp_namespace:42472930ab5dee54", - "label": "Anichron.Worker.Tests.Unit.Crawling", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Tests.Unit.Crawling" - }, - "norm_label": "anichron.worker.tests.unit.crawling", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/FileIngestionPipelineTests.cs", - "source_location": "L13", - "type": "namespace" - }, - { - "id": "csharp_namespace:4c2bd96988f664d4", - "label": "Anichron.Worker.Startup", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Startup" - }, - "norm_label": "anichron.worker.startup", - "source_file": "src/Anichron.Worker/Startup/DatabaseMigratorService.cs", - "source_location": "L3", - "type": "namespace" - }, { "id": "csharp_namespace:6c2ef9bb06a3c94e", "label": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", @@ -35278,54 +35255,6 @@ "source_location": "L5", "type": "namespace" }, - { - "id": "csharp_namespace:6c34b37d96fb77b9", - "label": "Anichron.Worker.Tests.Unit.Maintenance", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Tests.Unit.Maintenance" - }, - "norm_label": "anichron.worker.tests.unit.maintenance", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L9", - "type": "namespace" - }, - { - "id": "csharp_namespace:76453e29db54b605", - "label": "Anichron.Infrastructure.Configuration", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Infrastructure.Configuration" - }, - "norm_label": "anichron.infrastructure.configuration", - "source_file": "src/Anichron.Infrastructure/Configuration/AppIniInitializer.cs", - "source_location": "L6", - "type": "namespace" - }, - { - "id": "csharp_namespace:7647a3817e515181", - "label": "Anichron.Worker.Maintenance", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Maintenance" - }, - "norm_label": "anichron.worker.maintenance", - "source_file": "src/Anichron.Worker/Maintenance/TokenCleanupService.cs", - "source_location": "L6", - "type": "namespace" - }, { "id": "csharp_namespace:7c193a9689c1b04b", "label": "Anichron.Worker.Ingestion.Pipeline", @@ -35374,22 +35303,6 @@ "source_location": "L5", "type": "namespace" }, - { - "id": "csharp_namespace:8cc1a0a23a5aeb2f", - "label": "Anichron.Worker.Settings", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Settings" - }, - "norm_label": "anichron.worker.settings", - "source_file": "src/Anichron.Worker/Settings/WorkerDefaults.cs", - "source_location": "L1", - "type": "namespace" - }, { "id": "csharp_namespace:95d29278166f0a1e", "label": "Anichron.Worker.Tests.Unit.Infrastructure", @@ -35406,22 +35319,6 @@ "source_location": "L11", "type": "namespace" }, - { - "id": "csharp_namespace:9c3c73549b575877", - "label": "Anichron.Worker.Crawling", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Crawling" - }, - "norm_label": "anichron.worker.crawling", - "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", - "source_location": "L10", - "type": "namespace" - }, { "id": "csharp_namespace:a2ab2f8afc8c2056", "label": "Anichron.Worker.Ingestion", @@ -35471,19 +35368,19 @@ "type": "namespace" }, { - "id": "csharp_namespace:e7ede4e1e15a6263", - "label": "Anichron.Worker.Infrastructure", + "id": "csharp_namespace:ef074de659b610bc", + "label": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", "_origin": "ast", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "file_type": "code", "metadata": { "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Infrastructure" + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy" }, - "norm_label": "anichron.worker.infrastructure", - "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", - "source_location": "L4", + "norm_label": "anichron.worker.tests.unit.ingestion.proxy", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/FfmpegVideoProcessorTests.cs", + "source_location": "L6", "type": "namespace" }, { @@ -35513,17 +35410,6 @@ "source_file": "src/Anichron.API/GlobalUsings.cs", "source_location": "L1" }, - { - "id": "src_anichron_api_infrastructure_webapplicationbuilderextensions", - "label": "WebApplicationBuilderExtensions.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "webapplicationbuilderextensions.cs", - "source_file": "src/Anichron.API/Infrastructure/WebApplicationBuilderExtensions.cs", - "source_location": "L1" - }, { "id": "src_anichron_core_globalusings", "label": "Anichron.Core/GlobalUsings.cs", @@ -35535,17 +35421,6 @@ "source_file": "src/Anichron.Core/GlobalUsings.cs", "source_location": "L1" }, - { - "id": "src_anichron_infrastructure_configuration_databaseconfiguration", - "label": "DatabaseConfiguration.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "databaseconfiguration.cs", - "source_file": "src/Anichron.Infrastructure/Configuration/DatabaseConfiguration.cs", - "source_location": "L1" - }, { "id": "src_anichron_infrastructure_tests_unit_configuration_appiniinitializertests", "label": "AppIniInitializerTests.cs", @@ -35557,39 +35432,6 @@ "source_file": "src/Anichron.Infrastructure.Tests.Unit/Configuration/AppIniInitializerTests.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_crawling_fileingestionpipeline", - "label": "FileIngestionPipeline.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "fileingestionpipeline.cs", - "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_crawling_worker", - "label": "Worker.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "worker.cs", - "source_file": "src/Anichron.Worker/Crawling/Worker.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_infrastructure_hostapplicationbuilderextensions", - "label": "HostApplicationBuilderExtensions.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "hostapplicationbuilderextensions.cs", - "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", - "source_location": "L1" - }, { "id": "src_anichron_worker_infrastructure_workerservicecollectionextensions", "label": "WorkerServiceCollectionExtensions.cs", @@ -35612,17 +35454,6 @@ "source_file": "src/Anichron.Worker/Ingestion/ExifData.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_ingestion_ingestionitem", - "label": "IngestionItem.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "ingestionitem.cs", - "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", - "source_location": "L1" - }, { "id": "src_anichron_worker_ingestion_livephotolinker", "label": "LivePhotoLinker.cs", @@ -35646,25 +35477,25 @@ "source_location": "L1" }, { - "id": "src_anichron_worker_ingestion_mediatypedetector", - "label": "MediaTypeDetector.cs", + "id": "src_anichron_worker_ingestion_middlewares_contenthashingmiddleware", + "label": "ContentHashingMiddleware.cs", "_origin": "ast", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "file_type": "code", - "norm_label": "mediatypedetector.cs", - "source_file": "src/Anichron.Worker/Ingestion/MediaTypeDetector.cs", + "norm_label": "contenthashingmiddleware.cs", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ContentHashingMiddleware.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_ingestion_middlewares_contenthashingmiddleware", - "label": "ContentHashingMiddleware.cs", + "id": "src_anichron_worker_ingestion_middlewares_exifextractionmiddleware", + "label": "ExifExtractionMiddleware.cs", "_origin": "ast", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "file_type": "code", - "norm_label": "contenthashingmiddleware.cs", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ContentHashingMiddleware.cs", + "norm_label": "exifextractionmiddleware.cs", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ExifExtractionMiddleware.cs", "source_location": "L1" }, { @@ -35678,6 +35509,17 @@ "source_file": "src/Anichron.Worker/Ingestion/Middlewares/IdempotencyCheckMiddleware.cs", "source_location": "L1" }, + { + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware", + "label": "ImageProxyMiddleware.cs", + "_origin": "ast", + "community": 121, + "community_name": "Anichron.Worker.Ingestion.Pipeline", + "file_type": "code", + "norm_label": "imageproxymiddleware.cs", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", + "source_location": "L1" + }, { "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware", "label": "LoggingMiddleware.cs", @@ -35711,28 +35553,6 @@ "source_file": "src/Anichron.Worker/Ingestion/Middlewares/VideoProxyMiddleware.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_ingestion_pipeline_ingestioncontext", - "label": "IngestionContext.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "ingestioncontext.cs", - "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IngestionContext.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_ingestion_pipeline_ingestionpipelinerunner", - "label": "IngestionPipelineRunner.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "ingestionpipelinerunner.cs", - "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IngestionPipelineRunner.cs", - "source_location": "L1" - }, { "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder", "label": "ProxyFileBuilder.cs", @@ -35755,17 +35575,6 @@ "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyStagingWriter.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_ingestion_proxy_videoprocessor", - "label": "VideoProcessor.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "videoprocessor.cs", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", - "source_location": "L1" - }, { "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators", "label": "VideoProxyGenerators.cs", @@ -35777,61 +35586,6 @@ "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_maintenance_tokencleanupservice", - "label": "TokenCleanupService.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "tokencleanupservice.cs", - "source_file": "src/Anichron.Worker/Maintenance/TokenCleanupService.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_program", - "label": "Anichron.Worker/Program.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "anichron.worker/program.cs", - "source_file": "src/Anichron.Worker/Program.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_startup_databasemigratorservice", - "label": "DatabaseMigratorService.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "databasemigratorservice.cs", - "source_file": "src/Anichron.Worker/Startup/DatabaseMigratorService.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests", - "label": "FileIngestionPipelineTests.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "fileingestionpipelinetests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/FileIngestionPipelineTests.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests", - "label": "WorkerTests.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "workertests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L1" - }, { "id": "src_anichron_worker_tests_unit_infrastructure_workerservicecollectionextensionstests", "label": "WorkerServiceCollectionExtensionsTests.cs", @@ -35843,17 +35597,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Infrastructure/WorkerServiceCollectionExtensionsTests.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_livephotolinkertests", - "label": "LivePhotoLinkerTests.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "livephotolinkertests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/LivePhotoLinkerTests.cs", - "source_location": "L1" - }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_contenthashingmiddlewaretests", "label": "ContentHashingMiddlewareTests.cs", @@ -35976,47 +35719,47 @@ "source_location": "L1" }, { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxystagingwritertests", - "label": "ProxyStagingWriterTests.cs", + "id": "src_anichron_worker_tests_unit_ingestion_proxy_imageproxygeneratorstests", + "label": "ImageProxyGeneratorsTests.cs", "_origin": "ast", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "file_type": "code", - "norm_label": "proxystagingwritertests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyStagingWriterTests.cs", + "norm_label": "imageproxygeneratorstests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ImageProxyGeneratorsTests.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests", - "label": "TokenCleanupServiceTests.cs", + "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests", + "label": "ProxyShardStrategyTests.cs", "_origin": "ast", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "file_type": "code", - "norm_label": "tokencleanupservicetests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "norm_label": "proxyshardstrategytests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_tests_unit_startup_databasemigratorservicetests", - "label": "DatabaseMigratorServiceTests.cs", + "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxystagingwritertests", + "label": "ProxyStagingWriterTests.cs", "_origin": "ast", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "file_type": "code", - "norm_label": "databasemigratorservicetests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/DatabaseMigratorServiceTests.cs", + "norm_label": "proxystagingwritertests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyStagingWriterTests.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests", - "label": "WorkerInitializerTests.cs", + "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests", + "label": "VideoProxyGeneratorsTests.cs", "_origin": "ast", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "file_type": "code", - "norm_label": "workerinitializertests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "norm_label": "videoproxygeneratorstests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", "source_location": "L1" }, { @@ -39281,17 +39024,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L555" }, - { - "id": "backgroundservice", - "label": "BackgroundService", - "_origin": "ast", - "community": 138, - "community_name": "TokenCleanupService", - "file_type": "code", - "norm_label": "backgroundservice", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_maintenance_tokencleanupservice_cs_cancellationtoken", "label": "CancellationToken", @@ -40542,45 +40274,111 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_packages_lock_anichron_core_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 145, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L470" + }, + { + "id": "src_anichron_api_packages_lock_anichron_core_type", + "label": "type", + "_origin": "ast", + "community": 145, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L469" + }, + { + "id": "src_anichron_api_packages_lock_dependencies_nodatime", + "label": "NodaTime", + "_origin": "ast", + "community": 145, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "nodatime", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L369" + }, { "id": "src_anichron_api_packages_lock_dependencies_npgsql_entityframeworkcore_postgresql", "label": "Npgsql.EntityFrameworkCore.PostgreSQL", "_origin": "ast", "community": 145, - "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", + "community_name": "dependencies", "file_type": "code", "norm_label": "npgsql.entityframeworkcore.postgresql", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L474" }, + { + "id": "src_anichron_api_packages_lock_dependencies_npgsql_entityframeworkcore_postgresql_nodatime", + "label": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", + "_origin": "ast", + "community": 145, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "npgsql.entityframeworkcore.postgresql.nodatime", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L475" + }, { "id": "src_anichron_api_packages_lock_dependencies_npgsql_nodatime", "label": "Npgsql.NodaTime", "_origin": "ast", "community": 145, - "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", + "community_name": "dependencies", "file_type": "code", "norm_label": "npgsql.nodatime", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L500" }, + { + "id": "src_anichron_api_packages_lock_net10_0_anichron_core", + "label": "anichron.core", + "_origin": "ast", + "community": 145, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "anichron.core", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L468" + }, { "id": "src_anichron_api_packages_lock_net10_0_npgsql_entityframeworkcore_postgresql_nodatime", "label": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", "_origin": "ast", "community": 145, - "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", + "community_name": "dependencies", "file_type": "code", "norm_label": "npgsql.entityframeworkcore.postgresql.nodatime", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L493" }, + { + "id": "src_anichron_api_packages_lock_net10_0_npgsql_nodatime", + "label": "Npgsql.NodaTime", + "_origin": "ast", + "community": 145, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "npgsql.nodatime", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L364" + }, { "id": "src_anichron_api_packages_lock_npgsql_entityframeworkcore_postgresql_nodatime_contenthash", "label": "contentHash", "_origin": "ast", "community": 145, - "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", + "community_name": "dependencies", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", @@ -40591,7 +40389,7 @@ "label": "dependencies", "_origin": "ast", "community": 145, - "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", + "community_name": "dependencies", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.API/packages.lock.json", @@ -40602,7 +40400,7 @@ "label": "requested", "_origin": "ast", "community": 145, - "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", + "community_name": "dependencies", "file_type": "code", "norm_label": "requested", "source_file": "src/Anichron.API/packages.lock.json", @@ -40613,7 +40411,7 @@ "label": "resolved", "_origin": "ast", "community": 145, - "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", + "community_name": "dependencies", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", @@ -40624,12 +40422,56 @@ "label": "type", "_origin": "ast", "community": 145, - "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", + "community_name": "dependencies", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L494" }, + { + "id": "src_anichron_api_packages_lock_npgsql_nodatime_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 145, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L367" + }, + { + "id": "src_anichron_api_packages_lock_npgsql_nodatime_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 145, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L368" + }, + { + "id": "src_anichron_api_packages_lock_npgsql_nodatime_resolved", + "label": "resolved", + "_origin": "ast", + "community": 145, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L366" + }, + { + "id": "src_anichron_api_packages_lock_npgsql_nodatime_type", + "label": "type", + "_origin": "ast", + "community": 145, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L365" + }, { "id": "src_anichron_core_tests_unit_packages_lock_dependencies_microsoft_win32_registry", "label": "Microsoft.Win32.Registry", @@ -41712,15 +41554,59 @@ "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_exifextractionmiddleware", - "label": "ExifExtractionMiddleware.cs", + "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_anichrondbcontext", + "label": "AnichronDbContext", "_origin": "ast", "community": 154, - "community_name": "ExifExtractionMiddleware.cs", + "community_name": "EfRefreshTokenRepository", "file_type": "code", - "norm_label": "exifextractionmiddleware.cs", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ExifExtractionMiddleware.cs", - "source_location": "L1" + "norm_label": "anichrondbcontext", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_cs_fact", + "label": "Fact", + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "norm_label": "fact", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_cs_guid", + "label": "Guid", + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "norm_label": "guid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_cs_instant", + "label": "Instant", + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "norm_label": "instant", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_cs_task", + "label": "Task", + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" }, { "id": "src_anichron_api_packages_lock_dependencies_polly_core", @@ -42237,6 +42123,28 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_ingestiondelegate", + "label": "IngestionDelegate", + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "code", + "norm_label": "ingestiondelegate", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_core_tests_unit_packages_lock_dependencies_microsoft_extensions_primitives", "label": "Microsoft.Extensions.Primitives", @@ -42491,39 +42399,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_startup_idatabasemigrator", - "label": "IDatabaseMigrator.cs", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "norm_label": "idatabasemigrator.cs", - "source_file": "src/Anichron.Worker/Startup/IDatabaseMigrator.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_startup_idatabasemigrator_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_startup_idatabasemigrator_cs_task", - "label": "Task", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_startup_workerinitializer_cs_cancellationtoken", "label": "CancellationToken", @@ -42817,48 +42692,121 @@ "source_location": "L100" }, { - "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_contenthash", - "label": "contentHash", + "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_testfixture_configrepository", + "label": "ConfigRepository", "_origin": "ast", "community": 162, - "community_name": "Microsoft.CodeAnalysis.Analyzers", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L165" + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s306" + ] + }, + "norm_label": "configrepository", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L16" }, { - "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_resolved", - "label": "resolved", + "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_testfixture_pipeline", + "label": "Pipeline", "_origin": "ast", "community": 162, - "community_name": "Microsoft.CodeAnalysis.Analyzers", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L164" + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s306" + ] + }, + "norm_label": "pipeline", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L17" }, { - "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_type", - "label": "type", + "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_testfixture_workerstate", + "label": "WorkerState", "_origin": "ast", "community": 162, - "community_name": "Microsoft.CodeAnalysis.Analyzers", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L163" + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s306" + ] + }, + "norm_label": "workerstate", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L18" }, { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_codeanalysis_analyzers", - "label": "Microsoft.CodeAnalysis.Analyzers", + "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", "community": 162, - "community_name": "Microsoft.CodeAnalysis.Analyzers", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "microsoft.codeanalysis.analyzers", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L162" + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_fact", + "label": "Fact", + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "fact", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_guid", + "label": "Guid", + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "guid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_iservicescopefactory", + "label": "IServiceScopeFactory", + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "iservicescopefactory", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_task", + "label": "Task", + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_workerstate", + "label": "WorkerState", + "_origin": "ast", + "community": 162, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "workerstate", + "source_file": "", + "source_location": "" }, { "id": "src_anichron_worker_properties_launchsettings", @@ -45256,30 +45204,148 @@ "source_location": "L144" }, { - "id": "csharp_namespace:ef074de659b610bc", - "label": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", + "id": "csharp_namespace:0e87d3b0dd864944", + "label": "Anichron.Worker.Tests.Unit.Startup", "_origin": "ast", "community": 182, - "community_name": "ImageProcessor.cs", + "community_name": "microsoft_extensions_options", "file_type": "code", "metadata": { "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy" + "namespace": "Anichron.Worker.Tests.Unit.Startup" }, - "norm_label": "anichron.worker.tests.unit.ingestion.proxy", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/FfmpegVideoProcessorTests.cs", + "norm_label": "anichron.worker.tests.unit.startup", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/DatabaseMigratorServiceTests.cs", + "source_location": "L5", + "type": "namespace" + }, + { + "id": "csharp_namespace:42472930ab5dee54", + "label": "Anichron.Worker.Tests.Unit.Crawling", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Worker.Tests.Unit.Crawling" + }, + "norm_label": "anichron.worker.tests.unit.crawling", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/FileIngestionPipelineTests.cs", + "source_location": "L13", + "type": "namespace" + }, + { + "id": "csharp_namespace:4c2bd96988f664d4", + "label": "Anichron.Worker.Startup", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Worker.Startup" + }, + "norm_label": "anichron.worker.startup", + "source_file": "src/Anichron.Worker/Startup/DatabaseMigratorService.cs", + "source_location": "L3", + "type": "namespace" + }, + { + "id": "csharp_namespace:6c34b37d96fb77b9", + "label": "Anichron.Worker.Tests.Unit.Maintenance", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Worker.Tests.Unit.Maintenance" + }, + "norm_label": "anichron.worker.tests.unit.maintenance", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L9", + "type": "namespace" + }, + { + "id": "csharp_namespace:7647a3817e515181", + "label": "Anichron.Worker.Maintenance", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Worker.Maintenance" + }, + "norm_label": "anichron.worker.maintenance", + "source_file": "src/Anichron.Worker/Maintenance/TokenCleanupService.cs", "source_location": "L6", "type": "namespace" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware", - "label": "ImageProxyMiddleware.cs", + "id": "csharp_namespace:8cc1a0a23a5aeb2f", + "label": "Anichron.Worker.Settings", "_origin": "ast", "community": 182, - "community_name": "ImageProcessor.cs", + "community_name": "microsoft_extensions_options", "file_type": "code", - "norm_label": "imageproxymiddleware.cs", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Worker.Settings" + }, + "norm_label": "anichron.worker.settings", + "source_file": "src/Anichron.Worker/Settings/WorkerDefaults.cs", + "source_location": "L1", + "type": "namespace" + }, + { + "id": "csharp_namespace:9c3c73549b575877", + "label": "Anichron.Worker.Crawling", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Worker.Crawling" + }, + "norm_label": "anichron.worker.crawling", + "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", + "source_location": "L10", + "type": "namespace" + }, + { + "id": "src_anichron_worker_crawling_fileingestionpipeline", + "label": "FileIngestionPipeline.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "fileingestionpipeline.cs", + "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_crawling_worker", + "label": "Worker.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "worker.cs", + "source_file": "src/Anichron.Worker/Crawling/Worker.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_ingestion_pipeline_ingestionpipelinerunner", + "label": "IngestionPipelineRunner.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "ingestionpipelinerunner.cs", + "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IngestionPipelineRunner.cs", "source_location": "L1" }, { @@ -45287,43 +45353,120 @@ "label": "ImageProcessor.cs", "_origin": "ast", "community": 182, - "community_name": "ImageProcessor.cs", + "community_name": "microsoft_extensions_options", "file_type": "code", "norm_label": "imageprocessor.cs", "source_file": "src/Anichron.Worker/Ingestion/Proxy/ImageProcessor.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_imageproxygeneratorstests", - "label": "ImageProxyGeneratorsTests.cs", + "id": "src_anichron_worker_ingestion_proxy_videoprocessor", + "label": "VideoProcessor.cs", "_origin": "ast", "community": 182, - "community_name": "ImageProcessor.cs", + "community_name": "microsoft_extensions_options", "file_type": "code", - "norm_label": "imageproxygeneratorstests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ImageProxyGeneratorsTests.cs", + "norm_label": "videoprocessor.cs", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests", - "label": "ProxyShardStrategyTests.cs", + "id": "src_anichron_worker_maintenance_tokencleanupservice", + "label": "TokenCleanupService.cs", "_origin": "ast", "community": 182, - "community_name": "ImageProcessor.cs", + "community_name": "microsoft_extensions_options", "file_type": "code", - "norm_label": "proxyshardstrategytests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", + "norm_label": "tokencleanupservice.cs", + "source_file": "src/Anichron.Worker/Maintenance/TokenCleanupService.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests", - "label": "VideoProxyGeneratorsTests.cs", + "id": "src_anichron_worker_settings_workerdefaults", + "label": "WorkerDefaults.cs", "_origin": "ast", "community": 182, - "community_name": "ImageProcessor.cs", + "community_name": "microsoft_extensions_options", "file_type": "code", - "norm_label": "videoproxygeneratorstests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", + "norm_label": "workerdefaults.cs", + "source_file": "src/Anichron.Worker/Settings/WorkerDefaults.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_startup_databasemigratorservice", + "label": "DatabaseMigratorService.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "databasemigratorservice.cs", + "source_file": "src/Anichron.Worker/Startup/DatabaseMigratorService.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_startup_workerinitializer", + "label": "WorkerInitializer.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "workerinitializer.cs", + "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests", + "label": "FileIngestionPipelineTests.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "fileingestionpipelinetests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/FileIngestionPipelineTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_workertests", + "label": "WorkerTests.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "workertests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests", + "label": "TokenCleanupServiceTests.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "tokencleanupservicetests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_tests_unit_startup_databasemigratorservicetests", + "label": "DatabaseMigratorServiceTests.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "databasemigratorservicetests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/DatabaseMigratorServiceTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests", + "label": "WorkerInitializerTests.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "workerinitializertests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", "source_location": "L1" }, { @@ -45415,44 +45558,77 @@ "source_location": "L17" }, { - "id": "src_anichron_core_data_repository_mediaassetrepository_cs_anichrondbcontext", - "label": "AnichronDbContext", + "id": "src_anichron_api_services_bootstrapseeder_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", "community": 184, - "community_name": "IMediaAssetRepository", + "community_name": "BootstrapSeeder", "file_type": "code", - "norm_label": "anichrondbcontext", + "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_core_data_repository_mediaassetrepository_cs_cancellationtoken", - "label": "CancellationToken", + "id": "src_anichron_api_services_bootstrapseeder_cs_exception", + "label": "Exception", "_origin": "ast", "community": 184, - "community_name": "IMediaAssetRepository", + "community_name": "BootstrapSeeder", "file_type": "code", - "norm_label": "cancellationtoken", + "norm_label": "exception", "source_file": "", "source_location": "" }, { - "id": "src_anichron_core_data_repository_mediaassetrepository_cs_guid", - "label": "Guid", + "id": "src_anichron_api_services_bootstrapseeder_cs_iconfiguration", + "label": "IConfiguration", "_origin": "ast", "community": 184, - "community_name": "IMediaAssetRepository", + "community_name": "BootstrapSeeder", "file_type": "code", - "norm_label": "guid", + "norm_label": "iconfiguration", "source_file": "", "source_location": "" }, { - "id": "src_anichron_core_data_repository_mediaassetrepository_cs_task", + "id": "src_anichron_api_services_bootstrapseeder_cs_iguidfactory", + "label": "IGuidFactory", + "_origin": "ast", + "community": 184, + "community_name": "BootstrapSeeder", + "file_type": "code", + "norm_label": "iguidfactory", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_cs_ilogger", + "label": "ILogger", + "_origin": "ast", + "community": 184, + "community_name": "BootstrapSeeder", + "file_type": "code", + "norm_label": "ilogger", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_cs_loggermessage", + "label": "LoggerMessage", + "_origin": "ast", + "community": 184, + "community_name": "BootstrapSeeder", + "file_type": "code", + "norm_label": "loggermessage", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_cs_task", "label": "Task", "_origin": "ast", "community": 184, - "community_name": "IMediaAssetRepository", + "community_name": "BootstrapSeeder", "file_type": "code", "norm_label": "task", "source_file": "", @@ -45894,39 +46070,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 19, - "community_name": "IAuthResponseMapper", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_fact", - "label": "Fact", - "_origin": "ast", - "community": 19, - "community_name": "IAuthResponseMapper", - "file_type": "code", - "norm_label": "fact", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_task", - "label": "Task", - "_origin": "ast", - "community": 19, - "community_name": "IAuthResponseMapper", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_api_tests_unit_endpoints_adminstorageconfigendpointstests_cs_cancellationtoken", "label": "CancellationToken", @@ -46489,48 +46632,118 @@ "source_location": "L605" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_contenthash", - "label": "contentHash", + "id": "csharp_namespace:3f7e9ffe1d92df00", + "label": "Anichron.Infrastructure.Tests.Unit.Infrastructure", "_origin": "ast", "community": 196, - "community_name": "Microsoft.Extensions.DependencyInjection.AutoActivation", + "community_name": "Anichron.Infrastructure.Configuration", "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L245" + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Infrastructure.Tests.Unit.Infrastructure" + }, + "norm_label": "anichron.infrastructure.tests.unit.infrastructure", + "source_file": "src/Anichron.Infrastructure.Tests.Unit/Infrastructure/DatabaseConfigurationTests.cs", + "source_location": "L6", + "type": "namespace" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_resolved", - "label": "resolved", + "id": "csharp_namespace:76453e29db54b605", + "label": "Anichron.Infrastructure.Configuration", "_origin": "ast", "community": 196, - "community_name": "Microsoft.Extensions.DependencyInjection.AutoActivation", + "community_name": "Anichron.Infrastructure.Configuration", "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L244" + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Infrastructure.Configuration" + }, + "norm_label": "anichron.infrastructure.configuration", + "source_file": "src/Anichron.Infrastructure/Configuration/AppIniInitializer.cs", + "source_location": "L6", + "type": "namespace" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_type", - "label": "type", + "id": "csharp_namespace:e7ede4e1e15a6263", + "label": "Anichron.Worker.Infrastructure", "_origin": "ast", "community": 196, - "community_name": "Microsoft.Extensions.DependencyInjection.AutoActivation", + "community_name": "Anichron.Infrastructure.Configuration", "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L243" + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Worker.Infrastructure" + }, + "norm_label": "anichron.worker.infrastructure", + "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", + "source_location": "L4", + "type": "namespace" }, { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_dependencyinjection_autoactivation", - "label": "Microsoft.Extensions.DependencyInjection.AutoActivation", + "id": "src_anichron_api_infrastructure_webapplicationbuilderextensions", + "label": "WebApplicationBuilderExtensions.cs", "_origin": "ast", "community": 196, - "community_name": "Microsoft.Extensions.DependencyInjection.AutoActivation", + "community_name": "Anichron.Infrastructure.Configuration", "file_type": "code", - "norm_label": "microsoft.extensions.dependencyinjection.autoactivation", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L242" + "norm_label": "webapplicationbuilderextensions.cs", + "source_file": "src/Anichron.API/Infrastructure/WebApplicationBuilderExtensions.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_infrastructure_configuration_appiniinitializer", + "label": "AppIniInitializer.cs", + "_origin": "ast", + "community": 196, + "community_name": "Anichron.Infrastructure.Configuration", + "file_type": "code", + "norm_label": "appiniinitializer.cs", + "source_file": "src/Anichron.Infrastructure/Configuration/AppIniInitializer.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_infrastructure_configuration_databaseconfiguration", + "label": "DatabaseConfiguration.cs", + "_origin": "ast", + "community": 196, + "community_name": "Anichron.Infrastructure.Configuration", + "file_type": "code", + "norm_label": "databaseconfiguration.cs", + "source_file": "src/Anichron.Infrastructure/Configuration/DatabaseConfiguration.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_infrastructure_tests_unit_infrastructure_databaseconfigurationtests", + "label": "DatabaseConfigurationTests.cs", + "_origin": "ast", + "community": 196, + "community_name": "Anichron.Infrastructure.Configuration", + "file_type": "code", + "norm_label": "databaseconfigurationtests.cs", + "source_file": "src/Anichron.Infrastructure.Tests.Unit/Infrastructure/DatabaseConfigurationTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_infrastructure_hostapplicationbuilderextensions", + "label": "HostApplicationBuilderExtensions.cs", + "_origin": "ast", + "community": 196, + "community_name": "Anichron.Infrastructure.Configuration", + "file_type": "code", + "norm_label": "hostapplicationbuilderextensions.cs", + "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_program", + "label": "Anichron.Worker/Program.cs", + "_origin": "ast", + "community": 196, + "community_name": "Anichron.Infrastructure.Configuration", + "file_type": "code", + "norm_label": "anichron.worker/program.cs", + "source_file": "src/Anichron.Worker/Program.cs", + "source_location": "L1" }, { "id": "src_anichron_api_tests_unit_packages_lock_dependencies_testableio_system_io_abstractions_testinghelpers", @@ -46763,6 +46976,17 @@ "source_file": "src/Anichron.Core/packages.lock.json", "source_location": "L273" }, + { + "id": "samesitemode", + "label": "SameSiteMode", + "_origin": "ast", + "community": 2, + "community_name": "AuthResult", + "file_type": "code", + "norm_label": "samesitemode", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_api_endpoints_authresponsemapper_cs_httpcontext", "label": "HttpContext", @@ -46876,25 +47100,19 @@ "source_location": "L18" }, { - "id": "src_anichron_api_settings_usernamepolicy_anichron_api_settings_usernamepolicy_invalidformatmessage", - "label": "InvalidFormatMessage", + "id": "src_anichron_api_settings_authcookiesettings", + "label": "AuthCookieSettings.cs", "_origin": "ast", "community": 2, "community_name": "AuthResult", "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s39" - ] - }, - "norm_label": "invalidformatmessage", - "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", - "source_location": "L13" + "norm_label": "authcookiesettings.cs", + "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", + "source_location": "L1" }, { - "id": "src_anichron_api_settings_usernamepolicy_anichron_api_settings_usernamepolicy_maxlength", - "label": "MaxLength", + "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings_refreshtokendays", + "label": "RefreshTokenDays", "_origin": "ast", "community": 2, "community_name": "AuthResult", @@ -46902,16 +47120,16 @@ "metadata": { "namespace": "Anichron.API.Settings", "scope_chain": [ - "s39" + "s0" ] }, - "norm_label": "maxlength", - "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", - "source_location": "L8" + "norm_label": "refreshtokendays", + "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", + "source_location": "L6" }, { - "id": "src_anichron_api_settings_usernamepolicy_anichron_api_settings_usernamepolicy_minlength", - "label": "MinLength", + "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings_samesite", + "label": "SameSite", "_origin": "ast", "community": 2, "community_name": "AuthResult", @@ -46919,12 +47137,12 @@ "metadata": { "namespace": "Anichron.API.Settings", "scope_chain": [ - "s39" + "s0" ] }, - "norm_label": "minlength", - "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", - "source_location": "L7" + "norm_label": "samesite", + "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", + "source_location": "L5" }, { "id": "idirectory", @@ -46959,17 +47177,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_infrastructure_configuration_appiniinitializer", - "label": "AppIniInitializer.cs", - "_origin": "ast", - "community": 20, - "community_name": "AppIniInitializer", - "file_type": "code", - "norm_label": "appiniinitializer.cs", - "source_file": "src/Anichron.Infrastructure/Configuration/AppIniInitializer.cs", - "source_location": "L1" - }, { "id": "src_anichron_infrastructure_configuration_appiniinitializer_cs_func", "label": "Func", @@ -47891,23 +48098,12 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L15" }, - { - "id": "src_anichron_api_endpoints_authendpoints", - "label": "AuthEndpoints.cs", - "_origin": "ast", - "community": 21, - "community_name": "AuthTokens", - "file_type": "code", - "norm_label": "authendpoints.cs", - "source_file": "src/Anichron.API/Endpoints/AuthEndpoints.cs", - "source_location": "L1" - }, { "id": "src_anichron_api_endpoints_authendpoints_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -47918,7 +48114,7 @@ "label": "HttpContext", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "httpcontext", "source_file": "", @@ -47929,7 +48125,7 @@ "label": "IEndpointRouteBuilder", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "iendpointroutebuilder", "source_file": "", @@ -47940,7 +48136,7 @@ "label": "IOptions", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "ioptions", "source_file": "", @@ -47951,7 +48147,7 @@ "label": "IResult", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "iresult", "source_file": "", @@ -47962,18 +48158,69 @@ "label": "Task", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "task", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_settings_usernamepolicy_anichron_api_settings_usernamepolicy_invalidformatmessage", + "label": "InvalidFormatMessage", + "_origin": "ast", + "community": 21, + "community_name": ".Ok", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s39" + ] + }, + "norm_label": "invalidformatmessage", + "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", + "source_location": "L13" + }, + { + "id": "src_anichron_api_settings_usernamepolicy_anichron_api_settings_usernamepolicy_maxlength", + "label": "MaxLength", + "_origin": "ast", + "community": 21, + "community_name": ".Ok", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s39" + ] + }, + "norm_label": "maxlength", + "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", + "source_location": "L8" + }, + { + "id": "src_anichron_api_settings_usernamepolicy_anichron_api_settings_usernamepolicy_minlength", + "label": "MinLength", + "_origin": "ast", + "community": 21, + "community_name": ".Ok", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s39" + ] + }, + "norm_label": "minlength", + "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", + "source_location": "L7" + }, { "id": "src_anichron_api_tests_unit_endpoints_authendpointstests_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -47984,7 +48231,7 @@ "label": "DefaultHttpContext", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "defaulthttpcontext", "source_file": "", @@ -47995,7 +48242,7 @@ "label": "Fact", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "fact", "source_file": "", @@ -48006,7 +48253,7 @@ "label": "HttpContext", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "httpcontext", "source_file": "", @@ -48017,7 +48264,7 @@ "label": "IStatusCodeHttpResult", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "istatuscodehttpresult", "source_file": "", @@ -48028,7 +48275,7 @@ "label": "Task", "_origin": "ast", "community": 21, - "community_name": "AuthTokens", + "community_name": ".Ok", "file_type": "code", "norm_label": "task", "source_file": "", @@ -49031,17 +49278,6 @@ "source_file": "src/Anichron.Worker/Settings/WorkerSettings.cs", "source_location": "L42" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests_cs_ilogger", - "label": "ILogger", - "_origin": "ast", - "community": 22, - "community_name": "WorkerSettings", - "file_type": "code", - "norm_label": "ilogger", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_settings_workersettingsvalidatortests", "label": "WorkerSettingsValidatorTests.cs", @@ -49053,28 +49289,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Settings/WorkerSettingsValidatorTests.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_tests_unit_settings_workersettingsvalidatortests_cs_ireadonlylist", - "label": "IReadOnlyList", - "_origin": "ast", - "community": 22, - "community_name": "WorkerSettings", - "file_type": "code", - "norm_label": "ireadonlylist", - "source_file": "", - "source_location": "" - }, - { - "id": "validationresult", - "label": "ValidationResult", - "_origin": "ast", - "community": 22, - "community_name": "WorkerSettings", - "file_type": "code", - "norm_label": "validationresult", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_api_packages_lock_dependencies_system_codedom", "label": "System.CodeDom", @@ -49985,46 +50199,154 @@ "source_location": "L159" }, { - "id": "src_anichron_worker_ingestion_proxy_processlauncher", - "label": "ProcessLauncher.cs", + "id": "src_anichron_core_domain_refreshtoken", + "label": "RefreshToken.cs", "_origin": "ast", "community": 231, - "community_name": ".RunAsync", + "community_name": "RefreshToken", "file_type": "code", - "norm_label": "processlauncher.cs", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", + "norm_label": "refreshtoken.cs", + "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_ingestion_proxy_processlauncher_cs_cancellationtoken", - "label": "CancellationToken", + "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_createdat", + "label": "CreatedAt", "_origin": "ast", "community": 231, - "community_name": ".RunAsync", + "community_name": "RefreshToken", "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "createdat", + "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", + "source_location": "L8" }, { - "id": "src_anichron_worker_ingestion_proxy_processlauncher_cs_ireadonlylist", - "label": "IReadOnlyList", + "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_expiresat", + "label": "ExpiresAt", "_origin": "ast", "community": 231, - "community_name": ".RunAsync", + "community_name": "RefreshToken", "file_type": "code", - "norm_label": "ireadonlylist", + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "expiresat", + "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", + "source_location": "L9" + }, + { + "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_id", + "label": "Id", + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "id", + "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", + "source_location": "L5" + }, + { + "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_revokedat", + "label": "RevokedAt", + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "revokedat", + "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", + "source_location": "L10" + }, + { + "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_tokenhash", + "label": "TokenHash", + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "tokenhash", + "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", + "source_location": "L7" + }, + { + "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_user", + "label": "User", + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "user", + "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", + "source_location": "L12" + }, + { + "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_userid", + "label": "UserId", + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "userid", + "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", + "source_location": "L6" + }, + { + "id": "src_anichron_core_domain_refreshtoken_cs_guid", + "label": "Guid", + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "norm_label": "guid", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_proxy_processlauncher_cs_task", - "label": "Task", + "id": "src_anichron_core_domain_refreshtoken_cs_instant", + "label": "Instant", "_origin": "ast", "community": 231, - "community_name": ".RunAsync", + "community_name": "RefreshToken", "file_type": "code", - "norm_label": "task", + "norm_label": "instant", "source_file": "", "source_location": "" }, @@ -50684,104 +51006,98 @@ "source_location": "" }, { - "id": "samesitemode", - "label": "SameSiteMode", + "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", "community": 240, - "community_name": "AuthCookieSettings", + "community_name": "IRefreshTokenRepository", "file_type": "code", - "norm_label": "samesitemode", + "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_settings_authcookiesettings", - "label": "AuthCookieSettings.cs", + "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_guid", + "label": "Guid", "_origin": "ast", "community": 240, - "community_name": "AuthCookieSettings", + "community_name": "IRefreshTokenRepository", "file_type": "code", - "norm_label": "authcookiesettings.cs", - "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", - "source_location": "L1" + "norm_label": "guid", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings_refreshtokendays", - "label": "RefreshTokenDays", + "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_instant", + "label": "Instant", "_origin": "ast", "community": 240, - "community_name": "AuthCookieSettings", + "community_name": "IRefreshTokenRepository", "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "refreshtokendays", - "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", - "source_location": "L6" + "norm_label": "instant", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings_samesite", - "label": "SameSite", + "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_task", + "label": "Task", "_origin": "ast", "community": 240, - "community_name": "AuthCookieSettings", + "community_name": "IRefreshTokenRepository", "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "samesite", - "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", - "source_location": "L5" + "norm_label": "task", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_api_packages_lock_net10_0_polly_core", - "label": "Polly.Core", + "id": "src_anichron_core_domain_mediaasset_anichron_core_domain_mediaasset_mediatype", + "label": "MediaType", "_origin": "ast", "community": 241, - "community_name": "Polly.Core", + "community_name": "MediaType", "file_type": "code", - "norm_label": "polly.core", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L373" + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s3" + ] + }, + "norm_label": "mediatype", + "source_file": "src/Anichron.Core/Domain/MediaAsset.cs", + "source_location": "L26" }, { - "id": "src_anichron_api_packages_lock_polly_core_contenthash", - "label": "contentHash", + "id": "src_anichron_worker_ingestion_mediatypedetector_cs_dictionary", + "label": "Dictionary", "_origin": "ast", "community": 241, - "community_name": "Polly.Core", + "community_name": "MediaType", "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L376" + "norm_label": "dictionary", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_api_packages_lock_polly_core_resolved", - "label": "resolved", + "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_cs_inlinedata", + "label": "InlineData", "_origin": "ast", "community": 241, - "community_name": "Polly.Core", + "community_name": "MediaType", "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L375" + "norm_label": "inlinedata", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_api_packages_lock_polly_core_type", - "label": "type", + "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_cs_theory", + "label": "Theory", "_origin": "ast", "community": 241, - "community_name": "Polly.Core", + "community_name": "MediaType", "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L374" + "norm_label": "theory", + "source_file": "", + "source_location": "" }, { "id": "src_anichron_api_packages_lock_humanizer_core_contenthash", @@ -51170,40 +51486,7 @@ "source_location": "L158" }, { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 248, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L230" - }, - { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_resolved", - "label": "resolved", - "_origin": "ast", - "community": 248, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L229" - }, - { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_type", - "label": "type", - "_origin": "ast", - "community": 248, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L228" - }, - { - "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_contenthash", + "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_contenthash", "label": "contentHash", "_origin": "ast", "community": 248, @@ -51211,10 +51494,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L235" + "source_location": "L165" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_resolved", + "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_resolved", "label": "resolved", "_origin": "ast", "community": 248, @@ -51222,10 +51505,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L234" + "source_location": "L164" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_type", + "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_type", "label": "type", "_origin": "ast", "community": 248, @@ -51233,10 +51516,10 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L233" + "source_location": "L163" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_contenthash", + "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_contenthash", "label": "contentHash", "_origin": "ast", "community": 248, @@ -51244,10 +51527,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L240" + "source_location": "L245" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_resolved", + "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_resolved", "label": "resolved", "_origin": "ast", "community": 248, @@ -51255,10 +51538,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L239" + "source_location": "L244" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_type", + "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_type", "label": "type", "_origin": "ast", "community": 248, @@ -51266,7 +51549,7 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L238" + "source_location": "L243" }, { "id": "src_anichron_api_packages_lock_microsoft_openapi_contenthash", @@ -51324,37 +51607,26 @@ "source_location": "L157" }, { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_entityframeworkcore_analyzers", - "label": "Microsoft.EntityFrameworkCore.Analyzers", - "_origin": "ast", - "community": 248, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "microsoft.entityframeworkcore.analyzers", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L227" - }, - { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_ambientmetadata_application", - "label": "Microsoft.Extensions.AmbientMetadata.Application", + "id": "src_anichron_api_packages_lock_net10_0_microsoft_codeanalysis_analyzers", + "label": "Microsoft.CodeAnalysis.Analyzers", "_origin": "ast", "community": 248, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.ambientmetadata.application", + "norm_label": "microsoft.codeanalysis.analyzers", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L232" + "source_location": "L162" }, { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_compliance_abstractions", - "label": "Microsoft.Extensions.Compliance.Abstractions", + "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_dependencyinjection_autoactivation", + "label": "Microsoft.Extensions.DependencyInjection.AutoActivation", "_origin": "ast", "community": 248, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.compliance.abstractions", + "norm_label": "microsoft.extensions.dependencyinjection.autoactivation", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L237" + "source_location": "L242" }, { "id": "src_anichron_api_packages_lock_net10_0_microsoft_openapi", @@ -51368,15 +51640,15 @@ "source_location": "L341" }, { - "id": "src_anichron_api_packages_lock_net10_0_sonaranalyzer_csharp", - "label": "SonarAnalyzer.CSharp", + "id": "src_anichron_api_packages_lock_net10_0_polly_core", + "label": "Polly.Core", "_origin": "ast", "community": 248, "community_name": "net10.0", "file_type": "code", - "norm_label": "sonaranalyzer.csharp", + "norm_label": "polly.core", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L116" + "source_location": "L373" }, { "id": "src_anichron_api_packages_lock_net10_0_system_codedom", @@ -51390,18 +51662,7 @@ "source_location": "L394" }, { - "id": "src_anichron_api_packages_lock_net10_0_system_composition_attributedmodel", - "label": "System.Composition.AttributedModel", - "_origin": "ast", - "community": 248, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "system.composition.attributedmodel", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L411" - }, - { - "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_contenthash", + "id": "src_anichron_api_packages_lock_polly_core_contenthash", "label": "contentHash", "_origin": "ast", "community": 248, @@ -51409,21 +51670,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L120" - }, - { - "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_requested", - "label": "requested", - "_origin": "ast", - "community": 248, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "requested", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L118" + "source_location": "L376" }, { - "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_resolved", + "id": "src_anichron_api_packages_lock_polly_core_resolved", "label": "resolved", "_origin": "ast", "community": 248, @@ -51431,10 +51681,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L119" + "source_location": "L375" }, { - "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_type", + "id": "src_anichron_api_packages_lock_polly_core_type", "label": "type", "_origin": "ast", "community": 248, @@ -51442,7 +51692,7 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L117" + "source_location": "L374" }, { "id": "src_anichron_api_packages_lock_system_codedom_contenthash", @@ -51477,39 +51727,6 @@ "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L395" }, - { - "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 248, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L414" - }, - { - "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_resolved", - "label": "resolved", - "_origin": "ast", - "community": 248, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L413" - }, - { - "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_type", - "label": "type", - "_origin": "ast", - "community": 248, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L412" - }, { "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencymodel_contenthash", "label": "contentHash", @@ -51559,52 +51776,18 @@ "label": "DirectoryNotFoundException", "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "norm_label": "directorynotfoundexception", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem_primarymediatype", - "label": "PrimaryMediaType", - "_origin": "ast", - "community": 25, - "community_name": "SingleFileItem", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s29" - ] - }, - "norm_label": "primarymediatype", - "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", - "source_location": "L21" - }, - { - "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem_secondaryfile", - "label": "SecondaryFile", - "_origin": "ast", - "community": 25, - "community_name": "SingleFileItem", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s29" - ] - }, - "norm_label": "secondaryfile", - "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", - "source_location": "L22" - }, { "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_anichron_worker_tests_unit_crawling_testfixture_filesystem", "label": "FileSystem", "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -51621,7 +51804,7 @@ "label": "ProcessedContexts", "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -51638,7 +51821,7 @@ "label": "Fact", "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "norm_label": "fact", "source_file": "", @@ -51649,7 +51832,7 @@ "label": "MockFileSystem", "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "norm_label": "mockfilesystem", "source_file": "", @@ -51660,7 +51843,7 @@ "label": "OperationCanceledException", "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "norm_label": "operationcanceledexception", "source_file": "", @@ -51671,23 +51854,12 @@ "label": "Task", "_origin": "ast", "community": 25, - "community_name": "SingleFileItem", + "community_name": "TestFixture", "file_type": "code", "norm_label": "task", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_cs_fact", - "label": "Fact", - "_origin": "ast", - "community": 25, - "community_name": "SingleFileItem", - "file_type": "code", - "norm_label": "fact", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_netcore_platforms", "label": "Microsoft.NETCore.Platforms", @@ -52293,6 +52465,50 @@ "source_file": "src/Anichron.Core/packages.lock.json", "source_location": "L50" }, + { + "id": "src_anichron_api_services_lockoutservice", + "label": "LockoutService.cs", + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "norm_label": "lockoutservice.cs", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_api_services_lockoutservice_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_lockoutservice_cs_instant", + "label": "Instant", + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "norm_label": "instant", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_lockoutservice_cs_task", + "label": "Task", + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_fact", "label": "Fact", @@ -52304,6 +52520,17 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_inlinedata", + "label": "InlineData", + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "norm_label": "inlinedata", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_instant", "label": "Instant", @@ -52326,6 +52553,17 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_theory", + "label": "Theory", + "_origin": "ast", + "community": 26, + "community_name": "LockoutServiceTests", + "file_type": "code", + "norm_label": "theory", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_core_packages_lock_net10_0_npgsql_entityframeworkcore_postgresql", "label": "Npgsql.EntityFrameworkCore.PostgreSQL", @@ -52909,34 +53147,6 @@ "source_file": "", "source_location": "" }, - { - "id": "ireadonlyset", - "label": "IReadOnlySet", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "ireadonlyset", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_domain_mediaasset_anichron_core_domain_mediaasset_mediatype", - "label": "MediaType", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s3" - ] - }, - "norm_label": "mediatype", - "source_file": "src/Anichron.Core/Domain/MediaAsset.cs", - "source_location": "L26" - }, { "id": "src_anichron_worker_crawling_fileingestionpipeline_cs_cancellationtoken", "label": "CancellationToken", @@ -53025,83 +53235,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_crawling_worker_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_crawling_worker_cs_guid", - "label": "Guid", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "guid", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_crawling_worker_cs_ilogger", - "label": "ILogger", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "ilogger", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_crawling_worker_cs_ioptions", - "label": "IOptions", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "ioptions", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_crawling_worker_cs_iservicescopefactory", - "label": "IServiceScopeFactory", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "iservicescopefactory", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_crawling_worker_cs_loggermessage", - "label": "LoggerMessage", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "loggermessage", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_crawling_worker_cs_task", - "label": "Task", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_ingestionitem_primarymediatype", "label": "PrimaryMediaType", @@ -53136,116 +53269,6 @@ "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", "source_location": "L13" }, - { - "id": "src_anichron_worker_ingestion_ingestionshutdown", - "label": "IngestionShutdown.cs", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "ingestionshutdown.cs", - "source_file": "src/Anichron.Worker/Ingestion/IngestionShutdown.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_ingestion_ingestionshutdown_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_ingestion_ingestionshutdown_cs_exception", - "label": "Exception", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "exception", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_ingestion_livephotolinker_cs_ienumerable", - "label": "IEnumerable", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "ienumerable", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_ingestion_livephotolinker_cs_ifilesystem", - "label": "IFileSystem", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "ifilesystem", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_ingestion_livephotolinker_cs_ireadonlylist", - "label": "IReadOnlyList", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "ireadonlylist", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_ingestion_mediatypedetector_cs_dictionary", - "label": "Dictionary", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "dictionary", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_ilogger", - "label": "ILogger", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "ilogger", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_cs_inlinedata", - "label": "InlineData", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "inlinedata", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests_cs_theory", - "label": "Theory", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "theory", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_infrastructure_packages_lock_microsoft_extensions_fileproviders_abstractions_contenthash", "label": "contentHash", @@ -54534,30 +54557,46 @@ "source_location": "L108" }, { - "id": "src_anichron_worker_ingestion_exifdata_anichron_worker_ingestion_exifdata_empty", - "label": "Empty", + "id": "src_anichron_core_guidfactory", + "label": "GuidFactory.cs", "_origin": "ast", "community": 283, - "community_name": "ExifData", + "community_name": "IGuidFactory", "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s17" - ] - }, - "norm_label": "empty", - "source_file": "src/Anichron.Worker/Ingestion/ExifData.cs", - "source_location": "L17" + "norm_label": "guidfactory.cs", + "source_file": "src/Anichron.Core/GuidFactory.cs", + "source_location": "L1" }, { - "id": "src_anichron_worker_ingestion_exifdata_cs_localdatetime", - "label": "LocalDateTime", + "id": "src_anichron_core_guidfactory_cs_guid", + "label": "Guid", "_origin": "ast", "community": 283, - "community_name": "ExifData", + "community_name": "IGuidFactory", "file_type": "code", - "norm_label": "localdatetime", + "norm_label": "guid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_cs_iclock", + "label": "IClock", + "_origin": "ast", + "community": 283, + "community_name": "IGuidFactory", + "file_type": "code", + "norm_label": "iclock", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_cs_proxytype", + "label": "ProxyType", + "_origin": "ast", + "community": 283, + "community_name": "IGuidFactory", + "file_type": "code", + "norm_label": "proxytype", "source_file": "", "source_location": "" }, @@ -54935,6 +54974,94 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L209" }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_abstractions_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 289, + "community_name": "Microsoft.Extensions.DependencyInjection", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L288" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_abstractions_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 289, + "community_name": "Microsoft.Extensions.DependencyInjection", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L289" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_abstractions_resolved", + "label": "resolved", + "_origin": "ast", + "community": 289, + "community_name": "Microsoft.Extensions.DependencyInjection", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L287" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_abstractions_type", + "label": "type", + "_origin": "ast", + "community": 289, + "community_name": "Microsoft.Extensions.DependencyInjection", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L286" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_options_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 289, + "community_name": "Microsoft.Extensions.DependencyInjection", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L357" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_options_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 289, + "community_name": "Microsoft.Extensions.DependencyInjection", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L358" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_options_resolved", + "label": "resolved", + "_origin": "ast", + "community": 289, + "community_name": "Microsoft.Extensions.DependencyInjection", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L356" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_options_type", + "label": "type", + "_origin": "ast", + "community": 289, + "community_name": "Microsoft.Extensions.DependencyInjection", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L355" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_dependencyinjection", "label": "Microsoft.Extensions.DependencyInjection", @@ -54946,6 +55073,28 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L208" }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_abstractions", + "label": "Microsoft.Extensions.Logging.Abstractions", + "_origin": "ast", + "community": 289, + "community_name": "Microsoft.Extensions.DependencyInjection", + "file_type": "code", + "norm_label": "microsoft.extensions.logging.abstractions", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L285" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_options", + "label": "Microsoft.Extensions.Options", + "_origin": "ast", + "community": 289, + "community_name": "Microsoft.Extensions.DependencyInjection", + "file_type": "code", + "norm_label": "microsoft.extensions.options", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L354" + }, { "id": "src_anichron_api_tests_unit_services_bootstrapresetservicetests_anichron_api_tests_unit_services_testfixture_unitofwork", "label": "UnitOfWork", @@ -55185,59 +55334,48 @@ "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_visualstudio_threading_analyzers_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 291, - "community_name": "Microsoft.VisualStudio.Threading.Analyzers", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L31" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_visualstudio_threading_analyzers_requested", - "label": "requested", + "id": "ireadonlyset", + "label": "IReadOnlySet", "_origin": "ast", "community": 291, - "community_name": "Microsoft.VisualStudio.Threading.Analyzers", + "community_name": "LivePhotoLinker", "file_type": "code", - "norm_label": "requested", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L29" + "norm_label": "ireadonlyset", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_visualstudio_threading_analyzers_resolved", - "label": "resolved", + "id": "src_anichron_worker_ingestion_livephotolinker_cs_ienumerable", + "label": "IEnumerable", "_origin": "ast", "community": 291, - "community_name": "Microsoft.VisualStudio.Threading.Analyzers", + "community_name": "LivePhotoLinker", "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L30" + "norm_label": "ienumerable", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_visualstudio_threading_analyzers_type", - "label": "type", + "id": "src_anichron_worker_ingestion_livephotolinker_cs_ifilesystem", + "label": "IFileSystem", "_origin": "ast", "community": 291, - "community_name": "Microsoft.VisualStudio.Threading.Analyzers", + "community_name": "LivePhotoLinker", "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L28" + "norm_label": "ifilesystem", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_visualstudio_threading_analyzers", - "label": "Microsoft.VisualStudio.Threading.Analyzers", + "id": "src_anichron_worker_ingestion_livephotolinker_cs_ireadonlylist", + "label": "IReadOnlyList", "_origin": "ast", "community": 291, - "community_name": "Microsoft.VisualStudio.Threading.Analyzers", + "community_name": "LivePhotoLinker", "file_type": "code", - "norm_label": "microsoft.visualstudio.threading.analyzers", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L27" + "norm_label": "ireadonlylist", + "source_file": "", + "source_location": "" }, { "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_roslynator_analyzers", @@ -55294,6 +55432,62 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L43" }, + { + "id": "src_anichron_worker_ingestion_ingestionitem", + "label": "IngestionItem.cs", + "_origin": "ast", + "community": 293, + "community_name": "SingleFileItem", + "file_type": "code", + "norm_label": "ingestionitem.cs", + "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem_primarymediatype", + "label": "PrimaryMediaType", + "_origin": "ast", + "community": 293, + "community_name": "SingleFileItem", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s29" + ] + }, + "norm_label": "primarymediatype", + "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", + "source_location": "L21" + }, + { + "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem_secondaryfile", + "label": "SecondaryFile", + "_origin": "ast", + "community": 293, + "community_name": "SingleFileItem", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s29" + ] + }, + "norm_label": "secondaryfile", + "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", + "source_location": "L22" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_cs_fact", + "label": "Fact", + "_origin": "ast", + "community": 293, + "community_name": "SingleFileItem", + "file_type": "code", + "norm_label": "fact", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_entityframeworkcore_contenthash", "label": "contentHash", @@ -55408,6 +55602,61 @@ "source_file": "docs/adr/0003-self-host-mutation-reports.md", "source_location": "L12" }, + { + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 296, + "community_name": "Microsoft.EntityFrameworkCore.Design", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L46" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_requested", + "label": "requested", + "_origin": "ast", + "community": 296, + "community_name": "Microsoft.EntityFrameworkCore.Design", + "file_type": "code", + "norm_label": "requested", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L44" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_resolved", + "label": "resolved", + "_origin": "ast", + "community": 296, + "community_name": "Microsoft.EntityFrameworkCore.Design", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L45" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_type", + "label": "type", + "_origin": "ast", + "community": 296, + "community_name": "Microsoft.EntityFrameworkCore.Design", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L43" + }, + { + "id": "src_anichron_api_packages_lock_net10_0_microsoft_entityframeworkcore_design", + "label": "Microsoft.EntityFrameworkCore.Design", + "_origin": "ast", + "community": 296, + "community_name": "Microsoft.EntityFrameworkCore.Design", + "file_type": "code", + "norm_label": "microsoft.entityframeworkcore.design", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L42" + }, { "id": "src_anichron_worker_packages_lock_net10_0_system_io_hashing", "label": "System.IO.Hashing", @@ -55463,6 +55712,61 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L154" }, + { + "id": "src_anichron_api_packages_lock_net10_0_sonaranalyzer_csharp", + "label": "SonarAnalyzer.CSharp", + "_origin": "ast", + "community": 298, + "community_name": "SonarAnalyzer.CSharp", + "file_type": "code", + "norm_label": "sonaranalyzer.csharp", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L116" + }, + { + "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 298, + "community_name": "SonarAnalyzer.CSharp", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L120" + }, + { + "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_requested", + "label": "requested", + "_origin": "ast", + "community": 298, + "community_name": "SonarAnalyzer.CSharp", + "file_type": "code", + "norm_label": "requested", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L118" + }, + { + "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_resolved", + "label": "resolved", + "_origin": "ast", + "community": 298, + "community_name": "SonarAnalyzer.CSharp", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L119" + }, + { + "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_type", + "label": "type", + "_origin": "ast", + "community": 298, + "community_name": "SonarAnalyzer.CSharp", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L117" + }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_capturinglogger_entries", "label": "Entries", @@ -56335,6 +56639,39 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L401" }, + { + "id": "src_anichron_worker_ingestion_ingestionshutdown", + "label": "IngestionShutdown.cs", + "_origin": "ast", + "community": 300, + "community_name": ".IsInProgress", + "file_type": "code", + "norm_label": "ingestionshutdown.cs", + "source_file": "src/Anichron.Worker/Ingestion/IngestionShutdown.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_ingestion_ingestionshutdown_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 300, + "community_name": ".IsInProgress", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_ingestionshutdown_cs_exception", + "label": "Exception", + "_origin": "ast", + "community": 300, + "community_name": ".IsInProgress", + "file_type": "code", + "norm_label": "exception", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_coverlet_collector_contenthash", "label": "contentHash", @@ -56533,12 +56870,397 @@ "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L360" }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_configuration", + "label": "Microsoft.Extensions.Configuration", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.configuration", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L152" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_configuration_abstractions", + "label": "Microsoft.Extensions.Configuration.Abstractions", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.configuration.abstractions", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L153" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_configuration_fileextensions", + "label": "Microsoft.Extensions.Configuration.FileExtensions", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.configuration.fileextensions", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L193" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_configuration_json", + "label": "Microsoft.Extensions.Configuration.Json", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.configuration.json", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L203" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_diagnostics_abstractions", + "label": "Microsoft.Extensions.Diagnostics.Abstractions", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.diagnostics.abstractions", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L227" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_fileproviders_abstractions", + "label": "Microsoft.Extensions.FileProviders.Abstractions", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.fileproviders.abstractions", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L181" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_fileproviders_physical", + "label": "Microsoft.Extensions.FileProviders.Physical", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.fileproviders.physical", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L182" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_filesystemglobbing", + "label": "Microsoft.Extensions.FileSystemGlobbing", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.filesystemglobbing", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L254" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_primitives", + "label": "Microsoft.Extensions.Primitives", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.primitives", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L124" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_abstractions_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L142" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_abstractions_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L143" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_abstractions_resolved", + "label": "resolved", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L141" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_abstractions_type", + "label": "type", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L140" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_binder_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L150" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_binder_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L151" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_binder_resolved", + "label": "resolved", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L149" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_binder_type", + "label": "type", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L148" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_commandline_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L159" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_commandline_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L160" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_commandline_resolved", + "label": "resolved", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L158" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_commandline_type", + "label": "type", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L157" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_environmentvariables_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L168" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_environmentvariables_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L169" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_environmentvariables_resolved", + "label": "resolved", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L167" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_environmentvariables_type", + "label": "type", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L166" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_fileextensions_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L177" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_fileextensions_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L178" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_fileextensions_resolved", + "label": "resolved", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L176" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_fileextensions_type", + "label": "type", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L175" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_json_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L190" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_usersecrets_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L200" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_usersecrets_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L201" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_usersecrets_resolved", + "label": "resolved", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L199" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_usersecrets_type", + "label": "type", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L198" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L225" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_fileproviders_abstractions_contenthash", "label": "contentHash", "_origin": "ast", "community": 305, - "community_name": "Microsoft.Extensions.FileProviders.Abstractions", + "community_name": "Microsoft.Extensions.Configuration.Abstractions", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", @@ -56549,7 +57271,7 @@ "label": "dependencies", "_origin": "ast", "community": 305, - "community_name": "Microsoft.Extensions.FileProviders.Abstractions", + "community_name": "Microsoft.Extensions.Configuration.Abstractions", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", @@ -56560,7 +57282,7 @@ "label": "resolved", "_origin": "ast", "community": 305, - "community_name": "Microsoft.Extensions.FileProviders.Abstractions", + "community_name": "Microsoft.Extensions.Configuration.Abstractions", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", @@ -56571,23 +57293,155 @@ "label": "type", "_origin": "ast", "community": 305, - "community_name": "Microsoft.Extensions.FileProviders.Abstractions", + "community_name": "Microsoft.Extensions.Configuration.Abstractions", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L241" }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_fileproviders_physical_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L251" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_fileproviders_physical_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L252" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_fileproviders_physical_resolved", + "label": "resolved", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L250" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_fileproviders_physical_type", + "label": "type", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L249" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_hosting_abstractions_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L267" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_abstractions", + "label": "Microsoft.Extensions.Configuration.Abstractions", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.configuration.abstractions", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L139" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_binder", + "label": "Microsoft.Extensions.Configuration.Binder", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.configuration.binder", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L147" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_commandline", + "label": "Microsoft.Extensions.Configuration.CommandLine", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.configuration.commandline", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L156" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_environmentvariables", + "label": "Microsoft.Extensions.Configuration.EnvironmentVariables", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.configuration.environmentvariables", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L165" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_fileextensions", + "label": "Microsoft.Extensions.Configuration.FileExtensions", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.configuration.fileextensions", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L174" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_usersecrets", + "label": "Microsoft.Extensions.Configuration.UserSecrets", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.configuration.usersecrets", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L197" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_fileproviders_abstractions", "label": "Microsoft.Extensions.FileProviders.Abstractions", "_origin": "ast", "community": 305, - "community_name": "Microsoft.Extensions.FileProviders.Abstractions", + "community_name": "Microsoft.Extensions.Configuration.Abstractions", "file_type": "code", "norm_label": "microsoft.extensions.fileproviders.abstractions", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L240" }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_fileproviders_physical", + "label": "Microsoft.Extensions.FileProviders.Physical", + "_origin": "ast", + "community": 305, + "community_name": "Microsoft.Extensions.Configuration.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.fileproviders.physical", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L248" + }, { "id": "nuget_microsoft_entityframeworkcore_inmemory", "label": "Microsoft.EntityFrameworkCore.InMemory", @@ -56775,162 +57629,6 @@ "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L147" }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_testfixture_guidfactory", - "label": "GuidFactory", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ] - }, - "norm_label": "guidfactory", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L14" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_testfixture_storageconfigs", - "label": "StorageConfigs", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ] - }, - "norm_label": "storageconfigs", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L13" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_testfixture_unitofwork", - "label": "UnitOfWork", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ] - }, - "norm_label": "unitofwork", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L15" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_testfixture_users", - "label": "Users", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s121" - ] - }, - "norm_label": "users", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", - "source_location": "L12" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_fact", - "label": "Fact", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "fact", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_guid", - "label": "Guid", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "guid", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_iguidfactory", - "label": "IGuidFactory", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "iguidfactory", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_inlinedata", - "label": "InlineData", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "inlinedata", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_task", - "label": "Task", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_theory", - "label": "Theory", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "theory", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_data_repository_userstorageconfigrepository_cs_anichrondbcontext", - "label": "AnichronDbContext", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "anichrondbcontext", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_core_data_repository_userstorageconfigrepository_cs_cancellationtoken", "label": "CancellationToken", @@ -57110,301 +57808,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_cs_fact", - "label": "Fact", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "fact", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_cs_guid", - "label": "Guid", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "guid", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_cs_task", - "label": "Task", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_testfixture_configrepository", - "label": "ConfigRepository", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", - "scope_chain": [ - "s306" - ] - }, - "norm_label": "configrepository", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L16" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_testfixture_pipeline", - "label": "Pipeline", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", - "scope_chain": [ - "s306" - ] - }, - "norm_label": "pipeline", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L17" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_anichron_worker_tests_unit_crawling_testfixture_workerstate", - "label": "WorkerState", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", - "scope_chain": [ - "s306" - ] - }, - "norm_label": "workerstate", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", - "source_location": "L18" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_fact", - "label": "Fact", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "fact", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_guid", - "label": "Guid", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "guid", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_iservicescopefactory", - "label": "IServiceScopeFactory", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "iservicescopefactory", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_task", - "label": "Task", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_crawling_workertests_cs_workerstate", - "label": "WorkerState", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "workerstate", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture_storageconfigrepository", - "label": "StorageConfigRepository", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", - "scope_chain": [ - "s307" - ] - }, - "norm_label": "storageconfigrepository", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L18" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture_unitofwork", - "label": "UnitOfWork", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", - "scope_chain": [ - "s307" - ] - }, - "norm_label": "unitofwork", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L19" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture_userrepository", - "label": "UserRepository", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", - "scope_chain": [ - "s307" - ] - }, - "norm_label": "userrepository", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L17" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture_workerstate", - "label": "WorkerState", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Startup", - "scope_chain": [ - "s307" - ] - }, - "norm_label": "workerstate", - "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", - "source_location": "L20" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_fact", - "label": "Fact", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "fact", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_ilogger", - "label": "ILogger", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "ilogger", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_invalidoperationexception", - "label": "InvalidOperationException", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "invalidoperationexception", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_iservicescopefactory", - "label": "IServiceScopeFactory", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "iservicescopefactory", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_task", - "label": "Task", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_workerstate", - "label": "WorkerState", - "_origin": "ast", - "community": 31, - "community_name": "UserStorageConfig", - "file_type": "code", - "norm_label": "workerstate", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_api_tests_unit_packages_lock_microsoft_aspnetcore_testhost_contenthash", "label": "contentHash", @@ -57537,12 +57940,29 @@ "source_file": "src/Anichron.API.Tests.Unit/packages.lock.json", "source_location": "L122" }, + { + "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_loggingmiddleware_order", + "label": "Order", + "_origin": "ast", + "community": 313, + "community_name": "LoggingMiddleware", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Middlewares", + "scope_chain": [ + "s43" + ] + }, + "norm_label": "order", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", + "source_location": "L7" + }, { "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_cs_ilogger", "label": "ILogger", "_origin": "ast", "community": 313, - "community_name": "Log", + "community_name": "LoggingMiddleware", "file_type": "code", "norm_label": "ilogger", "source_file": "", @@ -57553,7 +57973,7 @@ "label": "LoggerMessage", "_origin": "ast", "community": 313, - "community_name": "Log", + "community_name": "LoggingMiddleware", "file_type": "code", "norm_label": "loggermessage", "source_file": "", @@ -57691,6 +58111,50 @@ "source_file": "src/Anichron.API.Tests.Unit/packages.lock.json", "source_location": "L614" }, + { + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 317, + "community_name": "Microsoft.EntityFrameworkCore.Analyzers", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L230" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_resolved", + "label": "resolved", + "_origin": "ast", + "community": 317, + "community_name": "Microsoft.EntityFrameworkCore.Analyzers", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L229" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_type", + "label": "type", + "_origin": "ast", + "community": 317, + "community_name": "Microsoft.EntityFrameworkCore.Analyzers", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L228" + }, + { + "id": "src_anichron_api_packages_lock_net10_0_microsoft_entityframeworkcore_analyzers", + "label": "Microsoft.EntityFrameworkCore.Analyzers", + "_origin": "ast", + "community": 317, + "community_name": "Microsoft.EntityFrameworkCore.Analyzers", + "file_type": "code", + "norm_label": "microsoft.entityframeworkcore.analyzers", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L227" + }, { "id": "src_anichron_api_packages_lock_microsoft_extensions_diagnostics_exceptionsummarization_contenthash", "label": "contentHash", @@ -57757,6 +58221,39 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 319, + "community_name": ".BuildWithMiddlewares", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_ingestiondelegate", + "label": "IngestionDelegate", + "_origin": "ast", + "community": 319, + "community_name": ".BuildWithMiddlewares", + "file_type": "code", + "norm_label": "ingestiondelegate", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_task", + "label": "Task", + "_origin": "ast", + "community": 319, + "community_name": ".BuildWithMiddlewares", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_ingestion_proxy_proxyshardstrategy", "label": "ProxyShardStrategy.cs", @@ -57834,6 +58331,40 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture_revokedinsidetransaction", + "label": "RevokedInsideTransaction", + "_origin": "ast", + "community": 32, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s160" + ] + }, + "norm_label": "revokedinsidetransaction", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L23" + }, + { + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture_savedinsidetransaction", + "label": "SavedInsideTransaction", + "_origin": "ast", + "community": 32, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s160" + ] + }, + "norm_label": "savedinsidetransaction", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L24" + }, { "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture_tokenservice", "label": "TokenService", @@ -57844,12 +58375,12 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s121" + "s160" ] }, "norm_label": "tokenservice", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L16" + "source_location": "L17" }, { "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture_unitofwork", @@ -57861,12 +58392,12 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s121" + "s160" ] }, "norm_label": "unitofwork", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L15" + "source_location": "L16" }, { "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture_users", @@ -57878,12 +58409,12 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s121" + "s160" ] }, "norm_label": "users", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L14" + "source_location": "L15" }, { "id": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_cancellationtoken", @@ -57907,6 +58438,17 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_func", + "label": "Func", + "_origin": "ast", + "community": 32, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "func", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_guid", "label": "Guid", @@ -57940,6 +58482,17 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_invalidoperationexception", + "label": "InvalidOperationException", + "_origin": "ast", + "community": 32, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "invalidoperationexception", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_task", "label": "Task", @@ -57952,15 +58505,92 @@ "source_location": "" }, { - "id": "src_anichron_api_infrastructure_authmessages", - "label": "AuthMessages.cs", + "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 320, + "community_name": "Microsoft.Extensions.AmbientMetadata.Application", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L235" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_resolved", + "label": "resolved", + "_origin": "ast", + "community": 320, + "community_name": "Microsoft.Extensions.AmbientMetadata.Application", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L234" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_type", + "label": "type", + "_origin": "ast", + "community": 320, + "community_name": "Microsoft.Extensions.AmbientMetadata.Application", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L233" + }, + { + "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_ambientmetadata_application", + "label": "Microsoft.Extensions.AmbientMetadata.Application", + "_origin": "ast", + "community": 320, + "community_name": "Microsoft.Extensions.AmbientMetadata.Application", + "file_type": "code", + "norm_label": "microsoft.extensions.ambientmetadata.application", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L232" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_contenthash", + "label": "contentHash", "_origin": "ast", "community": 321, - "community_name": "AuthMessages.cs", + "community_name": "Microsoft.Extensions.Compliance.Abstractions", "file_type": "code", - "norm_label": "authmessages.cs", - "source_file": "src/Anichron.API/Infrastructure/AuthMessages.cs", - "source_location": "L1" + "norm_label": "contenthash", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L240" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_resolved", + "label": "resolved", + "_origin": "ast", + "community": 321, + "community_name": "Microsoft.Extensions.Compliance.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L239" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_type", + "label": "type", + "_origin": "ast", + "community": 321, + "community_name": "Microsoft.Extensions.Compliance.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L238" + }, + { + "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_compliance_abstractions", + "label": "Microsoft.Extensions.Compliance.Abstractions", + "_origin": "ast", + "community": 321, + "community_name": "Microsoft.Extensions.Compliance.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.compliance.abstractions", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L237" }, { "id": "scripts_assemble_pages_test", @@ -58207,6 +58837,50 @@ "source_file": "src/Anichron.API.Tests.Unit/packages.lock.json", "source_location": "L258" }, + { + "id": "src_anichron_api_packages_lock_net10_0_system_composition_attributedmodel", + "label": "System.Composition.AttributedModel", + "_origin": "ast", + "community": 325, + "community_name": "System.Composition.AttributedModel", + "file_type": "code", + "norm_label": "system.composition.attributedmodel", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L411" + }, + { + "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 325, + "community_name": "System.Composition.AttributedModel", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L414" + }, + { + "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_resolved", + "label": "resolved", + "_origin": "ast", + "community": 325, + "community_name": "System.Composition.AttributedModel", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L413" + }, + { + "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_type", + "label": "type", + "_origin": "ast", + "community": 325, + "community_name": "System.Composition.AttributedModel", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L412" + }, { "id": "src_anichron_api_tests_unit_packages_lock_microsoft_entityframeworkcore_abstractions_contenthash", "label": "contentHash", @@ -58289,7 +58963,7 @@ "label": "Anichron.Worker.Tests.Unit.Ingestion", "_origin": "ast", "community": 328, - "community_name": "MediaTypeDetectorTests.cs", + "community_name": "LivePhotoLinkerTests.cs", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -58305,7 +58979,7 @@ "label": "ExifDataTests.cs", "_origin": "ast", "community": 328, - "community_name": "MediaTypeDetectorTests.cs", + "community_name": "LivePhotoLinkerTests.cs", "file_type": "code", "norm_label": "exifdatatests.cs", "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", @@ -58316,18 +58990,29 @@ "label": "Fact", "_origin": "ast", "community": 328, - "community_name": "MediaTypeDetectorTests.cs", + "community_name": "LivePhotoLinkerTests.cs", "file_type": "code", "norm_label": "fact", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_livephotolinkertests", + "label": "LivePhotoLinkerTests.cs", + "_origin": "ast", + "community": 328, + "community_name": "LivePhotoLinkerTests.cs", + "file_type": "code", + "norm_label": "livephotolinkertests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/LivePhotoLinkerTests.cs", + "source_location": "L1" + }, { "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests", "label": "MediaTypeDetectorTests.cs", "_origin": "ast", "community": 328, - "community_name": "MediaTypeDetectorTests.cs", + "community_name": "LivePhotoLinkerTests.cs", "file_type": "code", "norm_label": "mediatypedetectortests.cs", "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", @@ -58377,28 +59062,12 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L446" }, - { - "id": "csharp_namespace:16742b72470e0efe", - "label": "Anichron.API.Tests.Unit.Security", - "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.API.Tests.Unit.Security" - }, - "norm_label": "anichron.api.tests.unit.security", - "source_file": "src/Anichron.API.Tests.Unit/Security/JwtFactoryTests.cs", - "source_location": "L9", - "type": "namespace" - }, { "id": "csharp_namespace:2afce6c2c8cf3b78", "label": "Anichron.API.Tests.Unit.Infrastructure", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -58414,7 +59083,7 @@ "label": "Anichron.API.Endpoints", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -58430,7 +59099,7 @@ "label": "Anichron.API.Infrastructure", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -58441,28 +59110,12 @@ "source_location": "L1", "type": "namespace" }, - { - "id": "csharp_namespace:869ecaef5ac1f3a9", - "label": "Anichron.API.Settings", - "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.API.Settings" - }, - "norm_label": "anichron.api.settings", - "source_file": "src/Anichron.API/Settings/AppDefaults.cs", - "source_location": "L3", - "type": "namespace" - }, { "id": "csharp_namespace:cea16f26468a585b", "label": "Anichron.API.Tests.Unit.Endpoints", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -58478,21 +59131,21 @@ "label": "AdminEndpoints.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "adminendpoints.cs", "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", "source_location": "L1" }, { - "id": "src_anichron_api_endpoints_authresponsemapper", - "label": "AuthResponseMapper.cs", + "id": "src_anichron_api_endpoints_authendpoints", + "label": "AuthEndpoints.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", - "norm_label": "authresponsemapper.cs", - "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", + "norm_label": "authendpoints.cs", + "source_file": "src/Anichron.API/Endpoints/AuthEndpoints.cs", "source_location": "L1" }, { @@ -58500,21 +59153,21 @@ "label": "UserEndpoints.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "userendpoints.cs", "source_file": "src/Anichron.API/Endpoints/UserEndpoints.cs", "source_location": "L1" }, { - "id": "src_anichron_api_infrastructure_applicationextensions", - "label": "ApplicationExtensions.cs", + "id": "src_anichron_api_infrastructure_authmessages", + "label": "AuthMessages.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", - "norm_label": "applicationextensions.cs", - "source_file": "src/Anichron.API/Infrastructure/ApplicationExtensions.cs", + "norm_label": "authmessages.cs", + "source_file": "src/Anichron.API/Infrastructure/AuthMessages.cs", "source_location": "L1" }, { @@ -58522,7 +59175,7 @@ "label": "AuthPolicies.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "authpolicies.cs", "source_file": "src/Anichron.API/Infrastructure/AuthPolicies.cs", @@ -58533,7 +59186,7 @@ "label": "HealthCheckResponseWriter.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "healthcheckresponsewriter.cs", "source_file": "src/Anichron.API/Infrastructure/HealthCheckResponseWriter.cs", @@ -58544,7 +59197,7 @@ "label": "MustChangePasswordMiddleware.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "mustchangepasswordmiddleware.cs", "source_file": "src/Anichron.API/Infrastructure/MustChangePasswordMiddleware.cs", @@ -58555,112 +59208,29 @@ "label": "ProxyStorageHealthCheck.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "proxystoragehealthcheck.cs", "source_file": "src/Anichron.API/Infrastructure/ProxyStorageHealthCheck.cs", "source_location": "L1" }, - { - "id": "src_anichron_api_infrastructure_servicecollectionextensions", - "label": "ServiceCollectionExtensions.cs", - "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", - "file_type": "code", - "norm_label": "servicecollectionextensions.cs", - "source_file": "src/Anichron.API/Infrastructure/ServiceCollectionExtensions.cs", - "source_location": "L1" - }, { "id": "src_anichron_api_program", "label": "Anichron.API/Program.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "anichron.api/program.cs", "source_file": "src/Anichron.API/Program.cs", "source_location": "L1" }, - { - "id": "src_anichron_api_security_jwtfactory", - "label": "JwtFactory.cs", - "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", - "file_type": "code", - "norm_label": "jwtfactory.cs", - "source_file": "src/Anichron.API/Security/JwtFactory.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_security_passwordhasher", - "label": "PasswordHasher.cs", - "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", - "file_type": "code", - "norm_label": "passwordhasher.cs", - "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_settings_corssettings", - "label": "CorsSettings.cs", - "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", - "file_type": "code", - "norm_label": "corssettings.cs", - "source_file": "src/Anichron.API/Settings/CorsSettings.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_settings_corssettings_anichron_api_settings_corssettings_allowedorigins", - "label": "AllowedOrigins", - "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "allowedorigins", - "source_file": "src/Anichron.API/Settings/CorsSettings.cs", - "source_location": "L5" - }, - { - "id": "src_anichron_api_settings_passwordpolicy", - "label": "PasswordPolicy.cs", - "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", - "file_type": "code", - "norm_label": "passwordpolicy.cs", - "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_settings_usernamepolicy", - "label": "UsernamePolicy.cs", - "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", - "file_type": "code", - "norm_label": "usernamepolicy.cs", - "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", - "source_location": "L1" - }, { "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests", "label": "AdminEndpointsTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "adminendpointstests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", @@ -58671,7 +59241,7 @@ "label": "AdminStorageConfigEndpointsTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "adminstorageconfigendpointstests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminStorageConfigEndpointsTests.cs", @@ -58682,7 +59252,7 @@ "label": "AdminUserEndpointsTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "adminuserendpointstests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminUserEndpointsTests.cs", @@ -58693,7 +59263,7 @@ "label": "AuthEndpointsTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "authendpointstests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthEndpointsTests.cs", @@ -58704,7 +59274,7 @@ "label": "AuthResponseMapperTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "authresponsemappertests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", @@ -58715,7 +59285,7 @@ "label": "UserEndpointsTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "userendpointstests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/UserEndpointsTests.cs", @@ -58726,7 +59296,7 @@ "label": "HealthCheckResponseWriterTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "healthcheckresponsewritertests.cs", "source_file": "src/Anichron.API.Tests.Unit/Infrastructure/HealthCheckResponseWriterTests.cs", @@ -58737,7 +59307,7 @@ "label": "MustChangePasswordMiddlewareTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "mustchangepasswordmiddlewaretests.cs", "source_file": "src/Anichron.API.Tests.Unit/Infrastructure/MustChangePasswordMiddlewareTests.cs", @@ -58748,34 +59318,12 @@ "label": "ProxyStorageHealthCheckTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "file_type": "code", "norm_label": "proxystoragehealthchecktests.cs", "source_file": "src/Anichron.API.Tests.Unit/Infrastructure/ProxyStorageHealthCheckTests.cs", "source_location": "L1" }, - { - "id": "src_anichron_api_tests_unit_security_jwtfactorytests", - "label": "JwtFactoryTests.cs", - "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", - "file_type": "code", - "norm_label": "jwtfactorytests.cs", - "source_file": "src/Anichron.API.Tests.Unit/Security/JwtFactoryTests.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_tests_unit_security_passwordhashertests", - "label": "PasswordHasherTests.cs", - "_origin": "ast", - "community": 33, - "community_name": "Anichron.API.Settings", - "file_type": "code", - "norm_label": "passwordhashertests.cs", - "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L1" - }, { "id": "src_anichron_api_tests_unit_packages_lock_microsoft_extensions_filesystemglobbing_contenthash", "label": "contentHash", @@ -58821,70 +59369,48 @@ "source_location": "L332" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_castle_core_contenthash", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_entityframeworkcore_analyzers_contenthash", "label": "contentHash", "_origin": "ast", "community": 331, - "community_name": "Castle.Core", + "community_name": "Microsoft.EntityFrameworkCore.Analyzers", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L89" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_castle_core_dependencies", - "label": "dependencies", - "_origin": "ast", - "community": 331, - "community_name": "Castle.Core", - "file_type": "code", - "norm_label": "dependencies", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L90" + "source_location": "L117" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_castle_core_resolved", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_entityframeworkcore_analyzers_resolved", "label": "resolved", "_origin": "ast", "community": 331, - "community_name": "Castle.Core", + "community_name": "Microsoft.EntityFrameworkCore.Analyzers", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L88" + "source_location": "L116" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_castle_core_type", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_entityframeworkcore_analyzers_type", "label": "type", "_origin": "ast", "community": 331, - "community_name": "Castle.Core", + "community_name": "Microsoft.EntityFrameworkCore.Analyzers", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L87" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_system_diagnostics_eventlog", - "label": "System.Diagnostics.EventLog", - "_origin": "ast", - "community": 331, - "community_name": "Castle.Core", - "file_type": "code", - "norm_label": "system.diagnostics.eventlog", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L91" + "source_location": "L115" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_castle_core", - "label": "Castle.Core", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_entityframeworkcore_analyzers", + "label": "Microsoft.EntityFrameworkCore.Analyzers", "_origin": "ast", "community": 331, - "community_name": "Castle.Core", + "community_name": "Microsoft.EntityFrameworkCore.Analyzers", "file_type": "code", - "norm_label": "castle.core", + "norm_label": "microsoft.entityframeworkcore.analyzers", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L86" + "source_location": "L114" }, { "id": "src_anichron_worker_packages_lock_microsoft_visualstudio_solutionpersistence_contenthash", @@ -58975,59 +59501,48 @@ "source_location": "L450" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_abstractions_contenthash", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_filesystemglobbing_contenthash", "label": "contentHash", "_origin": "ast", "community": 334, - "community_name": "Microsoft.Extensions.Logging.Abstractions", + "community_name": "Microsoft.Extensions.FileSystemGlobbing", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L288" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_abstractions_dependencies", - "label": "dependencies", - "_origin": "ast", - "community": 334, - "community_name": "Microsoft.Extensions.Logging.Abstractions", - "file_type": "code", - "norm_label": "dependencies", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L289" + "source_location": "L261" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_abstractions_resolved", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_filesystemglobbing_resolved", "label": "resolved", "_origin": "ast", "community": 334, - "community_name": "Microsoft.Extensions.Logging.Abstractions", + "community_name": "Microsoft.Extensions.FileSystemGlobbing", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L287" + "source_location": "L260" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_abstractions_type", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_filesystemglobbing_type", "label": "type", "_origin": "ast", "community": 334, - "community_name": "Microsoft.Extensions.Logging.Abstractions", + "community_name": "Microsoft.Extensions.FileSystemGlobbing", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L286" + "source_location": "L259" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_abstractions", - "label": "Microsoft.Extensions.Logging.Abstractions", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_filesystemglobbing", + "label": "Microsoft.Extensions.FileSystemGlobbing", "_origin": "ast", "community": 334, - "community_name": "Microsoft.Extensions.Logging.Abstractions", + "community_name": "Microsoft.Extensions.FileSystemGlobbing", "file_type": "code", - "norm_label": "microsoft.extensions.logging.abstractions", + "norm_label": "microsoft.extensions.filesystemglobbing", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L285" + "source_location": "L258" }, { "id": "src_anichron_api_tests_unit_packages_lock_microsoft_extensions_logging_eventlog_contenthash", @@ -59074,59 +59589,48 @@ "source_location": "L426" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_xunit_runner_visualstudio", - "label": "xunit.runner.visualstudio", - "_origin": "ast", - "community": 336, - "community_name": "xunit.runner.visualstudio", - "file_type": "code", - "norm_label": "xunit.runner.visualstudio", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L63" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_xunit_runner_visualstudio_contenthash", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_configuration_contenthash", "label": "contentHash", "_origin": "ast", "community": 336, - "community_name": "xunit.runner.visualstudio", + "community_name": "Microsoft.Extensions.Logging.Configuration", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L67" + "source_location": "L296" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_xunit_runner_visualstudio_requested", - "label": "requested", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_configuration_resolved", + "label": "resolved", "_origin": "ast", "community": 336, - "community_name": "xunit.runner.visualstudio", + "community_name": "Microsoft.Extensions.Logging.Configuration", "file_type": "code", - "norm_label": "requested", + "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L65" + "source_location": "L295" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_xunit_runner_visualstudio_resolved", - "label": "resolved", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_configuration_type", + "label": "type", "_origin": "ast", "community": 336, - "community_name": "xunit.runner.visualstudio", + "community_name": "Microsoft.Extensions.Logging.Configuration", "file_type": "code", - "norm_label": "resolved", + "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L66" + "source_location": "L294" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_xunit_runner_visualstudio_type", - "label": "type", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_configuration", + "label": "Microsoft.Extensions.Logging.Configuration", "_origin": "ast", "community": 336, - "community_name": "xunit.runner.visualstudio", + "community_name": "Microsoft.Extensions.Logging.Configuration", "file_type": "code", - "norm_label": "type", + "norm_label": "microsoft.extensions.logging.configuration", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L64" + "source_location": "L293" }, { "id": "src_anichron_api_tests_unit_packages_lock_microsoft_openapi_contenthash", @@ -59265,18 +59769,73 @@ "label": "Exception", "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "norm_label": "exception", "source_file": "", "source_location": "" }, + { + "id": "semaphoreslim", + "label": "SemaphoreSlim", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "semaphoreslim", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_processlauncher", + "label": "ProcessLauncher.cs", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "processlauncher.cs", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProcessLauncher.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_ingestion_proxy_processlauncher_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_processlauncher_cs_ireadonlylist", + "label": "IReadOnlyList", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "ireadonlylist", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_processlauncher_cs_task", + "label": "Task", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_ffmpegexception_exitcode", "label": "ExitCode", "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Proxy", @@ -59293,7 +59852,7 @@ "label": "Stderr", "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Proxy", @@ -59305,12 +59864,123 @@ "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", "source_location": "L125" }, + { + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_cs_ilogger", + "label": "ILogger", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "ilogger", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_cs_ioptions", + "label": "IOptions", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "ioptions", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_cs_loggermessage", + "label": "LoggerMessage", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "loggermessage", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_videoprocessor_cs_task", + "label": "Task", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_video720pgenerator_filename", + "label": "FileName", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Proxy", + "scope_chain": [ + "s29" + ] + }, + "norm_label": "filename", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", + "source_location": "L14" + }, + { + "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_video720pgenerator_proxytype", + "label": "ProxyType", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Proxy", + "scope_chain": [ + "s29" + ] + }, + "norm_label": "proxytype", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", + "source_location": "L15" + }, + { + "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_cs_task", + "label": "Task", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests_anichron_worker_tests_unit_ingestion_proxy_testfixture_launcher", "label": "Launcher", "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -59327,7 +59997,7 @@ "label": "CancellationToken", "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -59338,18 +60008,29 @@ "label": "Fact", "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "norm_label": "fact", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests_cs_ilogger", + "label": "ILogger", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "ilogger", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests_cs_ireadonlylist", "label": "IReadOnlyList", "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", "file_type": "code", "norm_label": "ireadonlylist", "source_file": "", @@ -59360,7 +60041,29 @@ "label": "Task", "_origin": "ast", "community": 34, - "community_name": "FfmpegVideoProcessorTests", + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_cs_fact", + "label": "Fact", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", + "file_type": "code", + "norm_label": "fact", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_cs_task", + "label": "Task", + "_origin": "ast", + "community": 34, + "community_name": "FfmpegVideoProcessor", "file_type": "code", "norm_label": "task", "source_file": "", @@ -60363,6 +61066,22 @@ "source_file": "src/Anichron.Infrastructure.Tests.Unit/packages.lock.json", "source_location": "L96" }, + { + "id": "csharp_namespace:16742b72470e0efe", + "label": "Anichron.API.Tests.Unit.Security", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.API.Tests.Unit.Security" + }, + "norm_label": "anichron.api.tests.unit.security", + "source_file": "src/Anichron.API.Tests.Unit/Security/JwtFactoryTests.cs", + "source_location": "L9", + "type": "namespace" + }, { "id": "csharp_namespace:1cfceb504c1ea4bc", "label": "Anichron.API.Tests.Unit.Services", @@ -60395,22 +61114,6 @@ "source_location": "L1", "type": "namespace" }, - { - "id": "csharp_namespace:3f7e9ffe1d92df00", - "label": "Anichron.Infrastructure.Tests.Unit.Infrastructure", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Infrastructure.Tests.Unit.Infrastructure" - }, - "norm_label": "anichron.infrastructure.tests.unit.infrastructure", - "source_file": "src/Anichron.Infrastructure.Tests.Unit/Infrastructure/DatabaseConfigurationTests.cs", - "source_location": "L6", - "type": "namespace" - }, { "id": "csharp_namespace:656805f53b99eab8", "label": "Anichron.Core.Tests.Unit.Data.Repository", @@ -60459,6 +61162,22 @@ "source_location": "L1", "type": "namespace" }, + { + "id": "csharp_namespace:869ecaef5ac1f3a9", + "label": "Anichron.API.Settings", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.API.Settings" + }, + "norm_label": "anichron.api.settings", + "source_file": "src/Anichron.API/Settings/AppDefaults.cs", + "source_location": "L3", + "type": "namespace" + }, { "id": "csharp_namespace:d3a8580f96f5ec51", "label": "Anichron.API.Services", @@ -60491,6 +61210,39 @@ "source_location": "L4", "type": "namespace" }, + { + "id": "src_anichron_api_endpoints_authresponsemapper", + "label": "AuthResponseMapper.cs", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "norm_label": "authresponsemapper.cs", + "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_api_infrastructure_applicationextensions", + "label": "ApplicationExtensions.cs", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "norm_label": "applicationextensions.cs", + "source_file": "src/Anichron.API/Infrastructure/ApplicationExtensions.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_api_infrastructure_servicecollectionextensions", + "label": "ServiceCollectionExtensions.cs", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "norm_label": "servicecollectionextensions.cs", + "source_file": "src/Anichron.API/Infrastructure/ServiceCollectionExtensions.cs", + "source_location": "L1" + }, { "id": "src_anichron_api_security_appclaimtypes", "label": "AppClaimTypes.cs", @@ -60502,6 +61254,28 @@ "source_file": "src/Anichron.API/Security/AppClaimTypes.cs", "source_location": "L1" }, + { + "id": "src_anichron_api_security_jwtfactory", + "label": "JwtFactory.cs", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "norm_label": "jwtfactory.cs", + "source_file": "src/Anichron.API/Security/JwtFactory.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_api_security_passwordhasher", + "label": "PasswordHasher.cs", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "norm_label": "passwordhasher.cs", + "source_file": "src/Anichron.API/Security/PasswordHasher.cs", + "source_location": "L1" + }, { "id": "src_anichron_api_services_adminresetservice", "label": "AdminResetService.cs", @@ -60569,25 +61343,25 @@ "source_location": "L1" }, { - "id": "src_anichron_api_services_lockoutservice", - "label": "LockoutService.cs", + "id": "src_anichron_api_services_pwnedpasswordclient", + "label": "PwnedPasswordClient.cs", "_origin": "ast", "community": 36, "community_name": "Anichron.Core.Domain", "file_type": "code", - "norm_label": "lockoutservice.cs", - "source_file": "src/Anichron.API/Services/LockoutService.cs", + "norm_label": "pwnedpasswordclient.cs", + "source_file": "src/Anichron.API/Services/PwnedPasswordClient.cs", "source_location": "L1" }, { - "id": "src_anichron_api_services_pwnedpasswordclient", - "label": "PwnedPasswordClient.cs", + "id": "src_anichron_api_services_registrationvalidator", + "label": "RegistrationValidator.cs", "_origin": "ast", "community": 36, "community_name": "Anichron.Core.Domain", "file_type": "code", - "norm_label": "pwnedpasswordclient.cs", - "source_file": "src/Anichron.API/Services/PwnedPasswordClient.cs", + "norm_label": "registrationvalidator.cs", + "source_file": "src/Anichron.API/Services/RegistrationValidator.cs", "source_location": "L1" }, { @@ -60601,6 +61375,50 @@ "source_file": "src/Anichron.API/Services/TokenService.cs", "source_location": "L1" }, + { + "id": "src_anichron_api_settings_passwordpolicy", + "label": "PasswordPolicy.cs", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "norm_label": "passwordpolicy.cs", + "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_api_settings_usernamepolicy", + "label": "UsernamePolicy.cs", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "norm_label": "usernamepolicy.cs", + "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_api_tests_unit_security_jwtfactorytests", + "label": "JwtFactoryTests.cs", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "norm_label": "jwtfactorytests.cs", + "source_file": "src/Anichron.API.Tests.Unit/Security/JwtFactoryTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_api_tests_unit_security_passwordhashertests", + "label": "PasswordHasherTests.cs", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "norm_label": "passwordhashertests.cs", + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L1" + }, { "id": "src_anichron_api_tests_unit_services_adminresetservicetests", "label": "AdminResetServiceTests.cs", @@ -60678,6 +61496,17 @@ "source_file": "src/Anichron.API.Tests.Unit/Services/LockoutServiceTests.cs", "source_location": "L1" }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests", + "label": "PwnedPasswordClientTests.cs", + "_origin": "ast", + "community": 36, + "community_name": "Anichron.Core.Domain", + "file_type": "code", + "norm_label": "pwnedpasswordclienttests.cs", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L1" + }, { "id": "src_anichron_api_tests_unit_services_registrationvalidatortests", "label": "RegistrationValidatorTests.cs", @@ -60833,25 +61662,25 @@ "source_location": "L1" }, { - "id": "src_anichron_infrastructure_tests_unit_infrastructure_databaseconfigurationtests", - "label": "DatabaseConfigurationTests.cs", + "id": "src_anichron_worker_ingestion_mediatypedetector", + "label": "MediaTypeDetector.cs", "_origin": "ast", "community": 36, "community_name": "Anichron.Core.Domain", "file_type": "code", - "norm_label": "databaseconfigurationtests.cs", - "source_file": "src/Anichron.Infrastructure.Tests.Unit/Infrastructure/DatabaseConfigurationTests.cs", + "norm_label": "mediatypedetector.cs", + "source_file": "src/Anichron.Worker/Ingestion/MediaTypeDetector.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_startup_workerinitializer", - "label": "WorkerInitializer.cs", + "id": "src_anichron_worker_ingestion_pipeline_ingestioncontext", + "label": "IngestionContext.cs", "_origin": "ast", "community": 36, "community_name": "Anichron.Core.Domain", "file_type": "code", - "norm_label": "workerinitializer.cs", - "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", + "norm_label": "ingestioncontext.cs", + "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IngestionContext.cs", "source_location": "L1" }, { @@ -61591,70 +62420,48 @@ "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 37, - "community_name": "IngestionContext", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_ingestiondelegate", - "label": "IngestionDelegate", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_testably_abstractions_filesystem_interface", + "label": "Testably.Abstractions.FileSystem.Interface", "_origin": "ast", - "community": 37, - "community_name": "IngestionContext", + "community": 370, + "community_name": "Testably.Abstractions.FileSystem.Interface", "file_type": "code", - "norm_label": "ingestiondelegate", - "source_file": "", - "source_location": "" + "norm_label": "testably.abstractions.filesystem.interface", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L486" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_codecoverage_contenthash", + "id": "src_anichron_worker_tests_unit_packages_lock_testably_abstractions_filesystem_interface_contenthash", "label": "contentHash", "_origin": "ast", "community": 370, - "community_name": "Microsoft.CodeCoverage", + "community_name": "Testably.Abstractions.FileSystem.Interface", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L107" + "source_location": "L489" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_codecoverage_resolved", + "id": "src_anichron_worker_tests_unit_packages_lock_testably_abstractions_filesystem_interface_resolved", "label": "resolved", "_origin": "ast", "community": 370, - "community_name": "Microsoft.CodeCoverage", + "community_name": "Testably.Abstractions.FileSystem.Interface", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L106" + "source_location": "L488" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_codecoverage_type", + "id": "src_anichron_worker_tests_unit_packages_lock_testably_abstractions_filesystem_interface_type", "label": "type", "_origin": "ast", "community": 370, - "community_name": "Microsoft.CodeCoverage", + "community_name": "Testably.Abstractions.FileSystem.Interface", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L105" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_codecoverage", - "label": "Microsoft.CodeCoverage", - "_origin": "ast", - "community": 370, - "community_name": "Microsoft.CodeCoverage", - "file_type": "code", - "norm_label": "microsoft.codecoverage", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L104" + "source_location": "L487" }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_bcl_asyncinterfaces_contenthash", @@ -61701,48 +62508,32 @@ "source_location": "L99" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_caching_memory_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 372, - "community_name": "Microsoft.Extensions.Caching.Memory", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L130" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_caching_memory_resolved", - "label": "resolved", - "_origin": "ast", - "community": 372, - "community_name": "Microsoft.Extensions.Caching.Memory", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L129" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_caching_memory_type", - "label": "type", + "id": "src_anichron_api_settings_corssettings", + "label": "CorsSettings.cs", "_origin": "ast", "community": 372, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "CorsSettings.cs", "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L128" + "norm_label": "corssettings.cs", + "source_file": "src/Anichron.API/Settings/CorsSettings.cs", + "source_location": "L1" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_caching_memory", - "label": "Microsoft.Extensions.Caching.Memory", + "id": "src_anichron_api_settings_corssettings_anichron_api_settings_corssettings_allowedorigins", + "label": "AllowedOrigins", "_origin": "ast", "community": 372, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "CorsSettings.cs", "file_type": "code", - "norm_label": "microsoft.extensions.caching.memory", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L127" + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "allowedorigins", + "source_file": "src/Anichron.API/Settings/CorsSettings.cs", + "source_location": "L5" }, { "id": "src_anichron_worker_packages_lock_humanizer_core_contenthash", @@ -61788,94 +62579,6 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L167" }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_commandline_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 374, - "community_name": "Microsoft.Extensions.Configuration.CommandLine", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L159" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_commandline_resolved", - "label": "resolved", - "_origin": "ast", - "community": 374, - "community_name": "Microsoft.Extensions.Configuration.CommandLine", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L158" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_commandline_type", - "label": "type", - "_origin": "ast", - "community": 374, - "community_name": "Microsoft.Extensions.Configuration.CommandLine", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L157" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_commandline", - "label": "Microsoft.Extensions.Configuration.CommandLine", - "_origin": "ast", - "community": 374, - "community_name": "Microsoft.Extensions.Configuration.CommandLine", - "file_type": "code", - "norm_label": "microsoft.extensions.configuration.commandline", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L156" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_fileextensions_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 375, - "community_name": "Microsoft.Extensions.Configuration.FileExtensions", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L177" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_fileextensions_resolved", - "label": "resolved", - "_origin": "ast", - "community": 375, - "community_name": "Microsoft.Extensions.Configuration.FileExtensions", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L176" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_fileextensions_type", - "label": "type", - "_origin": "ast", - "community": 375, - "community_name": "Microsoft.Extensions.Configuration.FileExtensions", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L175" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_fileextensions", - "label": "Microsoft.Extensions.Configuration.FileExtensions", - "_origin": "ast", - "community": 375, - "community_name": "Microsoft.Extensions.Configuration.FileExtensions", - "file_type": "code", - "norm_label": "microsoft.extensions.configuration.fileextensions", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L174" - }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_entityframeworkcore_abstractions_contenthash", "label": "contentHash", @@ -61964,50 +62667,6 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L177" }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_abstractions_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 378, - "community_name": "Microsoft.Extensions.Diagnostics.Abstractions", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L234" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_abstractions_resolved", - "label": "resolved", - "_origin": "ast", - "community": 378, - "community_name": "Microsoft.Extensions.Diagnostics.Abstractions", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L233" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_abstractions_type", - "label": "type", - "_origin": "ast", - "community": 378, - "community_name": "Microsoft.Extensions.Diagnostics.Abstractions", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L232" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_diagnostics_abstractions", - "label": "Microsoft.Extensions.Diagnostics.Abstractions", - "_origin": "ast", - "community": 378, - "community_name": "Microsoft.Extensions.Diagnostics.Abstractions", - "file_type": "code", - "norm_label": "microsoft.extensions.diagnostics.abstractions", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L231" - }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_contenthash", "label": "contentHash", @@ -62053,55 +62712,44 @@ "source_location": "L221" }, { - "id": "src_anichron_api_services_adminuserservice_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 38, - "community_name": ".DeleteAsync", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_adminuserservice_cs_guid", - "label": "Guid", + "id": "src_anichron_core_data_repository_userstorageconfigrepository_cs_anichrondbcontext", + "label": "AnichronDbContext", "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", - "norm_label": "guid", + "norm_label": "anichrondbcontext", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_adminuserservice_cs_iclock", - "label": "IClock", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_cs_fact", + "label": "Fact", "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", - "norm_label": "iclock", + "norm_label": "fact", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_adminuserservice_cs_list", - "label": "List", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_cs_guid", + "label": "Guid", "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", - "norm_label": "list", + "norm_label": "guid", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_adminuserservice_cs_task", + "id": "src_anichron_core_tests_unit_data_repository_userstorageconfigrepositorytests_cs_task", "label": "Task", "_origin": "ast", "community": 38, - "community_name": ".DeleteAsync", + "community_name": "EfUserStorageConfigRepository", "file_type": "code", "norm_label": "task", "source_file": "", @@ -62151,270 +62799,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L263" }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_binder_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 381, - "community_name": "Microsoft.Extensions.Configuration.Binder", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L150" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_binder_resolved", - "label": "resolved", - "_origin": "ast", - "community": 381, - "community_name": "Microsoft.Extensions.Configuration.Binder", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L149" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_binder_type", - "label": "type", - "_origin": "ast", - "community": 381, - "community_name": "Microsoft.Extensions.Configuration.Binder", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L148" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_binder", - "label": "Microsoft.Extensions.Configuration.Binder", - "_origin": "ast", - "community": 381, - "community_name": "Microsoft.Extensions.Configuration.Binder", - "file_type": "code", - "norm_label": "microsoft.extensions.configuration.binder", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L147" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_fileproviders_physical_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 382, - "community_name": "Microsoft.Extensions.FileProviders.Physical", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L251" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_fileproviders_physical_resolved", - "label": "resolved", - "_origin": "ast", - "community": 382, - "community_name": "Microsoft.Extensions.FileProviders.Physical", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L250" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_fileproviders_physical_type", - "label": "type", - "_origin": "ast", - "community": 382, - "community_name": "Microsoft.Extensions.FileProviders.Physical", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L249" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_fileproviders_physical", - "label": "Microsoft.Extensions.FileProviders.Physical", - "_origin": "ast", - "community": 382, - "community_name": "Microsoft.Extensions.FileProviders.Physical", - "file_type": "code", - "norm_label": "microsoft.extensions.fileproviders.physical", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L248" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_console_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 383, - "community_name": "Microsoft.Extensions.Logging.Console", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L311" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_console_resolved", - "label": "resolved", - "_origin": "ast", - "community": 383, - "community_name": "Microsoft.Extensions.Logging.Console", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L310" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_console_type", - "label": "type", - "_origin": "ast", - "community": 383, - "community_name": "Microsoft.Extensions.Logging.Console", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L309" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_console", - "label": "Microsoft.Extensions.Logging.Console", - "_origin": "ast", - "community": 383, - "community_name": "Microsoft.Extensions.Logging.Console", - "file_type": "code", - "norm_label": "microsoft.extensions.logging.console", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L308" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 384, - "community_name": "Microsoft.Extensions.Logging", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L278" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_resolved", - "label": "resolved", - "_origin": "ast", - "community": 384, - "community_name": "Microsoft.Extensions.Logging", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L277" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_type", - "label": "type", - "_origin": "ast", - "community": 384, - "community_name": "Microsoft.Extensions.Logging", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L276" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging", - "label": "Microsoft.Extensions.Logging", - "_origin": "ast", - "community": 384, - "community_name": "Microsoft.Extensions.Logging", - "file_type": "code", - "norm_label": "microsoft.extensions.logging", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L275" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventsource_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 385, - "community_name": "Microsoft.Extensions.Logging.EventSource", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L345" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventsource_resolved", - "label": "resolved", - "_origin": "ast", - "community": 385, - "community_name": "Microsoft.Extensions.Logging.EventSource", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L344" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventsource_type", - "label": "type", - "_origin": "ast", - "community": 385, - "community_name": "Microsoft.Extensions.Logging.EventSource", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L343" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_eventsource", - "label": "Microsoft.Extensions.Logging.EventSource", - "_origin": "ast", - "community": 385, - "community_name": "Microsoft.Extensions.Logging.EventSource", - "file_type": "code", - "norm_label": "microsoft.extensions.logging.eventsource", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L342" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventlog_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 386, - "community_name": "Microsoft.Extensions.Logging.EventLog", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L333" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventlog_resolved", - "label": "resolved", - "_origin": "ast", - "community": 386, - "community_name": "Microsoft.Extensions.Logging.EventLog", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L332" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventlog_type", - "label": "type", - "_origin": "ast", - "community": 386, - "community_name": "Microsoft.Extensions.Logging.EventLog", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L331" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_eventlog", - "label": "Microsoft.Extensions.Logging.EventLog", - "_origin": "ast", - "community": 386, - "community_name": "Microsoft.Extensions.Logging.EventLog", - "file_type": "code", - "norm_label": "microsoft.extensions.logging.eventlog", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L330" - }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_netcore_platforms_contenthash", "label": "contentHash", @@ -62503,50 +62887,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L363" }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_options_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 389, - "community_name": "Microsoft.Extensions.Options", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L357" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_options_resolved", - "label": "resolved", - "_origin": "ast", - "community": 389, - "community_name": "Microsoft.Extensions.Options", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L356" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_options_type", - "label": "type", - "_origin": "ast", - "community": 389, - "community_name": "Microsoft.Extensions.Options", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L355" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_options", - "label": "Microsoft.Extensions.Options", - "_origin": "ast", - "community": 389, - "community_name": "Microsoft.Extensions.Options", - "file_type": "code", - "norm_label": "microsoft.extensions.options", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L354" - }, { "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_livephotopairitem_primarymediatype", "label": "PrimaryMediaType", @@ -62691,50 +63031,6 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L431" }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_system_diagnostics_eventlog", - "label": "System.Diagnostics.EventLog", - "_origin": "ast", - "community": 392, - "community_name": "System.Diagnostics.EventLog", - "file_type": "code", - "norm_label": "system.diagnostics.eventlog", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L456" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_system_diagnostics_eventlog_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 392, - "community_name": "System.Diagnostics.EventLog", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L459" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_system_diagnostics_eventlog_resolved", - "label": "resolved", - "_origin": "ast", - "community": 392, - "community_name": "System.Diagnostics.EventLog", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L458" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_system_diagnostics_eventlog_type", - "label": "type", - "_origin": "ast", - "community": 392, - "community_name": "System.Diagnostics.EventLog", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L457" - }, { "id": "src_anichron_worker_packages_lock_microsoft_extensions_options_configurationextensions_contenthash", "label": "contentHash", @@ -63560,50 +63856,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L443" }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_json_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 403, - "community_name": "Microsoft.Extensions.Configuration.Json", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L189" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_json_resolved", - "label": "resolved", - "_origin": "ast", - "community": 403, - "community_name": "Microsoft.Extensions.Configuration.Json", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L188" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_json_type", - "label": "type", - "_origin": "ast", - "community": 403, - "community_name": "Microsoft.Extensions.Configuration.Json", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L187" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_json", - "label": "Microsoft.Extensions.Configuration.Json", - "_origin": "ast", - "community": 403, - "community_name": "Microsoft.Extensions.Configuration.Json", - "file_type": "code", - "norm_label": "microsoft.extensions.configuration.json", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L186" - }, { "id": "docs_agents_triage_labels", "label": "triage-labels.md", @@ -63688,50 +63940,6 @@ "source_file": ".husky/pre-push", "source_location": "L1" }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_win32_registry_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 408, - "community_name": "Microsoft.Win32.Registry", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L432" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_win32_registry_resolved", - "label": "resolved", - "_origin": "ast", - "community": 408, - "community_name": "Microsoft.Win32.Registry", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L431" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_win32_registry_type", - "label": "type", - "_origin": "ast", - "community": 408, - "community_name": "Microsoft.Win32.Registry", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L430" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_win32_registry", - "label": "Microsoft.Win32.Registry", - "_origin": "ast", - "community": 408, - "community_name": "Microsoft.Win32.Registry", - "file_type": "code", - "norm_label": "microsoft.win32.registry", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L429" - }, { "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_xmpcore", "label": "XmpCore", @@ -64293,50 +64501,6 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L98" }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_xunit_analyzers", - "label": "xunit.analyzers", - "_origin": "ast", - "community": 410, - "community_name": "xunit.analyzers", - "file_type": "code", - "norm_label": "xunit.analyzers", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L496" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_xunit_analyzers_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 410, - "community_name": "xunit.analyzers", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L499" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_xunit_analyzers_resolved", - "label": "resolved", - "_origin": "ast", - "community": 410, - "community_name": "xunit.analyzers", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L498" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_xunit_analyzers_type", - "label": "type", - "_origin": "ast", - "community": 410, - "community_name": "xunit.analyzers", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L497" - }, { "id": "iconfigurationsection", "label": "IConfigurationSection", @@ -66069,7 +66233,7 @@ "label": "NotFound", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "notfound", "source_file": "", @@ -66080,7 +66244,7 @@ "label": "CancellationToken", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -66091,7 +66255,7 @@ "label": "ClaimsPrincipal", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "claimsprincipal", "source_file": "", @@ -66102,7 +66266,7 @@ "label": "Guid", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "guid", "source_file": "", @@ -66113,7 +66277,7 @@ "label": "IEndpointRouteBuilder", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "iendpointroutebuilder", "source_file": "", @@ -66124,7 +66288,7 @@ "label": "IOptions", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "ioptions", "source_file": "", @@ -66135,7 +66299,7 @@ "label": "IResult", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "iresult", "source_file": "", @@ -66146,18 +66310,103 @@ "label": "Task", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "task", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy_checkpwnedpasswords", + "label": "CheckPwnedPasswords", + "_origin": "ast", + "community": 47, + "community_name": "PasswordPolicy", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "checkpwnedpasswords", + "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", + "source_location": "L7" + }, + { + "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy_maxlength", + "label": "MaxLength", + "_origin": "ast", + "community": 47, + "community_name": "PasswordPolicy", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "maxlength", + "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", + "source_location": "L6" + }, + { + "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy_minlength", + "label": "MinLength", + "_origin": "ast", + "community": 47, + "community_name": "PasswordPolicy", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "minlength", + "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", + "source_location": "L5" + }, + { + "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy_toolongmessage", + "label": "TooLongMessage", + "_origin": "ast", + "community": 47, + "community_name": "PasswordPolicy", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "toolongmessage", + "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", + "source_location": "L10" + }, + { + "id": "src_anichron_api_settings_passwordpolicy_anichron_api_settings_passwordpolicy_tooshortmessage", + "label": "TooShortMessage", + "_origin": "ast", + "community": 47, + "community_name": "PasswordPolicy", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "tooshortmessage", + "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", + "source_location": "L9" + }, { "id": "src_anichron_api_tests_unit_endpoints_userendpointstests_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -66168,7 +66417,7 @@ "label": "ClaimsPrincipal", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "claimsprincipal", "source_file": "", @@ -66179,7 +66428,7 @@ "label": "Fact", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "fact", "source_file": "", @@ -66190,7 +66439,7 @@ "label": "Guid", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "guid", "source_file": "", @@ -66201,7 +66450,7 @@ "label": "Ok", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "ok", "source_file": "", @@ -66212,7 +66461,7 @@ "label": "Task", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "task", "source_file": "", @@ -66223,7 +66472,7 @@ "label": "UnauthorizedHttpResult", "_origin": "ast", "community": 47, - "community_name": ".ChangePasswordAsync", + "community_name": "PasswordPolicy", "file_type": "code", "norm_label": "unauthorizedhttpresult", "source_file": "", @@ -66405,143 +66654,166 @@ "source_location": "L16" }, { - "id": "capturinglogger", - "label": "CapturingLogger", + "id": "src_anichron_api_services_adminresetservice_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", - "norm_label": "capturinglogger", + "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "httpmessagehandler", - "label": "HttpMessageHandler", + "id": "src_anichron_api_services_adminresetservice_cs_guid", + "label": "Guid", "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", - "norm_label": "httpmessagehandler", + "norm_label": "guid", "source_file": "", "source_location": "" }, { - "id": "httprequestmessage", - "label": "HttpRequestMessage", + "id": "src_anichron_api_services_adminresetservice_cs_iclock", + "label": "IClock", "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", - "norm_label": "httprequestmessage", + "norm_label": "iclock", "source_file": "", "source_location": "" }, { - "id": "httpresponsemessage", - "label": "HttpResponseMessage", + "id": "src_anichron_api_services_adminresetservice_cs_task", + "label": "Task", "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", - "norm_label": "httpresponsemessage", + "norm_label": "task", "source_file": "", "source_location": "" }, { - "id": "idisposable", - "label": "IDisposable", + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", - "norm_label": "idisposable", + "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests", - "label": "PwnedPasswordClientTests.cs", + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_fact", + "label": "Fact", "_origin": "ast", "community": 5, - "community_name": "TestFixture", + "community_name": "AdminCreatedUser", "file_type": "code", - "norm_label": "pwnedpasswordclienttests.cs", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L1" + "norm_label": "fact", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_entries", - "label": "Entries", + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_task", + "label": "Task", "_origin": "ast", "community": 5, + "community_name": "AdminCreatedUser", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_testfixture_guidfactory", + "label": "GuidFactory", + "_origin": "ast", + "community": 50, "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" + "s121" ] }, - "norm_label": "entries", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L112" + "norm_label": "guidfactory", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L14" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_logger", - "label": "Logger", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_testfixture_storageconfigs", + "label": "StorageConfigs", "_origin": "ast", - "community": 5, + "community": 50, "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s84" + "s121" ] }, - "norm_label": "logger", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L72" + "norm_label": "storageconfigs", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L13" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_cancellationtoken", - "label": "CancellationToken", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_testfixture_unitofwork", + "label": "UnitOfWork", "_origin": "ast", - "community": 5, + "community": 50, "community_name": "TestFixture", "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s121" + ] + }, + "norm_label": "unitofwork", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L15" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_eventid", - "label": "EventId", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_testfixture_users", + "label": "Users", "_origin": "ast", - "community": 5, + "community": 50, "community_name": "TestFixture", "file_type": "code", - "norm_label": "eventid", - "source_file": "", - "source_location": "" + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s121" + ] + }, + "norm_label": "users", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", + "source_location": "L12" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_exception", - "label": "Exception", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", - "community": 5, + "community": 50, "community_name": "TestFixture", "file_type": "code", - "norm_label": "exception", + "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_fact", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_fact", "label": "Fact", "_origin": "ast", - "community": 5, + "community": 50, "community_name": "TestFixture", "file_type": "code", "norm_label": "fact", @@ -66549,32 +66821,32 @@ "source_location": "" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_func", - "label": "Func", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_guid", + "label": "Guid", "_origin": "ast", - "community": 5, + "community": 50, "community_name": "TestFixture", "file_type": "code", - "norm_label": "func", + "norm_label": "guid", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_httprequestexception", - "label": "HttpRequestException", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_iguidfactory", + "label": "IGuidFactory", "_origin": "ast", - "community": 5, + "community": 50, "community_name": "TestFixture", "file_type": "code", - "norm_label": "httprequestexception", + "norm_label": "iguidfactory", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_inlinedata", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_inlinedata", "label": "InlineData", "_origin": "ast", - "community": 5, + "community": 50, "community_name": "TestFixture", "file_type": "code", "norm_label": "inlinedata", @@ -66582,121 +66854,22 @@ "source_location": "" }, { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_ireadonlylist", - "label": "IReadOnlyList", - "_origin": "ast", - "community": 5, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "ireadonlylist", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_level", - "label": "Level", - "_origin": "ast", - "community": 5, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "level", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_list", - "label": "List", - "_origin": "ast", - "community": 5, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "list", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_loglevel", - "label": "LogLevel", - "_origin": "ast", - "community": 5, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "loglevel", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_task", - "label": "Task", - "_origin": "ast", - "community": 5, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_theory", - "label": "Theory", - "_origin": "ast", - "community": 5, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "theory", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_lockoutservice_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 50, - "community_name": "LockoutService", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_lockoutservice_cs_instant", - "label": "Instant", - "_origin": "ast", - "community": 50, - "community_name": "LockoutService", - "file_type": "code", - "norm_label": "instant", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_lockoutservice_cs_task", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_task", "label": "Task", "_origin": "ast", "community": 50, - "community_name": "LockoutService", + "community_name": "TestFixture", "file_type": "code", "norm_label": "task", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_inlinedata", - "label": "InlineData", - "_origin": "ast", - "community": 50, - "community_name": "LockoutService", - "file_type": "code", - "norm_label": "inlinedata", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_theory", + "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_cs_theory", "label": "Theory", "_origin": "ast", "community": 50, - "community_name": "LockoutService", + "community_name": "TestFixture", "file_type": "code", "norm_label": "theory", "source_file": "", @@ -66719,17 +66892,6 @@ "source_file": "src/Anichron.Worker/Ingestion/Middlewares/VideoProxyMiddleware.cs", "source_location": "L13" }, - { - "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_ienumerable", "label": "IEnumerable", @@ -66752,17 +66914,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_ingestiondelegate", - "label": "IngestionDelegate", - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "ingestiondelegate", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_loggermessage", "label": "LoggerMessage", @@ -66774,17 +66925,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_task", - "label": "Task", - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_ivideoproxygenerator_filename", "label": "FileName", @@ -66819,51 +66959,6 @@ "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", "source_location": "L8" }, - { - "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_video720pgenerator_filename", - "label": "FileName", - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", - "scope_chain": [ - "s29" - ] - }, - "norm_label": "filename", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", - "source_location": "L14" - }, - { - "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_anichron_worker_ingestion_proxy_video720pgenerator_proxytype", - "label": "ProxyType", - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", - "scope_chain": [ - "s29" - ] - }, - "norm_label": "proxytype", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", - "source_location": "L15" - }, - { - "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_cs_proxytype", "label": "ProxyType", @@ -66875,17 +66970,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators_cs_task", - "label": "Task", - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_videoproxymiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_testfixture_clock", "label": "Clock", @@ -67087,28 +67171,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_cs_fact", - "label": "Fact", - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "fact", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests_cs_task", - "label": "Task", - "_origin": "ast", - "community": 51, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, { "id": "scripts_mutation_ratchet_test", "label": "mutation-ratchet.test.sh", @@ -67731,17 +67793,6 @@ "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L209" }, - { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 54, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L46" - }, { "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_dependencies", "label": "dependencies", @@ -67753,39 +67804,6 @@ "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L47" }, - { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_requested", - "label": "requested", - "_origin": "ast", - "community": 54, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "requested", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L44" - }, - { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_resolved", - "label": "resolved", - "_origin": "ast", - "community": 54, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L45" - }, - { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_type", - "label": "type", - "_origin": "ast", - "community": 54, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L43" - }, { "id": "src_anichron_api_packages_lock_net10_0_microsoft_codeanalysis_common", "label": "Microsoft.CodeAnalysis.Common", @@ -67841,17 +67859,6 @@ "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L208" }, - { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_entityframeworkcore_design", - "label": "Microsoft.EntityFrameworkCore.Design", - "_origin": "ast", - "community": 54, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "microsoft.entityframeworkcore.design", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L42" - }, { "id": "src_anichron_worker_tests_unit_packages_lock_dependencies", "label": "dependencies", @@ -67908,84 +67915,7 @@ "source_location": "L95" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_entityframeworkcore_analyzers_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 55, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L117" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_entityframeworkcore_analyzers_resolved", - "label": "resolved", - "_origin": "ast", - "community": 55, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L116" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_entityframeworkcore_analyzers_type", - "label": "type", - "_origin": "ast", - "community": 55, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L115" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_abstractions_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 55, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L142" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_abstractions_dependencies", - "label": "dependencies", - "_origin": "ast", - "community": 55, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "dependencies", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L143" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_abstractions_resolved", - "label": "resolved", - "_origin": "ast", - "community": 55, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L141" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_abstractions_type", - "label": "type", - "_origin": "ast", - "community": 55, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L140" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_environmentvariables_contenthash", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_codecoverage_contenthash", "label": "contentHash", "_origin": "ast", "community": 55, @@ -67993,10 +67923,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L168" + "source_location": "L107" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_environmentvariables_resolved", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_codecoverage_resolved", "label": "resolved", "_origin": "ast", "community": 55, @@ -68004,10 +67934,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L167" + "source_location": "L106" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_environmentvariables_type", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_codecoverage_type", "label": "type", "_origin": "ast", "community": 55, @@ -68015,10 +67945,10 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L166" + "source_location": "L105" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_usersecrets_contenthash", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_json_contenthash", "label": "contentHash", "_origin": "ast", "community": 55, @@ -68026,10 +67956,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L200" + "source_location": "L189" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_usersecrets_resolved", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_json_resolved", "label": "resolved", "_origin": "ast", "community": 55, @@ -68037,10 +67967,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L199" + "source_location": "L188" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_usersecrets_type", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_json_type", "label": "type", "_origin": "ast", "community": 55, @@ -68048,7 +67978,7 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L198" + "source_location": "L187" }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_dependencyinjection_abstractions_contenthash", @@ -68084,7 +68014,7 @@ "source_location": "L217" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_filesystemglobbing_contenthash", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_testing_platform_contenthash", "label": "contentHash", "_origin": "ast", "community": 55, @@ -68092,10 +68022,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L261" + "source_location": "L405" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_filesystemglobbing_resolved", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_testing_platform_resolved", "label": "resolved", "_origin": "ast", "community": 55, @@ -68103,10 +68033,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L260" + "source_location": "L404" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_filesystemglobbing_type", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_testing_platform_type", "label": "type", "_origin": "ast", "community": 55, @@ -68114,10 +68044,10 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L259" + "source_location": "L403" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_configuration_contenthash", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_visualstudio_threading_analyzers_contenthash", "label": "contentHash", "_origin": "ast", "community": 55, @@ -68125,10 +68055,21 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L296" + "source_location": "L31" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_configuration_resolved", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_visualstudio_threading_analyzers_requested", + "label": "requested", + "_origin": "ast", + "community": 55, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "requested", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L29" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_visualstudio_threading_analyzers_resolved", "label": "resolved", "_origin": "ast", "community": 55, @@ -68136,10 +68077,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L295" + "source_location": "L30" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_configuration_type", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_visualstudio_threading_analyzers_type", "label": "type", "_origin": "ast", "community": 55, @@ -68147,10 +68088,10 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L294" + "source_location": "L28" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_debug_contenthash", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_win32_registry_contenthash", "label": "contentHash", "_origin": "ast", "community": 55, @@ -68158,10 +68099,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L323" + "source_location": "L432" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_debug_resolved", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_win32_registry_resolved", "label": "resolved", "_origin": "ast", "community": 55, @@ -68169,10 +68110,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L322" + "source_location": "L431" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_debug_type", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_win32_registry_type", "label": "type", "_origin": "ast", "community": 55, @@ -68180,164 +68121,186 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L321" + "source_location": "L430" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_testing_platform_contenthash", - "label": "contentHash", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_applicationinsights", + "label": "Microsoft.ApplicationInsights", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "contenthash", + "norm_label": "microsoft.applicationinsights", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L405" + "source_location": "L94" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_testing_platform_resolved", - "label": "resolved", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_codecoverage", + "label": "Microsoft.CodeCoverage", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "resolved", + "norm_label": "microsoft.codecoverage", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L404" + "source_location": "L104" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_testing_platform_type", - "label": "type", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_json", + "label": "Microsoft.Extensions.Configuration.Json", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "type", + "norm_label": "microsoft.extensions.configuration.json", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L403" + "source_location": "L186" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_applicationinsights", - "label": "Microsoft.ApplicationInsights", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_dependencyinjection_abstractions", + "label": "Microsoft.Extensions.DependencyInjection.Abstractions", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.applicationinsights", + "norm_label": "microsoft.extensions.dependencyinjection.abstractions", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L94" + "source_location": "L216" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_entityframeworkcore_analyzers", - "label": "Microsoft.EntityFrameworkCore.Analyzers", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_testing_platform", + "label": "Microsoft.Testing.Platform", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.entityframeworkcore.analyzers", + "norm_label": "microsoft.testing.platform", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L114" + "source_location": "L402" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_abstractions", - "label": "Microsoft.Extensions.Configuration.Abstractions", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_visualstudio_threading_analyzers", + "label": "Microsoft.VisualStudio.Threading.Analyzers", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.configuration.abstractions", + "norm_label": "microsoft.visualstudio.threading.analyzers", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L139" + "source_location": "L27" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_environmentvariables", - "label": "Microsoft.Extensions.Configuration.EnvironmentVariables", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_win32_registry", + "label": "Microsoft.Win32.Registry", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.configuration.environmentvariables", + "norm_label": "microsoft.win32.registry", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L165" + "source_location": "L429" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_configuration_usersecrets", - "label": "Microsoft.Extensions.Configuration.UserSecrets", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_system_diagnostics_eventlog", + "label": "System.Diagnostics.EventLog", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.configuration.usersecrets", + "norm_label": "system.diagnostics.eventlog", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L197" + "source_location": "L456" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_dependencyinjection_abstractions", - "label": "Microsoft.Extensions.DependencyInjection.Abstractions", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_xunit_analyzers", + "label": "xunit.analyzers", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.dependencyinjection.abstractions", + "norm_label": "xunit.analyzers", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L216" + "source_location": "L496" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_filesystemglobbing", - "label": "Microsoft.Extensions.FileSystemGlobbing", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_xunit_runner_visualstudio", + "label": "xunit.runner.visualstudio", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.filesystemglobbing", + "norm_label": "xunit.runner.visualstudio", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L258" + "source_location": "L63" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_configuration", - "label": "Microsoft.Extensions.Logging.Configuration", + "id": "src_anichron_worker_tests_unit_packages_lock_system_diagnostics_eventlog_contenthash", + "label": "contentHash", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.logging.configuration", + "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L293" + "source_location": "L459" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_debug", - "label": "Microsoft.Extensions.Logging.Debug", + "id": "src_anichron_worker_tests_unit_packages_lock_system_diagnostics_eventlog_resolved", + "label": "resolved", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.logging.debug", + "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L320" + "source_location": "L458" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_testing_platform", - "label": "Microsoft.Testing.Platform", + "id": "src_anichron_worker_tests_unit_packages_lock_system_diagnostics_eventlog_type", + "label": "type", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.testing.platform", + "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L402" + "source_location": "L457" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_testably_abstractions_filesystem_interface", - "label": "Testably.Abstractions.FileSystem.Interface", + "id": "src_anichron_worker_tests_unit_packages_lock_xunit_analyzers_contenthash", + "label": "contentHash", "_origin": "ast", "community": 55, "community_name": "net10.0", "file_type": "code", - "norm_label": "testably.abstractions.filesystem.interface", + "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L486" + "source_location": "L499" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_testably_abstractions_filesystem_interface_contenthash", + "id": "src_anichron_worker_tests_unit_packages_lock_xunit_analyzers_resolved", + "label": "resolved", + "_origin": "ast", + "community": 55, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L498" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_xunit_analyzers_type", + "label": "type", + "_origin": "ast", + "community": 55, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L497" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_xunit_runner_visualstudio_contenthash", "label": "contentHash", "_origin": "ast", "community": 55, @@ -68345,10 +68308,21 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L489" + "source_location": "L67" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_testably_abstractions_filesystem_interface_resolved", + "id": "src_anichron_worker_tests_unit_packages_lock_xunit_runner_visualstudio_requested", + "label": "requested", + "_origin": "ast", + "community": 55, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "requested", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L65" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_xunit_runner_visualstudio_resolved", "label": "resolved", "_origin": "ast", "community": 55, @@ -68356,10 +68330,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L488" + "source_location": "L66" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_testably_abstractions_filesystem_interface_type", + "id": "src_anichron_worker_tests_unit_packages_lock_xunit_runner_visualstudio_type", "label": "type", "_origin": "ast", "community": 55, @@ -68367,7 +68341,7 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L487" + "source_location": "L64" }, { "id": "src_anichron_api_infrastructure_healthcheckresponsewriter_cs_healthreport", @@ -69636,70 +69610,70 @@ "source_location": "L94" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_caching_abstractions", - "label": "Microsoft.Extensions.Caching.Abstractions", + "id": "src_anichron_worker_tests_unit_packages_lock_castle_core_contenthash", + "label": "contentHash", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "microsoft.extensions.caching.abstractions", + "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L132" + "source_location": "L89" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_configuration", - "label": "Microsoft.Extensions.Configuration", + "id": "src_anichron_worker_tests_unit_packages_lock_castle_core_dependencies", + "label": "dependencies", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "microsoft.extensions.configuration", + "norm_label": "dependencies", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L152" + "source_location": "L90" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_configuration_abstractions", - "label": "Microsoft.Extensions.Configuration.Abstractions", + "id": "src_anichron_worker_tests_unit_packages_lock_castle_core_resolved", + "label": "resolved", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "microsoft.extensions.configuration.abstractions", + "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L153" + "source_location": "L88" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_configuration_binder", - "label": "Microsoft.Extensions.Configuration.Binder", + "id": "src_anichron_worker_tests_unit_packages_lock_castle_core_type", + "label": "type", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "microsoft.extensions.configuration.binder", + "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L300" + "source_location": "L87" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_configuration_fileextensions", - "label": "Microsoft.Extensions.Configuration.FileExtensions", + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_caching_abstractions", + "label": "Microsoft.Extensions.Caching.Abstractions", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "microsoft.extensions.configuration.fileextensions", + "norm_label": "microsoft.extensions.caching.abstractions", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L193" + "source_location": "L132" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_configuration_json", - "label": "Microsoft.Extensions.Configuration.Json", + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_configuration_binder", + "label": "Microsoft.Extensions.Configuration.Binder", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "microsoft.extensions.configuration.json", + "norm_label": "microsoft.extensions.configuration.binder", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L203" + "source_location": "L300" }, { "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_dependencyinjection", @@ -69723,50 +69697,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L133" }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_diagnostics_abstractions", - "label": "Microsoft.Extensions.Diagnostics.Abstractions", - "_origin": "ast", - "community": 61, - "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", - "file_type": "code", - "norm_label": "microsoft.extensions.diagnostics.abstractions", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L227" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_fileproviders_abstractions", - "label": "Microsoft.Extensions.FileProviders.Abstractions", - "_origin": "ast", - "community": 61, - "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", - "file_type": "code", - "norm_label": "microsoft.extensions.fileproviders.abstractions", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L181" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_fileproviders_physical", - "label": "Microsoft.Extensions.FileProviders.Physical", - "_origin": "ast", - "community": 61, - "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", - "file_type": "code", - "norm_label": "microsoft.extensions.fileproviders.physical", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L182" - }, - { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_filesystemglobbing", - "label": "Microsoft.Extensions.FileSystemGlobbing", - "_origin": "ast", - "community": 61, - "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", - "file_type": "code", - "norm_label": "microsoft.extensions.filesystemglobbing", - "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L254" - }, { "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_logging", "label": "Microsoft.Extensions.Logging", @@ -69823,15 +69753,26 @@ "source_location": "L228" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_microsoft_extensions_primitives", - "label": "Microsoft.Extensions.Primitives", + "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_system_diagnostics_eventlog", + "label": "System.Diagnostics.EventLog", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "microsoft.extensions.primitives", + "norm_label": "system.diagnostics.eventlog", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L124" + "source_location": "L91" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_caching_memory_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L130" }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_caching_memory_dependencies", @@ -69845,40 +69786,40 @@ "source_location": "L131" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_binder_dependencies", - "label": "dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_caching_memory_resolved", + "label": "resolved", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "dependencies", + "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L151" + "source_location": "L129" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_commandline_dependencies", - "label": "dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_caching_memory_type", + "label": "type", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "dependencies", + "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L160" + "source_location": "L128" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_environmentvariables_dependencies", - "label": "dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_abstractions_contenthash", + "label": "contentHash", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "dependencies", + "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L169" + "source_location": "L234" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_fileextensions_dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_abstractions_dependencies", "label": "dependencies", "_origin": "ast", "community": 61, @@ -69886,32 +69827,32 @@ "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L178" + "source_location": "L235" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_json_dependencies", - "label": "dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_abstractions_resolved", + "label": "resolved", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "dependencies", + "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L190" + "source_location": "L233" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_configuration_usersecrets_dependencies", - "label": "dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_abstractions_type", + "label": "type", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "dependencies", + "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L201" + "source_location": "L232" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_abstractions_dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_configuration_dependencies", "label": "dependencies", "_origin": "ast", "community": 61, @@ -69919,21 +69860,21 @@ "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L235" + "source_location": "L297" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_dependencies", - "label": "dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_console_contenthash", + "label": "contentHash", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "dependencies", + "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L225" + "source_location": "L311" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_fileproviders_physical_dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_console_dependencies", "label": "dependencies", "_origin": "ast", "community": 61, @@ -69941,40 +69882,51 @@ "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L252" + "source_location": "L312" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_hosting_abstractions_dependencies", - "label": "dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_console_resolved", + "label": "resolved", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "dependencies", + "norm_label": "resolved", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L267" + "source_location": "L310" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_configuration_dependencies", - "label": "dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_console_type", + "label": "type", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "dependencies", + "norm_label": "type", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L297" + "source_location": "L309" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_console_dependencies", - "label": "dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_contenthash", + "label": "contentHash", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "dependencies", + "norm_label": "contenthash", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L312" + "source_location": "L278" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_debug_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L323" }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_debug_dependencies", @@ -69987,6 +69939,28 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L324" }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_debug_resolved", + "label": "resolved", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L322" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_debug_type", + "label": "type", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L321" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_dependencies", "label": "dependencies", @@ -69998,6 +69972,17 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L279" }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventlog_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L333" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventlog_dependencies", "label": "dependencies", @@ -70009,6 +69994,39 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L334" }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventlog_resolved", + "label": "resolved", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L332" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventlog_type", + "label": "type", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L331" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventsource_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L345" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventsource_dependencies", "label": "dependencies", @@ -70020,6 +70038,50 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L346" }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventsource_resolved", + "label": "resolved", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L344" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_eventsource_type", + "label": "type", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L343" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_resolved", + "label": "resolved", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L277" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_logging_type", + "label": "type", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L276" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_options_configurationextensions_dependencies", "label": "dependencies", @@ -70032,15 +70094,92 @@ "source_location": "L367" }, { - "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_options_dependencies", - "label": "dependencies", + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_castle_core", + "label": "Castle.Core", "_origin": "ast", "community": 61, "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "dependencies", + "norm_label": "castle.core", "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", - "source_location": "L358" + "source_location": "L86" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_caching_memory", + "label": "Microsoft.Extensions.Caching.Memory", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.caching.memory", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L127" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_diagnostics_abstractions", + "label": "Microsoft.Extensions.Diagnostics.Abstractions", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.diagnostics.abstractions", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L231" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging", + "label": "Microsoft.Extensions.Logging", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.logging", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L275" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_console", + "label": "Microsoft.Extensions.Logging.Console", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.logging.console", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L308" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_debug", + "label": "Microsoft.Extensions.Logging.Debug", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.logging.debug", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L320" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_eventlog", + "label": "Microsoft.Extensions.Logging.EventLog", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.logging.eventlog", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L330" + }, + { + "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_microsoft_extensions_logging_eventsource", + "label": "Microsoft.Extensions.Logging.EventSource", + "_origin": "ast", + "community": 61, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "file_type": "code", + "norm_label": "microsoft.extensions.logging.eventsource", + "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", + "source_location": "L342" }, { "id": "src_anichron_api_tests_unit_packages_lock_castle_core_contenthash", @@ -70813,28 +70952,22 @@ "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_loggingmiddleware_order", - "label": "Order", + "id": "ilogger", + "label": "ILogger", "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Middlewares", - "scope_chain": [ - "s43" - ] - }, - "norm_label": "order", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", - "source_location": "L7" + "norm_label": "ilogger", + "source_file": "", + "source_location": "" }, { "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -70845,7 +70978,7 @@ "label": "IngestionDelegate", "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "norm_label": "ingestiondelegate", "source_file": "", @@ -70856,7 +70989,7 @@ "label": "Task", "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "norm_label": "task", "source_file": "", @@ -70867,7 +71000,7 @@ "label": "Fact", "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "norm_label": "fact", "source_file": "", @@ -70878,7 +71011,7 @@ "label": "InvalidOperationException", "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "norm_label": "invalidoperationexception", "source_file": "", @@ -70889,7 +71022,7 @@ "label": "Task", "_origin": "ast", "community": 65, - "community_name": "LoggingMiddleware", + "community_name": ".InvokeAsync", "file_type": "code", "norm_label": "task", "source_file": "", @@ -71283,107 +71416,147 @@ "source_location": "L1" }, { - "id": "ilogger", - "label": "ILogger", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture_storageconfigrepository", + "label": "StorageConfigRepository", "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "ilogger", - "source_file": "", - "source_location": "" + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Startup", + "scope_chain": [ + "s307" + ] + }, + "norm_label": "storageconfigrepository", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L18" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_entries", - "label": "Entries", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture_unitofwork", + "label": "UnitOfWork", "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Maintenance", + "namespace": "Anichron.Worker.Tests.Unit.Startup", "scope_chain": [ - "s241" + "s307" ] }, - "norm_label": "entries", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L91" + "norm_label": "unitofwork", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L19" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_eventid", - "label": "EventId", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture_userrepository", + "label": "UserRepository", "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "eventid", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Startup", + "scope_chain": [ + "s307" + ] + }, + "norm_label": "userrepository", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L17" + }, + { + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_anichron_worker_tests_unit_startup_testfixture_workerstate", + "label": "WorkerState", + "_origin": "ast", + "community": 68, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Startup", + "scope_chain": [ + "s307" + ] + }, + "norm_label": "workerstate", + "source_file": "src/Anichron.Worker.Tests.Unit/Startup/WorkerInitializerTests.cs", + "source_location": "L20" + }, + { + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 68, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_exception", - "label": "Exception", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_fact", + "label": "Fact", "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "exception", + "norm_label": "fact", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_func", - "label": "Func", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_ilogger", + "label": "ILogger", "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "func", + "norm_label": "ilogger", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_idisposable", - "label": "IDisposable", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_invalidoperationexception", + "label": "InvalidOperationException", "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "idisposable", + "norm_label": "invalidoperationexception", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_ireadonlylist", - "label": "IReadOnlyList", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_iservicescopefactory", + "label": "IServiceScopeFactory", "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "ireadonlylist", + "norm_label": "iservicescopefactory", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_list", - "label": "List", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_task", + "label": "Task", "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "list", + "norm_label": "task", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_loglevel", - "label": "LogLevel", + "id": "src_anichron_worker_tests_unit_startup_workerinitializertests_cs_workerstate", + "label": "WorkerState", "_origin": "ast", "community": 68, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "loglevel", + "norm_label": "workerstate", "source_file": "", "source_location": "" }, @@ -71762,257 +71935,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_anichrondbcontext", - "label": "AnichronDbContext", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "anichrondbcontext", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_guid", - "label": "Guid", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "guid", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_instant", - "label": "Instant", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "instant", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_task", - "label": "Task", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_domain_refreshtoken", - "label": "RefreshToken.cs", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "refreshtoken.cs", - "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_createdat", - "label": "CreatedAt", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "createdat", - "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", - "source_location": "L8" - }, - { - "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_expiresat", - "label": "ExpiresAt", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "expiresat", - "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", - "source_location": "L9" - }, - { - "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_id", - "label": "Id", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "id", - "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", - "source_location": "L5" - }, - { - "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_revokedat", - "label": "RevokedAt", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "revokedat", - "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", - "source_location": "L10" - }, - { - "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_tokenhash", - "label": "TokenHash", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "tokenhash", - "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", - "source_location": "L7" - }, - { - "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_user", - "label": "User", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "user", - "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", - "source_location": "L12" - }, - { - "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken_userid", - "label": "UserId", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "userid", - "source_file": "src/Anichron.Core/Domain/RefreshToken.cs", - "source_location": "L6" - }, - { - "id": "src_anichron_core_domain_refreshtoken_cs_guid", - "label": "Guid", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "guid", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_domain_refreshtoken_cs_instant", - "label": "Instant", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "instant", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_cs_fact", - "label": "Fact", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "fact", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_cs_guid", - "label": "Guid", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "guid", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_cs_instant", - "label": "Instant", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "instant", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_tests_unit_data_repository_refreshtokenrepositorytests_cs_task", - "label": "Task", - "_origin": "ast", - "community": 7, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, { "id": "tokenservice", "label": "TokenService", @@ -72190,39 +72112,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_core_guidfactory", - "label": "GuidFactory.cs", - "_origin": "ast", - "community": 72, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "guidfactory.cs", - "source_file": "src/Anichron.Core/GuidFactory.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_cs_iclock", - "label": "IClock", - "_origin": "ast", - "community": 72, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "iclock", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_cs_proxytype", - "label": "ProxyType", - "_origin": "ast", - "community": 72, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "proxytype", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_ingestion_proxy_proxystagingwriter_cs_cancellationtoken", "label": "CancellationToken", @@ -72561,6 +72450,17 @@ "source_file": "", "source_location": "" }, + { + "id": "capturinglogger", + "label": "CapturingLogger", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "capturinglogger", + "source_file": "", + "source_location": "" + }, { "id": "httpclient", "label": "HttpClient", @@ -72572,6 +72472,50 @@ "source_file": "", "source_location": "" }, + { + "id": "httpmessagehandler", + "label": "HttpMessageHandler", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "httpmessagehandler", + "source_file": "", + "source_location": "" + }, + { + "id": "httprequestmessage", + "label": "HttpRequestMessage", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "httprequestmessage", + "source_file": "", + "source_location": "" + }, + { + "id": "httpresponsemessage", + "label": "HttpResponseMessage", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "httpresponsemessage", + "source_file": "", + "source_location": "" + }, + { + "id": "idisposable", + "label": "IDisposable", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "idisposable", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_api_services_pwnedpasswordclient_cs_cancellationtoken", "label": "CancellationToken", @@ -72627,6 +72571,183 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_entries", + "label": "Entries", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": "entries", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L112" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_logger", + "label": "Logger", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": "logger", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L72" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_eventid", + "label": "EventId", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "eventid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_exception", + "label": "Exception", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "exception", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_fact", + "label": "Fact", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "fact", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_func", + "label": "Func", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "func", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_httprequestexception", + "label": "HttpRequestException", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "httprequestexception", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_inlinedata", + "label": "InlineData", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "inlinedata", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_ireadonlylist", + "label": "IReadOnlyList", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "ireadonlylist", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_level", + "label": "Level", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "level", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_list", + "label": "List", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "list", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_loglevel", + "label": "LogLevel", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "loglevel", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_task", + "label": "Task", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_theory", + "label": "Theory", + "_origin": "ast", + "community": 73, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "theory", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_api_tests_unit_services_registrationvalidatortests_anichron_api_tests_unit_services_testfixture_pwnedclient", "label": "PwnedClient", @@ -72792,6 +72913,39 @@ "source_file": "src/Anichron.Infrastructure/Data/PostgresConstants.cs", "source_location": "L1" }, + { + "id": "src_anichron_worker_startup_idatabasemigrator", + "label": "IDatabaseMigrator.cs", + "_origin": "ast", + "community": 74, + "community_name": "Anichron.Infrastructure.Data", + "file_type": "code", + "norm_label": "idatabasemigrator.cs", + "source_file": "src/Anichron.Worker/Startup/IDatabaseMigrator.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_startup_idatabasemigrator_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 74, + "community_name": "Anichron.Infrastructure.Data", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_startup_idatabasemigrator_cs_task", + "label": "Task", + "_origin": "ast", + "community": 74, + "community_name": "Anichron.Infrastructure.Data", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, { "id": "suppressmessage", "label": "SuppressMessage", @@ -73947,6 +74101,50 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_core_data_repository_mediaassetrepository_cs_anichrondbcontext", + "label": "AnichronDbContext", + "_origin": "ast", + "community": 79, + "community_name": "MediaAsset", + "file_type": "code", + "norm_label": "anichrondbcontext", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_core_data_repository_mediaassetrepository_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 79, + "community_name": "MediaAsset", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_core_data_repository_mediaassetrepository_cs_guid", + "label": "Guid", + "_origin": "ast", + "community": 79, + "community_name": "MediaAsset", + "file_type": "code", + "norm_label": "guid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_core_data_repository_mediaassetrepository_cs_task", + "label": "Task", + "_origin": "ast", + "community": 79, + "community_name": "MediaAsset", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_core_domain_mediaasset", "label": "MediaAsset.cs", @@ -75480,34 +75678,12 @@ "source_file": "src/Anichron.Core/packages.lock.json", "source_location": "L240" }, - { - "id": "src_anichron_api_packages_lock_anichron_core_dependencies", - "label": "dependencies", - "_origin": "ast", - "community": 82, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "dependencies", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L470" - }, - { - "id": "src_anichron_api_packages_lock_anichron_core_type", - "label": "type", - "_origin": "ast", - "community": 82, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L469" - }, { "id": "src_anichron_api_packages_lock_anichron_infrastructure_dependencies", "label": "dependencies", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.API/packages.lock.json", @@ -75518,7 +75694,7 @@ "label": "type", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", @@ -75529,7 +75705,7 @@ "label": "Microsoft.EntityFrameworkCore", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "microsoft.entityframeworkcore", "source_file": "src/Anichron.API/packages.lock.json", @@ -75540,51 +75716,29 @@ "label": "Microsoft.EntityFrameworkCore.Relational", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "microsoft.entityframeworkcore.relational", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L53" }, - { - "id": "src_anichron_api_packages_lock_dependencies_nodatime", - "label": "NodaTime", - "_origin": "ast", - "community": 82, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "nodatime", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L369" - }, { "id": "src_anichron_api_packages_lock_dependencies_npgsql", "label": "Npgsql", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "npgsql", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L107" }, - { - "id": "src_anichron_api_packages_lock_dependencies_npgsql_entityframeworkcore_postgresql_nodatime", - "label": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", - "_origin": "ast", - "community": 82, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "npgsql.entityframeworkcore.postgresql.nodatime", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L475" - }, { "id": "src_anichron_api_packages_lock_dependencies_system_io_abstractions", "label": "System.IO.Abstractions", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "system.io.abstractions", "source_file": "src/Anichron.API/packages.lock.json", @@ -75595,7 +75749,7 @@ "label": "contentHash", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", @@ -75606,7 +75760,7 @@ "label": "dependencies", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.API/packages.lock.json", @@ -75617,7 +75771,7 @@ "label": "requested", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "requested", "source_file": "src/Anichron.API/packages.lock.json", @@ -75628,7 +75782,7 @@ "label": "resolved", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", @@ -75639,7 +75793,7 @@ "label": "type", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", @@ -75650,7 +75804,7 @@ "label": "contentHash", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", @@ -75661,7 +75815,7 @@ "label": "dependencies", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.API/packages.lock.json", @@ -75672,7 +75826,7 @@ "label": "requested", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "requested", "source_file": "src/Anichron.API/packages.lock.json", @@ -75683,7 +75837,7 @@ "label": "resolved", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", @@ -75694,29 +75848,18 @@ "label": "type", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L69" }, - { - "id": "src_anichron_api_packages_lock_net10_0_anichron_core", - "label": "anichron.core", - "_origin": "ast", - "community": 82, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "anichron.core", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L468" - }, { "id": "src_anichron_api_packages_lock_net10_0_anichron_infrastructure", "label": "anichron.infrastructure", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "anichron.infrastructure", "source_file": "src/Anichron.API/packages.lock.json", @@ -75727,7 +75870,7 @@ "label": "Microsoft.EntityFrameworkCore.Relational", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "microsoft.entityframeworkcore.relational", "source_file": "src/Anichron.API/packages.lock.json", @@ -75738,7 +75881,7 @@ "label": "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "microsoft.extensions.diagnostics.healthchecks.entityframeworkcore", "source_file": "src/Anichron.API/packages.lock.json", @@ -75749,29 +75892,18 @@ "label": "Npgsql.EntityFrameworkCore.PostgreSQL", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "npgsql.entityframeworkcore.postgresql", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L99" }, - { - "id": "src_anichron_api_packages_lock_net10_0_npgsql_nodatime", - "label": "Npgsql.NodaTime", - "_origin": "ast", - "community": 82, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "npgsql.nodatime", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L364" - }, { "id": "src_anichron_api_packages_lock_npgsql_entityframeworkcore_postgresql_contenthash", "label": "contentHash", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", @@ -75782,7 +75914,7 @@ "label": "dependencies", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.API/packages.lock.json", @@ -75793,7 +75925,7 @@ "label": "requested", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "requested", "source_file": "src/Anichron.API/packages.lock.json", @@ -75804,7 +75936,7 @@ "label": "resolved", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", @@ -75815,56 +75947,12 @@ "label": "type", "_origin": "ast", "community": 82, - "community_name": "dependencies", + "community_name": "Microsoft.EntityFrameworkCore.Relational", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L100" }, - { - "id": "src_anichron_api_packages_lock_npgsql_nodatime_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 82, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L367" - }, - { - "id": "src_anichron_api_packages_lock_npgsql_nodatime_dependencies", - "label": "dependencies", - "_origin": "ast", - "community": 82, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "dependencies", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L368" - }, - { - "id": "src_anichron_api_packages_lock_npgsql_nodatime_resolved", - "label": "resolved", - "_origin": "ast", - "community": 82, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L366" - }, - { - "id": "src_anichron_api_packages_lock_npgsql_nodatime_type", - "label": "type", - "_origin": "ast", - "community": 82, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L365" - }, { "id": "src_anichron_core_packages_lock_dependencies_humanizer_core", "label": "Humanizer.Core", @@ -80909,18 +80997,6 @@ "source_location": "lines 71-72", "source_url": null }, - { - "id": "system_net_mail", - "label": "system_net_mail", - "_origin": "semantic", - "community": 0, - "community_name": "TestFixture", - "external": true, - "file_type": "concept", - "norm_label": "system_net_mail", - "source_file": "", - "type": "external" - }, { "id": "microsoft_entityframeworkcore_infrastructure", "label": "microsoft_entityframeworkcore_infrastructure", @@ -80982,182 +81058,182 @@ "type": "external" }, { - "id": "microsoft_extensions_dependencyinjection", - "label": "microsoft_extensions_dependencyinjection", + "id": "metadataextractor", + "label": "metadataextractor", "_origin": "semantic", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "microsoft_extensions_dependencyinjection", + "norm_label": "metadataextractor", "source_file": "", "type": "external" }, { - "id": "microsoft_extensions_hosting", - "label": "microsoft_extensions_hosting", + "id": "metadataextractor_formats_exif", + "label": "metadataextractor_formats_exif", "_origin": "semantic", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "microsoft_extensions_hosting", + "norm_label": "metadataextractor_formats_exif", "source_file": "", "type": "external" }, { - "id": "microsoft_extensions_logging", - "label": "microsoft_extensions_logging", + "id": "metadataextractor_formats_quicktime", + "label": "metadataextractor_formats_quicktime", "_origin": "semantic", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "microsoft_extensions_logging", + "norm_label": "metadataextractor_formats_quicktime", "source_file": "", "type": "external" }, { - "id": "microsoft_extensions_options", - "label": "microsoft_extensions_options", + "id": "microsoft_extensions_hosting", + "label": "microsoft_extensions_hosting", "_origin": "semantic", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "microsoft_extensions_options", + "norm_label": "microsoft_extensions_hosting", "source_file": "", "type": "external" }, { - "id": "nodatime", - "label": "nodatime", + "id": "microsoft_extensions_logging", + "label": "microsoft_extensions_logging", "_origin": "semantic", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "nodatime", + "norm_label": "microsoft_extensions_logging", "source_file": "", "type": "external" }, { - "id": "system_io_abstractions", - "label": "system_io_abstractions", + "id": "nodatime", + "label": "nodatime", "_origin": "semantic", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "system_io_abstractions", + "norm_label": "nodatime", "source_file": "", "type": "external" }, { - "id": "system_io_abstractions_testinghelpers", - "label": "system_io_abstractions_testinghelpers", + "id": "nodatime_text", + "label": "nodatime_text", "_origin": "semantic", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "system_io_abstractions_testinghelpers", + "norm_label": "nodatime_text", "source_file": "", "type": "external" }, { - "id": "system_io_hashing", - "label": "system_io_hashing", + "id": "sixlabors_imagesharp", + "label": "sixlabors_imagesharp", "_origin": "semantic", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "system_io_hashing", + "norm_label": "sixlabors_imagesharp", "source_file": "", "type": "external" }, { - "id": "system_threading_channels", - "label": "system_threading_channels", + "id": "sixlabors_imagesharp_pixelformats", + "label": "sixlabors_imagesharp_pixelformats", "_origin": "semantic", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "system_threading_channels", + "norm_label": "sixlabors_imagesharp_pixelformats", "source_file": "", "type": "external" }, { - "id": "metadataextractor", - "label": "metadataextractor", + "id": "system_io_abstractions", + "label": "system_io_abstractions", "_origin": "semantic", - "community": 154, - "community_name": "ExifExtractionMiddleware.cs", + "community": 121, + "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "metadataextractor", + "norm_label": "system_io_abstractions", "source_file": "", "type": "external" }, { - "id": "metadataextractor_formats_exif", - "label": "metadataextractor_formats_exif", + "id": "system_io_abstractions_testinghelpers", + "label": "system_io_abstractions_testinghelpers", "_origin": "semantic", - "community": 154, - "community_name": "ExifExtractionMiddleware.cs", + "community": 121, + "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "metadataextractor_formats_exif", + "norm_label": "system_io_abstractions_testinghelpers", "source_file": "", "type": "external" }, { - "id": "metadataextractor_formats_quicktime", - "label": "metadataextractor_formats_quicktime", + "id": "system_io_hashing", + "label": "system_io_hashing", "_origin": "semantic", - "community": 154, - "community_name": "ExifExtractionMiddleware.cs", + "community": 121, + "community_name": "Anichron.Worker.Ingestion.Pipeline", "external": true, "file_type": "concept", - "norm_label": "metadataextractor_formats_quicktime", + "norm_label": "system_io_hashing", "source_file": "", "type": "external" }, { - "id": "nodatime_text", - "label": "nodatime_text", + "id": "blurhash_imagesharp", + "label": "blurhash_imagesharp", "_origin": "semantic", - "community": 154, - "community_name": "ExifExtractionMiddleware.cs", + "community": 182, + "community_name": "microsoft_extensions_options", "external": true, "file_type": "concept", - "norm_label": "nodatime_text", + "norm_label": "blurhash_imagesharp", "source_file": "", "type": "external" }, { - "id": "blurhash_imagesharp", - "label": "blurhash_imagesharp", + "id": "microsoft_extensions_dependencyinjection", + "label": "microsoft_extensions_dependencyinjection", "_origin": "semantic", "community": 182, - "community_name": "ImageProcessor.cs", + "community_name": "microsoft_extensions_options", "external": true, "file_type": "concept", - "norm_label": "blurhash_imagesharp", + "norm_label": "microsoft_extensions_dependencyinjection", "source_file": "", "type": "external" }, { - "id": "sixlabors_imagesharp", - "label": "sixlabors_imagesharp", + "id": "microsoft_extensions_options", + "label": "microsoft_extensions_options", "_origin": "semantic", "community": 182, - "community_name": "ImageProcessor.cs", + "community_name": "microsoft_extensions_options", "external": true, "file_type": "concept", - "norm_label": "sixlabors_imagesharp", + "norm_label": "microsoft_extensions_options", "source_file": "", "type": "external" }, @@ -81166,7 +81242,7 @@ "label": "sixlabors_imagesharp_formats_jpeg", "_origin": "semantic", "community": 182, - "community_name": "ImageProcessor.cs", + "community_name": "microsoft_extensions_options", "external": true, "file_type": "concept", "norm_label": "sixlabors_imagesharp_formats_jpeg", @@ -81174,26 +81250,26 @@ "type": "external" }, { - "id": "sixlabors_imagesharp_pixelformats", - "label": "sixlabors_imagesharp_pixelformats", + "id": "sixlabors_imagesharp_processing", + "label": "sixlabors_imagesharp_processing", "_origin": "semantic", "community": 182, - "community_name": "ImageProcessor.cs", + "community_name": "microsoft_extensions_options", "external": true, "file_type": "concept", - "norm_label": "sixlabors_imagesharp_pixelformats", + "norm_label": "sixlabors_imagesharp_processing", "source_file": "", "type": "external" }, { - "id": "sixlabors_imagesharp_processing", - "label": "sixlabors_imagesharp_processing", + "id": "system_threading_channels", + "label": "system_threading_channels", "_origin": "semantic", "community": 182, - "community_name": "ImageProcessor.cs", + "community_name": "microsoft_extensions_options", "external": true, "file_type": "concept", - "norm_label": "sixlabors_imagesharp_processing", + "norm_label": "system_threading_channels", "source_file": "", "type": "external" }, @@ -81234,26 +81310,26 @@ "type": "external" }, { - "id": "system_globalization", - "label": "system_globalization", + "id": "microsoft_extensions_configuration", + "label": "microsoft_extensions_configuration", "_origin": "semantic", - "community": 20, - "community_name": "AppIniInitializer", + "community": 196, + "community_name": "Anichron.Infrastructure.Configuration", "external": true, "file_type": "concept", - "norm_label": "system_globalization", + "norm_label": "microsoft_extensions_configuration", "source_file": "", "type": "external" }, { - "id": "microsoft_aspnetcore_mvc", - "label": "microsoft_aspnetcore_mvc", + "id": "system_globalization", + "label": "system_globalization", "_origin": "semantic", - "community": 21, - "community_name": "AuthTokens", + "community": 196, + "community_name": "Anichron.Infrastructure.Configuration", "external": true, "file_type": "concept", - "norm_label": "microsoft_aspnetcore_mvc", + "norm_label": "system_globalization", "source_file": "", "type": "external" }, @@ -81269,48 +81345,12 @@ "source_file": "", "type": "external" }, - { - "id": "konscious_security_cryptography", - "label": "konscious_security_cryptography", - "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Settings", - "external": true, - "file_type": "concept", - "norm_label": "konscious_security_cryptography", - "source_file": "", - "type": "external" - }, - { - "id": "microsoft_aspnetcore_authentication_jwtbearer", - "label": "microsoft_aspnetcore_authentication_jwtbearer", - "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Settings", - "external": true, - "file_type": "concept", - "norm_label": "microsoft_aspnetcore_authentication_jwtbearer", - "source_file": "", - "type": "external" - }, - { - "id": "microsoft_aspnetcore_diagnostics_healthchecks", - "label": "microsoft_aspnetcore_diagnostics_healthchecks", - "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Settings", - "external": true, - "file_type": "concept", - "norm_label": "microsoft_aspnetcore_diagnostics_healthchecks", - "source_file": "", - "type": "external" - }, { "id": "microsoft_aspnetcore_http", "label": "microsoft_aspnetcore_http", "_origin": "semantic", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "external": true, "file_type": "concept", "norm_label": "microsoft_aspnetcore_http", @@ -81322,7 +81362,7 @@ "label": "microsoft_aspnetcore_http_json", "_origin": "semantic", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "external": true, "file_type": "concept", "norm_label": "microsoft_aspnetcore_http_json", @@ -81330,14 +81370,14 @@ "type": "external" }, { - "id": "microsoft_aspnetcore_httpoverrides", - "label": "microsoft_aspnetcore_httpoverrides", + "id": "microsoft_aspnetcore_mvc", + "label": "microsoft_aspnetcore_mvc", "_origin": "semantic", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "external": true, "file_type": "concept", - "norm_label": "microsoft_aspnetcore_httpoverrides", + "norm_label": "microsoft_aspnetcore_mvc", "source_file": "", "type": "external" }, @@ -81346,7 +81386,7 @@ "label": "microsoft_extensions_diagnostics_healthchecks", "_origin": "semantic", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "external": true, "file_type": "concept", "norm_label": "microsoft_extensions_diagnostics_healthchecks", @@ -81354,98 +81394,74 @@ "type": "external" }, { - "id": "microsoft_identitymodel_tokens", - "label": "microsoft_identitymodel_tokens", - "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Settings", - "external": true, - "file_type": "concept", - "norm_label": "microsoft_identitymodel_tokens", - "source_file": "", - "type": "external" - }, - { - "id": "system_globalization_cultureinfo", - "label": "system_globalization_cultureinfo", - "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Settings", - "external": true, - "file_type": "concept", - "norm_label": "system_globalization_cultureinfo", - "source_file": "", - "type": "external" - }, - { - "id": "system_identitymodel_tokens_jwt", - "label": "system_identitymodel_tokens_jwt", + "id": "system_security_claims", + "label": "system_security_claims", "_origin": "semantic", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "external": true, "file_type": "concept", - "norm_label": "system_identitymodel_tokens_jwt", + "norm_label": "system_security_claims", "source_file": "", "type": "external" }, { - "id": "system_security_claims", - "label": "system_security_claims", + "id": "system_text_json", + "label": "system_text_json", "_origin": "semantic", "community": 33, - "community_name": "Anichron.API.Settings", + "community_name": "Anichron.API.Infrastructure", "external": true, "file_type": "concept", - "norm_label": "system_security_claims", + "norm_label": "system_text_json", "source_file": "", "type": "external" }, { - "id": "system_text", - "label": "system_text", + "id": "konscious_security_cryptography", + "label": "konscious_security_cryptography", "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Settings", + "community": 36, + "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "system_text", + "norm_label": "konscious_security_cryptography", "source_file": "", "type": "external" }, { - "id": "system_text_json", - "label": "system_text_json", + "id": "microsoft_aspnetcore_authentication_jwtbearer", + "label": "microsoft_aspnetcore_authentication_jwtbearer", "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Settings", + "community": 36, + "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "system_text_json", + "norm_label": "microsoft_aspnetcore_authentication_jwtbearer", "source_file": "", "type": "external" }, { - "id": "system_text_regularexpressions", - "label": "system_text_regularexpressions", + "id": "microsoft_aspnetcore_diagnostics_healthchecks", + "label": "microsoft_aspnetcore_diagnostics_healthchecks", "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Settings", + "community": 36, + "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "system_text_regularexpressions", + "norm_label": "microsoft_aspnetcore_diagnostics_healthchecks", "source_file": "", "type": "external" }, { - "id": "system_threading_ratelimiting", - "label": "system_threading_ratelimiting", + "id": "microsoft_aspnetcore_httpoverrides", + "label": "microsoft_aspnetcore_httpoverrides", "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Settings", + "community": 36, + "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "system_threading_ratelimiting", + "norm_label": "microsoft_aspnetcore_httpoverrides", "source_file": "", "type": "external" }, @@ -81474,14 +81490,14 @@ "type": "external" }, { - "id": "microsoft_extensions_configuration", - "label": "microsoft_extensions_configuration", + "id": "microsoft_identitymodel_tokens", + "label": "microsoft_identitymodel_tokens", "_origin": "semantic", "community": 36, "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "microsoft_extensions_configuration", + "norm_label": "microsoft_identitymodel_tokens", "source_file": "", "type": "external" }, @@ -81510,14 +81526,26 @@ "type": "external" }, { - "id": "system_security_cryptography", - "label": "system_security_cryptography", + "id": "system_globalization_cultureinfo", + "label": "system_globalization_cultureinfo", "_origin": "semantic", "community": 36, "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "system_security_cryptography", + "norm_label": "system_globalization_cultureinfo", + "source_file": "", + "type": "external" + }, + { + "id": "system_identitymodel_tokens_jwt", + "label": "system_identitymodel_tokens_jwt", + "_origin": "semantic", + "community": 36, + "community_name": "Anichron.Core.Domain", + "external": true, + "file_type": "concept", + "norm_label": "system_identitymodel_tokens_jwt", "source_file": "", "type": "external" }, @@ -81525,14 +81553,74 @@ "id": "system_net", "label": "system_net", "_origin": "semantic", - "community": 5, - "community_name": "TestFixture", + "community": 36, + "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", "norm_label": "system_net", "source_file": "", "type": "external" }, + { + "id": "system_net_mail", + "label": "system_net_mail", + "_origin": "semantic", + "community": 36, + "community_name": "Anichron.Core.Domain", + "external": true, + "file_type": "concept", + "norm_label": "system_net_mail", + "source_file": "", + "type": "external" + }, + { + "id": "system_security_cryptography", + "label": "system_security_cryptography", + "_origin": "semantic", + "community": 36, + "community_name": "Anichron.Core.Domain", + "external": true, + "file_type": "concept", + "norm_label": "system_security_cryptography", + "source_file": "", + "type": "external" + }, + { + "id": "system_text", + "label": "system_text", + "_origin": "semantic", + "community": 36, + "community_name": "Anichron.Core.Domain", + "external": true, + "file_type": "concept", + "norm_label": "system_text", + "source_file": "", + "type": "external" + }, + { + "id": "system_text_regularexpressions", + "label": "system_text_regularexpressions", + "_origin": "semantic", + "community": 36, + "community_name": "Anichron.Core.Domain", + "external": true, + "file_type": "concept", + "norm_label": "system_text_regularexpressions", + "source_file": "", + "type": "external" + }, + { + "id": "system_threading_ratelimiting", + "label": "system_threading_ratelimiting", + "_origin": "semantic", + "community": 36, + "community_name": "Anichron.Core.Domain", + "external": true, + "file_type": "concept", + "norm_label": "system_threading_ratelimiting", + "source_file": "", + "type": "external" + }, { "id": "system_diagnostics_codeanalysis", "label": "system_diagnostics_codeanalysis", @@ -81544,6 +81632,17 @@ "norm_label": "system_diagnostics_codeanalysis", "source_file": "", "type": "external" + }, + { + "id": "nsubstitute_exceptionextensions", + "label": "nsubstitute_exceptionextensions", + "community": 36, + "community_name": "Anichron.Core.Domain", + "external": true, + "file_type": "concept", + "norm_label": "nsubstitute_exceptionextensions", + "source_file": "", + "type": "external" } ], "links": [ @@ -83569,7 +83668,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L171", + "source_location": "L217", "weight": 1.0 }, { @@ -83584,7 +83683,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L185", + "source_location": "L231", "weight": 1.0 }, { @@ -83599,7 +83698,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L200", + "source_location": "L247", "weight": 1.0 }, { @@ -83614,7 +83713,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L28", + "source_location": "L66", "weight": 1.0 }, { @@ -83629,7 +83728,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L44", + "source_location": "L82", "weight": 1.0 }, { @@ -83644,7 +83743,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L57", + "source_location": "L95", "weight": 1.0 }, { @@ -83659,7 +83758,22 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L73", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_savethrows_therevocationraninsidethefailedtransaction", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_fact", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "attribute", + "metadata": { + "ref_token": "Fact" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L274", "weight": 1.0 }, { @@ -83674,7 +83788,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L87", + "source_location": "L127", "weight": 1.0 }, { @@ -83689,7 +83803,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L114", + "source_location": "L155", "weight": 1.0 }, { @@ -83704,7 +83818,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L154", + "source_location": "L200", "weight": 1.0 }, { @@ -83719,7 +83833,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L128", + "source_location": "L169", "weight": 1.0 }, { @@ -83734,7 +83848,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L141", + "source_location": "L187", "weight": 1.0 }, { @@ -83749,7 +83863,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L100", + "source_location": "L140", "weight": 1.0 }, { @@ -92152,7 +92266,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L56", + "source_location": "L63", "weight": 1.0 }, { @@ -92164,7 +92278,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L65", + "source_location": "L78", "weight": 1.0 }, { @@ -96868,7 +96982,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L175", + "source_location": "L221", "weight": 1.0 }, { @@ -96880,7 +96994,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L188", + "source_location": "L234", "weight": 1.0 }, { @@ -96892,7 +97006,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L203", + "source_location": "L250", "weight": 1.0 }, { @@ -96904,7 +97018,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L31", + "source_location": "L69", "weight": 1.0 }, { @@ -96916,7 +97030,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L47", + "source_location": "L85", "weight": 1.0 }, { @@ -96928,7 +97042,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L60", + "source_location": "L98", "weight": 1.0 }, { @@ -96940,7 +97054,19 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L76", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_savethrows_therevocationraninsidethefailedtransaction", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L277", "weight": 1.0 }, { @@ -96952,7 +97078,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L91", + "source_location": "L131", "weight": 1.0 }, { @@ -96964,7 +97090,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L117", + "source_location": "L158", "weight": 1.0 }, { @@ -96976,7 +97102,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L157", + "source_location": "L203", "weight": 1.0 }, { @@ -96988,7 +97114,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L131", + "source_location": "L172", "weight": 1.0 }, { @@ -97000,7 +97126,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L144", + "source_location": "L190", "weight": 1.0 }, { @@ -97012,7 +97138,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L103", + "source_location": "L143", "weight": 1.0 }, { @@ -107518,7 +107644,7 @@ "ref_token": "IClock" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L17", + "source_location": "L18", "weight": 1.0 }, { @@ -109648,7 +109774,7 @@ "ref_token": "ITokenService" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L16", + "source_location": "L17", "weight": 1.0 }, { @@ -109828,7 +109954,7 @@ "ref_token": "IUnitOfWork" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L15", + "source_location": "L16", "weight": 1.0 }, { @@ -110083,7 +110209,7 @@ "ref_token": "IUserRepository" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L14", + "source_location": "L15", "weight": 1.0 }, { @@ -110308,7 +110434,7 @@ "ref_token": "Instant" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L10", + "source_location": "L11", "weight": 1.0 }, { @@ -111937,7 +112063,7 @@ "confidence_score": 1.0, "context": "field", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L14", + "source_location": "L15", "weight": 1.0 }, { @@ -111949,7 +112075,7 @@ "confidence_score": 1.0, "context": "field", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L15", + "source_location": "L16", "weight": 1.0 }, { @@ -111961,7 +112087,31 @@ "confidence_score": 1.0, "context": "field", "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L16", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture_revokedinsidetransaction", + "relation": "defines", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "field", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture_savedinsidetransaction", + "relation": "defines", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "field", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L24", "weight": 1.0 }, { @@ -115705,7 +115855,7 @@ "ref_token": "AuthResult" }, "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L53", + "source_location": "L60", "weight": 1.0 }, { @@ -117355,7 +117505,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L182", + "source_location": "L228", "weight": 1.0 }, { @@ -117370,7 +117520,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L197", + "source_location": "L244", "weight": 1.0 }, { @@ -117385,7 +117535,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L212", + "source_location": "L260", "weight": 1.0 }, { @@ -117400,7 +117550,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L33", + "source_location": "L71", "weight": 1.0 }, { @@ -117415,7 +117565,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L50", + "source_location": "L88", "weight": 1.0 }, { @@ -117430,7 +117580,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L62", + "source_location": "L100", "weight": 1.0 }, { @@ -117445,7 +117595,22 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L84", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_savethrows_therevocationraninsidethefailedtransaction", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_cancellationtoken", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "CancellationToken" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L281", "weight": 1.0 }, { @@ -117460,7 +117625,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L97", + "source_location": "L137", "weight": 1.0 }, { @@ -117475,7 +117640,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L125", + "source_location": "L166", "weight": 1.0 }, { @@ -117490,7 +117655,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L164", + "source_location": "L210", "weight": 1.0 }, { @@ -117505,7 +117670,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L138", + "source_location": "L180", "weight": 1.0 }, { @@ -117520,7 +117685,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L151", + "source_location": "L197", "weight": 1.0 }, { @@ -117535,7 +117700,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L111", + "source_location": "L152", "weight": 1.0 }, { @@ -118993,6 +119158,81 @@ "source_location": "L51", "weight": 1.0 }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_usernotfound_returnsusernotfound", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_func", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "Func" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L244", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_validuser_revokessessionsremovesuserandsaves", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_func", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "Func" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L260", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_bothparamsnull_returnsuserwithoutsaving", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_func", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "Func" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledtrue_revokessessionsandsaves", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_func", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "Func" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L180", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_usernotfound_returnsusernotfound", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_func", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "Func" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L152", + "weight": 1.0 + }, { "source": "src_anichron_worker_ingestion_middlewares_exifextractionmiddleware_anichron_worker_ingestion_middlewares_exifextractionmiddleware_buildexifdata", "target": "gpsdirectory", @@ -119185,7 +119425,7 @@ "ref_token": "Guid" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L163", + "source_location": "L209", "weight": 1.0 }, { @@ -119200,7 +119440,7 @@ "ref_token": "Guid" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L150", + "source_location": "L196", "weight": 1.0 }, { @@ -122590,7 +122830,7 @@ "ref_token": "Instant" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L163", + "source_location": "L209", "weight": 1.0 }, { @@ -122605,7 +122845,7 @@ "ref_token": "Instant" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L150", + "source_location": "L196", "weight": 1.0 }, { @@ -122788,6 +123028,21 @@ "source_location": "L79", "weight": 1.0 }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_savethrows_therevocationraninsidethefailedtransaction", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_invalidoperationexception", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "InvalidOperationException" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L290", + "weight": 1.0 + }, { "source": "src_anichron_api_tests_unit_services_tokenservicetests_anichron_api_tests_unit_services_tokenservicetests_refreshasync_savechangesthrows_propagatesexception", "target": "src_anichron_api_tests_unit_services_tokenservicetests_cs_invalidoperationexception", @@ -124858,6 +125113,81 @@ "source_location": "L67", "weight": 1.0 }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_usernotfound_returnsusernotfound", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_task", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "Task" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L244", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_validuser_revokessessionsremovesuserandsaves", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_task", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "Task" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L260", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_bothparamsnull_returnsuserwithoutsaving", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_task", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "Task" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledtrue_revokessessionsandsaves", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_task", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "Task" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L180", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_usernotfound_returnsusernotfound", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_task", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "metadata": { + "ref_token": "Task" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L152", + "weight": 1.0 + }, { "source": "src_anichron_core_data_anichrondbcontext_anichron_core_data_anichrondbcontext_executeintransactionasync", "target": "src_anichron_core_data_anichrondbcontext_cs_task", @@ -125155,7 +125485,7 @@ "ref_token": "User" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L181", + "source_location": "L227", "weight": 1.0 }, { @@ -125170,7 +125500,7 @@ "ref_token": "User" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L196", + "source_location": "L242", "weight": 1.0 }, { @@ -133651,6 +133981,23 @@ "source_location": "L2", "weight": 1.0 }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests", + "target": "nsubstitute_exceptionextensions", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "metadata": { + "using_kind": "namespace", + "target_fqn": "NSubstitute.ExceptionExtensions", + "scope_kind": "file" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L5", + "weight": 1.0 + }, { "source": "src_anichron_api_globalusings", "target": "nodatime", @@ -141271,7 +141618,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L53", + "source_location": "L60", "weight": 1.0 }, { @@ -144391,7 +144738,7 @@ "ref_token": "Guid" }, "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L53", + "source_location": "L60", "weight": 1.0 }, { @@ -149461,7 +149808,7 @@ "ref_token": "AdminUserService" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L21", + "source_location": "L59", "weight": 1.0 }, { @@ -151456,7 +151803,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L53", + "source_location": "L60", "weight": 1.0 }, { @@ -153316,37 +153663,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L171", - "weight": 1.0 - }, - { - "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_usernotfound_returnsusernotfound", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_task", - "relation": "references", - "_origin": "ast", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "context": "return_type", - "metadata": { - "ref_token": "Task" - }, - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L185", - "weight": 1.0 - }, - { - "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_validuser_revokessessionsremovesuserandsaves", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_task", - "relation": "references", - "_origin": "ast", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "context": "return_type", - "metadata": { - "ref_token": "Task" - }, - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L200", + "source_location": "L217", "weight": 1.0 }, { @@ -153361,7 +153678,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L28", + "source_location": "L66", "weight": 1.0 }, { @@ -153376,7 +153693,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L44", + "source_location": "L82", "weight": 1.0 }, { @@ -153391,11 +153708,11 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L57", + "source_location": "L95", "weight": 1.0 }, { - "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_bothparamsnull_returnsuserwithoutsaving", + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_savethrows_therevocationraninsidethefailedtransaction", "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_task", "relation": "references", "_origin": "ast", @@ -153406,7 +153723,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L73", + "source_location": "L274", "weight": 1.0 }, { @@ -153421,7 +153738,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L87", + "source_location": "L127", "weight": 1.0 }, { @@ -153436,7 +153753,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L114", + "source_location": "L155", "weight": 1.0 }, { @@ -153451,22 +153768,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L154", - "weight": 1.0 - }, - { - "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledtrue_revokessessionsandsaves", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_task", - "relation": "references", - "_origin": "ast", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "context": "return_type", - "metadata": { - "ref_token": "Task" - }, - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L128", + "source_location": "L200", "weight": 1.0 }, { @@ -153481,22 +153783,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L141", - "weight": 1.0 - }, - { - "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_usernotfound_returnsusernotfound", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_cs_task", - "relation": "references", - "_origin": "ast", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "context": "return_type", - "metadata": { - "ref_token": "Task" - }, - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L100", + "source_location": "L187", "weight": 1.0 }, { @@ -174048,7 +174335,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L6", + "source_location": "L7", "weight": 1.0 }, { @@ -174059,7 +174346,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L8", + "source_location": "L9", "weight": 1.0 }, { @@ -174070,7 +174357,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L12", + "source_location": "L13", "weight": 1.0 }, { @@ -202866,7 +203153,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L53", + "source_location": "L60", "weight": 1.0 }, { @@ -205335,145 +205622,156 @@ }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_usernotfound_returnsusernotfound", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_bothparamsnull_returnsuserwithoutsaving", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L100", + "source_location": "L111", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisadmin_updatesuserandreturnsupdateduser", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_selfmodification_returnscannotmodifyself", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L114", + "source_location": "L127", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledtrue_revokessessionsandsaves", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_usernotfound_returnsusernotfound", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L128", + "source_location": "L140", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledtrue_whenalreadydisabled_doesnotrevokesessionsbutsaves", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisadmin_updatesuserandreturnsupdateduser", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L141", + "source_location": "L155", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledfalse_doesnotrevokesessionsbutsaves", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledtrue_revokessessionsandsaves", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L154", + "source_location": "L169", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_selfdeletion_returnscannotmodifyself", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledtrue_whenalreadydisabled_doesnotrevokesessionsbutsaves", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L171", + "source_location": "L187", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_usernotfound_returnsusernotfound", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_setisdisabledfalse_doesnotrevokesessionsbutsaves", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L185", + "source_location": "L200", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_validuser_revokessessionsremovesuserandsaves", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_selfdeletion_returnscannotmodifyself", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L200", + "source_location": "L217", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getallasync_returnsallusersfromrepository", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_usernotfound_returnsusernotfound", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L28", + "source_location": "L231", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getbyidasync_userfound_returnsuser", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_deleteasync_validuser_revokessessionsremovesuserandsaves", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L44", + "source_location": "L247", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getbyidasync_usernotfound_returnsnull", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_savethrows_therevocationraninsidethefailedtransaction", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L57", + "source_location": "L274", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_bothparamsnull_returnsuserwithoutsaving", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getallasync_returnsallusersfromrepository", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L73", + "source_location": "L66", "weight": 1.0 }, { "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", - "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_updateasync_selfmodification_returnscannotmodifyself", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getbyidasync_userfound_returnsuser", "relation": "method", "_origin": "ast", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L87", + "source_location": "L82", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests", + "target": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_adminuserservicetests_getbyidasync_usernotfound_returnsnull", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L95", "weight": 1.0 }, { @@ -205484,7 +205782,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L21", + "source_location": "L59", "weight": 1.0 }, { @@ -214046,31 +214344,43 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L58", + "source_location": "L65", "weight": 1.0 }, { "source": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_deleteasync", - "target": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_markallsessionsrevokedasync", + "target": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_iuserrepository_remove", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L62", + "source_location": "L71", "weight": 1.0 }, { "source": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_deleteasync", - "target": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_iuserrepository_remove", + "target": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork_executeintransactionasync", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L63", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_deleteasync", + "target": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_markallsessionsrevokedasync", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.8, + "context": "call", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L74", "weight": 1.0 }, { @@ -214082,7 +214392,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L64", + "source_location": "L75", "weight": 1.0 }, { @@ -214121,6 +214431,18 @@ "source_location": "L32", "weight": 1.0 }, + { + "source": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_updateasync", + "target": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork_executeintransactionasync", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.8, + "context": "call", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L49", + "weight": 1.0 + }, { "source": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_updateasync", "target": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_markallsessionsrevokedasync", @@ -214130,7 +214452,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L47", + "source_location": "L52", "weight": 1.0 }, { @@ -214142,7 +214464,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L49", + "source_location": "L54", "weight": 1.0 }, { @@ -220650,5 +220972,5 @@ "source_file": "CLAUDE.md" } ], - "built_at_commit": "3c0ca799a8d8a3056fdf9ca6a59646f18405755a" + "built_at_commit": "a6985a853eb4b8089ccbbf309a310db40e1b733a" } \ No newline at end of file From 3d290f7ca4f97ed5631e7340cdc52efe702b9b8c Mon Sep 17 00:00:00 2001 From: bitbiter-dev Date: Thu, 1 Oct 2026 07:30:04 +0200 Subject: [PATCH 3/4] perf(api): Stop paying a 64 MiB Argon2 hash on every request (#173) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AuthService computed a throwaway Argon2id hash in a FIELD INITIALIZER, and is registered Scoped — so constructing it, which happens on every request that resolves IAuthService, allocated 64 MiB and ran three Argon2 passes whether or not the value was ever read. /refresh and /logout paid in full for a value only the login path touches, and /refresh is reachable with just a cookie. The field existed as a timing-attack defence: verify against a dummy hash when the user does not exist, so a missing username costs the same as a wrong password. The intent was right, the placement was not. Verify now takes `string? storedHash`, where null means "no such account", and spends a full Argon2 pass on it instead of short-circuiting. The invariant lives with the class that owns salting, memory-hard hashing, fixed-time comparison and plaintext zeroing. The call site becomes Verify(password, user?.PasswordHash). Taken over a separate VerifyMissingUser method, which would leave the caller having to know the invariant exists and remember to branch to it — the split this was meant to close. Not Lazy either: it fixes the waste and keeps the invariant in two modules, which the issue explicitly rejected. ⭐ Verified the cost is gone rather than relocated: no dummyPasswordHash references remain and nothing on AuthService's construction path touches passwordHasher. IPasswordHasher is AddSingleton and Argon2PasswordHasher is stateless, so moving per-request work into it is safe. Every call site was swept — only LoginAsync can pass null. ⚠️ The null branch returns false UNCONDITIONALLY after doing the work, rather than comparing against random bytes: correctness must not rest on two random values differing. ⚠️ Comments corrected after review caught them overclaiming. This removes the HASHING asymmetry only. LoginAsync still writes a failed-attempt record for a known user and skips it for an unknown one — a database round trip, milliseconds, far larger than the hashing difference — so username enumeration by timing remains possible. Filed separately rather than left implied by a comment that says otherwise. ⚠️ The timing test is named DoesNotShortCircuit, not "equal work", because that is all it pins: it would still pass with weaker Argon2 parameters or a sleep. It asserts a LOWER bound (>10 ms against a measured ~30-80 ms pass), which cannot fail on a slow or loaded runner — unlike the ratio-against-the-real-path shape. Co-Authored-By: Claude Opus 5 (1M context) --- .../Security/PasswordHasherTests.cs | 52 +++++++++++++++++++ .../Services/AuthServiceTests.cs | 24 +++++++-- src/Anichron.API/Security/PasswordHasher.cs | 29 ++++++++++- src/Anichron.API/Services/AuthService.cs | 14 +++-- 4 files changed, 109 insertions(+), 10 deletions(-) diff --git a/src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs b/src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs index eb485bd..b16a18a 100644 --- a/src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs +++ b/src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs @@ -1,4 +1,5 @@ using Anichron.API.Security; +using System.Diagnostics; namespace Anichron.API.Tests.Unit.Security; @@ -81,4 +82,55 @@ public void Verify_TamperedStoredHash_ReturnsFalse() result.Should().BeFalse(); } + + // ========================================================================== + // Equal work for a user that does not exist — issue #173 + // + // A null storedHash means "no such account". Verifying it costs the same Argon2 pass as + // verifying a real one, so this method leaks nothing about account existence. + // + // ⚠️ That is a claim about the HASHER, not about login. AuthService.LoginAsync still writes + // a failed-attempt record for a known user and skips it for an unknown one, so end-to-end + // login timing remains distinguishable. Scoped deliberately — overstating it here is how the + // residual leak gets forgotten. + // + // The hasher owns the invariant because it owns the cost. It previously lived in an + // AuthService field initializer, which — AuthService being registered Scoped — spent 64 MiB + // and three Argon2 passes on *every request that resolved IAuthService*, including /refresh + // and /logout, which never read the value. + // ========================================================================== + + [Fact] + public void Verify_NullStoredHash_ReturnsFalse() + { + var testee = new Argon2PasswordHasher(); + + var result = testee.Verify("password", null); + + result.Should().BeFalse(); + } + + // ⚠️ Named for what it actually pins: that the null path is not a cheap early return. It + // does NOT pin "equal work" — it would still pass if the throwaway pass used weaker Argon2 + // parameters, or were replaced by a sleep. Pinning true equality needs a comparison against + // the real path, and that is the wall-clock-ratio shape that goes flaky on a loaded runner. + // The guard against weakened parameters is that both paths call the same RunArgon2idSecure. + [Fact] + public void Verify_NullStoredHash_DoesNotShortCircuit() + { + var testee = new Argon2PasswordHasher(); + + var stopwatch = Stopwatch.StartNew(); + testee.Verify("password", null); + stopwatch.Stop(); + + // ⭐ A LOWER bound, deliberately. "At least this slow" cannot fail on a loaded or slow + // machine — only on an impossibly fast one, and 64 MiB of Argon2id at three iterations + // does not complete in single-digit milliseconds on any hardware this runs on (measured + // ~30–80 ms locally). An upper bound, or a ratio against the real-hash path, is the + // shape that goes flaky on a busy CI runner. + stopwatch.ElapsedMilliseconds.Should().BeGreaterThan(10, + "a null hash must still cost an Argon2 pass; returning early would make " + + "verification time reveal that the account does not exist"); + } } diff --git a/src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs b/src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs index e0ce2c5..245d39d 100644 --- a/src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs +++ b/src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs @@ -18,7 +18,7 @@ private sealed class TestFixture private readonly IUnitOfWork _unitOfWork = Substitute.For(); private readonly IClock _clock = Substitute.For(); private readonly IGuidFactory _guidFactory = Substitute.For(); - private readonly IPasswordHasher _passwordHasher = Substitute.For(); + internal readonly IPasswordHasher PasswordHasher = Substitute.For(); private readonly IRegistrationValidator _validator = Substitute.For(); internal readonly ILockoutService Lockout = Substitute.For(); @@ -27,7 +27,7 @@ private sealed class TestFixture public TestFixture() { _guidFactory.NewGuid().Returns(Guid.Empty); - _passwordHasher.Hash(Arg.Any()).Returns("hashed_value"); + PasswordHasher.Hash(Arg.Any()).Returns("hashed_value"); _clock.GetCurrentInstant().Returns(Instant.FromUtc(2026, 1, 1, 12, 0, 0)); TokenService.IssueAsync(Arg.Any(), Arg.Any()) .Returns(new AuthTokens("access_token", "refresh_token")); @@ -58,7 +58,7 @@ public TestFixture WithValidInvite(Invite invite) public TestFixture WithPasswordValid() { - _passwordHasher.Verify(Arg.Any(), Arg.Any()).Returns(true); + PasswordHasher.Verify(Arg.Any(), Arg.Any()).Returns(true); return this; } @@ -148,7 +148,7 @@ public TestFixture WithUserFoundForCredential(string normalizedCredential, User } public AuthService CreateTestee() => new( - Users, _invites, _unitOfWork, _clock, _guidFactory, _passwordHasher, _validator, TokenService, Lockout); + Users, _invites, _unitOfWork, _clock, _guidFactory, PasswordHasher, _validator, TokenService, Lockout); } // ConstraintName has no setter in Npgsql 10 — must use the full constructor. @@ -465,6 +465,22 @@ public async Task LoginAsync_UnknownUser_ReturnsInvalidCredentials() }); } + // Issue #173: the equal-work guarantee now lives in the hasher, which spends a full Argon2 + // pass on a null hash. This pins the call site's half of that bargain — it must hand the + // hasher a null rather than short-circuiting, and must not resurrect a precomputed dummy + // hash (the old field initializer cost 64 MiB on *every* request that resolved IAuthService, + // including ones that never logged anyone in). + [Fact] + public async Task LoginAsync_UnknownUser_VerifiesAgainstANullHashExactlyOnce() + { + var fixture = new TestFixture(); + + await fixture.CreateTestee().LoginAsync("ghost", "password", CancellationToken.None); + + fixture.PasswordHasher.Received(1).Verify("password", null); + fixture.PasswordHasher.DidNotReceive().Hash(Arg.Any()); + } + [Fact] public async Task LoginAsync_WrongPassword_ReturnsInvalidCredentials() { diff --git a/src/Anichron.API/Security/PasswordHasher.cs b/src/Anichron.API/Security/PasswordHasher.cs index 4f664a1..fa8b197 100644 --- a/src/Anichron.API/Security/PasswordHasher.cs +++ b/src/Anichron.API/Security/PasswordHasher.cs @@ -8,7 +8,11 @@ namespace Anichron.API.Security; public interface IPasswordHasher { string Hash(string password); - bool Verify(string password, string storedHash); + + // storedHash is null when no such account exists. A null hash still costs a full Argon2 + // pass, so verification itself takes the same time either way. That removes the HASHING + // asymmetry only — it does not make a caller's whole code path constant-time. + bool Verify(string password, string? storedHash); } public sealed class Argon2PasswordHasher : IPasswordHasher @@ -24,8 +28,29 @@ public string Hash(string password) return Convert.ToBase64String(combined); } - public bool Verify(string password, string storedHash) + public bool Verify(string password, string? storedHash) { + // ⛔ Equal work, not an early return. Verifying a missing account must cost the same + // Argon2 pass as verifying a real one, so this method leaks nothing about account + // existence. ⚠️ Whether the CALLER leaks it is the caller's problem — AuthService.Login + // still does a database write for a known user that it skips for an unknown one. + // + // The invariant lives here because this class owns the cost. It used to live in an + // AuthService field initializer, which — AuthService being Scoped — burned 64 MiB and + // three Argon2 passes on every request that resolved IAuthService, including ones that + // never read the value. See #173. + // + // ⚠️ `return false` unconditionally, rather than comparing against random bytes: + // correctness must not rest on two random values differing. The FixedTimeEquals of the + // real path is deliberately not mirrored here — it is microseconds against ~100 ms of + // Argon2, so adding it back would buy nothing and reintroduce that dependency. + if (storedHash is null) + { + var throwawaySalt = RandomNumberGenerator.GetBytes(AppDefaults.Argon2.SaltLength); + CryptographicOperations.ZeroMemory(RunArgon2idSecure(password, throwawaySalt)); + return false; + } + var combined = Convert.FromBase64String(storedHash); var salt = combined[..AppDefaults.Argon2.SaltLength]; var expected = combined[AppDefaults.Argon2.SaltLength..]; diff --git a/src/Anichron.API/Services/AuthService.cs b/src/Anichron.API/Services/AuthService.cs index 0ea668b..cb316ac 100644 --- a/src/Anichron.API/Services/AuthService.cs +++ b/src/Anichron.API/Services/AuthService.cs @@ -62,8 +62,6 @@ public sealed class AuthService( ILockoutService lockout) : IAuthService { - private readonly string dummyPasswordHash = passwordHasher.Hash(guidFactory.NewGuid().ToString()); - public async Task> RegisterAsync(string username, string email, string password, string inviteToken, CancellationToken ct) { ArgumentNullException.ThrowIfNull(username); @@ -130,8 +128,16 @@ public async Task> LoginAsync(string usernameOrEmail, str var normalized = usernameOrEmail.Trim().ToLowerInvariant(); var user = await users.FindByCredentialAsync(normalized, ct); - // Prevent timing attack: Use dummy hash for non-existing accounts - var passwordValid = passwordHasher.Verify(password, user?.PasswordHash ?? dummyPasswordHash); + // A null hash means "no such account", and the hasher spends a full Argon2 pass on it + // rather than short-circuiting. That removes the hashing asymmetry; this call site's only + // job is not to defeat it by branching before the call. + // + // ⚠️ It does NOT make login constant-time end to end, and this comment deliberately does + // not claim that. A known user with a wrong password goes on to + // RecordFailedAttemptAsync below, which is a database write an unknown user never makes — + // milliseconds, far more than the hashing difference this removes. Username enumeration + // by timing is therefore still possible. Tracked separately; see the note on that call. + var passwordValid = passwordHasher.Verify(password, user?.PasswordHash); var now = clock.GetCurrentInstant(); From a82eaee7632da4b7ba77c94dc6def71cf174afd5 Mon Sep 17 00:00:00 2001 From: bitbiter-dev Date: Thu, 1 Oct 2026 07:30:38 +0200 Subject: [PATCH 4/4] chore(graph): Regenerate after the Argon2 hashing change Co-Authored-By: Claude Opus 5 (1M context) --- graphify-out/GRAPH_REPORT.md | 441 +- graphify-out/graph.json | 12115 +++++++++++++++++---------------- 2 files changed, 6394 insertions(+), 6162 deletions(-) diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md index 53815df..e82f2fd 100644 --- a/graphify-out/GRAPH_REPORT.md +++ b/graphify-out/GRAPH_REPORT.md @@ -1,17 +1,17 @@ -# Graph Report - anichron (2026-09-28) +# Graph Report - anichron (2026-10-01) ## Corpus Check -- 228 files · ~82,961 words +- 228 files · ~83,749 words - Verdict: corpus is large enough that graph structure adds value. - Unclassified: 11 file(s) not represented in the graph (top: (none) 6, .props 2, .example 1) ## Summary -- 5823 nodes · 10996 edges · 391 communities (379 shown, 12 thin omitted) -- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 567 edges (avg confidence: 0.84) +- 5826 nodes · 11009 edges · 386 communities (375 shown, 11 thin omitted) +- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 570 edges (avg confidence: 0.84) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `a6985a85` +- Built from commit: `3d290f7c` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -21,18 +21,18 @@ - AuthResult - IngestionPipelineRunnerTests - Anichron -- AdminCreatedUser +- TestFixture - ExifExtractionMiddleware - TestFixture - Anichron.Worker.Tests.Unit/packages.lock.json - Anichron.Worker/packages.lock.json - TestFixture - TestFixture -- IUnitOfWork +- AuthService - net10.0 - User - TestFixture -- WorkerInitializer +- TestFixture - JwtFactoryTests - Anichron.API/packages.lock.json - IAuthResponseMapper @@ -41,7 +41,7 @@ - WorkerSettings - EfUserRepository - MustChangePasswordMiddleware -- TestFixture +- SingleFileItem - LockoutServiceTests - FileIngestionPipeline - Anichron.API.Tests.Unit/packages.lock.json @@ -49,9 +49,9 @@ - Microsoft.Extensions.Configuration.Abstractions - UserStorageConfig - TestFixture -- Anichron.API.Infrastructure +- Anichron.API.Settings - FfmpegVideoProcessor -- IIngestionMiddleware +- CancellingMiddleware - Anichron.Core.Domain - IngestionContext - EfUserStorageConfigRepository @@ -61,7 +61,7 @@ - .GetConnectionString - net10.0 - Anichron.Core.Tests.Unit/packages.lock.json -- BootstrapResetService +- IUnitOfWork - dependencies - PasswordPolicy - Microsoft.VisualStudio.Threading.Analyzers @@ -73,7 +73,7 @@ - dependencies - net10.0 - .WriteResponseAsync -- ImageProxyMiddleware +- WorkerInitializer - dependencies - Anichron.Core/packages.lock.json - NodaTime @@ -81,7 +81,7 @@ - Microsoft.Extensions.DependencyInjection.Abstractions - Anichron.Worker - WorkerServiceCollectionExtensionsTests -- .InvokeAsync +- CapturingLogger - Microsoft.Extensions.Primitives - publish-badges.test.sh - TestFixture @@ -98,7 +98,7 @@ - MediaAsset - Anichron.Core - dependencies -- Microsoft.EntityFrameworkCore.Relational +- dependencies - dependencies - net10.0 - Anichron.Infrastructure @@ -120,7 +120,7 @@ - dependencies - dependencies - System.IO.Abstractions -- 20260511154104_InitialSchema.Designer.cs +- nodatime - dependencies - Container (Dockerfile) - Anichron.Infrastructure/packages.lock.json @@ -136,7 +136,7 @@ - WorkerSettingsValidatorTests - .Placeholder_Always_Passes - System.IdentityModel.Tokens.Jwt -- CapturingLogger +- TestFixture - Anichron.Worker.Ingestion.Pipeline - Microsoft.Testing.Extensions.Telemetry - User @@ -158,10 +158,10 @@ - Npgsql.EntityFrameworkCore.PostgreSQL - Metadata - dependencies -- Microsoft.Extensions.Caching.Memory +- Microsoft.Extensions.DependencyInjection - derive-db-docs.test.sh - AssetInteraction -- dependencies +- Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime - xunit.v3.extensibility.core - TestableIO.System.IO.Abstractions.TestingHelpers - xunit.v3.extensibility.core @@ -200,7 +200,7 @@ - System.IO.Abstractions - microsoft_extensions_options - Microsoft.NET.Test.Sdk -- BootstrapSeeder +- JwtSettings - xunit.v3.mtp-v1 - Issue tracker: GitHub - Anichron.API.Tests.Unit/GlobalUsings.cs @@ -212,7 +212,7 @@ - Microsoft.Extensions.Http.Diagnostics - Microsoft.IdentityModel.Protocols.OpenIdConnect - Microsoft.TestPlatform.TestHost -- Anichron.Infrastructure.Configuration +- ServiceCollectionExtensions.cs - System.IO.Abstractions.TestingHelpers - xunit.v3 - Npgsql.NodaTime @@ -240,7 +240,7 @@ - mutation-report.sh - Microsoft.IdentityModel.Logging - Microsoft.IdentityModel.Tokens -- Schema documentation is generated, and its rationale lives in the schema +- LockoutService - Mono.TextTemplating - Castle.Core - xunit.v3.common @@ -256,7 +256,7 @@ - Architecture - CI Build & Test Job - mutation-report.test.sh -- IRefreshTokenRepository +- .DeleteAsync - MediaType - Humanizer.Core - Npgsql @@ -299,27 +299,27 @@ - xunit.runner.visualstudio - Microsoft.Extensions.Hosting - Microsoft.VisualStudio.Threading.Analyzers -- IGuidFactory +- CapturingLogger - SonarAnalyzer.CSharp - Microsoft.VisualStudio.Threading.Analyzers - FluentAssertions - Microsoft.Extensions.Caching.Abstractions -- IngestionPipelineRunner +- IIngestionMiddleware - Microsoft.Extensions.DependencyInjection - PersistenceMiddleware - LivePhotoLinker - Roslynator.Analyzers -- SingleFileItem +- dependencies - Microsoft.EntityFrameworkCore - Self-host mutation reports; do not use the Stryker Dashboard -- Microsoft.EntityFrameworkCore.Design +- IMediaAssetRepository - System.IO.Hashing -- SonarAnalyzer.CSharp -- CapturingLogger +- .ItemFailed +- .Log - .IsInProgress - coverlet.collector - Microsoft.IdentityModel.Abstractions -- Roslynator.Analyzers +- AuthCookieSettings - Newtonsoft.Json - Microsoft.Extensions.Configuration.Abstractions - Anichron.Core.Tests.Unit @@ -329,23 +329,23 @@ - Microsoft.AspNetCore.TestHost - Microsoft.Bcl.AsyncInterfaces - Microsoft.CodeCoverage -- LoggingMiddleware +- Log - Microsoft.Extensions.Primitives - Microsoft.EntityFrameworkCore.Abstractions - Microsoft.Win32.Registry -- Microsoft.EntityFrameworkCore.Analyzers +- Microsoft.CodeAnalysis.Analyzers - Microsoft.Extensions.Diagnostics.ExceptionSummarization -- .BuildWithMiddlewares -- Microsoft.Extensions.AmbientMetadata.Application -- Microsoft.Extensions.Compliance.Abstractions +- ImageProxyMiddleware +- Microsoft.Extensions.DependencyInjection.AutoActivation +- Polly.Core - assemble-pages.test.sh - Microsoft.VisualStudio.SolutionPersistence - Microsoft.Extensions.DependencyInjection.AutoActivation -- System.Composition.AttributedModel - Microsoft.EntityFrameworkCore.Abstractions -- .ExecuteInTransactionAsync -- LivePhotoLinkerTests.cs -- Microsoft.Extensions.Logging.Console +- Microsoft.EntityFrameworkCore.Abstractions +- Microsoft.Extensions.DependencyInjection.Abstractions +- Microsoft.Extensions.Logging +- Microsoft.Extensions.Logging.EventLog - Microsoft.Extensions.FileSystemGlobbing - Microsoft.EntityFrameworkCore.Analyzers - Microsoft.VisualStudio.SolutionPersistence @@ -384,24 +384,19 @@ - Testably.Abstractions.FileSystem.Interface - assemble-pages.sh - Microsoft.Build.Framework -- System.CodeDom +- Microsoft.NETCore.Platforms - Microsoft.Extensions.DependencyModel - Testably.Abstractions.FileSystem.Interface - Microsoft.Bcl.AsyncInterfaces -- CorsSettings.cs -- Humanizer.Core +- ExifData - Microsoft.EntityFrameworkCore.Abstractions -- Microsoft.CodeAnalysis.Analyzers - Microsoft.Extensions.Diagnostics - Microsoft.Extensions.Hosting.Abstractions - Microsoft.NETCore.Platforms - Microsoft.Extensions.Options.ConfigurationExtensions - Microsoft.TestPlatform.ObjectModel -- Microsoft.Extensions.Logging.Configuration -- Microsoft.Extensions.Options.ConfigurationExtensions - xunit.v3.assert - Microsoft.Extensions.Primitives -- System.Composition.Runtime - Newtonsoft.Json - triage-labels.md - pre-commit @@ -411,7 +406,7 @@ ## God Nodes (most connected - your core abstractions) 1. `UserStorageConfig` - 82 edges 2. `IngestionContext` - 82 edges -3. `TestFixture` - 78 edges +3. `TestFixture` - 79 edges 4. `net10.0` - 77 edges 5. `net10.0` - 76 edges 6. `Anichron.Core.Domain` - 74 edges @@ -440,31 +435,31 @@ - **CI Pipeline: Build/Test then Pages and Docker** — github_workflows_ci_build_and_test, github_workflows_ci_deploy_pages, github_workflows_ci_docker_job [EXTRACTED 1.00] - **MediaAsset-Centric Domain Graph** — claude_md_mediaasset, claude_md_metadata, claude_md_proxyfile, claude_md_burst, claude_md_assetinteraction [EXTRACTED 1.00] -## Communities (391 total, 12 thin omitted) +## Communities (386 total, 11 thin omitted) ### Community 0 - "TestFixture" Cohesion: 0.06 -Nodes (42): ArgumentNullException, GeneratedRegex, Regex, AuthError, AccountDisabled, AccountTemporarilyLocked, CannotModifySelf, EmailTaken (+34 more) +Nodes (43): ArgumentNullException, GeneratedRegex, Regex, AuthError, AccountDisabled, AccountTemporarilyLocked, CannotModifySelf, EmailTaken (+35 more) ### Community 1 - "AuthResponseMapperTests" Cohesion: 0.12 Nodes (21): Created, JsonOptions, AdminStorageConfigResponse, AdminUserResponse, AuthTokens, AuthResponseMapperTests, TestFixture, DefaultHttpContext (+13 more) ### Community 2 - "AuthResult" -Cohesion: 0.11 -Nodes (14): SameSiteMode, AuthResponseMapper, HttpContext, IClock, IResult, List, AuthResult, Error (+6 more) +Cohesion: 0.13 +Nodes (10): AuthResponseMapper, HttpContext, IClock, IResult, List, AuthResult, Error, IsSuccess (+2 more) ### Community 3 - "IngestionPipelineRunnerTests" -Cohesion: 0.20 -Nodes (18): IngestionPipelineRunnerTests, ProxyDirectoryCreatingMiddleware, Order, ProxyWritingMiddleware, Order, TestFixture, DirectoryStrategy, FileSystem (+10 more) +Cohesion: 0.17 +Nodes (21): IngestionPipelineRunnerTests, ProxyDirectoryCreatingMiddleware, Order, ProxyWritingMiddleware, Order, StubMiddleware, Order, TestFixture (+13 more) ### Community 4 - "Anichron" Cohesion: 0.17 Nodes (11): Month/Day Composite Index (On This Day), FFmpeg GPU Detection Fallback Chain, Anichron.UI (Planned NextJS/React), Anichron, Documentation, Get started, Highlights, License (+3 more) -### Community 5 - "AdminCreatedUser" -Cohesion: 0.13 -Nodes (15): AdminCreatedUserResponse, AdminPasswordResetResponse, CreateAdminUserRequest, AdminResetService, AdminUserPasswordReset, IAdminResetService, CancellationToken, Guid (+7 more) +### Community 5 - "TestFixture" +Cohesion: 0.09 +Nodes (26): CapturingLogger, HttpMessageHandler, HttpRequestMessage, HttpResponseMessage, IDisposable, CapturingLogger, Entries, FakeHttpMessageHandler (+18 more) ### Community 6 - "ExifExtractionMiddleware" Cohesion: 0.08 @@ -483,44 +478,44 @@ Cohesion: 0.03 Nodes (62): Microsoft.Extensions.Configuration.CommandLine, Microsoft.Extensions.Configuration.EnvironmentVariables, Microsoft.Extensions.Configuration.UserSecrets, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.Logging.Debug, Microsoft.Extensions.Logging.EventLog, Microsoft.Extensions.Logging.EventSource, Blurhash.Core (+54 more) ### Community 10 - "TestFixture" -Cohesion: 0.19 -Nodes (13): BootstrapSeederTests, TestFixture, UnitOfWork, Users, Action, CancellationToken, DbUpdateException, Exception (+5 more) +Cohesion: 0.10 +Nodes (23): BootstrapSeeder, IBootstrapSeeder, Log, CancellationToken, Exception, IConfiguration, IGuidFactory, ILogger (+15 more) ### Community 11 - "TestFixture" -Cohesion: 0.17 -Nodes (17): ExifData, Empty, LocalDateTime, PersistenceMiddlewareTests, TestFixture, Clock, FileSystem, GuidFactory (+9 more) +Cohesion: 0.19 +Nodes (14): PersistenceMiddlewareTests, TestFixture, Clock, FileSystem, GuidFactory, Now, Repository, UnitOfWork (+6 more) -### Community 12 - "IUnitOfWork" -Cohesion: 0.11 -Nodes (18): PostgresException, IPasswordHasher, AdminUserService, CancellationToken, Guid, IClock, List, Task (+10 more) +### Community 12 - "AuthService" +Cohesion: 0.10 +Nodes (20): PostgresException, AdminPasswordResetResponse, IPasswordHasher, AdminResetService, AdminUserPasswordReset, IAdminResetService, CancellationToken, Guid (+12 more) ### Community 13 - "net10.0" -Cohesion: 0.04 -Nodes (55): dependencies, net10.0, contentHash, resolved, type, contentHash, resolved, type (+47 more) +Cohesion: 0.03 +Nodes (64): dependencies, net10.0, contentHash, resolved, type, contentHash, resolved, type (+56 more) ### Community 14 - "User" -Cohesion: 0.22 +Cohesion: 0.25 Nodes (6): IUserRepository, CancellationToken, Guid, List, Task, User ### Community 15 - "TestFixture" Cohesion: 0.06 Nodes (49): MediaType, Image, LivePhoto, Video, IImageProcessor, ImageSharpProcessor, CancellationToken, Image (+41 more) -### Community 16 - "WorkerInitializer" -Cohesion: 0.07 -Nodes (31): IHostedService, WorkerState, ResolvedUserId, Guid, DatabaseMigratorService, RetryDelay, Log, CancellationToken (+23 more) +### Community 16 - "TestFixture" +Cohesion: 0.12 +Nodes (20): IHostedService, DatabaseMigratorService, RetryDelay, Log, CancellationToken, Exception, ILogger, IServiceScopeFactory (+12 more) ### Community 17 - "JwtFactoryTests" -Cohesion: 0.12 -Nodes (21): JwtSecurityToken, JwtSecurityTokenHandler, SecurityTokenInvalidSignatureException, SigningCredentials, IJwtFactory, JwtFactory, IClock, IGuidFactory (+13 more) +Cohesion: 0.25 +Nodes (9): JwtSecurityToken, SecurityTokenInvalidSignatureException, JwtFactoryTests, TestFixture, Fact, Guid, IClock, IGuidFactory (+1 more) ### Community 18 - "Anichron.API/packages.lock.json" Cohesion: 0.04 Nodes (54): Konscious.Security.Cryptography.Blake2, Microsoft.Extensions.Http.Diagnostics, Microsoft.Extensions.Resilience, Microsoft.IdentityModel.JsonWebTokens, Microsoft.IdentityModel.Protocols.OpenIdConnect, Microsoft.OpenApi, Polly.Core, Humanizer.Core (+46 more) ### Community 19 - "IAuthResponseMapper" -Cohesion: 0.15 -Nodes (23): AdminEndpoints, CreateStorageConfigRequest, PatchAdminUserRequest, CancellationToken, ClaimsPrincipal, Guid, IEndpointRouteBuilder, IResult (+15 more) +Cohesion: 0.11 +Nodes (29): AdminCreatedUserResponse, AdminEndpoints, CreateAdminUserRequest, CreateStorageConfigRequest, PatchAdminUserRequest, CancellationToken, ClaimsPrincipal, Guid (+21 more) ### Community 20 - "AppIniInitializer" Cohesion: 0.15 @@ -535,24 +530,24 @@ Cohesion: 0.11 Nodes (17): Anichron.Worker.Tests.Unit.Settings, WorkerSettings, BlurhashSampleWidth, CrawlIntervalHours, FfmpegPath, MaxConcurrentFiles, PreviewJpegQuality, PreviewMaxWidth (+9 more) ### Community 23 - "EfUserRepository" -Cohesion: 0.30 +Cohesion: 0.28 Nodes (5): EfUserRepository, AnichronDbContext, UserRepositoryTests, Fact, Task ### Community 24 - "MustChangePasswordMiddleware" Cohesion: 0.20 Nodes (15): Claim, HttpRequest, Method, Path, PathString, RequestDelegate, MustChangePasswordMiddleware, HttpContext (+7 more) -### Community 25 - "TestFixture" -Cohesion: 0.28 -Nodes (9): DirectoryNotFoundException, FileIngestionPipelineTests, TestFixture, FileSystem, ProcessedContexts, Fact, MockFileSystem, OperationCanceledException (+1 more) +### Community 25 - "SingleFileItem" +Cohesion: 0.24 +Nodes (12): DirectoryNotFoundException, SingleFileItem, PrimaryMediaType, SecondaryFile, FileIngestionPipelineTests, TestFixture, FileSystem, ProcessedContexts (+4 more) ### Community 26 - "LockoutServiceTests" -Cohesion: 0.15 -Nodes (12): ILockoutService, LockoutService, CancellationToken, Instant, Task, LockoutServiceTests, TestFixture, Fact (+4 more) +Cohesion: 0.39 +Nodes (5): LockoutServiceTests, TestFixture, Fact, Instant, Task ### Community 27 - "FileIngestionPipeline" -Cohesion: 0.15 -Nodes (17): ChannelReader, ChannelWriter, IList, FileIngestionPipeline, IFileIngestionPipeline, Log, CancellationToken, Exception (+9 more) +Cohesion: 0.22 +Nodes (13): ChannelReader, ChannelWriter, IList, FileIngestionPipeline, IFileIngestionPipeline, CancellationToken, IFileSystem, IOptions (+5 more) ### Community 28 - "Anichron.API.Tests.Unit/packages.lock.json" Cohesion: 0.04 @@ -563,52 +558,52 @@ Cohesion: 0.30 Nodes (10): BootstrapResetServiceTests, TestFixture, UnitOfWork, Users, CancellationToken, Fact, IConfiguration, ILogger (+2 more) ### Community 30 - "Microsoft.Extensions.Configuration.Abstractions" -Cohesion: 0.05 -Nodes (53): Microsoft.Extensions.Configuration, Microsoft.Extensions.Configuration.Abstractions, Microsoft.Extensions.Configuration.FileExtensions, Microsoft.Extensions.Configuration.Json, Microsoft.Extensions.Diagnostics.Abstractions, Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Physical, contentHash (+45 more) +Cohesion: 0.07 +Nodes (35): Microsoft.Extensions.Configuration, Microsoft.Extensions.Configuration.Abstractions, Microsoft.Extensions.Configuration.FileExtensions, Microsoft.Extensions.Configuration.Json, contentHash, dependencies, resolved, type (+27 more) ### Community 31 - "UserStorageConfig" -Cohesion: 0.18 +Cohesion: 0.17 Nodes (14): IUserStorageConfigRepository, CancellationToken, Guid, List, Task, UserStorageConfig, Assets, Id (+6 more) ### Community 32 - "TestFixture" Cohesion: 0.22 Nodes (15): AdminUserServiceTests, TestFixture, RevokedInsideTransaction, SavedInsideTransaction, TokenService, UnitOfWork, Users, CancellationToken (+7 more) -### Community 33 - "Anichron.API.Infrastructure" -Cohesion: 0.11 -Nodes (13): Anichron.API.Tests.Unit.Infrastructure, Anichron.API.Endpoints, Anichron.API.Infrastructure, Anichron.API.Tests.Unit.Endpoints, microsoft_aspnetcore_http, microsoft_aspnetcore_http_json, microsoft_aspnetcore_mvc, microsoft_extensions_diagnostics_healthchecks (+5 more) +### Community 33 - "Anichron.API.Settings" +Cohesion: 0.09 +Nodes (18): Anichron.API.Tests.Unit.Infrastructure, Anichron.API.Endpoints, Anichron.API.Infrastructure, Anichron.API.Settings, Anichron.API.Tests.Unit.Endpoints, microsoft_aspnetcore_diagnostics_healthchecks, microsoft_aspnetcore_http, microsoft_aspnetcore_http_json (+10 more) ### Community 34 - "FfmpegVideoProcessor" Cohesion: 0.08 Nodes (35): Exception, SemaphoreSlim, IProcessLauncher, ProcessResult, SystemProcessLauncher, CancellationToken, IReadOnlyList, Task (+27 more) -### Community 35 - "IIngestionMiddleware" -Cohesion: 0.12 -Nodes (12): IIngestionMiddleware, Order, IngestionOrder, CancellationToken, IngestionDelegate, Task, CancellingMiddleware, Order (+4 more) +### Community 35 - "CancellingMiddleware" +Cohesion: 0.25 +Nodes (5): CancellingMiddleware, Order, CancellationToken, CancellationTokenSource, IngestionDelegate ### Community 36 - "Anichron.Core.Domain" -Cohesion: 0.08 -Nodes (30): Anichron.API.Tests.Unit.Security, Anichron.API.Tests.Unit.Services, Anichron.API.Security, Anichron.Core.Tests.Unit.Data.Repository, Anichron.Core.Data, Anichron.Core.Domain, Anichron.API.Settings, Anichron.API.Services (+22 more) +Cohesion: 0.13 +Nodes (15): Anichron.API.Tests.Unit.Services, Anichron.API.Security, Anichron.Core.Tests.Unit.Data.Repository, Anichron.Core.Data, Anichron.Core.Domain, Anichron.API.Services, Anichron.Core.Data.Repository, microsoft_entityframeworkcore (+7 more) ### Community 37 - "IngestionContext" -Cohesion: 0.08 -Nodes (23): Lock, IngestionContext, Asset, AssetId, Config, ContentHash, Exif, Item (+15 more) +Cohesion: 0.07 +Nodes (25): Lock, IngestionContext, Asset, AssetId, Config, ContentHash, Exif, Item (+17 more) ### Community 38 - "EfUserStorageConfigRepository" -Cohesion: 0.35 +Cohesion: 0.37 Nodes (6): EfUserStorageConfigRepository, AnichronDbContext, UserStorageConfigRepositoryTests, Fact, Guid, Task ### Community 39 - "LivePhotoPairItem" -Cohesion: 0.26 -Nodes (6): LivePhotoPairItem, PrimaryMediaType, SecondaryFile, LivePhotoLinkerTests, Fact, MockFileSystem +Cohesion: 0.23 +Nodes (7): LivePhotoPairItem, PrimaryMediaType, SecondaryFile, SecondaryFileDescriptor, LivePhotoLinkerTests, Fact, MockFileSystem ### Community 40 - "Anichron.Infrastructure.Tests.Unit/packages.lock.json" Cohesion: 0.04 Nodes (47): Castle.Core, Microsoft.ApplicationInsights, Microsoft.Bcl.AsyncInterfaces, Microsoft.CodeCoverage, Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.Abstractions, Microsoft.EntityFrameworkCore.Analyzers, Microsoft.EntityFrameworkCore.Relational (+39 more) ### Community 41 - "dependencies" -Cohesion: 0.06 -Nodes (47): Microsoft.Extensions.Caching.Abstractions, Microsoft.Extensions.Configuration.Binder, Microsoft.Extensions.Configuration.CommandLine, Microsoft.Extensions.Configuration.EnvironmentVariables, Microsoft.Extensions.Configuration.UserSecrets, Microsoft.Extensions.DependencyInjection, Microsoft.Extensions.DependencyInjection.Abstractions, Microsoft.Extensions.Diagnostics (+39 more) +Cohesion: 0.05 +Nodes (54): Microsoft.Extensions.Caching.Abstractions, Microsoft.Extensions.Configuration.Binder, Microsoft.Extensions.Configuration.CommandLine, Microsoft.Extensions.Configuration.EnvironmentVariables, Microsoft.Extensions.Configuration.UserSecrets, Microsoft.Extensions.DependencyInjection, Microsoft.Extensions.DependencyInjection.Abstractions, Microsoft.Extensions.Diagnostics (+46 more) ### Community 42 - ".GetConnectionString" Cohesion: 0.26 @@ -622,9 +617,9 @@ Nodes (57): contentHash, requested, resolved, type, dependencies, net10.0, conte Cohesion: 0.05 Nodes (43): Castle.Core, Microsoft.ApplicationInsights, Microsoft.Bcl.AsyncInterfaces, Microsoft.CodeCoverage, Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.Abstractions, Microsoft.EntityFrameworkCore.Analyzers, Microsoft.EntityFrameworkCore.Relational (+35 more) -### Community 45 - "BootstrapResetService" -Cohesion: 0.23 -Nodes (8): BootstrapResetService, IBootstrapResetService, Log, CancellationToken, IConfiguration, ILogger, LoggerMessage, Task +### Community 45 - "IUnitOfWork" +Cohesion: 0.19 +Nodes (9): BootstrapResetService, IBootstrapResetService, Log, CancellationToken, IConfiguration, ILogger, LoggerMessage, Task (+1 more) ### Community 46 - "dependencies" Cohesion: 0.06 @@ -660,7 +655,7 @@ Nodes (14): Konscious.Security.Cryptography.Argon2, Microsoft.AspNetCore.Authent ### Community 54 - "dependencies" Cohesion: 0.06 -Nodes (39): Humanizer.Core, Microsoft.Build.Framework, Microsoft.CodeAnalysis.Analyzers, Microsoft.CodeAnalysis.Common, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild (+31 more) +Nodes (44): Humanizer.Core, Microsoft.Build.Framework, Microsoft.CodeAnalysis.Analyzers, Microsoft.CodeAnalysis.Common, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.Workspaces.Common, Microsoft.CodeAnalysis.Workspaces.MSBuild (+36 more) ### Community 55 - "net10.0" Cohesion: 0.05 @@ -670,9 +665,9 @@ Nodes (44): dependencies, net10.0, contentHash, resolved, type, contentHash, res Cohesion: 0.25 Nodes (10): HealthCheckResponseWriter, HealthReport, HttpContext, Task, HealthCheckResponseWriterTests, DefaultHttpContext, Fact, HealthReport (+2 more) -### Community 57 - "ImageProxyMiddleware" -Cohesion: 0.15 -Nodes (11): ImageProxyMiddleware, Order, Log, CancellationToken, IEnumerable, IFileSystem, ILogger, IngestionDelegate (+3 more) +### Community 57 - "WorkerInitializer" +Cohesion: 0.17 +Nodes (11): WorkerState, ResolvedUserId, Guid, Log, WorkerInitializer, CancellationToken, ILogger, IOptions (+3 more) ### Community 58 - "dependencies" Cohesion: 0.07 @@ -698,9 +693,9 @@ Nodes (56): contentHash, dependencies, resolved, type, Microsoft.Extensions.Conf Cohesion: 0.15 Nodes (13): Blurhash.ImageSharp, MetadataExtractor, Microsoft.Extensions.Hosting, Microsoft.Extensions.Options.DataAnnotations, SixLabors.ImageSharp, System.IO.Hashing, Microsoft.NET.Sdk.Worker, Anichron.Worker (+5 more) -### Community 65 - ".InvokeAsync" -Cohesion: 0.30 -Nodes (8): ILogger, CancellationToken, IngestionDelegate, Task, LoggingMiddlewareTests, Fact, InvalidOperationException, Task +### Community 65 - "CapturingLogger" +Cohesion: 0.16 +Nodes (17): ILogger, LoggingMiddleware, Order, CancellationToken, IngestionDelegate, Task, CapturingLogger, Entries (+9 more) ### Community 66 - "Microsoft.Extensions.Primitives" Cohesion: 0.07 @@ -727,12 +722,12 @@ Cohesion: 0.17 Nodes (9): IdempotencyCheckMiddleware, Order, Log, CancellationToken, ILogger, IngestionDelegate, LoggerMessage, Task (+1 more) ### Community 72 - "TestFixture" -Cohesion: 0.06 -Nodes (37): MockFile, MockFileSystem, Log, ProxyStagingWriter, CancellationToken, Exception, Func, IClock (+29 more) +Cohesion: 0.05 +Nodes (43): MockFile, MockFileSystem, IGuidFactory, TimeOrderedGuidFactory, Guid, ProxyFileBuilder, IClock, ProxyType (+35 more) ### Community 73 - "TestFixture" -Cohesion: 0.06 -Nodes (43): CapturingLogger, HttpClient, HttpMessageHandler, HttpRequestMessage, HttpResponseMessage, IDisposable, IPwnedPasswordClient, Log (+35 more) +Cohesion: 0.15 +Nodes (18): HttpClient, IPwnedPasswordClient, Log, PwnedPasswordClient, CancellationToken, Exception, ILogger, LoggerMessage (+10 more) ### Community 74 - "Anichron.Infrastructure.Data" Cohesion: 0.13 @@ -755,8 +750,8 @@ Cohesion: 0.13 Nodes (16): IInviteRepository, CancellationToken, Instant, Task, Invite, CreatedAt, CreatedBy, CreatedByUserId (+8 more) ### Community 79 - "MediaAsset" -Cohesion: 0.07 -Nodes (30): EfMediaAssetRepository, IMediaAssetRepository, AnichronDbContext, CancellationToken, Guid, Task, MediaAsset, Burst (+22 more) +Cohesion: 0.08 +Nodes (24): MediaAsset, Burst, BurstId, ContentHash, DateCaptured, Day, FileName, FilePath (+16 more) ### Community 80 - "Anichron.Core" Cohesion: 0.25 @@ -766,9 +761,9 @@ Nodes (8): Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime, Anichron.Core, Micros Cohesion: 0.06 Nodes (33): Microsoft.Extensions.Caching.Abstractions, Microsoft.Extensions.DependencyInjection.Abstractions, Microsoft.Extensions.Primitives, contentHash, dependencies, resolved, type, contentHash (+25 more) -### Community 82 - "Microsoft.EntityFrameworkCore.Relational" -Cohesion: 0.09 -Nodes (25): dependencies, type, Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.Relational, Npgsql, System.IO.Abstractions, contentHash, dependencies (+17 more) +### Community 82 - "dependencies" +Cohesion: 0.06 +Nodes (35): dependencies, type, dependencies, type, Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.Relational, NodaTime, Npgsql (+27 more) ### Community 83 - "dependencies" Cohesion: 0.08 @@ -823,8 +818,8 @@ Cohesion: 0.19 Nodes (13): HealthCheckResult, IHealthCheck, ProxyStorageHealthCheck, CancellationToken, HealthCheckContext, IFileSystem, Task, ProxyStorageHealthCheckTests (+5 more) ### Community 96 - "Microsoft.Extensions.Primitives" -Cohesion: 0.07 -Nodes (27): Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Primitives, contentHash, dependencies, resolved, type, contentHash, dependencies (+19 more) +Cohesion: 0.06 +Nodes (34): Microsoft.Extensions.FileProviders.Abstractions, Microsoft.Extensions.FileProviders.Physical, Microsoft.Extensions.FileSystemGlobbing, Microsoft.Extensions.Primitives, contentHash, dependencies, resolved, type (+26 more) ### Community 97 - "ApiPaths" Cohesion: 0.33 @@ -854,9 +849,9 @@ Nodes (24): dependencies, type, Microsoft.EntityFrameworkCore, Microsoft.EntityF Cohesion: 0.08 Nodes (24): TestableIO.System.IO.Abstractions, TestableIO.System.IO.Abstractions.Wrappers, Testably.Abstractions.FileSystem.Interface, System.IO.Abstractions, TestableIO.System.IO.Abstractions, TestableIO.System.IO.Abstractions.TestingHelpers, TestableIO.System.IO.Abstractions.Wrappers, contentHash (+16 more) -### Community 104 - "20260511154104_InitialSchema.Designer.cs" -Cohesion: 0.09 -Nodes (23): Anichron.Core.Migrations, microsoft_entityframeworkcore_infrastructure, microsoft_entityframeworkcore_migrations, microsoft_entityframeworkcore_storage_valueconversion, Migration, npgsql_entityframeworkcore_postgresql_metadata, Guid, Instant (+15 more) +### Community 104 - "nodatime" +Cohesion: 0.08 +Nodes (25): Anichron.Core.Migrations, Why the rationale goes in `COMMENT`, not in Markdown, microsoft_entityframeworkcore_infrastructure, microsoft_entityframeworkcore_migrations, microsoft_entityframeworkcore_storage_valueconversion, Migration, nodatime, npgsql_entityframeworkcore_postgresql_metadata (+17 more) ### Community 105 - "dependencies" Cohesion: 0.09 @@ -875,20 +870,20 @@ Cohesion: 0.25 Nodes (9): ITokenService, TokenService, CancellationToken, Guid, IClock, IGuidFactory, Instant, IOptions (+1 more) ### Community 109 - "Worker" -Cohesion: 0.18 -Nodes (11): BackgroundService, Log, Worker, CancellationToken, Guid, ILogger, IOptions, IServiceScopeFactory (+3 more) +Cohesion: 0.20 +Nodes (10): Log, Worker, CancellationToken, Guid, ILogger, IOptions, IServiceScopeFactory, LoggerMessage (+2 more) ### Community 110 - "Microsoft.Extensions.Primitives" Cohesion: 0.10 Nodes (21): Microsoft.Extensions.Caching.Abstractions, Microsoft.Extensions.DependencyInjection, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Options, Microsoft.Extensions.Primitives, contentHash, dependencies, resolved (+13 more) ### Community 112 - "Argon2PasswordHasher" -Cohesion: 0.25 +Cohesion: 0.24 Nodes (7): FormatException, Argon2PasswordHasher, PasswordHasherTests, Exception, Fact, InlineData, Theory ### Community 113 - "AnichronDbContext" -Cohesion: 0.12 -Nodes (17): DbContext, DbContextOptions, DbSet, IDesignTimeDbContextFactory, AnichronDbContext, Bursts, Interactions, Invites (+9 more) +Cohesion: 0.09 +Nodes (20): DbContext, DbContextOptions, DbSet, IDesignTimeDbContextFactory, AnichronDbContext, Bursts, Interactions, Invites (+12 more) ### Community 114 - "dependencies" Cohesion: 0.11 @@ -914,13 +909,13 @@ Nodes (4): Anichron.API.Tests.Unit, PlaceholderTest, Fact, IDisposable Cohesion: 0.11 Nodes (18): Microsoft.IdentityModel.JsonWebTokens, Microsoft.IdentityModel.Tokens, contentHash, dependencies, resolved, type, contentHash, dependencies (+10 more) -### Community 120 - "CapturingLogger" -Cohesion: 0.09 -Nodes (26): CapturingLogger, Entries, TestFixture, Clock, Now, Repository, ScopeFactory, TokenCleanupServiceTests (+18 more) +### Community 120 - "TestFixture" +Cohesion: 0.16 +Nodes (16): TestFixture, Clock, Now, Repository, ScopeFactory, TokenCleanupServiceTests, CancellationToken, Fact (+8 more) ### Community 121 - "Anichron.Worker.Ingestion.Pipeline" Cohesion: 0.09 -Nodes (24): Anichron.Worker.Tests.Unit.Ingestion.Middlewares, Anichron.Worker.Tests.Unit.Ingestion.Pipeline, Anichron.Worker.Ingestion.Pipeline, Anichron.Infrastructure.Tests.Unit.Configuration, Anichron.Worker.Ingestion.Middlewares, Anichron.Worker.Tests.Unit.Infrastructure, Anichron.Worker.Ingestion, Anichron.Worker.Tests.Unit.TestDoubles (+16 more) +Nodes (20): Anichron.Worker.Tests.Unit.Ingestion.Middlewares, Anichron.Worker.Tests.Unit.Ingestion.Pipeline, Anichron.Worker.Ingestion.Pipeline, Anichron.Infrastructure.Tests.Unit.Configuration, Anichron.Worker.Ingestion.Middlewares, Anichron.Worker.Ingestion, Anichron.Worker.Tests.Unit.TestDoubles, Anichron.Core (+12 more) ### Community 122 - "Microsoft.Testing.Extensions.Telemetry" Cohesion: 0.12 @@ -983,8 +978,8 @@ Cohesion: 0.15 Nodes (13): AppDefaults, Argon2, Email, Jwt, Lockout, Password, Pwned, RateLimit (+5 more) ### Community 138 - "TokenCleanupService" -Cohesion: 0.19 -Nodes (10): Log, TokenCleanupService, CancellationToken, Exception, IClock, ILogger, IOptions, IServiceScopeFactory (+2 more) +Cohesion: 0.17 +Nodes (11): BackgroundService, Log, TokenCleanupService, CancellationToken, Exception, IClock, ILogger, IOptions (+3 more) ### Community 139 - "Npgsql.EntityFrameworkCore.PostgreSQL" Cohesion: 0.13 @@ -998,9 +993,9 @@ Nodes (13): Metadata, Asset, AssetId, CameraMake, CameraModel, DurationInSeconds Cohesion: 0.08 Nodes (27): dependencies, type, Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.Relational, NodaTime, Npgsql, Npgsql.EntityFrameworkCore.PostgreSQL, Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime (+19 more) -### Community 142 - "Microsoft.Extensions.Caching.Memory" -Cohesion: 0.12 -Nodes (14): contentHash, resolved, type, contentHash, dependencies, resolved, type, contentHash (+6 more) +### Community 142 - "Microsoft.Extensions.DependencyInjection" +Cohesion: 0.18 +Nodes (10): contentHash, dependencies, resolved, type, contentHash, dependencies, resolved, type (+2 more) ### Community 143 - "derive-db-docs.test.sh" Cohesion: 0.73 @@ -1010,9 +1005,9 @@ Nodes (5): assert_contains(), assert_eq(), fail(), pass(), derive-db-docs.test.s Cohesion: 0.15 Nodes (12): AssetInteraction, Asset, AssetId, Id, IsHidden, IsLiked, IsStarred, LastViewed (+4 more) -### Community 145 - "dependencies" -Cohesion: 0.11 -Nodes (18): dependencies, type, NodaTime, Npgsql.EntityFrameworkCore.PostgreSQL, Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime, Npgsql.NodaTime, anichron.core, Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime (+10 more) +### Community 145 - "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime" +Cohesion: 0.25 +Nodes (8): Npgsql.EntityFrameworkCore.PostgreSQL, Npgsql.NodaTime, Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime, contentHash, dependencies, requested, resolved, type ### Community 146 - "xunit.v3.extensibility.core" Cohesion: 0.17 @@ -1031,7 +1026,7 @@ Cohesion: 0.17 Nodes (12): Microsoft.Win32.Registry, xunit.v3.common, xunit.v3.extensibility.core, xunit.v3.runner.common, contentHash, dependencies, resolved, type (+4 more) ### Community 154 - "EfRefreshTokenRepository" -Cohesion: 0.33 +Cohesion: 0.31 Nodes (7): EfRefreshTokenRepository, AnichronDbContext, RefreshTokenRepositoryTests, Fact, Guid, Instant, Task ### Community 155 - "Polly.Extensions" @@ -1047,8 +1042,8 @@ Cohesion: 0.18 Nodes (11): Microsoft.IdentityModel.Tokens, contentHash, dependencies, resolved, type, contentHash, dependencies, resolved (+3 more) ### Community 158 - "ProxyFile" -Cohesion: 0.13 -Nodes (12): ProxyFile, Asset, AssetId, CreatedAt, Id, ProxyPath, ProxyType, SizeBytes (+4 more) +Cohesion: 0.09 +Nodes (19): Consequences, Schema documentation is generated, and its rationale lives in the schema, What went wrong, which is the only reason to take this decision, Why not simply generate a nicer document, ProxyFile, Asset, AssetId, CreatedAt (+11 more) ### Community 159 - "Microsoft.Extensions.Caching.Abstractions" Cohesion: 0.18 @@ -1143,16 +1138,16 @@ Cohesion: 0.25 Nodes (8): TestableIO.System.IO.Abstractions, TestableIO.System.IO.Abstractions.Wrappers, System.IO.Abstractions, contentHash, dependencies, requested, resolved, type ### Community 182 - "microsoft_extensions_options" -Cohesion: 0.12 -Nodes (16): blurhash_imagesharp, Anichron.Worker.Tests.Unit.Startup, Anichron.Worker.Tests.Unit.Crawling, Anichron.Worker.Startup, Anichron.Worker.Tests.Unit.Maintenance, Anichron.Worker.Maintenance, Anichron.Worker.Settings, Anichron.Worker.Crawling (+8 more) +Cohesion: 0.08 +Nodes (24): blurhash_imagesharp, Anichron.Worker.Tests.Unit.Startup, Anichron.Worker.Tests.Unit.Crawling, Anichron.Worker.Startup, Anichron.Worker.Tests.Unit.Maintenance, Anichron.Worker.Maintenance, Anichron.Worker.Settings, Anichron.Worker.Tests.Unit.Infrastructure (+16 more) ### Community 183 - "Microsoft.NET.Test.Sdk" Cohesion: 0.25 Nodes (8): Microsoft.CodeCoverage, Microsoft.TestPlatform.TestHost, contentHash, dependencies, requested, resolved, type, Microsoft.NET.Test.Sdk -### Community 184 - "BootstrapSeeder" -Cohesion: 0.19 -Nodes (10): BootstrapSeeder, IBootstrapSeeder, Log, CancellationToken, Exception, IConfiguration, IGuidFactory, ILogger (+2 more) +### Community 184 - "JwtSettings" +Cohesion: 0.14 +Nodes (12): JwtSecurityTokenHandler, SigningCredentials, IJwtFactory, JwtFactory, IClock, IGuidFactory, JwtSettings, AccessTokenMinutes (+4 more) ### Community 185 - "xunit.v3.mtp-v1" Cohesion: 0.25 @@ -1198,9 +1193,9 @@ Nodes (7): Microsoft.IdentityModel.Protocols, System.IdentityModel.Tokens.Jwt, c Cohesion: 0.29 Nodes (7): Microsoft.TestPlatform.ObjectModel, Newtonsoft.Json, contentHash, dependencies, resolved, type, Microsoft.TestPlatform.TestHost -### Community 196 - "Anichron.Infrastructure.Configuration" -Cohesion: 0.18 -Nodes (7): Anichron.Infrastructure.Tests.Unit.Infrastructure, Anichron.Infrastructure.Configuration, Anichron.Worker.Infrastructure, microsoft_extensions_configuration, WebApplicationBuilderExtensions, HostApplicationBuilderExtensions, system_globalization +### Community 196 - "ServiceCollectionExtensions.cs" +Cohesion: 0.11 +Nodes (15): Anichron.API.Tests.Unit.Security, Anichron.Infrastructure.Tests.Unit.Infrastructure, Anichron.Infrastructure.Configuration, konscious_security_cryptography, microsoft_aspnetcore_authentication_jwtbearer, microsoft_aspnetcore_httpoverrides, microsoft_extensions_configuration, microsoft_identitymodel_tokens (+7 more) ### Community 197 - "System.IO.Abstractions.TestingHelpers" Cohesion: 0.29 @@ -1310,9 +1305,9 @@ Nodes (6): Microsoft.IdentityModel.Abstractions, contentHash, dependencies, reso Cohesion: 0.29 Nodes (7): Microsoft.Bcl.Cryptography, Microsoft.IdentityModel.Logging, contentHash, dependencies, resolved, type, Microsoft.IdentityModel.Tokens -### Community 224 - "Schema documentation is generated, and its rationale lives in the schema" -Cohesion: 0.17 -Nodes (10): Consequences, Schema documentation is generated, and its rationale lives in the schema, What went wrong, which is the only reason to take this decision, Why not simply generate a nicer document, Why the rationale goes in `COMMENT`, not in Markdown, ProxyType, BlurHash, FullPreview (+2 more) +### Community 224 - "LockoutService" +Cohesion: 0.22 +Nodes (7): ILockoutService, LockoutService, CancellationToken, Instant, Task, InlineData, Theory ### Community 225 - "Mono.TextTemplating" Cohesion: 0.33 @@ -1339,8 +1334,8 @@ Cohesion: 0.33 Nodes (6): contentHash, dependencies, resolved, type, NETStandard.Library, Blurhash.Core ### Community 231 - "RefreshToken" -Cohesion: 0.17 -Nodes (10): RefreshToken, CreatedAt, ExpiresAt, Id, RevokedAt, TokenHash, User, UserId (+2 more) +Cohesion: 0.15 +Nodes (15): IRefreshTokenRepository, CancellationToken, Guid, Instant, Task, RefreshToken, CreatedAt, ExpiresAt (+7 more) ### Community 232 - "Mono.TextTemplating" Cohesion: 0.33 @@ -1374,9 +1369,9 @@ Nodes (5): CI Build & Test Job, Coverage Badge (badges branch), Code Coverage Re Cohesion: 0.81 Nodes (6): assert_contains(), assert_eq(), assert_fails(), fail(), pass(), mutation-report.test.sh script -### Community 240 - "IRefreshTokenRepository" -Cohesion: 0.41 -Nodes (5): IRefreshTokenRepository, CancellationToken, Guid, Instant, Task +### Community 240 - ".DeleteAsync" +Cohesion: 0.33 +Nodes (6): AdminUserService, CancellationToken, Guid, IClock, List, Task ### Community 241 - "MediaType" Cohesion: 0.38 @@ -1403,8 +1398,8 @@ Cohesion: 0.40 Nodes (6): EfInviteRepository, AnichronDbContext, InviteRepositoryTests, Fact, Instant, Task ### Community 248 - "net10.0" -Cohesion: 0.07 -Nodes (30): dependencies, net10.0, contentHash, resolved, type, contentHash, resolved, type (+22 more) +Cohesion: 0.05 +Nodes (39): dependencies, net10.0, contentHash, resolved, type, contentHash, resolved, type (+31 more) ### Community 249 - "Microsoft.Extensions.DependencyModel" Cohesion: 0.50 @@ -1542,9 +1537,9 @@ Nodes (5): contentHash, requested, resolved, type, Microsoft.Extensions.Hosting Cohesion: 0.40 Nodes (5): contentHash, requested, resolved, type, Microsoft.VisualStudio.Threading.Analyzers -### Community 283 - "IGuidFactory" -Cohesion: 0.29 -Nodes (6): IGuidFactory, TimeOrderedGuidFactory, Guid, ProxyFileBuilder, IClock, ProxyType +### Community 283 - "CapturingLogger" +Cohesion: 0.18 +Nodes (10): CapturingLogger, Entries, EventId, Exception, Func, IDisposable, IReadOnlyList, Level (+2 more) ### Community 284 - "SonarAnalyzer.CSharp" Cohesion: 0.40 @@ -1562,9 +1557,9 @@ Nodes (5): contentHash, requested, resolved, type, FluentAssertions Cohesion: 0.40 Nodes (5): contentHash, dependencies, resolved, type, Microsoft.Extensions.Caching.Abstractions -### Community 288 - "IngestionPipelineRunner" -Cohesion: 0.15 -Nodes (13): IIngestionPipelineRunner, IngestionPipelineRunner, Log, CancellationToken, Exception, IEnumerable, IFileSystem, ILogger (+5 more) +### Community 288 - "IIngestionMiddleware" +Cohesion: 0.08 +Nodes (25): IServiceProvider, IServiceScope, IIngestionMiddleware, Order, IngestionOrder, CancellationToken, IngestionDelegate, Task (+17 more) ### Community 289 - "Microsoft.Extensions.DependencyInjection" Cohesion: 0.11 @@ -1582,9 +1577,9 @@ Nodes (7): IReadOnlySet, ILivePhotoLinker, LivePhotoLinker, LivePhotoLinkResult, Cohesion: 0.40 Nodes (5): Roslynator.Analyzers, contentHash, requested, resolved, type -### Community 293 - "SingleFileItem" -Cohesion: 0.31 -Nodes (6): SecondaryFileDescriptor, SingleFileItem, PrimaryMediaType, SecondaryFile, IngestionContextTests, Fact +### Community 293 - "dependencies" +Cohesion: 0.17 +Nodes (12): Microsoft.Extensions.Diagnostics.Abstractions, Microsoft.Extensions.Options.ConfigurationExtensions, contentHash, dependencies, resolved, type, contentHash, dependencies (+4 more) ### Community 294 - "Microsoft.EntityFrameworkCore" Cohesion: 0.33 @@ -1594,21 +1589,21 @@ Nodes (6): contentHash, dependencies, requested, resolved, type, Microsoft.Entit Cohesion: 0.50 Nodes (3): Consequences, Self-host mutation reports; do not use the Stryker Dashboard, Why, when the dashboard is the obvious path -### Community 296 - "Microsoft.EntityFrameworkCore.Design" -Cohesion: 0.40 -Nodes (5): contentHash, requested, resolved, type, Microsoft.EntityFrameworkCore.Design +### Community 296 - "IMediaAssetRepository" +Cohesion: 0.29 +Nodes (6): EfMediaAssetRepository, IMediaAssetRepository, AnichronDbContext, CancellationToken, Guid, Task ### Community 297 - "System.IO.Hashing" Cohesion: 0.40 Nodes (5): System.IO.Hashing, contentHash, requested, resolved, type -### Community 298 - "SonarAnalyzer.CSharp" -Cohesion: 0.40 -Nodes (5): SonarAnalyzer.CSharp, contentHash, requested, resolved, type +### Community 298 - ".ItemFailed" +Cohesion: 0.47 +Nodes (4): Log, Exception, ILogger, LoggerMessage -### Community 299 - "CapturingLogger" -Cohesion: 0.16 -Nodes (11): CapturingLogger, Entries, EventId, Exception, Func, IDisposable, IReadOnlyList, Level (+3 more) +### Community 299 - ".Log" +Cohesion: 0.33 +Nodes (4): EventId, Exception, Func, LogLevel ### Community 300 - ".IsInProgress" Cohesion: 0.40 @@ -1622,9 +1617,9 @@ Nodes (5): contentHash, requested, resolved, type, coverlet.collector Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.IdentityModel.Abstractions -### Community 303 - "Roslynator.Analyzers" +### Community 303 - "AuthCookieSettings" Cohesion: 0.40 -Nodes (5): Roslynator.Analyzers, contentHash, requested, resolved, type +Nodes (4): SameSiteMode, AuthCookieSettings, RefreshTokenDays, SameSite ### Community 304 - "Newtonsoft.Json" Cohesion: 0.50 @@ -1662,9 +1657,9 @@ Nodes (4): contentHash, resolved, type, Microsoft.Bcl.AsyncInterfaces Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.CodeCoverage -### Community 313 - "LoggingMiddleware" -Cohesion: 0.43 -Nodes (5): Log, LoggingMiddleware, Order, ILogger, LoggerMessage +### Community 313 - "Log" +Cohesion: 0.60 +Nodes (3): Log, ILogger, LoggerMessage ### Community 314 - "Microsoft.Extensions.Primitives" Cohesion: 0.50 @@ -1678,25 +1673,25 @@ Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Abstractio Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Win32.Registry -### Community 317 - "Microsoft.EntityFrameworkCore.Analyzers" +### Community 317 - "Microsoft.CodeAnalysis.Analyzers" Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Analyzers +Nodes (4): contentHash, resolved, type, Microsoft.CodeAnalysis.Analyzers ### Community 318 - "Microsoft.Extensions.Diagnostics.ExceptionSummarization" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Diagnostics.ExceptionSummarization -### Community 319 - ".BuildWithMiddlewares" -Cohesion: 0.13 -Nodes (14): IServiceProvider, IServiceScope, CancellationToken, IngestionDelegate, Task, IProxyDirectoryStrategy, TwoLevelHexShardStrategy, Guid (+6 more) +### Community 319 - "ImageProxyMiddleware" +Cohesion: 0.10 +Nodes (19): ImageProxyMiddleware, Order, Log, CancellationToken, IEnumerable, IFileSystem, ILogger, IngestionDelegate (+11 more) -### Community 320 - "Microsoft.Extensions.AmbientMetadata.Application" +### Community 320 - "Microsoft.Extensions.DependencyInjection.AutoActivation" Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.AmbientMetadata.Application +Nodes (4): contentHash, resolved, type, Microsoft.Extensions.DependencyInjection.AutoActivation -### Community 321 - "Microsoft.Extensions.Compliance.Abstractions" +### Community 321 - "Polly.Core" Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Compliance.Abstractions +Nodes (4): Polly.Core, contentHash, resolved, type ### Community 322 - "assemble-pages.test.sh" Cohesion: 0.64 @@ -1710,25 +1705,25 @@ Nodes (4): contentHash, resolved, type, Microsoft.VisualStudio.SolutionPersisten Cohesion: 0.33 Nodes (6): Microsoft.Extensions.Hosting.Abstractions, contentHash, dependencies, resolved, type, Microsoft.Extensions.DependencyInjection.AutoActivation -### Community 325 - "System.Composition.AttributedModel" +### Community 325 - "Microsoft.EntityFrameworkCore.Abstractions" Cohesion: 0.50 -Nodes (4): System.Composition.AttributedModel, contentHash, resolved, type +Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Abstractions ### Community 326 - "Microsoft.EntityFrameworkCore.Abstractions" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Abstractions -### Community 327 - ".ExecuteInTransactionAsync" +### Community 327 - "Microsoft.Extensions.DependencyInjection.Abstractions" Cohesion: 0.50 -Nodes (3): CancellationToken, Func, Task +Nodes (4): contentHash, resolved, type, Microsoft.Extensions.DependencyInjection.Abstractions -### Community 328 - "LivePhotoLinkerTests.cs" -Cohesion: 0.29 -Nodes (3): Anichron.Worker.Tests.Unit.Ingestion, ExifDataTests, Fact +### Community 328 - "Microsoft.Extensions.Logging" +Cohesion: 0.50 +Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging -### Community 329 - "Microsoft.Extensions.Logging.Console" +### Community 329 - "Microsoft.Extensions.Logging.EventLog" Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging.Console +Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging.EventLog ### Community 330 - "Microsoft.Extensions.FileSystemGlobbing" Cohesion: 0.50 @@ -1882,9 +1877,9 @@ Nodes (3): die(), assemble-pages.sh script, usage() Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Build.Framework -### Community 368 - "System.CodeDom" +### Community 368 - "Microsoft.NETCore.Platforms" Cohesion: 0.50 -Nodes (4): System.CodeDom, contentHash, resolved, type +Nodes (4): contentHash, resolved, type, Microsoft.NETCore.Platforms ### Community 369 - "Microsoft.Extensions.DependencyModel" Cohesion: 0.50 @@ -1898,18 +1893,14 @@ Nodes (4): Testably.Abstractions.FileSystem.Interface, contentHash, resolved, ty Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Bcl.AsyncInterfaces -### Community 373 - "Humanizer.Core" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Humanizer.Core +### Community 372 - "ExifData" +Cohesion: 0.67 +Nodes (3): ExifData, Empty, LocalDateTime ### Community 376 - "Microsoft.EntityFrameworkCore.Abstractions" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.EntityFrameworkCore.Abstractions -### Community 377 - "Microsoft.CodeAnalysis.Analyzers" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.CodeAnalysis.Analyzers - ### Community 379 - "Microsoft.Extensions.Diagnostics" Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Diagnostics @@ -1930,14 +1921,6 @@ Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Options.Configurati Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.TestPlatform.ObjectModel -### Community 391 - "Microsoft.Extensions.Logging.Configuration" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Logging.Configuration - -### Community 393 - "Microsoft.Extensions.Options.ConfigurationExtensions" -Cohesion: 0.50 -Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Options.ConfigurationExtensions - ### Community 394 - "xunit.v3.assert" Cohesion: 0.50 Nodes (4): xunit.v3.assert, contentHash, resolved, type @@ -1946,10 +1929,6 @@ Nodes (4): xunit.v3.assert, contentHash, resolved, type Cohesion: 0.50 Nodes (4): contentHash, resolved, type, Microsoft.Extensions.Primitives -### Community 398 - "System.Composition.Runtime" -Cohesion: 0.50 -Nodes (4): System.Composition.Runtime, contentHash, resolved, type - ### Community 401 - "Newtonsoft.Json" Cohesion: 0.50 Nodes (4): Newtonsoft.Json, contentHash, resolved, type @@ -1961,17 +1940,17 @@ Nodes (4): XmpCore, contentHash, resolved, type ## Knowledge Gaps - **2491 isolated node(s):** `$schema`, `tasks`, `SLACK`, `TALLY`, `Microsoft.AspNetCore.Mvc.Testing` (+2486 more) These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 2881 node(s) total have ≤1 connection when file, concept and rationale nodes are included.) -- **12 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. +- **11 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `UserStorageConfig` connect `UserStorageConfig` to `AuthResponseMapperTests`, `AuthResult`, `IngestionPipelineRunnerTests`, `ExifExtractionMiddleware`, `TestFixture`, `User`, `TestFixture`, `WorkerInitializer`, `IAuthResponseMapper`, `EfUserRepository`, `TestFixture`, `FileIngestionPipeline`, `TestFixture`, `IngestionContext`, `EfUserStorageConfigRepository`, `SingleFileItem`, `TestFixture`, `TestFixture`, `.InvokeAsync`, `TestFixture`, `.InvokeAsync_KnownHash_DoesNotCallNextAsync`, `TestFixture`, `.Build`, `MediaAsset`, `ContentHashingMiddleware`, `Worker`, `AnichronDbContext`, `User`, `.AddAsync`?** - _High betweenness centrality (0.022) - this node is a cross-community bridge._ -- **Why does `Anichron.Core.Domain` connect `Anichron.Core.Domain` to `Schema documentation is generated, and its rationale lives in the schema`, `Anichron.API.Infrastructure`, `SingleFileItem`, `RefreshToken`, `LivePhotoLinkerTests.cs`, `Metadata`, `Invite`, `MediaAsset`, `AssetInteraction`, `Burst`, `TestFixture`, `microsoft_extensions_options`, `Anichron.Worker.Ingestion.Pipeline`, `LockoutServiceTests`, `User`, `ProxyFile`, `UserStorageConfig`?** - _High betweenness centrality (0.018) - this node is a cross-community bridge._ -- **Why does `IUnitOfWork` connect `IUnitOfWork` to `TestFixture`, `TestFixture`, `PersistenceMiddleware`, `TestFixture`, `AdminCreatedUser`, `TestFixture`, `TestFixture`, `TestFixture`, `TokenService`, `BootstrapResetService`, `WorkerInitializer`, `AnichronDbContext`, `TestFixture`, `BootstrapSeeder`, `LockoutServiceTests`, `TestFixture`, `TestFixture`, `.AddAsync`?** - _High betweenness centrality (0.014) - this node is a cross-community bridge._ +- **Why does `UserStorageConfig` connect `UserStorageConfig` to `AuthResponseMapperTests`, `AuthResult`, `IngestionPipelineRunnerTests`, `ExifExtractionMiddleware`, `TestFixture`, `User`, `TestFixture`, `IAuthResponseMapper`, `EfUserRepository`, `SingleFileItem`, `FileIngestionPipeline`, `TestFixture`, `IngestionContext`, `EfUserStorageConfigRepository`, `TestFixture`, `TestFixture`, `WorkerInitializer`, `CapturingLogger`, `TestFixture`, `.InvokeAsync_KnownHash_DoesNotCallNextAsync`, `TestFixture`, `.Build`, `MediaAsset`, `ContentHashingMiddleware`, `Worker`, `AnichronDbContext`, `User`, `.AddAsync`?** + _High betweenness centrality (0.024) - this node is a cross-community bridge._ +- **Why does `IngestionContext` connect `IngestionContext` to `IngestionPipelineRunnerTests`, `ExifExtractionMiddleware`, `TestFixture`, `TestFixture`, `SingleFileItem`, `FileIngestionPipeline`, `ProxyFile`, `UserStorageConfig`, `IIngestionMiddleware`, `PersistenceMiddleware`, `CancellingMiddleware`, `TestFixture`, `ImageProxyMiddleware`, `CapturingLogger`, `.InvokeAsync_KnownHash_DoesNotCallNextAsync`, `IdempotencyCheckMiddleware`, `TestFixture`, `.Build`, `MediaAsset`, `ContentHashingMiddleware`, `Anichron.Worker.Ingestion.Pipeline`?** + _High betweenness centrality (0.021) - this node is a cross-community bridge._ +- **Why does `Anichron.Core.Domain` connect `Anichron.Core.Domain` to `Anichron.API.Settings`, `ServiceCollectionExtensions.cs`, `RefreshToken`, `IMediaAssetRepository`, `LivePhotoPairItem`, `Metadata`, `Invite`, `MediaAsset`, `AssetInteraction`, `Burst`, `TestFixture`, `microsoft_extensions_options`, `Anichron.Worker.Ingestion.Pipeline`, `User`, `ProxyFile`, `UserStorageConfig`?** + _High betweenness centrality (0.019) - this node is a cross-community bridge._ - **Are the 27 inferred relationships involving `UserStorageConfig` (e.g. with `.CreateStorageConfigAsync_CallsServiceWithUserIdAndRootPathAndReturnsMapperResult()` and `.GetAdminCreateStorageConfigResult_Success_Returns201WithLocationAndMappedBody()`) actually correct?** _`UserStorageConfig` has 27 INFERRED edges - model-reasoned connections that need verification._ - **Are the 3 inferred relationships involving `IngestionContext` (e.g. with `.ConsumeAsync()` and `.Asset_CanBeSetAndRead()`) actually correct?** @@ -1979,4 +1958,4 @@ _Questions this graph is uniquely positioned to answer:_ - **What connects `$schema`, `tasks`, `SLACK` to the rest of the system?** _2491 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `TestFixture` be split into smaller, more focused modules?** - _Cohesion score 0.057177129148340666 - nodes in this community are weakly interconnected._ \ No newline at end of file + _Cohesion score 0.05536507936507937 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/graphify-out/graph.json b/graphify-out/graph.json index 3311095..4cb265f 100644 --- a/graphify-out/graph.json +++ b/graphify-out/graph.json @@ -239,6 +239,66 @@ "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", "source_location": "L14" }, + { + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_bootstrapseeder", + "label": "BootstrapSeeder", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "is_partial": true, + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s201" + ] + }, + "norm_label": "bootstrapseeder", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L16" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_ibootstrapseeder", + "label": "IBootstrapSeeder", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s201" + ] + }, + "norm_label": "ibootstrapseeder", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L11" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log", + "label": "Log", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "is_nested_type": true, + "is_partial": true, + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s201" + ] + }, + "norm_label": "log", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L57" + }, { "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_bootstrapseedertests", "label": "BootstrapSeederTests", @@ -285,7 +345,7 @@ "_callable_class": true, "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "metadata": { "is_partial": true, @@ -305,7 +365,7 @@ "_callable_class": true, "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "metadata": { "is_partial": true, @@ -397,25 +457,6 @@ "source_file": "src/Anichron.Worker/Crawling/Worker.cs", "source_location": "L8" }, - { - "id": "src_anichron_worker_ingestion_exifdata_anichron_worker_ingestion_exifdata", - "label": "ExifData", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 11, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s17" - ] - }, - "norm_label": "exifdata", - "source_file": "src/Anichron.Worker/Ingestion/ExifData.cs", - "source_location": "L5" - }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_persistencemiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_persistencemiddlewaretests", "label": "PersistenceMiddlewareTests", @@ -472,7 +513,7 @@ }, "norm_label": "argon2passwordhasher", "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L14" + "source_location": "L18" }, { "id": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests", @@ -486,12 +527,12 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Security", "scope_chain": [ - "s30" + "s56" ] }, "norm_label": "passwordhashertests", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L5" + "source_location": "L6" }, { "id": "src_anichron_core_data_anichrondbcontext_anichron_core_data_anichrondbcontext", @@ -588,6 +629,25 @@ "source_file": "src/Anichron.API.Tests.Unit/PlaceholderTest.cs", "source_location": "L5" }, + { + "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_adminpasswordresetresponse", + "label": "AdminPasswordResetResponse", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 12, + "community_name": "AuthService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Endpoints", + "scope_chain": [ + "s95" + ] + }, + "norm_label": "adminpasswordresetresponse", + "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", + "source_location": "L134" + }, { "id": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher", "label": "IPasswordHasher", @@ -595,7 +655,7 @@ "_callable_class": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Security", @@ -608,81 +668,99 @@ "source_location": "L8" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice", - "label": "AdminUserService", + "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminresetservice", + "label": "AdminResetService", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s92" + "s129" ] }, - "norm_label": "adminuserservice", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "norm_label": "adminresetservice", + "source_file": "src/Anichron.API/Services/AdminResetService.cs", "source_location": "L15" }, { - "id": "src_anichron_api_services_authservice_anichron_api_services_authservice", - "label": "AuthService", + "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminuserpasswordreset", + "label": "AdminUserPasswordReset", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s253" + "s129" ] }, - "norm_label": "authservice", - "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L53" + "norm_label": "adminuserpasswordreset", + "source_file": "src/Anichron.API/Services/AdminResetService.cs", + "source_location": "L8" }, { - "id": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork", - "label": "IUnitOfWork", + "id": "src_anichron_api_services_adminresetservice_anichron_api_services_iadminresetservice", + "label": "IAdminResetService", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s0" + "s129" ] }, - "norm_label": "iunitofwork", - "source_file": "src/Anichron.Core/Data/IUnitOfWork.cs", - "source_location": "L3" + "norm_label": "iadminresetservice", + "source_file": "src/Anichron.API/Services/AdminResetService.cs", + "source_location": "L10" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger", - "label": "CapturingLogger", + "id": "src_anichron_api_services_authservice_anichron_api_services_admincreateduser", + "label": "AdminCreatedUser", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", + "community": 12, + "community_name": "AuthService", "file_type": "code", "metadata": { - "is_nested_type": true, - "namespace": "Anichron.Worker.Tests.Unit.Maintenance", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s241" + "s253" ] }, - "norm_label": "capturinglogger", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L88" + "norm_label": "admincreateduser", + "source_file": "src/Anichron.API/Services/AuthService.cs", + "source_location": "L14" + }, + { + "id": "src_anichron_api_services_authservice_anichron_api_services_authservice", + "label": "AuthService", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 12, + "community_name": "AuthService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s253" + ] + }, + "norm_label": "authservice", + "source_file": "src/Anichron.API/Services/AuthService.cs", + "source_location": "L53" }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_testfixture", @@ -691,7 +769,7 @@ "_callable_class": true, "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { "is_nested_type": true, @@ -711,7 +789,7 @@ "_callable_class": true, "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -742,6 +820,25 @@ "source_file": "src/Anichron.Worker/Ingestion/MediaFileExtensions.cs", "source_location": "L3" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests_anichron_worker_tests_unit_ingestion_exifdatatests", + "label": "ExifDataTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 121, + "community_name": "Anichron.Worker.Ingestion.Pipeline", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion", + "scope_chain": [ + "s34" + ] + }, + "norm_label": "exifdatatests", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", + "source_location": "L5" + }, { "id": "src_anichron_core_domain_user_anichron_core_domain_user", "label": "User", @@ -1367,22 +1464,22 @@ "source_location": "L3" }, { - "id": "src_anichron_worker_crawling_workerstate_anichron_worker_crawling_workerstate", - "label": "WorkerState", + "id": "src_anichron_core_domain_proxytype_anichron_core_domain_proxytype", + "label": "ProxyType", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", + "community": 158, + "community_name": "ProxyFile", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Crawling", + "namespace": "Anichron.Core.Domain", "scope_chain": [ "s0" ] }, - "norm_label": "workerstate", - "source_file": "src/Anichron.Worker/Crawling/WorkerState.cs", + "norm_label": "proxytype", + "source_file": "src/Anichron.Core/Domain/ProxyType.cs", "source_location": "L3" }, { @@ -1392,7 +1489,7 @@ "_callable_class": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "is_partial": true, @@ -1412,7 +1509,7 @@ "_callable_class": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "is_nested_type": true, @@ -1426,47 +1523,6 @@ "source_file": "src/Anichron.Worker/Startup/DatabaseMigratorService.cs", "source_location": "L40" }, - { - "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_log", - "label": "Log", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "is_nested_type": true, - "is_partial": true, - "namespace": "Anichron.Worker.Startup", - "scope_chain": [ - "s192" - ] - }, - "norm_label": "log", - "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", - "source_location": "L65" - }, - { - "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_workerinitializer", - "label": "WorkerInitializer", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "is_partial": true, - "namespace": "Anichron.Worker.Startup", - "scope_chain": [ - "s192" - ] - }, - "norm_label": "workerinitializer", - "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", - "source_location": "L10" - }, { "id": "src_anichron_worker_tests_unit_startup_databasemigratorservicetests_anichron_worker_tests_unit_startup_databasemigratorservicetests", "label": "DatabaseMigratorServiceTests", @@ -1474,7 +1530,7 @@ "_callable_class": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Startup", @@ -1493,7 +1549,7 @@ "_callable_class": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "is_nested_type": true, @@ -1545,63 +1601,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", "source_location": "L12" }, - { - "id": "src_anichron_api_security_jwtfactory_anichron_api_security_ijwtfactory", - "label": "IJwtFactory", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Security", - "scope_chain": [ - "s220" - ] - }, - "norm_label": "ijwtfactory", - "source_file": "src/Anichron.API/Security/JwtFactory.cs", - "source_location": "L11" - }, - { - "id": "src_anichron_api_security_jwtfactory_anichron_api_security_jwtfactory", - "label": "JwtFactory", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Security", - "scope_chain": [ - "s220" - ] - }, - "norm_label": "jwtfactory", - "source_file": "src/Anichron.API/Security/JwtFactory.cs", - "source_location": "L16" - }, - { - "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings", - "label": "JwtSettings", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "jwtsettings", - "source_file": "src/Anichron.API/Settings/JwtSettings.cs", - "source_location": "L3" - }, { "id": "src_anichron_api_tests_unit_security_jwtfactorytests_anichron_api_tests_unit_security_jwtfactorytests", "label": "JwtFactoryTests", @@ -1641,6 +1640,25 @@ "source_file": "src/Anichron.API.Tests.Unit/Security/JwtFactoryTests.cs", "source_location": "L19" }, + { + "id": "src_anichron_worker_infrastructure_hostapplicationbuilderextensions_anichron_worker_infrastructure_hostapplicationbuilderextensions", + "label": "HostApplicationBuilderExtensions", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Infrastructure", + "scope_chain": [ + "s76" + ] + }, + "norm_label": "hostapplicationbuilderextensions", + "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", + "source_location": "L6" + }, { "id": "src_anichron_worker_ingestion_proxy_videoprocessor_anichron_worker_ingestion_proxy_h264encoder", "label": "H264Encoder", @@ -1700,64 +1718,80 @@ "source_location": "L3" }, { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_bootstrapseeder", - "label": "BootstrapSeeder", + "id": "src_anichron_api_security_jwtfactory_anichron_api_security_ijwtfactory", + "label": "IJwtFactory", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", "metadata": { - "is_partial": true, - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Security", "scope_chain": [ - "s201" + "s220" ] }, - "norm_label": "bootstrapseeder", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L16" + "norm_label": "ijwtfactory", + "source_file": "src/Anichron.API/Security/JwtFactory.cs", + "source_location": "L11" }, { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_ibootstrapseeder", - "label": "IBootstrapSeeder", + "id": "src_anichron_api_security_jwtfactory_anichron_api_security_jwtfactory", + "label": "JwtFactory", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Security", "scope_chain": [ - "s201" + "s220" ] }, - "norm_label": "ibootstrapseeder", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L11" + "norm_label": "jwtfactory", + "source_file": "src/Anichron.API/Security/JwtFactory.cs", + "source_location": "L16" }, { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log", - "label": "Log", + "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings", + "label": "JwtSettings", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", "metadata": { - "is_nested_type": true, - "is_partial": true, - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Settings", "scope_chain": [ - "s201" + "s0" ] }, - "norm_label": "log", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L57" + "norm_label": "jwtsettings", + "source_file": "src/Anichron.API/Settings/JwtSettings.cs", + "source_location": "L3" + }, + { + "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_admincreateduserresponse", + "label": "AdminCreatedUserResponse", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 19, + "community_name": "IAuthResponseMapper", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Endpoints", + "scope_chain": [ + "s95" + ] + }, + "norm_label": "admincreateduserresponse", + "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", + "source_location": "L133" }, { "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_adminendpoints", @@ -1778,6 +1812,25 @@ "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", "source_location": "L7" }, + { + "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_createadminuserrequest", + "label": "CreateAdminUserRequest", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 19, + "community_name": "IAuthResponseMapper", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Endpoints", + "scope_chain": [ + "s95" + ] + }, + "norm_label": "createadminuserrequest", + "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", + "source_location": "L132" + }, { "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_createstorageconfigrequest", "label": "CreateStorageConfigRequest", @@ -1873,6 +1926,25 @@ "source_file": "src/Anichron.API/Services/AdminUserService.cs", "source_location": "L7" }, + { + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests", + "label": "AdminEndpointsTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 19, + "community_name": "IAuthResponseMapper", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Endpoints", + "scope_chain": [ + "s93" + ] + }, + "norm_label": "adminendpointstests", + "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", + "source_location": "L7" + }, { "id": "src_anichron_api_tests_unit_endpoints_adminstorageconfigendpointstests_anichron_api_tests_unit_endpoints_adminstorageconfigendpointstests", "label": "AdminStorageConfigEndpointsTests", @@ -1912,42 +1984,42 @@ "source_location": "L9" }, { - "id": "src_anichron_api_infrastructure_webapplicationbuilderextensions_anichron_api_infrastructure_webapplicationbuilderextensions", - "label": "WebApplicationBuilderExtensions", + "id": "src_anichron_api_infrastructure_servicecollectionextensions_anichron_api_infrastructure_servicecollectionextensions", + "label": "ServiceCollectionExtensions", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "file_type": "code", "metadata": { "namespace": "Anichron.API.Infrastructure", "scope_chain": [ - "s112" + "s529" ] }, - "norm_label": "webapplicationbuilderextensions", - "source_file": "src/Anichron.API/Infrastructure/WebApplicationBuilderExtensions.cs", - "source_location": "L7" + "norm_label": "servicecollectionextensions", + "source_file": "src/Anichron.API/Infrastructure/ServiceCollectionExtensions.cs", + "source_location": "L19" }, { - "id": "src_anichron_worker_infrastructure_hostapplicationbuilderextensions_anichron_worker_infrastructure_hostapplicationbuilderextensions", - "label": "HostApplicationBuilderExtensions", + "id": "src_anichron_api_infrastructure_webapplicationbuilderextensions_anichron_api_infrastructure_webapplicationbuilderextensions", + "label": "WebApplicationBuilderExtensions", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Infrastructure", + "namespace": "Anichron.API.Infrastructure", "scope_chain": [ - "s76" + "s112" ] }, - "norm_label": "hostapplicationbuilderextensions", - "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", - "source_location": "L6" + "norm_label": "webapplicationbuilderextensions", + "source_file": "src/Anichron.API/Infrastructure/WebApplicationBuilderExtensions.cs", + "source_location": "L7" }, { "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_authresponsemapper", @@ -1987,25 +2059,6 @@ "source_file": "src/Anichron.API/Services/AuthService.cs", "source_location": "L16" }, - { - "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings", - "label": "AuthCookieSettings", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 2, - "community_name": "AuthResult", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "authcookiesettings", - "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", - "source_location": "L3" - }, { "id": "src_anichron_infrastructure_configuration_appiniinitializer_anichron_infrastructure_configuration_appiniinitializer", "label": "AppIniInitializer", @@ -2236,23 +2289,42 @@ "source_location": "L5" }, { - "id": "src_anichron_core_domain_proxytype_anichron_core_domain_proxytype", - "label": "ProxyType", + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice", + "label": "ILockoutService", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", + "community_name": "LockoutService", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Domain", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s0" + "s84" ] }, - "norm_label": "proxytype", - "source_file": "src/Anichron.Core/Domain/ProxyType.cs", - "source_location": "L3" + "norm_label": "ilockoutservice", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L7" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice", + "label": "LockoutService", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 224, + "community_name": "LockoutService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": "lockoutservice", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L15" }, { "id": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_efuserrepository", @@ -2292,6 +2364,25 @@ "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserRepositoryTests.cs", "source_location": "L8" }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository", + "label": "IRefreshTokenRepository", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": "irefreshtokenrepository", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L6" + }, { "id": "src_anichron_core_domain_refreshtoken_anichron_core_domain_refreshtoken", "label": "RefreshToken", @@ -2350,23 +2441,23 @@ "source_location": "L7" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository", - "label": "IRefreshTokenRepository", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice", + "label": "AdminUserService", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s92" ] }, - "norm_label": "irefreshtokenrepository", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L6" + "norm_label": "adminuserservice", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L15" }, { "id": "src_anichron_worker_ingestion_mediatypedetector_anichron_worker_ingestion_mediatypedetector", @@ -2444,6 +2535,25 @@ "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/InviteRepositoryTests.cs", "source_location": "L9" }, + { + "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem", + "label": "SingleFileItem", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 25, + "community_name": "SingleFileItem", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s29" + ] + }, + "norm_label": "singlefileitem", + "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", + "source_location": "L16" + }, { "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_anichron_worker_tests_unit_crawling_fileingestionpipelinetests", "label": "FileIngestionPipelineTests", @@ -2451,7 +2561,7 @@ "_callable_class": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -2470,7 +2580,7 @@ "_callable_class": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "is_nested_type": true, @@ -2502,44 +2612,6 @@ "source_file": "src/Anichron.API/Services/AdminStorageConfigService.cs", "source_location": "L14" }, - { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice", - "label": "ILockoutService", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": "ilockoutservice", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L7" - }, - { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice", - "label": "LockoutService", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": "lockoutservice", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L15" - }, { "id": "src_anichron_api_tests_unit_services_lockoutservicetests_anichron_api_tests_unit_services_lockoutservicetests", "label": "LockoutServiceTests", @@ -2618,27 +2690,6 @@ "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", "source_location": "L12" }, - { - "id": "src_anichron_worker_crawling_fileingestionpipeline_anichron_worker_crawling_log", - "label": "Log", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "metadata": { - "is_nested_type": true, - "is_partial": true, - "namespace": "Anichron.Worker.Crawling", - "scope_chain": [ - "s256" - ] - }, - "norm_label": "log", - "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", - "source_location": "L124" - }, { "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_ingestionitem", "label": "IngestionItem", @@ -2659,61 +2710,62 @@ "source_location": "L10" }, { - "id": "src_anichron_core_guidfactory_anichron_core_iguidfactory", - "label": "IGuidFactory", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger", + "label": "CapturingLogger", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 283, - "community_name": "IGuidFactory", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { - "namespace": "Anichron.Core", + "is_nested_type": true, + "namespace": "Anichron.Worker.Tests.Unit.Maintenance", "scope_chain": [ - "s0" + "s241" ] }, - "norm_label": "iguidfactory", - "source_file": "src/Anichron.Core/GuidFactory.cs", - "source_location": "L3" + "norm_label": "capturinglogger", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L88" }, { - "id": "src_anichron_core_guidfactory_anichron_core_timeorderedguidfactory", - "label": "TimeOrderedGuidFactory", + "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_iingestionmiddleware", + "label": "IIngestionMiddleware", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 283, - "community_name": "IGuidFactory", + "community": 288, + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { - "namespace": "Anichron.Core", + "namespace": "Anichron.Worker.Ingestion.Pipeline", "scope_chain": [ "s0" ] }, - "norm_label": "timeorderedguidfactory", - "source_file": "src/Anichron.Core/GuidFactory.cs", - "source_location": "L8" + "norm_label": "iingestionmiddleware", + "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", + "source_location": "L5" }, { - "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_anichron_worker_ingestion_proxy_proxyfilebuilder", - "label": "ProxyFileBuilder", + "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_ingestionorder", + "label": "IngestionOrder", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 283, - "community_name": "IGuidFactory", + "community": 288, + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.Worker.Ingestion.Pipeline", "scope_chain": [ - "s108" + "s0" ] }, - "norm_label": "proxyfilebuilder", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyFileBuilder.cs", - "source_location": "L8" + "norm_label": "ingestionorder", + "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", + "source_location": "L12" }, { "id": "src_anichron_worker_ingestion_pipeline_ingestionpipelinerunner_anichron_worker_ingestion_pipeline_iingestionpipelinerunner", @@ -2722,7 +2774,7 @@ "_callable_class": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Pipeline", @@ -2741,7 +2793,7 @@ "_callable_class": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "is_partial": true, @@ -2761,7 +2813,7 @@ "_callable_class": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "is_nested_type": true, @@ -2913,81 +2965,63 @@ "source_location": "L6" }, { - "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_secondaryfiledescriptor", - "label": "SecondaryFileDescriptor", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 293, - "community_name": "SingleFileItem", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s29" - ] - }, - "norm_label": "secondaryfiledescriptor", - "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", - "source_location": "L5" - }, - { - "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem", - "label": "SingleFileItem", + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository", + "label": "EfMediaAssetRepository", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 293, - "community_name": "SingleFileItem", + "community": 296, + "community_name": "IMediaAssetRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s29" + "s66" ] }, - "norm_label": "singlefileitem", - "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", - "source_location": "L16" + "norm_label": "efmediaassetrepository", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L12" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests", - "label": "IngestionContextTests", + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository", + "label": "IMediaAssetRepository", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 293, - "community_name": "SingleFileItem", + "community": 296, + "community_name": "IMediaAssetRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s104" + "s66" ] }, - "norm_label": "ingestioncontexttests", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", - "source_location": "L7" + "norm_label": "imediaassetrepository", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L6" }, { - "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_capturinglogger", - "label": "CapturingLogger", + "id": "src_anichron_worker_crawling_fileingestionpipeline_anichron_worker_crawling_log", + "label": "Log", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 299, - "community_name": "CapturingLogger", + "community": 298, + "community_name": ".ItemFailed", "file_type": "code", "metadata": { "is_nested_type": true, - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", + "is_partial": true, + "namespace": "Anichron.Worker.Crawling", "scope_chain": [ - "s185" + "s256" ] }, - "norm_label": "capturinglogger", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/LoggingMiddlewareTests.cs", - "source_location": "L110" + "norm_label": "log", + "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", + "source_location": "L124" }, { "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests", @@ -3048,6 +3082,26 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", "source_location": "L298" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_stubmiddleware", + "label": "StubMiddleware", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "IngestionPipelineRunnerTests", + "file_type": "code", + "metadata": { + "is_nested_type": true, + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s368" + ] + }, + "norm_label": "stubmiddleware", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L286" + }, { "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_testfixture", "label": "TestFixture", @@ -3107,6 +3161,25 @@ "source_file": "src/Anichron.Worker/Ingestion/IngestionShutdown.cs", "source_location": "L3" }, + { + "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings", + "label": "AuthCookieSettings", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 303, + "community_name": "AuthCookieSettings", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "authcookiesettings", + "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", + "source_location": "L3" + }, { "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_iuserstorageconfigrepository", "label": "IUserStorageConfigRepository", @@ -3152,7 +3225,7 @@ "_callable_class": true, "_origin": "ast", "community": 313, - "community_name": "LoggingMiddleware", + "community_name": "Log", "file_type": "code", "metadata": { "is_nested_type": true, @@ -3167,24 +3240,45 @@ "source_location": "L17" }, { - "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_loggingmiddleware", - "label": "LoggingMiddleware", + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_imageproxymiddleware", + "label": "ImageProxyMiddleware", "_callable": true, "_callable_class": true, "_origin": "ast", - "community": 313, - "community_name": "LoggingMiddleware", + "community": 319, + "community_name": "ImageProxyMiddleware", "file_type": "code", "metadata": { "is_partial": true, "namespace": "Anichron.Worker.Ingestion.Middlewares", "scope_chain": [ - "s43" + "s209" ] }, - "norm_label": "loggingmiddleware", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", - "source_location": "L5" + "norm_label": "imageproxymiddleware", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", + "source_location": "L10" + }, + { + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_log", + "label": "Log", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 319, + "community_name": "ImageProxyMiddleware", + "file_type": "code", + "metadata": { + "is_nested_type": true, + "is_partial": true, + "namespace": "Anichron.Worker.Ingestion.Middlewares", + "scope_chain": [ + "s209" + ] + }, + "norm_label": "log", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", + "source_location": "L54" }, { "id": "src_anichron_worker_ingestion_proxy_proxyshardstrategy_anichron_worker_ingestion_proxy_iproxydirectorystrategy", @@ -3193,7 +3287,7 @@ "_callable_class": true, "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Proxy", @@ -3212,7 +3306,7 @@ "_callable_class": true, "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Proxy", @@ -3231,7 +3325,7 @@ "_callable_class": true, "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -3282,25 +3376,6 @@ "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", "source_location": "L13" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests_anichron_worker_tests_unit_ingestion_exifdatatests", - "label": "ExifDataTests", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 328, - "community_name": "LivePhotoLinkerTests.cs", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion", - "scope_chain": [ - "s34" - ] - }, - "norm_label": "exifdatatests", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", - "source_location": "L5" - }, { "id": "src_anichron_api_infrastructure_authmessages_anichron_api_infrastructure_authmessages", "label": "AuthMessages", @@ -3308,7 +3383,7 @@ "_callable_class": true, "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "metadata": { "namespace": "Anichron.API.Infrastructure", @@ -3327,7 +3402,7 @@ "_callable_class": true, "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "metadata": { "namespace": "Anichron.API.Infrastructure", @@ -3346,7 +3421,7 @@ "_callable_class": true, "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "metadata": { "namespace": "Anichron.API.Infrastructure", @@ -3358,6 +3433,25 @@ "source_file": "src/Anichron.API/Infrastructure/AuthPolicies.cs", "source_location": "L3" }, + { + "id": "src_anichron_api_settings_corssettings_anichron_api_settings_corssettings", + "label": "CorsSettings", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 33, + "community_name": "Anichron.API.Settings", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "corssettings", + "source_file": "src/Anichron.API/Settings/CorsSettings.cs", + "source_location": "L3" + }, { "id": "src_anichron_worker_ingestion_proxy_processlauncher_anichron_worker_ingestion_proxy_iprocesslauncher", "label": "IProcessLauncher", @@ -3571,44 +3665,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", "source_location": "L6" }, - { - "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_iingestionmiddleware", - "label": "IIngestionMiddleware", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 35, - "community_name": "IIngestionMiddleware", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Pipeline", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "iingestionmiddleware", - "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", - "source_location": "L5" - }, - { - "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_ingestionorder", - "label": "IngestionOrder", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 35, - "community_name": "IIngestionMiddleware", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Pipeline", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "ingestionorder", - "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", - "source_location": "L12" - }, { "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_cancellingmiddleware", "label": "CancellingMiddleware", @@ -3616,7 +3672,7 @@ "_callable_class": true, "_origin": "ast", "community": 35, - "community_name": "IIngestionMiddleware", + "community_name": "CancellingMiddleware", "file_type": "code", "metadata": { "is_nested_type": true, @@ -3629,45 +3685,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", "source_location": "L351" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_stubmiddleware", - "label": "StubMiddleware", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 35, - "community_name": "IIngestionMiddleware", - "file_type": "code", - "metadata": { - "is_nested_type": true, - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", - "scope_chain": [ - "s368" - ] - }, - "norm_label": "stubmiddleware", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L286" - }, - { - "id": "src_anichron_api_infrastructure_servicecollectionextensions_anichron_api_infrastructure_servicecollectionextensions", - "label": "ServiceCollectionExtensions", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Infrastructure", - "scope_chain": [ - "s529" - ] - }, - "norm_label": "servicecollectionextensions", - "source_file": "src/Anichron.API/Infrastructure/ServiceCollectionExtensions.cs", - "source_location": "L19" - }, { "id": "src_anichron_api_security_appclaimtypes_anichron_api_security_appclaimtypes", "label": "AppClaimTypes", @@ -3766,23 +3783,42 @@ "source_location": "L312" }, { - "id": "src_anichron_api_settings_corssettings_anichron_api_settings_corssettings", - "label": "CorsSettings", + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests", + "label": "IngestionContextTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 37, + "community_name": "IngestionContext", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s104" + ] + }, + "norm_label": "ingestioncontexttests", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", + "source_location": "L7" + }, + { + "id": "src_anichron_worker_ingestion_exifdata_anichron_worker_ingestion_exifdata", + "label": "ExifData", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 372, - "community_name": "CorsSettings.cs", + "community_name": "ExifData", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Settings", + "namespace": "Anichron.Worker.Ingestion", "scope_chain": [ - "s0" + "s17" ] }, - "norm_label": "corssettings", - "source_file": "src/Anichron.API/Settings/CorsSettings.cs", - "source_location": "L3" + "norm_label": "exifdata", + "source_file": "src/Anichron.Worker/Ingestion/ExifData.cs", + "source_location": "L5" }, { "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository", @@ -3841,6 +3877,25 @@ "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", "source_location": "L25" }, + { + "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_secondaryfiledescriptor", + "label": "SecondaryFileDescriptor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 39, + "community_name": "LivePhotoPairItem", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s29" + ] + }, + "norm_label": "secondaryfiledescriptor", + "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", + "source_location": "L5" + }, { "id": "src_anichron_worker_tests_unit_ingestion_livephotolinkertests_anichron_worker_tests_unit_ingestion_livephotolinkertests", "label": "LivePhotoLinkerTests", @@ -3905,7 +3960,7 @@ "_callable_class": true, "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "metadata": { "is_partial": true, @@ -3925,7 +3980,7 @@ "_callable_class": true, "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -3944,7 +3999,7 @@ "_callable_class": true, "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "metadata": { "is_nested_type": true, @@ -3958,6 +4013,25 @@ "source_file": "src/Anichron.API/Services/BootstrapResetService.cs", "source_location": "L61" }, + { + "id": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork", + "label": "IUnitOfWork", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 45, + "community_name": "IUnitOfWork", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "iunitofwork", + "source_file": "src/Anichron.Core/Data/IUnitOfWork.cs", + "source_location": "L3" + }, { "id": "src_anichron_api_endpoints_userendpoints_anichron_api_endpoints_changepasswordrequest", "label": "ChangePasswordRequest", @@ -4054,156 +4128,103 @@ "source_location": "L12" }, { - "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_admincreateduserresponse", - "label": "AdminCreatedUserResponse", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 5, - "community_name": "AdminCreatedUser", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Endpoints", - "scope_chain": [ - "s95" - ] - }, - "norm_label": "admincreateduserresponse", - "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", - "source_location": "L133" - }, - { - "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_adminpasswordresetresponse", - "label": "AdminPasswordResetResponse", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 5, - "community_name": "AdminCreatedUser", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Endpoints", - "scope_chain": [ - "s95" - ] - }, - "norm_label": "adminpasswordresetresponse", - "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", - "source_location": "L134" - }, - { - "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_createadminuserrequest", - "label": "CreateAdminUserRequest", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 5, - "community_name": "AdminCreatedUser", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Endpoints", - "scope_chain": [ - "s95" - ] - }, - "norm_label": "createadminuserrequest", - "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", - "source_location": "L132" - }, - { - "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminresetservice", - "label": "AdminResetService", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger", + "label": "CapturingLogger", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "is_nested_type": true, + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s129" + "s84" ] }, - "norm_label": "adminresetservice", - "source_file": "src/Anichron.API/Services/AdminResetService.cs", - "source_location": "L15" + "norm_label": "capturinglogger", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L109" }, { - "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminuserpasswordreset", - "label": "AdminUserPasswordReset", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_fakehttpmessagehandler", + "label": "FakeHttpMessageHandler", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "is_nested_type": true, + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s129" + "s84" ] }, - "norm_label": "adminuserpasswordreset", - "source_file": "src/Anichron.API/Services/AdminResetService.cs", - "source_location": "L8" + "norm_label": "fakehttpmessagehandler", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L97" }, { - "id": "src_anichron_api_services_adminresetservice_anichron_api_services_iadminresetservice", - "label": "IAdminResetService", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests", + "label": "PwnedPasswordClientTests", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s129" + "s84" ] }, - "norm_label": "iadminresetservice", - "source_file": "src/Anichron.API/Services/AdminResetService.cs", - "source_location": "L10" + "norm_label": "pwnedpasswordclienttests", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L7" }, { - "id": "src_anichron_api_services_authservice_anichron_api_services_admincreateduser", - "label": "AdminCreatedUser", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture", + "label": "TestFixture", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "is_nested_type": true, + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s253" + "s84" ] }, - "norm_label": "admincreateduser", - "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L14" + "norm_label": "testfixture", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L69" }, { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests", - "label": "AdminEndpointsTests", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_throwinghttpmessagehandler", + "label": "ThrowingHttpMessageHandler", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Endpoints", + "is_nested_type": true, + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s93" + "s84" ] }, - "norm_label": "adminendpointstests", - "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", - "source_location": "L7" + "norm_label": "throwinghttpmessagehandler", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L103" }, { "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests", @@ -4382,45 +4403,64 @@ "source_location": "L8" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_imageproxymiddleware", - "label": "ImageProxyMiddleware", + "id": "src_anichron_worker_crawling_workerstate_anichron_worker_crawling_workerstate", + "label": "WorkerState", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", "metadata": { - "is_partial": true, - "namespace": "Anichron.Worker.Ingestion.Middlewares", + "namespace": "Anichron.Worker.Crawling", "scope_chain": [ - "s209" + "s0" ] }, - "norm_label": "imageproxymiddleware", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", - "source_location": "L10" + "norm_label": "workerstate", + "source_file": "src/Anichron.Worker/Crawling/WorkerState.cs", + "source_location": "L3" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_log", + "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_log", "label": "Log", "_callable": true, "_callable_class": true, "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", "metadata": { "is_nested_type": true, "is_partial": true, - "namespace": "Anichron.Worker.Ingestion.Middlewares", + "namespace": "Anichron.Worker.Startup", "scope_chain": [ - "s209" + "s192" ] }, "norm_label": "log", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", - "source_location": "L54" + "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", + "source_location": "L65" + }, + { + "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_workerinitializer", + "label": "WorkerInitializer", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 57, + "community_name": "WorkerInitializer", + "file_type": "code", + "metadata": { + "is_partial": true, + "namespace": "Anichron.Worker.Startup", + "scope_chain": [ + "s192" + ] + }, + "norm_label": "workerinitializer", + "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", + "source_location": "L10" }, { "id": "src_anichron_worker_ingestion_middlewares_exifextractionmiddleware_anichron_worker_ingestion_middlewares_exifextractionmiddleware", @@ -4501,6 +4541,46 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Infrastructure/WorkerServiceCollectionExtensionsTests.cs", "source_location": "L13" }, + { + "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_loggingmiddleware", + "label": "LoggingMiddleware", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 65, + "community_name": "CapturingLogger", + "file_type": "code", + "metadata": { + "is_partial": true, + "namespace": "Anichron.Worker.Ingestion.Middlewares", + "scope_chain": [ + "s43" + ] + }, + "norm_label": "loggingmiddleware", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", + "source_location": "L5" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_capturinglogger", + "label": "CapturingLogger", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 65, + "community_name": "CapturingLogger", + "file_type": "code", + "metadata": { + "is_nested_type": true, + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", + "scope_chain": [ + "s185" + ] + }, + "norm_label": "capturinglogger", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/LoggingMiddlewareTests.cs", + "source_location": "L110" + }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests", "label": "LoggingMiddlewareTests", @@ -4508,7 +4588,7 @@ "_callable_class": true, "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -4678,6 +4758,63 @@ "source_file": "src/Anichron.Worker/Ingestion/Middlewares/IdempotencyCheckMiddleware.cs", "source_location": "L26" }, + { + "id": "src_anichron_core_guidfactory_anichron_core_iguidfactory", + "label": "IGuidFactory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 72, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "iguidfactory", + "source_file": "src/Anichron.Core/GuidFactory.cs", + "source_location": "L3" + }, + { + "id": "src_anichron_core_guidfactory_anichron_core_timeorderedguidfactory", + "label": "TimeOrderedGuidFactory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 72, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "timeorderedguidfactory", + "source_file": "src/Anichron.Core/GuidFactory.cs", + "source_location": "L8" + }, + { + "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_anichron_worker_ingestion_proxy_proxyfilebuilder", + "label": "ProxyFileBuilder", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 72, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Proxy", + "scope_chain": [ + "s108" + ] + }, + "norm_label": "proxyfilebuilder", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyFileBuilder.cs", + "source_location": "L8" + }, { "id": "src_anichron_worker_ingestion_proxy_proxystagingwriter_anichron_worker_ingestion_proxy_log", "label": "Log", @@ -4876,105 +5013,6 @@ "source_file": "src/Anichron.API/Services/PwnedPasswordClient.cs", "source_location": "L11" }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger", - "label": "CapturingLogger", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "is_nested_type": true, - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": "capturinglogger", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L109" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_fakehttpmessagehandler", - "label": "FakeHttpMessageHandler", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "is_nested_type": true, - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": "fakehttpmessagehandler", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L97" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests", - "label": "PwnedPasswordClientTests", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": "pwnedpasswordclienttests", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L7" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture", - "label": "TestFixture", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "is_nested_type": true, - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": "testfixture", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L69" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_throwinghttpmessagehandler", - "label": "ThrowingHttpMessageHandler", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "is_nested_type": true, - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": "throwinghttpmessagehandler", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L103" - }, { "id": "src_anichron_api_tests_unit_services_registrationvalidatortests_anichron_api_tests_unit_services_registrationvalidatortests", "label": "RegistrationValidatorTests", @@ -5228,44 +5266,6 @@ "source_file": "src/Anichron.Core/Domain/Invite.cs", "source_location": "L3" }, - { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository", - "label": "EfMediaAssetRepository", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 79, - "community_name": "MediaAsset", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": "efmediaassetrepository", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L12" - }, - { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository", - "label": "IMediaAssetRepository", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "community": 79, - "community_name": "MediaAsset", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": "imediaassetrepository", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L6" - }, { "id": "src_anichron_core_domain_mediaasset_anichron_core_domain_mediaasset", "label": "MediaAsset", @@ -5706,7 +5706,7 @@ }, "norm_label": ".admincreateuserasync_dbuniqueviolationonemail_returnsemailtakenerror()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L844" + "source_location": "L860" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_admincreateuserasync_dbuniqueviolationonusername_returnsusernametakenerror", @@ -5724,7 +5724,7 @@ }, "norm_label": ".admincreateuserasync_dbuniqueviolationonusername_returnsusernametakenerror()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L856" + "source_location": "L872" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_admincreateuserasync_emailtaken_returnsemailtakenerror", @@ -5742,7 +5742,7 @@ }, "norm_label": ".admincreateuserasync_emailtaken_returnsemailtakenerror()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L775" + "source_location": "L791" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_admincreateuserasync_identityvalidationfails_returnsvalidationerror", @@ -5762,13 +5762,13 @@ "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L911" + "line": "L927" } ] }, "norm_label": ".admincreateuserasync_identityvalidationfails_returnsvalidationerror()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L900" + "source_location": "L916" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_admincreateuserasync_nullemail_throwsargumentnullexception", @@ -5786,7 +5786,7 @@ }, "norm_label": ".admincreateuserasync_nullemail_throwsargumentnullexception()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L890" + "source_location": "L906" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_admincreateuserasync_nullusername_throwsargumentnullexception", @@ -5804,7 +5804,7 @@ }, "norm_label": ".admincreateuserasync_nullusername_throwsargumentnullexception()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L880" + "source_location": "L896" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_admincreateuserasync_success_issuccessandtemporarypasswordnonempty", @@ -5824,13 +5824,13 @@ "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L792" + "line": "L808" } ] }, "norm_label": ".admincreateuserasync_success_issuccessandtemporarypasswordnonempty()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L785" + "source_location": "L801" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_admincreateuserasync_success_normalizesusernameandemail", @@ -5850,13 +5850,13 @@ "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L837" + "line": "L853" } ] }, "norm_label": ".admincreateuserasync_success_normalizesusernameandemail()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L830" + "source_location": "L846" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_admincreateuserasync_success_passwordishashedbeforestorage", @@ -5876,19 +5876,19 @@ "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L818" + "line": "L834" }, { "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L823" + "line": "L839" } ] }, "norm_label": ".admincreateuserasync_success_passwordishashedbeforestorage()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L813" + "source_location": "L829" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_admincreateuserasync_success_useraddedwithmustchangepasswordtrue", @@ -5908,13 +5908,13 @@ "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L804" + "line": "L820" } ] }, "norm_label": ".admincreateuserasync_success_useraddedwithmustchangepasswordtrue()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L799" + "source_location": "L815" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_admincreateuserasync_unknownconstraintviolation_throwsunreachableexception", @@ -5932,7 +5932,7 @@ }, "norm_label": ".admincreateuserasync_unknownconstraintviolation_throwsunreachableexception()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L868" + "source_location": "L884" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_admincreateuserasync_usernametaken_returnsusernametakenerror", @@ -5950,7 +5950,7 @@ }, "norm_label": ".admincreateuserasync_usernametaken_returnsusernametakenerror()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L765" + "source_location": "L781" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_changepasswordasync_newpasswordfailsvalidation_returnsvalidationerror", @@ -5970,19 +5970,19 @@ "callee": "Parse", "receiver_type": "Guid", "lang": "csharp", - "line": "L694" + "line": "L710" }, { "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L704" + "line": "L720" } ] }, "norm_label": ".changepasswordasync_newpasswordfailsvalidation_returnsvalidationerror()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L688" + "source_location": "L704" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_changepasswordasync_nullcurrentpassword_throwsargumentnullexception", @@ -6000,7 +6000,7 @@ }, "norm_label": ".changepasswordasync_nullcurrentpassword_throwsargumentnullexception()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L635" + "source_location": "L651" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_changepasswordasync_nullnewpassword_throwsargumentnullexception", @@ -6018,7 +6018,7 @@ }, "norm_label": ".changepasswordasync_nullnewpassword_throwsargumentnullexception()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L645" + "source_location": "L661" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_changepasswordasync_usernotfound_returnsinvalidcredentials", @@ -6038,19 +6038,19 @@ "callee": "Parse", "receiver_type": "Guid", "lang": "csharp", - "line": "L658" + "line": "L674" }, { "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L664" + "line": "L680" } ] }, "norm_label": ".changepasswordasync_usernotfound_returnsinvalidcredentials()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L655" + "source_location": "L671" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_changepasswordasync_validpasswords_returnsok", @@ -6070,13 +6070,13 @@ "callee": "Parse", "receiver_type": "Guid", "lang": "csharp", - "line": "L714" + "line": "L730" } ] }, "norm_label": ".changepasswordasync_validpasswords_returnsok()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L711" + "source_location": "L727" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_changepasswordasync_validpasswords_revokesallsessions", @@ -6096,19 +6096,19 @@ "callee": "Parse", "receiver_type": "Guid", "lang": "csharp", - "line": "L748" + "line": "L764" }, { "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L758" + "line": "L774" } ] }, "norm_label": ".changepasswordasync_validpasswords_revokesallsessions()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L745" + "source_location": "L761" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_changepasswordasync_validpasswords_updatespasswordhashandclearsmustchangepassword", @@ -6128,19 +6128,19 @@ "callee": "Parse", "receiver_type": "Guid", "lang": "csharp", - "line": "L729" + "line": "L745" }, { "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L738" + "line": "L754" } ] }, "norm_label": ".changepasswordasync_validpasswords_updatespasswordhashandclearsmustchangepassword()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L726" + "source_location": "L742" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_changepasswordasync_wrongcurrentpassword_returnsinvalidcredentials", @@ -6160,19 +6160,19 @@ "callee": "Parse", "receiver_type": "Guid", "lang": "csharp", - "line": "L674" + "line": "L690" }, { "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L681" + "line": "L697" } ] }, "norm_label": ".changepasswordasync_wrongcurrentpassword_returnsinvalidcredentials()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L671" + "source_location": "L687" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_hashinvitetoken_differentinputs_producedifferenthashes", @@ -6228,13 +6228,13 @@ "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L496" + "line": "L512" } ] }, "norm_label": ".loginasync_accountdisabled_returnsaccountdisabled()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L485" + "source_location": "L501" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_accountlocked_returnslockedwithretryafterseconds", @@ -6254,19 +6254,19 @@ "callee": "FromUtc", "receiver_type": "Instant", "lang": "csharp", - "line": "L510" + "line": "L526" }, { "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L520" + "line": "L536" } ] }, "norm_label": ".loginasync_accountlocked_returnslockedwithretryafterseconds()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L503" + "source_location": "L519" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_inputnormalization_trimsandlowercasesbeforelookup", @@ -6284,7 +6284,7 @@ }, "norm_label": ".loginasync_inputnormalization_trimsandlowercasesbeforelookup()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L589" + "source_location": "L605" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_nullpassword_throwsargumentnullexception", @@ -6340,13 +6340,13 @@ "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L582" + "line": "L598" } ] }, "norm_label": ".loginasync_successfullogin_resetslockoutvialockoutservice()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L571" + "source_location": "L587" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_unknownuser_returnsinvalidcredentials", @@ -6374,6 +6374,32 @@ "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", "source_location": "L454" }, + { + "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_unknownuser_verifiesagainstanullhashexactlyonce", + "label": ".LoginAsync_UnknownUser_VerifiesAgainstANullHashExactlyOnce()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s227" + ], + "unresolved_calls": [ + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L481" + } + ] + }, + "norm_label": ".loginasync_unknownuser_verifiesagainstanullhashexactlyonce()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", + "source_location": "L473" + }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_validcredentials_returnsokwithtokens", "label": ".LoginAsync_ValidCredentials_ReturnsOkWithTokens()", @@ -6416,7 +6442,7 @@ }, "norm_label": ".loginasync_validcredentialsnotlocked_returnsok()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L542" + "source_location": "L558" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_whitespacecredential_returnsinvalidcredentials", @@ -6454,13 +6480,13 @@ "callee": "Multiple", "receiver_type": "Assert", "lang": "csharp", - "line": "L478" + "line": "L494" } ] }, "norm_label": ".loginasync_wrongpassword_returnsinvalidcredentials()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L468" + "source_location": "L484" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_wrongpasswordandnotlocked_delegatestolockoutservice", @@ -6480,13 +6506,13 @@ "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L539" + "line": "L555" } ] }, "norm_label": ".loginasync_wrongpasswordandnotlocked_delegatestolockoutservice()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L528" + "source_location": "L544" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_wrongpasswordduringactivelockout_doesnotcallrecordfailed", @@ -6506,13 +6532,13 @@ "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L568" + "line": "L584" } ] }, "norm_label": ".loginasync_wrongpasswordduringactivelockout_doesnotcallrecordfailed()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L556" + "source_location": "L572" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_refreshasync_delegatestotokenservice_returnsitsresult", @@ -6530,7 +6556,7 @@ }, "norm_label": ".refreshasync_delegatestotokenservice_returnsitsresult()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L607" + "source_location": "L623" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_registerasync_concurrentemailuniqueviolation_returnsemailtaken", @@ -6900,13 +6926,13 @@ "callee": "Any", "receiver_type": "Arg", "lang": "csharp", - "line": "L628" + "line": "L644" } ] }, "norm_label": ".revokeasync_delegatestotokenservice()", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L620" + "source_location": "L636" }, { "id": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_uniqueviolation", @@ -7528,6 +7554,32 @@ "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", "source_location": "L471" }, + { + "id": "src_anichron_api_tests_unit_endpoints_authresponsemappertests_anichron_api_tests_unit_endpoints_authresponsemappertests_getadmincreateuserresult_success_returns201withlocationandbody", + "label": ".GetAdminCreateUserResult_Success_Returns201WithLocationAndBody()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "AuthResponseMapperTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Endpoints", + "scope_chain": [ + "s208" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L458" + } + ] + }, + "norm_label": ".getadmincreateuserresult_success_returns201withlocationandbody()", + "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", + "source_location": "L455" + }, { "id": "src_anichron_api_tests_unit_endpoints_authresponsemappertests_anichron_api_tests_unit_endpoints_authresponsemappertests_getadmincreateuserresult_undefinedautherror_throwsunreachableexception", "label": ".GetAdminCreateUserResult_UndefinedAuthError_ThrowsUnreachableException()", @@ -8578,6 +8630,78 @@ "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", "source_location": "L25" }, + { + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_bootstrapseeder_seedasync", + "label": ".SeedAsync()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s201" + ] + }, + "norm_label": ".seedasync()", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L24" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_ibootstrapseeder_seedasync", + "label": ".SeedAsync()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s201" + ] + }, + "norm_label": ".seedasync()", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L13" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log_bootstrapadminalreadyexists", + "label": ".BootstrapAdminAlreadyExists()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s201" + ] + }, + "norm_label": ".bootstrapadminalreadyexists()", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L62" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log_creatingbootstrapadmin", + "label": ".CreatingBootstrapAdmin()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s201" + ] + }, + "norm_label": ".creatingbootstrapadmin()", + "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "source_location": "L59" + }, { "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_bootstrapseedertests_nonuniqueviolation", "label": ".NonUniqueViolation()", @@ -8858,6 +8982,24 @@ "source_file": "src/Anichron.API.Tests.Unit/Services/BootstrapSeederTests.cs", "source_location": "L51" }, + { + "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_testfixture_createtestee", + "label": ".CreateTestee()", + "_callable": true, + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s308" + ] + }, + "norm_label": ".createtestee()", + "source_file": "src/Anichron.API.Tests.Unit/Services/BootstrapSeederTests.cs", + "source_location": "L57" + }, { "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_testfixture_withconfig", "label": ".WithConfig()", @@ -8940,7 +9082,7 @@ "_callable": true, "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "metadata": { "namespace": "Anichron.Core.Migrations", @@ -8972,7 +9114,7 @@ "_callable": true, "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "metadata": { "namespace": "Anichron.Core.Migrations", @@ -9016,7 +9158,7 @@ "_callable": true, "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "metadata": { "namespace": "Anichron.Core.Migrations", @@ -9054,7 +9196,7 @@ "_callable": true, "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "metadata": { "namespace": "Anichron.Core.Migrations", @@ -9086,7 +9228,7 @@ "_callable": true, "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "metadata": { "namespace": "Anichron.Core.Migrations", @@ -9118,7 +9260,7 @@ "_callable": true, "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "metadata": { "namespace": "Anichron.Core.Migrations", @@ -9980,19 +10122,19 @@ "callee": "GetBytes", "receiver_type": "RandomNumberGenerator", "lang": "csharp", - "line": "L18" + "line": "L22" }, { "callee": "ToBase64String", "receiver_type": "Convert", "lang": "csharp", - "line": "L24" + "line": "L28" } ] }, "norm_label": ".hash()", "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L16" + "source_location": "L20" }, { "id": "src_anichron_api_security_passwordhasher_anichron_api_security_argon2passwordhasher_runargon2id", @@ -10012,13 +10154,13 @@ "callee": "GetBytes", "receiver_type": "Argon2id", "lang": "csharp", - "line": "L58" + "line": "L83" } ] }, "norm_label": ".runargon2id()", "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L49" + "source_location": "L74" }, { "id": "src_anichron_api_security_passwordhasher_anichron_api_security_argon2passwordhasher_runargon2idsecure", @@ -10038,13 +10180,13 @@ "callee": "ZeroMemory", "receiver_type": "CryptographicOperations", "lang": "csharp", - "line": "L45" + "line": "L70" } ] }, "norm_label": ".runargon2idsecure()", "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L36" + "source_location": "L61" }, { "id": "src_anichron_api_security_passwordhasher_anichron_api_security_argon2passwordhasher_verify", @@ -10060,23 +10202,35 @@ "s124" ], "unresolved_calls": [ + { + "callee": "GetBytes", + "receiver_type": "RandomNumberGenerator", + "lang": "csharp", + "line": "L49" + }, + { + "callee": "ZeroMemory", + "receiver_type": "CryptographicOperations", + "lang": "csharp", + "line": "L50" + }, { "callee": "FromBase64String", "receiver_type": "Convert", "lang": "csharp", - "line": "L29" + "line": "L54" }, { "callee": "FixedTimeEquals", "receiver_type": "CryptographicOperations", "lang": "csharp", - "line": "L33" + "line": "L58" } ] }, "norm_label": ".verify()", "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L27" + "source_location": "L31" }, { "id": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_hash_samepassword_producesdifferenthashes", @@ -10089,12 +10243,12 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Security", "scope_chain": [ - "s30" + "s56" ] }, "norm_label": ".hash_samepassword_producesdifferenthashes()", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L64" + "source_location": "L65" }, { "id": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_hash_validpassword_returnsbase64stringofexpectedlength", @@ -10107,12 +10261,12 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Security", "scope_chain": [ - "s30" + "s56" ] }, "norm_label": ".hash_validpassword_returnsbase64stringofexpectedlength()", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L12" + "source_location": "L13" }, { "id": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_correctpassword_returnstrue", @@ -10125,12 +10279,12 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Security", "scope_chain": [ - "s30" + "s56" ] }, "norm_label": ".verify_correctpassword_returnstrue()", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L22" + "source_location": "L23" }, { "id": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_invalidbase64storedhash_throwsformatexception", @@ -10143,12 +10297,56 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Security", "scope_chain": [ - "s30" + "s56" ] }, "norm_label": ".verify_invalidbase64storedhash_throwsformatexception()", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L44" + "source_location": "L45" + }, + { + "id": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_nullstoredhash_doesnotshortcircuit", + "label": ".Verify_NullStoredHash_DoesNotShortCircuit()", + "_callable": true, + "_origin": "ast", + "community": 112, + "community_name": "Argon2PasswordHasher", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Security", + "scope_chain": [ + "s56" + ], + "unresolved_calls": [ + { + "callee": "StartNew", + "receiver_type": "Stopwatch", + "lang": "csharp", + "line": "L123" + } + ] + }, + "norm_label": ".verify_nullstoredhash_doesnotshortcircuit()", + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L118" + }, + { + "id": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_nullstoredhash_returnsfalse", + "label": ".Verify_NullStoredHash_ReturnsFalse()", + "_callable": true, + "_origin": "ast", + "community": 112, + "community_name": "Argon2PasswordHasher", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Security", + "scope_chain": [ + "s56" + ] + }, + "norm_label": ".verify_nullstoredhash_returnsfalse()", + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L103" }, { "id": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_tamperedstoredhash_returnsfalse", @@ -10161,12 +10359,12 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Security", "scope_chain": [ - "s30" + "s56" ] }, "norm_label": ".verify_tamperedstoredhash_returnsfalse()", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L75" + "source_location": "L76" }, { "id": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_truncatedstoredhash_throwsexception", @@ -10179,12 +10377,12 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Security", "scope_chain": [ - "s30" + "s56" ] }, "norm_label": ".verify_truncatedstoredhash_throwsexception()", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L54" + "source_location": "L55" }, { "id": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_wrongpassword_returnsfalse", @@ -10197,12 +10395,38 @@ "metadata": { "namespace": "Anichron.API.Tests.Unit.Security", "scope_chain": [ - "s30" + "s56" ] }, "norm_label": ".verify_wrongpassword_returnsfalse()", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L32" + "source_location": "L33" + }, + { + "id": "src_anichron_core_data_anichrondbcontext_anichron_core_data_anichrondbcontext_executeintransactionasync", + "label": ".ExecuteInTransactionAsync()", + "_callable": true, + "_origin": "ast", + "community": 113, + "community_name": "AnichronDbContext", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data", + "scope_chain": [ + "s69" + ], + "unresolved_calls": [ + { + "callee": "BeginTransactionAsync", + "receiver_type": "Database", + "lang": "csharp", + "line": "L20" + } + ] + }, + "norm_label": ".executeintransactionasync()", + "source_file": "src/Anichron.Core/Data/AnichronDbContext.cs", + "source_location": "L18" }, { "id": "src_anichron_core_data_anichrondbcontext_anichron_core_data_anichrondbcontext_onmodelcreating", @@ -10615,190 +10839,154 @@ "source_location": "L7" }, { - "id": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_hash", - "label": ".Hash()", - "_callable": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Security", - "scope_chain": [ - "s124" - ] - }, - "norm_label": ".hash()", - "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L10" - }, - { - "id": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_verify", - "label": ".Verify()", + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_authresponsemapper_getadminresetpasswordresult", + "label": ".GetAdminResetPasswordResult()", "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Security", + "namespace": "Anichron.API.Endpoints", "scope_chain": [ - "s124" + "s195" + ], + "unresolved_calls": [ + { + "callee": "NotFound", + "receiver_type": "Results", + "lang": "csharp", + "line": "L137" + }, + { + "callee": "Ok", + "receiver_type": "Results", + "lang": "csharp", + "line": "L138" + } ] }, - "norm_label": ".verify()", - "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L11" + "norm_label": ".getadminresetpasswordresult()", + "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", + "source_location": "L135" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_deleteasync", - "label": ".DeleteAsync()", + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadminresetpasswordresult", + "label": ".GetAdminResetPasswordResult()", "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Endpoints", "scope_chain": [ - "s92" - ], - "unresolved_calls": [ - { - "callee": "GetCurrentInstant", - "receiver_type": "IClock", - "lang": "csharp", - "line": "L74" - } + "s195" ] }, - "norm_label": ".deleteasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L60" + "norm_label": ".getadminresetpasswordresult()", + "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", + "source_location": "L17" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_getallasync", - "label": ".GetAllAsync()", + "id": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_hash", + "label": ".Hash()", "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Security", "scope_chain": [ - "s92" + "s124" ] }, - "norm_label": ".getallasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L21" + "norm_label": ".hash()", + "source_file": "src/Anichron.API/Security/PasswordHasher.cs", + "source_location": "L10" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_getbyidasync", - "label": ".GetByIdAsync()", + "id": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_verify", + "label": ".Verify()", "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Security", "scope_chain": [ - "s92" + "s124" ] }, - "norm_label": ".getbyidasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L24" + "norm_label": ".verify()", + "source_file": "src/Anichron.API/Security/PasswordHasher.cs", + "source_location": "L15" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_updateasync", - "label": ".UpdateAsync()", + "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminresetservice_resetuserpasswordasync", + "label": ".ResetUserPasswordAsync()", "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s92" + "s129" ], "unresolved_calls": [ + { + "callee": "ToBase64String", + "receiver_type": "Convert", + "lang": "csharp", + "line": "L28" + }, + { + "callee": "GetBytes", + "receiver_type": "RandomNumberGenerator", + "lang": "csharp", + "line": "L28" + }, { "callee": "GetCurrentInstant", "receiver_type": "IClock", "lang": "csharp", - "line": "L52" + "line": "L31" } ] }, - "norm_label": ".updateasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L27" + "norm_label": ".resetuserpasswordasync()", + "source_file": "src/Anichron.API/Services/AdminResetService.cs", + "source_location": "L22" }, { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_deleteasync", - "label": ".DeleteAsync()", + "id": "src_anichron_api_services_adminresetservice_anichron_api_services_iadminresetservice_resetuserpasswordasync", + "label": ".ResetUserPasswordAsync()", "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", "scope_chain": [ - "s92" + "s129" ] }, - "norm_label": ".deleteasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "norm_label": ".resetuserpasswordasync()", + "source_file": "src/Anichron.API/Services/AdminResetService.cs", "source_location": "L12" }, - { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_getallasync", - "label": ".GetAllAsync()", - "_callable": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s92" - ] - }, - "norm_label": ".getallasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L9" - }, - { - "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_getbyidasync", - "label": ".GetByIdAsync()", - "_callable": true, - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s92" - ] - }, - "norm_label": ".getbyidasync()", - "source_file": "src/Anichron.API/Services/AdminUserService.cs", - "source_location": "L10" - }, { "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_admincreateuserasync", "label": ".AdminCreateUserAsync()", "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -10810,25 +10998,25 @@ "callee": "ThrowIfNull", "receiver_type": "ArgumentNullException", "lang": "csharp", - "line": "L202" + "line": "L208" }, { "callee": "ToBase64String", "receiver_type": "Convert", "lang": "csharp", - "line": "L218" + "line": "L224" }, { "callee": "GetBytes", "receiver_type": "RandomNumberGenerator", "lang": "csharp", - "line": "L218" + "line": "L224" } ] }, "norm_label": ".admincreateuserasync()", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L200" + "source_location": "L206" }, { "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_changepasswordasync", @@ -10836,7 +11024,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -10848,19 +11036,19 @@ "callee": "ThrowIfNull", "receiver_type": "ArgumentNullException", "lang": "csharp", - "line": "L177" + "line": "L183" }, { "callee": "GetCurrentInstant", "receiver_type": "IClock", "lang": "csharp", - "line": "L192" + "line": "L198" } ] }, "norm_label": ".changepasswordasync()", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L175" + "source_location": "L181" }, { "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_detectconstrainterror", @@ -10868,7 +11056,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -10878,7 +11066,7 @@ }, "norm_label": ".detectconstrainterror()", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L243" + "source_location": "L249" }, { "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_hashinvitetoken", @@ -10886,7 +11074,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -10898,19 +11086,19 @@ "callee": "ToBase64String", "receiver_type": "Convert", "lang": "csharp", - "line": "L123" + "line": "L121" }, { "callee": "HashData", "receiver_type": "SHA256", "lang": "csharp", - "line": "L123" + "line": "L121" } ] }, "norm_label": ".hashinvitetoken()", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L122" + "source_location": "L120" }, { "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_loginasync", @@ -10918,7 +11106,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -10930,31 +11118,31 @@ "callee": "ThrowIfNull", "receiver_type": "ArgumentNullException", "lang": "csharp", - "line": "L127" + "line": "L125" }, { "callee": "GetCurrentInstant", "receiver_type": "IClock", "lang": "csharp", - "line": "L136" + "line": "L142" }, { "callee": "Ceiling", "receiver_type": "Math", "lang": "csharp", - "line": "L152" + "line": "L158" }, { "callee": "Max", "receiver_type": "Math", "lang": "csharp", - "line": "L153" + "line": "L159" } ] }, "norm_label": ".loginasync()", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L125" + "source_location": "L123" }, { "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_refreshasync", @@ -10962,7 +11150,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -10972,7 +11160,7 @@ }, "norm_label": ".refreshasync()", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L169" + "source_location": "L175" }, { "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_registerasync", @@ -10980,7 +11168,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -10992,19 +11180,19 @@ "callee": "ThrowIfNull", "receiver_type": "ArgumentNullException", "lang": "csharp", - "line": "L69" + "line": "L67" }, { "callee": "GetCurrentInstant", "receiver_type": "IClock", "lang": "csharp", - "line": "L74" + "line": "L72" } ] }, "norm_label": ".registerasync()", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L67" + "source_location": "L65" }, { "id": "src_anichron_api_services_authservice_anichron_api_services_authservice_revokeasync", @@ -11012,7 +11200,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -11022,7 +11210,7 @@ }, "norm_label": ".revokeasync()", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L172" + "source_location": "L178" }, { "id": "src_anichron_api_services_authservice_anichron_api_services_iauthservice_admincreateuserasync", @@ -11030,7 +11218,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -11048,7 +11236,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -11066,7 +11254,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -11084,7 +11272,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -11102,7 +11290,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -11120,7 +11308,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -11133,22 +11321,22 @@ "source_location": "L48" }, { - "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture_createtestee", + "id": "src_anichron_api_tests_unit_services_adminresetservicetests_anichron_api_tests_unit_services_testfixture_createtestee", "label": ".CreateTestee()", "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s160" + "s150" ] }, "norm_label": ".createtestee()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", - "source_location": "L59" + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminResetServiceTests.cs", + "source_location": "L28" }, { "id": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork_executeintransactionasync", @@ -11156,7 +11344,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.Core.Data", @@ -11174,7 +11362,7 @@ "_callable": true, "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "metadata": { "namespace": "Anichron.Core.Data", @@ -11187,66 +11375,22 @@ "source_location": "L5" }, { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_beginscope", - "label": ".BeginScope()", - "_callable": true, - "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Maintenance", - "scope_chain": [ - "s241" - ] - }, - "norm_label": ".beginscope()", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L97" - }, - { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_isenabled", - "label": ".IsEnabled()", - "_callable": true, - "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Maintenance", - "scope_chain": [ - "s241" - ] - }, - "norm_label": ".isenabled()", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L96" - }, - { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_log", - "label": ".Log()", + "id": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_iuserrepository_add", + "label": ".Add()", "_callable": true, "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", + "community": 12, + "community_name": "AuthService", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Maintenance", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s241" - ], - "unresolved_calls": [ - { - "callee": "Add", - "receiver_type": "List", - "lang": "csharp", - "line": "L94" - } + "s66" ] }, - "norm_label": ".log()", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L93" + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/UserRepository.cs", + "source_location": "L17" }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_runcleanupasync_callsdeleteexpiredwithcurrentinstantasync", @@ -11254,7 +11398,7 @@ "_callable": true, "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -11280,7 +11424,7 @@ "_callable": true, "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -11312,7 +11456,7 @@ "_callable": true, "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -11332,6 +11476,24 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", "source_location": "L75" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests_anichron_worker_tests_unit_ingestion_exifdatatests_empty_hasallzeroandnullfields", + "label": ".Empty_HasAllZeroAndNullFields()", + "_callable": true, + "_origin": "ast", + "community": 121, + "community_name": "Anichron.Worker.Ingestion.Pipeline", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion", + "scope_chain": [ + "s34" + ] + }, + "norm_label": ".empty_hasallzeroandnullfields()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", + "source_location": "L7" + }, { "id": "src_anichron_worker_maintenance_tokencleanupservice_anichron_worker_maintenance_log_cleanupfailed", "label": ".CleanupFailed()", @@ -11464,24 +11626,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", "source_location": "L36" }, - { - "id": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_efuserrepository_add", - "label": ".Add()", - "_callable": true, - "_origin": "ast", - "community": 14, - "community_name": "User", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".add()", - "source_file": "src/Anichron.Core/Data/Repository/UserRepository.cs", - "source_location": "L51" - }, { "id": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_efuserrepository_anyasync", "label": ".AnyAsync()", @@ -11662,24 +11806,6 @@ "source_file": "src/Anichron.Core/Data/Repository/UserRepository.cs", "source_location": "L54" }, - { - "id": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_iuserrepository_add", - "label": ".Add()", - "_callable": true, - "_origin": "ast", - "community": 14, - "community_name": "User", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".add()", - "source_file": "src/Anichron.Core/Data/Repository/UserRepository.cs", - "source_location": "L17" - }, { "id": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_iuserrepository_anyasync", "label": ".AnyAsync()", @@ -12794,6 +12920,24 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ImageProxyGeneratorsTests.cs", "source_location": "L20" }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_add", + "label": ".Add()", + "_callable": true, + "_origin": "ast", + "community": 154, + "community_name": "EfRefreshTokenRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L23" + }, { "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_findbyhashasync", "label": ".FindByHashAsync()", @@ -12986,159 +13130,13 @@ "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/RefreshTokenRepositoryTests.cs", "source_location": "L21" }, - { - "id": "src_anichron_worker_ingestion_pipeline_ingestioncontext_anichron_worker_ingestion_pipeline_ingestioncontext_addproxyfile", - "label": ".AddProxyFile()", - "_callable": true, - "_origin": "ast", - "community": 158, - "community_name": "ProxyFile", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Pipeline", - "scope_chain": [ - "s29" - ], - "unresolved_calls": [ - { - "callee": "Add", - "receiver_type": "List", - "lang": "csharp", - "line": "L35" - } - ] - }, - "norm_label": ".addproxyfile()", - "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IngestionContext.cs", - "source_location": "L32" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_cancellingmiddleware_invokeasync", - "label": ".InvokeAsync()", - "_callable": true, - "_origin": "ast", - "community": 158, - "community_name": "ProxyFile", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", - "scope_chain": [ - "s368" - ], - "unresolved_calls": [ - { - "callee": "CancelAsync", - "receiver_type": "CancellationTokenSource", - "lang": "csharp", - "line": "L359" - }, - { - "callee": "ThrowIfCancellationRequested", - "receiver_type": "CancellationToken", - "lang": "csharp", - "line": "L360" - } - ] - }, - "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L356" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxydirectorycreatingmiddleware_invokeasync", - "label": ".InvokeAsync()", - "_callable": true, - "_origin": "ast", - "community": 158, - "community_name": "ProxyFile", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", - "scope_chain": [ - "s368" - ] - }, - "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L332" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxywritingmiddleware_invokeasync", - "label": ".InvokeAsync()", - "_callable": true, - "_origin": "ast", - "community": 158, - "community_name": "ProxyFile", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", - "scope_chain": [ - "s368" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L315" - } - ] - }, - "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L306" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_stubmiddleware_invokeasync", - "label": ".InvokeAsync()", - "_callable": true, - "_origin": "ast", - "community": 158, - "community_name": "ProxyFile", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", - "scope_chain": [ - "s368" - ], - "unresolved_calls": [ - { - "callee": "Add", - "receiver_type": "List", - "lang": "csharp", - "line": "L293" - } - ] - }, - "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L291" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_throwingmiddleware_invokeasync", - "label": ".InvokeAsync()", - "_callable": true, - "_origin": "ast", - "community": 158, - "community_name": "ProxyFile", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", - "scope_chain": [ - "s368" - ] - }, - "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L344" - }, { "id": "src_anichron_worker_startup_databasemigratorservice_anichron_worker_startup_databasemigratorservice_startasync", "label": ".StartAsync()", "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Startup", @@ -13170,7 +13168,7 @@ "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Startup", @@ -13188,7 +13186,7 @@ "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Startup", @@ -13206,7 +13204,7 @@ "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Startup", @@ -13224,7 +13222,7 @@ "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Startup", @@ -13236,117 +13234,13 @@ "source_file": "src/Anichron.Worker/Startup/DatabaseMigratorService.cs", "source_location": "L42" }, - { - "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_log_allusermode", - "label": ".AllUserMode()", - "_callable": true, - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Startup", - "scope_chain": [ - "s192" - ] - }, - "norm_label": ".allusermode()", - "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", - "source_location": "L67" - }, - { - "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_log_storageconfigcreated", - "label": ".StorageConfigCreated()", - "_callable": true, - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Startup", - "scope_chain": [ - "s192" - ] - }, - "norm_label": ".storageconfigcreated()", - "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", - "source_location": "L73" - }, - { - "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_log_storageconfigexists", - "label": ".StorageConfigExists()", - "_callable": true, - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Startup", - "scope_chain": [ - "s192" - ] - }, - "norm_label": ".storageconfigexists()", - "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", - "source_location": "L70" - }, - { - "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_workerinitializer_startasync", - "label": ".StartAsync()", - "_callable": true, - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Startup", - "scope_chain": [ - "s192" - ], - "unresolved_calls": [ - { - "callee": "CreateAsyncScope", - "receiver_type": "IServiceScopeFactory", - "lang": "csharp", - "line": "L26" - }, - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L52" - } - ] - }, - "norm_label": ".startasync()", - "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", - "source_location": "L18" - }, - { - "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_workerinitializer_stopasync", - "label": ".StopAsync()", - "_callable": true, - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Startup", - "scope_chain": [ - "s192" - ] - }, - "norm_label": ".stopasync()", - "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", - "source_location": "L63" - }, { "id": "src_anichron_worker_tests_unit_startup_databasemigratorservicetests_anichron_worker_tests_unit_startup_databasemigratorservicetests_startasync_allattemptsexhausted_migratecalledmaxattemptstimesasync", "label": ".StartAsync_AllAttemptsExhausted_MigrateCalledMaxAttemptsTimesAsync()", "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Startup", @@ -13378,7 +13272,7 @@ "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Startup", @@ -13410,7 +13304,7 @@ "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Startup", @@ -13436,7 +13330,7 @@ "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Startup", @@ -13462,7 +13356,7 @@ "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Startup", @@ -13488,7 +13382,7 @@ "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Startup", @@ -13506,7 +13400,7 @@ "_callable": true, "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Startup", @@ -13674,62 +13568,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", "source_location": "L69" }, - { - "id": "src_anichron_api_security_jwtfactory_anichron_api_security_ijwtfactory_create", - "label": ".Create()", - "_callable": true, - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Security", - "scope_chain": [ - "s220" - ] - }, - "norm_label": ".create()", - "source_file": "src/Anichron.API/Security/JwtFactory.cs", - "source_location": "L13" - }, - { - "id": "src_anichron_api_security_jwtfactory_anichron_api_security_jwtfactory_create", - "label": ".Create()", - "_callable": true, - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Security", - "scope_chain": [ - "s220" - ], - "unresolved_calls": [ - { - "callee": "Add", - "receiver_type": "List", - "lang": "csharp", - "line": "L44" - }, - { - "callee": "GetCurrentInstant", - "receiver_type": "IClock", - "lang": "csharp", - "line": "L53" - }, - { - "callee": "WriteToken", - "receiver_type": "JwtSecurityTokenHandler", - "lang": "csharp", - "line": "L56" - } - ] - }, - "norm_label": ".create()", - "source_file": "src/Anichron.API/Security/JwtFactory.cs", - "source_location": "L34" - }, { "id": "src_anichron_api_tests_unit_security_jwtfactorytests_anichron_api_tests_unit_security_jwtfactorytests_create_adminuser_includesisadminclaim", "label": ".Create_AdminUser_IncludesIsAdminClaim()", @@ -14123,94 +13961,60 @@ "source_location": "L37" }, { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_bootstrapseeder_seedasync", - "label": ".SeedAsync()", - "_callable": true, - "_origin": "ast", - "community": 184, - "community_name": "BootstrapSeeder", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s201" - ] - }, - "norm_label": ".seedasync()", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L24" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_ibootstrapseeder_seedasync", - "label": ".SeedAsync()", + "id": "src_anichron_api_security_jwtfactory_anichron_api_security_ijwtfactory_create", + "label": ".Create()", "_callable": true, "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Security", "scope_chain": [ - "s201" + "s220" ] }, - "norm_label": ".seedasync()", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", + "norm_label": ".create()", + "source_file": "src/Anichron.API/Security/JwtFactory.cs", "source_location": "L13" }, { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log_bootstrapadminalreadyexists", - "label": ".BootstrapAdminAlreadyExists()", - "_callable": true, - "_origin": "ast", - "community": 184, - "community_name": "BootstrapSeeder", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s201" - ] - }, - "norm_label": ".bootstrapadminalreadyexists()", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L62" - }, - { - "id": "src_anichron_api_services_bootstrapseeder_anichron_api_services_log_creatingbootstrapadmin", - "label": ".CreatingBootstrapAdmin()", - "_callable": true, - "_origin": "ast", - "community": 184, - "community_name": "BootstrapSeeder", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s201" - ] - }, - "norm_label": ".creatingbootstrapadmin()", - "source_file": "src/Anichron.API/Services/BootstrapSeeder.cs", - "source_location": "L59" - }, - { - "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_testfixture_createtestee", - "label": ".CreateTestee()", + "id": "src_anichron_api_security_jwtfactory_anichron_api_security_jwtfactory_create", + "label": ".Create()", "_callable": true, "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", + "namespace": "Anichron.API.Security", "scope_chain": [ - "s308" + "s220" + ], + "unresolved_calls": [ + { + "callee": "Add", + "receiver_type": "List", + "lang": "csharp", + "line": "L44" + }, + { + "callee": "GetCurrentInstant", + "receiver_type": "IClock", + "lang": "csharp", + "line": "L53" + }, + { + "callee": "WriteToken", + "receiver_type": "JwtSecurityTokenHandler", + "lang": "csharp", + "line": "L56" + } ] }, - "norm_label": ".createtestee()", - "source_file": "src/Anichron.API.Tests.Unit/Services/BootstrapSeederTests.cs", - "source_location": "L57" + "norm_label": ".create()", + "source_file": "src/Anichron.API/Security/JwtFactory.cs", + "source_location": "L34" }, { "id": "src_anichron_api_endpoints_adminendpoints_anichron_api_endpoints_adminendpoints_createstorageconfigasync", @@ -14440,6 +14244,24 @@ "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", "source_location": "L41" }, + { + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmingetuserresult", + "label": ".GetAdminGetUserResult()", + "_callable": true, + "_origin": "ast", + "community": 19, + "community_name": "IAuthResponseMapper", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Endpoints", + "scope_chain": [ + "s195" + ] + }, + "norm_label": ".getadmingetuserresult()", + "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", + "source_location": "L19" + }, { "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_updateasync", "label": ".UpdateAsync()", @@ -14458,6 +14280,138 @@ "source_file": "src/Anichron.API/Services/AdminUserService.cs", "source_location": "L11" }, + { + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_createuserasync_callsmapperwithserviceresult", + "label": ".CreateUserAsync_CallsMapperWithServiceResult()", + "_callable": true, + "_origin": "ast", + "community": 19, + "community_name": "IAuthResponseMapper", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Endpoints", + "scope_chain": [ + "s93" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L18" + }, + { + "callee": "Created", + "receiver_type": "Results", + "lang": "csharp", + "line": "L20" + }, + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L21" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L23" + } + ] + }, + "norm_label": ".createuserasync_callsmapperwithserviceresult()", + "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", + "source_location": "L15" + }, + { + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_createuserasync_callsservicewithrequestvalues", + "label": ".CreateUserAsync_CallsServiceWithRequestValues()", + "_callable": true, + "_origin": "ast", + "community": 19, + "community_name": "IAuthResponseMapper", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Endpoints", + "scope_chain": [ + "s93" + ], + "unresolved_calls": [ + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L36" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L38" + }, + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L39" + }, + { + "callee": "Created", + "receiver_type": "Results", + "lang": "csharp", + "line": "L41" + } + ] + }, + "norm_label": ".createuserasync_callsservicewithrequestvalues()", + "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", + "source_location": "L33" + }, + { + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_resetuserpasswordasync_callsservicewithuseridandpassesresulttomapper", + "label": ".ResetUserPasswordAsync_CallsServiceWithUserIdAndPassesResultToMapper()", + "_callable": true, + "_origin": "ast", + "community": 19, + "community_name": "IAuthResponseMapper", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Endpoints", + "scope_chain": [ + "s93" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L56" + }, + { + "callee": "Ok", + "receiver_type": "Results", + "lang": "csharp", + "line": "L58" + }, + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L59" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L61" + } + ] + }, + "norm_label": ".resetuserpasswordasync_callsservicewithuseridandpassesresulttomapper()", + "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", + "source_location": "L53" + }, { "id": "src_anichron_api_tests_unit_endpoints_adminstorageconfigendpointstests_anichron_api_tests_unit_endpoints_adminstorageconfigendpointstests_createstorageconfigasync_callsservicewithuseridandrootpathandreturnsmapperresult", "label": ".CreateStorageConfigAsync_CallsServiceWithUserIdAndRootPathAndReturnsMapperResult()", @@ -14968,6 +14922,44 @@ "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", "source_location": "L172" }, + { + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_authresponsemapper_getadmincreateuserresult", + "label": ".GetAdminCreateUserResult()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "AuthResult", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Endpoints", + "scope_chain": [ + "s195" + ], + "unresolved_calls": [ + { + "callee": "UnprocessableEntity", + "receiver_type": "Results", + "lang": "csharp", + "line": "L121" + }, + { + "callee": "Conflict", + "receiver_type": "Results", + "lang": "csharp", + "line": "L123" + }, + { + "callee": "Created", + "receiver_type": "Results", + "lang": "csharp", + "line": "L131" + } + ] + }, + "norm_label": ".getadmincreateuserresult()", + "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", + "source_location": "L115" + }, { "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_authresponsemapper_getadmindeletestorageconfigresult", "label": ".GetAdminDeleteStorageConfigResult()", @@ -15419,8 +15411,8 @@ "source_location": "L23" }, { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmindeletestorageconfigresult", - "label": ".GetAdminDeleteStorageConfigResult()", + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmincreateuserresult", + "label": ".GetAdminCreateUserResult()", "_callable": true, "_origin": "ast", "community": 2, @@ -15432,13 +15424,13 @@ "s195" ] }, - "norm_label": ".getadmindeletestorageconfigresult()", + "norm_label": ".getadmincreateuserresult()", "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L24" + "source_location": "L16" }, { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmindeleteuserresult", - "label": ".GetAdminDeleteUserResult()", + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmindeletestorageconfigresult", + "label": ".GetAdminDeleteStorageConfigResult()", "_callable": true, "_origin": "ast", "community": 2, @@ -15450,13 +15442,13 @@ "s195" ] }, - "norm_label": ".getadmindeleteuserresult()", + "norm_label": ".getadmindeletestorageconfigresult()", "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L21" + "source_location": "L24" }, { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmingetstorageconfigsresult", - "label": ".GetAdminGetStorageConfigsResult()", + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmindeleteuserresult", + "label": ".GetAdminDeleteUserResult()", "_callable": true, "_origin": "ast", "community": 2, @@ -15468,13 +15460,13 @@ "s195" ] }, - "norm_label": ".getadmingetstorageconfigsresult()", + "norm_label": ".getadmindeleteuserresult()", "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L22" + "source_location": "L21" }, { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmingetuserresult", - "label": ".GetAdminGetUserResult()", + "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmingetstorageconfigsresult", + "label": ".GetAdminGetStorageConfigsResult()", "_callable": true, "_origin": "ast", "community": 2, @@ -15486,9 +15478,9 @@ "s195" ] }, - "norm_label": ".getadmingetuserresult()", + "norm_label": ".getadmingetstorageconfigsresult()", "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L19" + "source_location": "L22" }, { "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmingetusersresult", @@ -16790,6 +16782,190 @@ "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthEndpointsTests.cs", "source_location": "L49" }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_islockedout", + "label": ".IsLockedOut()", + "_callable": true, + "_origin": "ast", + "community": 224, + "community_name": "LockoutService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".islockedout()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L9" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_preparereset", + "label": ".PrepareReset()", + "_callable": true, + "_origin": "ast", + "community": 224, + "community_name": "LockoutService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".preparereset()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L12" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_recordfailedattemptasync", + "label": ".RecordFailedAttemptAsync()", + "_callable": true, + "_origin": "ast", + "community": 224, + "community_name": "LockoutService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".recordfailedattemptasync()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L10" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_computebackoffseconds", + "label": ".ComputeBackoffSeconds()", + "_callable": true, + "_origin": "ast", + "community": 224, + "community_name": "LockoutService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ], + "unresolved_calls": [ + { + "callee": "Pow", + "receiver_type": "Math", + "lang": "csharp", + "line": "L39" + } + ] + }, + "norm_label": ".computebackoffseconds()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L35" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_islockedout", + "label": ".IsLockedOut()", + "_callable": true, + "_origin": "ast", + "community": 224, + "community_name": "LockoutService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".islockedout()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L17" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_preparereset", + "label": ".PrepareReset()", + "_callable": true, + "_origin": "ast", + "community": 224, + "community_name": "LockoutService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".preparereset()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L29" + }, + { + "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_recordfailedattemptasync", + "label": ".RecordFailedAttemptAsync()", + "_callable": true, + "_origin": "ast", + "community": 224, + "community_name": "LockoutService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s84" + ], + "unresolved_calls": [ + { + "callee": "Plus", + "receiver_type": "Instant", + "lang": "csharp", + "line": "L25" + }, + { + "callee": "FromSeconds", + "receiver_type": "Duration", + "lang": "csharp", + "line": "L25" + } + ] + }, + "norm_label": ".recordfailedattemptasync()", + "source_file": "src/Anichron.API/Services/LockoutService.cs", + "source_location": "L20" + }, + { + "id": "src_anichron_api_tests_unit_services_lockoutservicetests_anichron_api_tests_unit_services_lockoutservicetests_computebackoffseconds_returnsexpectedseconds", + "label": ".ComputeBackoffSeconds_ReturnsExpectedSeconds()", + "_callable": true, + "_origin": "ast", + "community": 224, + "community_name": "LockoutService", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".computebackoffseconds_returnsexpectedseconds()", + "source_file": "src/Anichron.API.Tests.Unit/Services/LockoutServiceTests.cs", + "source_location": "L154" + }, + { + "id": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_efuserrepository_add", + "label": ".Add()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "EfUserRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/UserRepository.cs", + "source_location": "L51" + }, { "id": "src_anichron_core_tests_unit_data_repository_userrepositorytests_anichron_core_tests_unit_data_repository_userrepositorytests_add_addsusertocontext", "label": ".Add_AddsUserToContext()", @@ -17307,8 +17483,8 @@ "source_location": "L360" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_add", - "label": ".Add()", + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_deleteexpiredasync", + "label": ".DeleteExpiredAsync()", "_callable": true, "_origin": "ast", "community": 231, @@ -17320,9 +17496,45 @@ "s66" ] }, - "norm_label": ".add()", + "norm_label": ".deleteexpiredasync()", "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L23" + "source_location": "L31" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_findbyhashwithuserasync", + "label": ".FindByHashWithUserAsync()", + "_callable": true, + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".findbyhashwithuserasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L17" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_revokeallactivebyuseridasync", + "label": ".RevokeAllActiveByUserIdAsync()", + "_callable": true, + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".revokeallactivebyuseridasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L26" }, { "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_add", @@ -17342,6 +17554,78 @@ "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", "source_location": "L10" }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_deleteexpiredasync", + "label": ".DeleteExpiredAsync()", + "_callable": true, + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".deleteexpiredasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L12" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_findbyhashasync", + "label": ".FindByHashAsync()", + "_callable": true, + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".findbyhashasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L9" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_findbyhashwithuserasync", + "label": ".FindByHashWithUserAsync()", + "_callable": true, + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".findbyhashwithuserasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L8" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_revokeallactivebyuseridasync", + "label": ".RevokeAllActiveByUserIdAsync()", + "_callable": true, + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".revokeallactivebyuseridasync()", + "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "source_location": "L11" + }, { "id": "src_anichron_api_infrastructure_mustchangepasswordmiddleware_anichron_api_infrastructure_mustchangepasswordmiddleware_invokeasync", "label": ".InvokeAsync()", @@ -17631,130 +17915,164 @@ "source_location": "L24" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_deleteexpiredasync", - "label": ".DeleteExpiredAsync()", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_deleteasync", + "label": ".DeleteAsync()", "_callable": true, "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s92" + ], + "unresolved_calls": [ + { + "callee": "GetCurrentInstant", + "receiver_type": "IClock", + "lang": "csharp", + "line": "L74" + } ] }, - "norm_label": ".deleteexpiredasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L31" + "norm_label": ".deleteasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L60" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_findbyhashwithuserasync", - "label": ".FindByHashWithUserAsync()", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_getallasync", + "label": ".GetAllAsync()", "_callable": true, "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s92" ] }, - "norm_label": ".findbyhashwithuserasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L17" + "norm_label": ".getallasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L21" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_efrefreshtokenrepository_revokeallactivebyuseridasync", - "label": ".RevokeAllActiveByUserIdAsync()", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_getbyidasync", + "label": ".GetByIdAsync()", "_callable": true, "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s92" ] }, - "norm_label": ".revokeallactivebyuseridasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L26" + "norm_label": ".getbyidasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L24" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_deleteexpiredasync", - "label": ".DeleteExpiredAsync()", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_adminuserservice_updateasync", + "label": ".UpdateAsync()", "_callable": true, "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s92" + ], + "unresolved_calls": [ + { + "callee": "GetCurrentInstant", + "receiver_type": "IClock", + "lang": "csharp", + "line": "L52" + } ] }, - "norm_label": ".deleteexpiredasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "norm_label": ".updateasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L27" + }, + { + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_deleteasync", + "label": ".DeleteAsync()", + "_callable": true, + "_origin": "ast", + "community": 240, + "community_name": ".DeleteAsync", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Services", + "scope_chain": [ + "s92" + ] + }, + "norm_label": ".deleteasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", "source_location": "L12" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_findbyhashasync", - "label": ".FindByHashAsync()", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_getallasync", + "label": ".GetAllAsync()", "_callable": true, "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s92" ] }, - "norm_label": ".findbyhashasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", + "norm_label": ".getallasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", "source_location": "L9" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_findbyhashwithuserasync", - "label": ".FindByHashWithUserAsync()", + "id": "src_anichron_api_services_adminuserservice_anichron_api_services_iadminuserservice_getbyidasync", + "label": ".GetByIdAsync()", "_callable": true, "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Services", "scope_chain": [ - "s66" + "s92" ] }, - "norm_label": ".findbyhashwithuserasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L8" + "norm_label": ".getbyidasync()", + "source_file": "src/Anichron.API/Services/AdminUserService.cs", + "source_location": "L10" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_anichron_core_data_repository_irefreshtokenrepository_revokeallactivebyuseridasync", - "label": ".RevokeAllActiveByUserIdAsync()", + "id": "src_anichron_api_tests_unit_services_adminuserservicetests_anichron_api_tests_unit_services_testfixture_createtestee", + "label": ".CreateTestee()", "_callable": true, "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s66" + "s160" ] }, - "norm_label": ".revokeallactivebyuseridasync()", - "source_file": "src/Anichron.Core/Data/Repository/RefreshTokenRepository.cs", - "source_location": "L11" + "norm_label": ".createtestee()", + "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", + "source_location": "L59" }, { "id": "src_anichron_worker_ingestion_mediatypedetector_anichron_worker_ingestion_mediatypedetector_detect", @@ -18048,7 +18366,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18074,7 +18392,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18100,7 +18418,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18118,7 +18436,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18136,7 +18454,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18154,7 +18472,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18172,7 +18490,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18198,7 +18516,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18216,7 +18534,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18234,7 +18552,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18252,7 +18570,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18270,7 +18588,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18288,7 +18606,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18306,7 +18624,7 @@ "_callable": true, "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -18452,172 +18770,6 @@ "source_file": "src/Anichron.API.Tests.Unit/Services/AdminStorageConfigServiceTests.cs", "source_location": "L17" }, - { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_islockedout", - "label": ".IsLockedOut()", - "_callable": true, - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".islockedout()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L9" - }, - { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_preparereset", - "label": ".PrepareReset()", - "_callable": true, - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".preparereset()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L12" - }, - { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_ilockoutservice_recordfailedattemptasync", - "label": ".RecordFailedAttemptAsync()", - "_callable": true, - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".recordfailedattemptasync()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L10" - }, - { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_computebackoffseconds", - "label": ".ComputeBackoffSeconds()", - "_callable": true, - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "Pow", - "receiver_type": "Math", - "lang": "csharp", - "line": "L39" - } - ] - }, - "norm_label": ".computebackoffseconds()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L35" - }, - { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_islockedout", - "label": ".IsLockedOut()", - "_callable": true, - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".islockedout()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L17" - }, - { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_preparereset", - "label": ".PrepareReset()", - "_callable": true, - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".preparereset()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L29" - }, - { - "id": "src_anichron_api_services_lockoutservice_anichron_api_services_lockoutservice_recordfailedattemptasync", - "label": ".RecordFailedAttemptAsync()", - "_callable": true, - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Services", - "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "Plus", - "receiver_type": "Instant", - "lang": "csharp", - "line": "L25" - }, - { - "callee": "FromSeconds", - "receiver_type": "Duration", - "lang": "csharp", - "line": "L25" - } - ] - }, - "norm_label": ".recordfailedattemptasync()", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L20" - }, - { - "id": "src_anichron_api_tests_unit_services_lockoutservicetests_anichron_api_tests_unit_services_lockoutservicetests_computebackoffseconds_returnsexpectedseconds", - "label": ".ComputeBackoffSeconds_ReturnsExpectedSeconds()", - "_callable": true, - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".computebackoffseconds_returnsexpectedseconds()", - "source_file": "src/Anichron.API.Tests.Unit/Services/LockoutServiceTests.cs", - "source_location": "L154" - }, { "id": "src_anichron_api_tests_unit_services_lockoutservicetests_anichron_api_tests_unit_services_lockoutservicetests_islockedout_lockeduntilexactlynow_returnsfalse", "label": ".IsLockedOut_LockedUntilExactlyNow_ReturnsFalse()", @@ -19039,110 +19191,102 @@ "source_location": "L14" }, { - "id": "src_anichron_worker_crawling_fileingestionpipeline_anichron_worker_crawling_log_itemfailed", - "label": ".ItemFailed()", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_beginscope", + "label": ".BeginScope()", "_callable": true, "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", + "community": 283, + "community_name": "CapturingLogger", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Crawling", + "namespace": "Anichron.Worker.Tests.Unit.Maintenance", "scope_chain": [ - "s256" + "s241" ] }, - "norm_label": ".itemfailed()", - "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", - "source_location": "L129" + "norm_label": ".beginscope()", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L97" }, { - "id": "src_anichron_worker_crawling_fileingestionpipeline_anichron_worker_crawling_log_unsupportedfile", - "label": ".UnsupportedFile()", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_isenabled", + "label": ".IsEnabled()", "_callable": true, "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", + "community": 283, + "community_name": "CapturingLogger", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Crawling", + "namespace": "Anichron.Worker.Tests.Unit.Maintenance", "scope_chain": [ - "s256" + "s241" ] }, - "norm_label": ".unsupportedfile()", - "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", - "source_location": "L126" + "norm_label": ".isenabled()", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L96" }, { - "id": "src_anichron_core_guidfactory_anichron_core_iguidfactory_newguid", - "label": ".NewGuid()", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_log", + "label": ".Log()", "_callable": true, "_origin": "ast", "community": 283, - "community_name": "IGuidFactory", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { - "namespace": "Anichron.Core", + "namespace": "Anichron.Worker.Tests.Unit.Maintenance", "scope_chain": [ - "s0" + "s241" + ], + "unresolved_calls": [ + { + "callee": "Add", + "receiver_type": "List", + "lang": "csharp", + "line": "L94" + } ] }, - "norm_label": ".newguid()", - "source_file": "src/Anichron.Core/GuidFactory.cs", - "source_location": "L5" + "norm_label": ".log()", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L93" }, { - "id": "src_anichron_core_guidfactory_anichron_core_timeorderedguidfactory_newguid", - "label": ".NewGuid()", + "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_iingestionmiddleware_caninvoke", + "label": ".CanInvoke()", "_callable": true, "_origin": "ast", - "community": 283, - "community_name": "IGuidFactory", + "community": 288, + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { - "namespace": "Anichron.Core", + "namespace": "Anichron.Worker.Ingestion.Pipeline", "scope_chain": [ "s0" - ], - "unresolved_calls": [ - { - "callee": "CreateVersion7", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L10" - } ] }, - "norm_label": ".newguid()", - "source_file": "src/Anichron.Core/GuidFactory.cs", - "source_location": "L10" + "norm_label": ".caninvoke()", + "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", + "source_location": "L8" }, { - "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_anichron_worker_ingestion_proxy_proxyfilebuilder_build", - "label": ".Build()", + "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_iingestionmiddleware_invokeasync", + "label": ".InvokeAsync()", "_callable": true, "_origin": "ast", - "community": 283, - "community_name": "IGuidFactory", + "community": 288, + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Proxy", + "namespace": "Anichron.Worker.Ingestion.Pipeline", "scope_chain": [ - "s108" - ], - "unresolved_calls": [ - { - "callee": "GetCurrentInstant", - "receiver_type": "IClock", - "lang": "csharp", - "line": "L24" - } + "s0" ] }, - "norm_label": ".build()", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyFileBuilder.cs", - "source_location": "L10" + "norm_label": ".invokeasync()", + "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", + "source_location": "L9" }, { "id": "src_anichron_worker_ingestion_pipeline_ingestionpipelinerunner_anichron_worker_ingestion_pipeline_iingestionpipelinerunner_runasync", @@ -19150,7 +19294,7 @@ "_callable": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Pipeline", @@ -19168,7 +19312,7 @@ "_callable": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Pipeline", @@ -19186,7 +19330,7 @@ "_callable": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Pipeline", @@ -19204,7 +19348,7 @@ "_callable": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Pipeline", @@ -19222,7 +19366,7 @@ "_callable": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Pipeline", @@ -19240,7 +19384,7 @@ "_callable": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Pipeline", @@ -19258,7 +19402,7 @@ "_callable": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Pipeline", @@ -19276,7 +19420,7 @@ "_callable": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Pipeline", @@ -19294,7 +19438,7 @@ "_callable": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Pipeline", @@ -19312,7 +19456,7 @@ "_callable": true, "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Pipeline", @@ -19324,6 +19468,44 @@ "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IngestionPipelineRunner.cs", "source_location": "L137" }, + { + "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_anichron_worker_tests_unit_crawling_testfixture_buildwithmiddlewares", + "label": ".BuildWithMiddlewares()", + "_callable": true, + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Crawling", + "scope_chain": [ + "s393" + ], + "unresolved_calls": [ + { + "callee": "For", + "receiver_type": "Substitute", + "lang": "csharp", + "line": "L52" + }, + { + "callee": "Any", + "receiver_type": "Arg", + "lang": "csharp", + "line": "L53" + }, + { + "callee": "Create", + "receiver_type": "Options", + "lang": "csharp", + "line": "L59" + } + ] + }, + "norm_label": ".buildwithmiddlewares()", + "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/FileIngestionPipelineTests.cs", + "source_location": "L48" + }, { "id": "src_anichron_api_tests_unit_services_bootstrapresetservicetests_anichron_api_tests_unit_services_bootstrapresetservicetests_resetifrequestedasync_noresetpasswordconfigured_returnswithoutanydbcalls", "label": ".ResetIfRequestedAsync_NoResetPasswordConfigured_ReturnsWithoutAnyDbCalls()", @@ -19833,74 +20015,112 @@ "source_location": "L17" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_asset_canbesetandread", - "label": ".Asset_CanBeSetAndRead()", + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository_add", + "label": ".Add()", "_callable": true, "_origin": "ast", - "community": 293, - "community_name": "SingleFileItem", + "community": 296, + "community_name": "IMediaAssetRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s104" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L27" - } + "s66" ] }, - "norm_label": ".asset_canbesetandread()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", - "source_location": "L21" + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L18" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_proxyfiles_defaultstoemptylist", - "label": ".ProxyFiles_DefaultsToEmptyList()", + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository_findbyhashasync", + "label": ".FindByHashAsync()", "_callable": true, "_origin": "ast", - "community": 293, - "community_name": "SingleFileItem", + "community": 296, + "community_name": "IMediaAssetRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s104" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L15" - } + "s66" ] }, - "norm_label": ".proxyfiles_defaultstoemptylist()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", + "norm_label": ".findbyhashasync()", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L14" + }, + { + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository_add", + "label": ".Add()", + "_callable": true, + "_origin": "ast", + "community": 296, + "community_name": "IMediaAssetRepository", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", "source_location": "L9" }, { - "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_capturinglogger_beginscope", - "label": ".BeginScope()", + "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository_findbyhashasync", + "label": ".FindByHashAsync()", "_callable": true, "_origin": "ast", - "community": 299, - "community_name": "CapturingLogger", + "community": 296, + "community_name": "IMediaAssetRepository", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", + "namespace": "Anichron.Core.Data.Repository", "scope_chain": [ - "s185" + "s66" ] }, - "norm_label": ".beginscope()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/LoggingMiddlewareTests.cs", - "source_location": "L119" + "norm_label": ".findbyhashasync()", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L8" + }, + { + "id": "src_anichron_worker_crawling_fileingestionpipeline_anichron_worker_crawling_log_itemfailed", + "label": ".ItemFailed()", + "_callable": true, + "_origin": "ast", + "community": 298, + "community_name": ".ItemFailed", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Crawling", + "scope_chain": [ + "s256" + ] + }, + "norm_label": ".itemfailed()", + "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", + "source_location": "L129" + }, + { + "id": "src_anichron_worker_crawling_fileingestionpipeline_anichron_worker_crawling_log_unsupportedfile", + "label": ".UnsupportedFile()", + "_callable": true, + "_origin": "ast", + "community": 298, + "community_name": ".ItemFailed", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Crawling", + "scope_chain": [ + "s256" + ] + }, + "norm_label": ".unsupportedfile()", + "source_file": "src/Anichron.Worker/Crawling/FileIngestionPipeline.cs", + "source_location": "L126" }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_capturinglogger_isenabled", @@ -19908,7 +20128,7 @@ "_callable": true, "_origin": "ast", "community": 299, - "community_name": "CapturingLogger", + "community_name": ".Log", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -19926,7 +20146,7 @@ "_callable": true, "_origin": "ast", "community": 299, - "community_name": "CapturingLogger", + "community_name": ".Log", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -20346,6 +20566,24 @@ "source_file": "src/Anichron.Worker/Ingestion/IngestionShutdown.cs", "source_location": "L9" }, + { + "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository_add", + "label": ".Add()", + "_callable": true, + "_origin": "ast", + "community": 31, + "community_name": "UserStorageConfig", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Data.Repository", + "scope_chain": [ + "s66" + ] + }, + "norm_label": ".add()", + "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", + "source_location": "L34" + }, { "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository_findbyidasync", "label": ".FindByIdAsync()", @@ -20568,7 +20806,7 @@ "_callable": true, "_origin": "ast", "community": 313, - "community_name": "LoggingMiddleware", + "community_name": "Log", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Middlewares", @@ -20586,7 +20824,7 @@ "_callable": true, "_origin": "ast", "community": 313, - "community_name": "LoggingMiddleware", + "community_name": "Log", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Middlewares", @@ -20598,13 +20836,81 @@ "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", "source_location": "L19" }, + { + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_imageproxymiddleware_caninvoke", + "label": ".CanInvoke()", + "_callable": true, + "_origin": "ast", + "community": 319, + "community_name": "ImageProxyMiddleware", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Middlewares", + "scope_chain": [ + "s209" + ] + }, + "norm_label": ".caninvoke()", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", + "source_location": "L18" + }, + { + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_imageproxymiddleware_invokeasync", + "label": ".InvokeAsync()", + "_callable": true, + "_origin": "ast", + "community": 319, + "community_name": "ImageProxyMiddleware", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Middlewares", + "scope_chain": [ + "s209" + ], + "unresolved_calls": [ + { + "callee": "Select", + "receiver_type": "IEnumerable", + "lang": "csharp", + "line": "L30" + }, + { + "callee": "WhenAll", + "receiver_type": "Task", + "lang": "csharp", + "line": "L31" + } + ] + }, + "norm_label": ".invokeasync()", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", + "source_location": "L21" + }, + { + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_log_proxiesgenerated", + "label": ".ProxiesGenerated()", + "_callable": true, + "_origin": "ast", + "community": 319, + "community_name": "ImageProxyMiddleware", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Middlewares", + "scope_chain": [ + "s209" + ] + }, + "norm_label": ".proxiesgenerated()", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", + "source_location": "L56" + }, { "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_anichron_worker_ingestion_middlewares_videoproxymiddleware_invokeasync", "label": ".InvokeAsync()", "_callable": true, "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Middlewares", @@ -20630,7 +20936,7 @@ "_callable": true, "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Proxy", @@ -20648,7 +20954,7 @@ "_callable": true, "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Proxy", @@ -20660,51 +20966,13 @@ "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyShardStrategy.cs", "source_location": "L16" }, - { - "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_anichron_worker_tests_unit_crawling_testfixture_buildwithmiddlewares", - "label": ".BuildWithMiddlewares()", - "_callable": true, - "_origin": "ast", - "community": 319, - "community_name": ".BuildWithMiddlewares", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Crawling", - "scope_chain": [ - "s393" - ], - "unresolved_calls": [ - { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L52" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L53" - }, - { - "callee": "Create", - "receiver_type": "Options", - "lang": "csharp", - "line": "L59" - } - ] - }, - "norm_label": ".buildwithmiddlewares()", - "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/FileIngestionPipelineTests.cs", - "source_location": "L48" - }, { "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests_getdirectory_differentconfigssamehash_producedifferentdirectories", "label": ".GetDirectory_DifferentConfigsSameHash_ProduceDifferentDirectories()", "_callable": true, "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -20730,7 +20998,7 @@ "_callable": true, "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -20756,7 +21024,7 @@ "_callable": true, "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -20782,7 +21050,7 @@ "_callable": true, "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", @@ -21250,57 +21518,13 @@ "source_file": "src/Anichron.API.Tests.Unit/Services/AdminUserServiceTests.cs", "source_location": "L140" }, - { - "id": "src_anichron_core_data_anichrondbcontext_anichron_core_data_anichrondbcontext_executeintransactionasync", - "label": ".ExecuteInTransactionAsync()", - "_callable": true, - "_origin": "ast", - "community": 327, - "community_name": ".ExecuteInTransactionAsync", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data", - "scope_chain": [ - "s69" - ], - "unresolved_calls": [ - { - "callee": "BeginTransactionAsync", - "receiver_type": "Database", - "lang": "csharp", - "line": "L20" - } - ] - }, - "norm_label": ".executeintransactionasync()", - "source_file": "src/Anichron.Core/Data/AnichronDbContext.cs", - "source_location": "L18" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests_anichron_worker_tests_unit_ingestion_exifdatatests_empty_hasallzeroandnullfields", - "label": ".Empty_HasAllZeroAndNullFields()", - "_callable": true, - "_origin": "ast", - "community": 328, - "community_name": "LivePhotoLinkerTests.cs", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion", - "scope_chain": [ - "s34" - ] - }, - "norm_label": ".empty_hasallzeroandnullfields()", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", - "source_location": "L7" - }, { "id": "src_anichron_api_infrastructure_authmessages_anichron_api_infrastructure_authmessages_accounttemporarilylocked", "label": ".AccountTemporarilyLocked()", "_callable": true, "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "metadata": { "namespace": "Anichron.API.Infrastructure", @@ -22029,48 +22253,62 @@ "source_location": "L28" }, { - "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_iingestionmiddleware_caninvoke", + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_cancellingmiddleware_caninvoke", "label": ".CanInvoke()", "_callable": true, "_origin": "ast", "community": 35, - "community_name": "IIngestionMiddleware", + "community_name": "CancellingMiddleware", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Pipeline", + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", "scope_chain": [ - "s0" + "s368" ] }, "norm_label": ".caninvoke()", - "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", - "source_location": "L8" + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L354" }, { - "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_iingestionmiddleware_invokeasync", + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_cancellingmiddleware_invokeasync", "label": ".InvokeAsync()", "_callable": true, "_origin": "ast", "community": 35, - "community_name": "IIngestionMiddleware", + "community_name": "CancellingMiddleware", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Pipeline", + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", "scope_chain": [ - "s0" + "s368" + ], + "unresolved_calls": [ + { + "callee": "CancelAsync", + "receiver_type": "CancellationTokenSource", + "lang": "csharp", + "line": "L359" + }, + { + "callee": "ThrowIfCancellationRequested", + "receiver_type": "CancellationToken", + "lang": "csharp", + "line": "L360" + } ] }, "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", - "source_location": "L9" + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L356" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_cancellingmiddleware_caninvoke", - "label": ".CanInvoke()", + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxydirectorycreatingmiddleware_invokeasync", + "label": ".InvokeAsync()", "_callable": true, "_origin": "ast", "community": 35, - "community_name": "IIngestionMiddleware", + "community_name": "CancellingMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", @@ -22078,27 +22316,79 @@ "s368" ] }, - "norm_label": ".caninvoke()", + "norm_label": ".invokeasync()", "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L354" + "source_location": "L332" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_stubmiddleware_caninvoke", - "label": ".CanInvoke()", + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxywritingmiddleware_invokeasync", + "label": ".InvokeAsync()", "_callable": true, "_origin": "ast", "community": 35, - "community_name": "IIngestionMiddleware", + "community_name": "CancellingMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", "scope_chain": [ "s368" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L315" + } ] }, - "norm_label": ".caninvoke()", + "norm_label": ".invokeasync()", "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L289" + "source_location": "L306" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_stubmiddleware_invokeasync", + "label": ".InvokeAsync()", + "_callable": true, + "_origin": "ast", + "community": 35, + "community_name": "CancellingMiddleware", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s368" + ], + "unresolved_calls": [ + { + "callee": "Add", + "receiver_type": "List", + "lang": "csharp", + "line": "L293" + } + ] + }, + "norm_label": ".invokeasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L291" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_throwingmiddleware_invokeasync", + "label": ".InvokeAsync()", + "_callable": true, + "_origin": "ast", + "community": 35, + "community_name": "CancellingMiddleware", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s368" + ] + }, + "norm_label": ".invokeasync()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L344" }, { "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_loggingmiddleware_caninvoke", @@ -22250,6 +22540,58 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/FileIngestionPipelineTests.cs", "source_location": "L29" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_asset_canbesetandread", + "label": ".Asset_CanBeSetAndRead()", + "_callable": true, + "_origin": "ast", + "community": 37, + "community_name": "IngestionContext", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s104" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L27" + } + ] + }, + "norm_label": ".asset_canbesetandread()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", + "source_location": "L21" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_proxyfiles_defaultstoemptylist", + "label": ".ProxyFiles_DefaultsToEmptyList()", + "_callable": true, + "_origin": "ast", + "community": 37, + "community_name": "IngestionContext", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s104" + ], + "unresolved_calls": [ + { + "callee": "NewGuid", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L15" + } + ] + }, + "norm_label": ".proxyfiles_defaultstoemptylist()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionContextTests.cs", + "source_location": "L9" + }, { "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinebuildertests_anichron_worker_tests_unit_ingestion_pipeline_conditionalmiddleware_caninvoke", "label": ".CanInvoke()", @@ -22287,7 +22629,7 @@ "source_location": "L304" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_throwingmiddleware_caninvoke", + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_stubmiddleware_caninvoke", "label": ".CanInvoke()", "_callable": true, "_origin": "ast", @@ -22302,25 +22644,25 @@ }, "norm_label": ".caninvoke()", "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L342" + "source_location": "L289" }, { - "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository_add", - "label": ".Add()", + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_throwingmiddleware_caninvoke", + "label": ".CanInvoke()", "_callable": true, "_origin": "ast", - "community": 38, - "community_name": "EfUserStorageConfigRepository", + "community": 37, + "community_name": "IngestionContext", "file_type": "code", "metadata": { - "namespace": "Anichron.Core.Data.Repository", + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", "scope_chain": [ - "s66" + "s368" ] }, - "norm_label": ".add()", - "source_file": "src/Anichron.Core/Data/Repository/UserStorageConfigRepository.cs", - "source_location": "L34" + "norm_label": ".caninvoke()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L342" }, { "id": "src_anichron_core_data_repository_userstorageconfigrepository_anichron_core_data_repository_efuserstorageconfigrepository_findbyrootpathasync", @@ -23244,7 +23586,7 @@ "_callable": true, "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -23262,7 +23604,7 @@ "_callable": true, "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -23280,7 +23622,7 @@ "_callable": true, "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -23298,7 +23640,7 @@ "_callable": true, "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -23316,7 +23658,7 @@ "_callable": true, "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -23334,7 +23676,7 @@ "_callable": true, "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "metadata": { "namespace": "Anichron.API.Services", @@ -23352,7 +23694,7 @@ "_callable": true, "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", @@ -23907,342 +24249,294 @@ "source_location": "L22" }, { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_authresponsemapper_getadmincreateuserresult", - "label": ".GetAdminCreateUserResult()", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_beginscope", + "label": ".BeginScope()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Endpoints", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s195" + "s84" + ] + }, + "norm_label": ".beginscope()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L118" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_isenabled", + "label": ".IsEnabled()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": ".isenabled()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L117" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_log", + "label": ".Log()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" ], "unresolved_calls": [ { - "callee": "UnprocessableEntity", - "receiver_type": "Results", - "lang": "csharp", - "line": "L121" - }, - { - "callee": "Conflict", - "receiver_type": "Results", - "lang": "csharp", - "line": "L123" - }, - { - "callee": "Created", - "receiver_type": "Results", + "callee": "Add", + "receiver_type": "List", "lang": "csharp", - "line": "L131" + "line": "L115" } ] }, - "norm_label": ".getadmincreateuserresult()", - "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L115" + "norm_label": ".log()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L114" }, { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_authresponsemapper_getadminresetpasswordresult", - "label": ".GetAdminResetPasswordResult()", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_fakehttpmessagehandler_sendasync", + "label": ".SendAsync()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Endpoints", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s195" + "s84" ], "unresolved_calls": [ { - "callee": "NotFound", - "receiver_type": "Results", - "lang": "csharp", - "line": "L137" - }, - { - "callee": "Ok", - "receiver_type": "Results", + "callee": "FromResult", + "receiver_type": "Task", "lang": "csharp", - "line": "L138" + "line": "L100" } ] }, - "norm_label": ".getadminresetpasswordresult()", - "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L135" + "norm_label": ".sendasync()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L99" }, { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadmincreateuserresult", - "label": ".GetAdminCreateUserResult()", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_httpclientthrows_logswarning", + "label": ".IsPwnedAsync_HttpClientThrows_LogsWarning()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Endpoints", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s195" + "s84" + ], + "unresolved_calls": [ + { + "callee": "Multiple", + "receiver_type": "Assert", + "lang": "csharp", + "line": "L63" + } ] }, - "norm_label": ".getadmincreateuserresult()", - "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L16" + "norm_label": ".ispwnedasync_httpclientthrows_logswarning()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L55" }, { - "id": "src_anichron_api_endpoints_authresponsemapper_anichron_api_endpoints_iauthresponsemapper_getadminresetpasswordresult", - "label": ".GetAdminResetPasswordResult()", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_httpclientthrows_returnsfalse", + "label": ".IsPwnedAsync_HttpClientThrows_ReturnsFalse()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Endpoints", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s195" + "s84" ] }, - "norm_label": ".getadminresetpasswordresult()", - "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", - "source_location": "L17" + "norm_label": ".ispwnedasync_httpclientthrows_returnsfalse()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L43" }, { - "id": "src_anichron_api_services_adminresetservice_anichron_api_services_adminresetservice_resetuserpasswordasync", - "label": ".ResetUserPasswordAsync()", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_passwordhashfoundinresponse_returnstrue", + "label": ".IsPwnedAsync_PasswordHashFoundInResponse_ReturnsTrue()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s129" - ], - "unresolved_calls": [ - { - "callee": "ToBase64String", - "receiver_type": "Convert", - "lang": "csharp", - "line": "L28" - }, - { - "callee": "GetBytes", - "receiver_type": "RandomNumberGenerator", - "lang": "csharp", - "line": "L28" - }, - { - "callee": "GetCurrentInstant", - "receiver_type": "IClock", - "lang": "csharp", - "line": "L31" - } + "s84" ] }, - "norm_label": ".resetuserpasswordasync()", - "source_file": "src/Anichron.API/Services/AdminResetService.cs", - "source_location": "L22" + "norm_label": ".ispwnedasync_passwordhashfoundinresponse_returnstrue()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L12" }, { - "id": "src_anichron_api_services_adminresetservice_anichron_api_services_iadminresetservice_resetuserpasswordasync", - "label": ".ResetUserPasswordAsync()", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_passwordhashnotfoundinresponse_returnsfalse", + "label": ".IsPwnedAsync_PasswordHashNotFoundInResponse_ReturnsFalse()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Services", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s129" + "s84" ] }, - "norm_label": ".resetuserpasswordasync()", - "source_file": "src/Anichron.API/Services/AdminResetService.cs", - "source_location": "L12" + "norm_label": ".ispwnedasync_passwordhashnotfoundinresponse_returnsfalse()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L28" }, { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_createuserasync_callsmapperwithserviceresult", - "label": ".CreateUserAsync_CallsMapperWithServiceResult()", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_createtestee", + "label": ".CreateTestee()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Endpoints", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s93" - ], - "unresolved_calls": [ - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L18" - }, - { - "callee": "Created", - "receiver_type": "Results", - "lang": "csharp", - "line": "L20" - }, - { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L21" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L23" - } + "s84" ] }, - "norm_label": ".createuserasync_callsmapperwithserviceresult()", - "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", - "source_location": "L15" + "norm_label": ".createtestee()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L88" }, { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_createuserasync_callsservicewithrequestvalues", - "label": ".CreateUserAsync_CallsServiceWithRequestValues()", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_dispose", + "label": ".Dispose()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Endpoints", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s93" + "s84" ], "unresolved_calls": [ { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L36" - }, - { - "callee": "Any", - "receiver_type": "Arg", - "lang": "csharp", - "line": "L38" - }, - { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L39" - }, - { - "callee": "Created", - "receiver_type": "Results", + "callee": "Dispose", + "receiver_type": "HttpMessageHandler", "lang": "csharp", - "line": "L41" + "line": "L94" } ] }, - "norm_label": ".createuserasync_callsservicewithrequestvalues()", - "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", - "source_location": "L33" + "norm_label": ".dispose()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L94" }, { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_anichron_api_tests_unit_endpoints_adminendpointstests_resetuserpasswordasync_callsservicewithuseridandpassesresulttomapper", - "label": ".ResetUserPasswordAsync_CallsServiceWithUserIdAndPassesResultToMapper()", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_withhttpresponsebody", + "label": ".WithHttpResponseBody()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Endpoints", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s93" + "s84" ], "unresolved_calls": [ { - "callee": "NewGuid", - "receiver_type": "Guid", - "lang": "csharp", - "line": "L56" - }, - { - "callee": "Ok", - "receiver_type": "Results", - "lang": "csharp", - "line": "L58" - }, - { - "callee": "For", - "receiver_type": "Substitute", - "lang": "csharp", - "line": "L59" - }, - { - "callee": "Any", - "receiver_type": "Arg", + "callee": "Dispose", + "receiver_type": "HttpMessageHandler", "lang": "csharp", - "line": "L61" + "line": "L76" } ] }, - "norm_label": ".resetuserpasswordasync_callsservicewithuseridandpassesresulttomapper()", - "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", - "source_location": "L53" + "norm_label": ".withhttpresponsebody()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L74" }, { - "id": "src_anichron_api_tests_unit_endpoints_authresponsemappertests_anichron_api_tests_unit_endpoints_authresponsemappertests_getadmincreateuserresult_success_returns201withlocationandbody", - "label": ".GetAdminCreateUserResult_Success_Returns201WithLocationAndBody()", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_withhttpthrowing", + "label": ".WithHttpThrowing()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Tests.Unit.Endpoints", + "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s208" + "s84" ], "unresolved_calls": [ { - "callee": "NewGuid", - "receiver_type": "Guid", + "callee": "Dispose", + "receiver_type": "HttpMessageHandler", "lang": "csharp", - "line": "L458" + "line": "L83" } ] }, - "norm_label": ".getadmincreateuserresult_success_returns201withlocationandbody()", - "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", - "source_location": "L455" + "norm_label": ".withhttpthrowing()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L81" }, { - "id": "src_anichron_api_tests_unit_services_adminresetservicetests_anichron_api_tests_unit_services_testfixture_createtestee", - "label": ".CreateTestee()", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_throwinghttpmessagehandler_sendasync", + "label": ".SendAsync()", "_callable": true, "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.API.Tests.Unit.Services", "scope_chain": [ - "s150" + "s84" + ], + "unresolved_calls": [ + { + "callee": "FromException", + "receiver_type": "Task", + "lang": "csharp", + "line": "L106" + } ] }, - "norm_label": ".createtestee()", - "source_file": "src/Anichron.API.Tests.Unit/Services/AdminResetServiceTests.cs", - "source_location": "L28" + "norm_label": ".sendasync()", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L105" }, { "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_adminstorageconfigservicetests_addasync_pathalreadyassigned_returnspathalreadyassigned", @@ -25281,72 +25575,108 @@ "source_location": "L47" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_imageproxymiddleware_caninvoke", - "label": ".CanInvoke()", + "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_log_allusermode", + "label": ".AllUserMode()", "_callable": true, "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Middlewares", + "namespace": "Anichron.Worker.Startup", "scope_chain": [ - "s209" + "s192" ] }, - "norm_label": ".caninvoke()", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", - "source_location": "L18" + "norm_label": ".allusermode()", + "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", + "source_location": "L67" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_imageproxymiddleware_invokeasync", - "label": ".InvokeAsync()", + "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_log_storageconfigcreated", + "label": ".StorageConfigCreated()", "_callable": true, "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Middlewares", + "namespace": "Anichron.Worker.Startup", "scope_chain": [ - "s209" + "s192" + ] + }, + "norm_label": ".storageconfigcreated()", + "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", + "source_location": "L73" + }, + { + "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_log_storageconfigexists", + "label": ".StorageConfigExists()", + "_callable": true, + "_origin": "ast", + "community": 57, + "community_name": "WorkerInitializer", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Startup", + "scope_chain": [ + "s192" + ] + }, + "norm_label": ".storageconfigexists()", + "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", + "source_location": "L70" + }, + { + "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_workerinitializer_startasync", + "label": ".StartAsync()", + "_callable": true, + "_origin": "ast", + "community": 57, + "community_name": "WorkerInitializer", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Startup", + "scope_chain": [ + "s192" ], "unresolved_calls": [ { - "callee": "Select", - "receiver_type": "IEnumerable", + "callee": "CreateAsyncScope", + "receiver_type": "IServiceScopeFactory", "lang": "csharp", - "line": "L30" + "line": "L26" }, { - "callee": "WhenAll", - "receiver_type": "Task", + "callee": "NewGuid", + "receiver_type": "Guid", "lang": "csharp", - "line": "L31" + "line": "L52" } ] }, - "norm_label": ".invokeasync()", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", - "source_location": "L21" + "norm_label": ".startasync()", + "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", + "source_location": "L18" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_log_proxiesgenerated", - "label": ".ProxiesGenerated()", + "id": "src_anichron_worker_startup_workerinitializer_anichron_worker_startup_workerinitializer_stopasync", + "label": ".StopAsync()", "_callable": true, "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", "metadata": { - "namespace": "Anichron.Worker.Ingestion.Middlewares", + "namespace": "Anichron.Worker.Startup", "scope_chain": [ - "s209" + "s192" ] }, - "norm_label": ".proxiesgenerated()", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", - "source_location": "L56" + "norm_label": ".stopasync()", + "source_file": "src/Anichron.Worker/Startup/WorkerInitializer.cs", + "source_location": "L63" }, { "id": "src_anichron_worker_ingestion_middlewares_exifextractionmiddleware_anichron_worker_ingestion_middlewares_exifextractionmiddleware_buildexifdata", @@ -26156,7 +26486,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Ingestion.Middlewares", @@ -26168,13 +26498,31 @@ "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", "source_location": "L10" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_capturinglogger_beginscope", + "label": ".BeginScope()", + "_callable": true, + "_origin": "ast", + "community": 65, + "community_name": "CapturingLogger", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", + "scope_chain": [ + "s185" + ] + }, + "norm_label": ".beginscope()", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/LoggingMiddlewareTests.cs", + "source_location": "L119" + }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_invokeasync_always_callsnextasync", "label": ".InvokeAsync_Always_CallsNextAsync()", "_callable": true, "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -26200,7 +26548,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -26218,7 +26566,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -26236,7 +26584,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -26262,7 +26610,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -26280,7 +26628,7 @@ "_callable": true, "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", @@ -27350,6 +27698,102 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/IdempotencyCheckMiddlewareTests.cs", "source_location": "L16" }, + { + "id": "src_anichron_core_guidfactory_anichron_core_iguidfactory_newguid", + "label": ".NewGuid()", + "_callable": true, + "_origin": "ast", + "community": 72, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core", + "scope_chain": [ + "s0" + ] + }, + "norm_label": ".newguid()", + "source_file": "src/Anichron.Core/GuidFactory.cs", + "source_location": "L5" + }, + { + "id": "src_anichron_core_guidfactory_anichron_core_timeorderedguidfactory_newguid", + "label": ".NewGuid()", + "_callable": true, + "_origin": "ast", + "community": 72, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core", + "scope_chain": [ + "s0" + ], + "unresolved_calls": [ + { + "callee": "CreateVersion7", + "receiver_type": "Guid", + "lang": "csharp", + "line": "L10" + } + ] + }, + "norm_label": ".newguid()", + "source_file": "src/Anichron.Core/GuidFactory.cs", + "source_location": "L10" + }, + { + "id": "src_anichron_worker_ingestion_pipeline_ingestioncontext_anichron_worker_ingestion_pipeline_ingestioncontext_addproxyfile", + "label": ".AddProxyFile()", + "_callable": true, + "_origin": "ast", + "community": 72, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Pipeline", + "scope_chain": [ + "s29" + ], + "unresolved_calls": [ + { + "callee": "Add", + "receiver_type": "List", + "lang": "csharp", + "line": "L35" + } + ] + }, + "norm_label": ".addproxyfile()", + "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IngestionContext.cs", + "source_location": "L32" + }, + { + "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_anichron_worker_ingestion_proxy_proxyfilebuilder_build", + "label": ".Build()", + "_callable": true, + "_origin": "ast", + "community": 72, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Proxy", + "scope_chain": [ + "s108" + ], + "unresolved_calls": [ + { + "callee": "GetCurrentInstant", + "receiver_type": "IClock", + "lang": "csharp", + "line": "L24" + } + ] + }, + "norm_label": ".build()", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyFileBuilder.cs", + "source_location": "L10" + }, { "id": "src_anichron_worker_ingestion_proxy_proxystagingwriter_anichron_worker_ingestion_proxy_log_discardfailed", "label": ".DiscardFailed()", @@ -27874,296 +28318,6 @@ "source_file": "src/Anichron.API/Services/PwnedPasswordClient.cs", "source_location": "L13" }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_beginscope", - "label": ".BeginScope()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".beginscope()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L118" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_isenabled", - "label": ".IsEnabled()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".isenabled()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L117" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_log", - "label": ".Log()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "Add", - "receiver_type": "List", - "lang": "csharp", - "line": "L115" - } - ] - }, - "norm_label": ".log()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L114" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_fakehttpmessagehandler_sendasync", - "label": ".SendAsync()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "FromResult", - "receiver_type": "Task", - "lang": "csharp", - "line": "L100" - } - ] - }, - "norm_label": ".sendasync()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L99" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_httpclientthrows_logswarning", - "label": ".IsPwnedAsync_HttpClientThrows_LogsWarning()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "Multiple", - "receiver_type": "Assert", - "lang": "csharp", - "line": "L63" - } - ] - }, - "norm_label": ".ispwnedasync_httpclientthrows_logswarning()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L55" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_httpclientthrows_returnsfalse", - "label": ".IsPwnedAsync_HttpClientThrows_ReturnsFalse()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".ispwnedasync_httpclientthrows_returnsfalse()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L43" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_passwordhashfoundinresponse_returnstrue", - "label": ".IsPwnedAsync_PasswordHashFoundInResponse_ReturnsTrue()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".ispwnedasync_passwordhashfoundinresponse_returnstrue()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L12" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_pwnedpasswordclienttests_ispwnedasync_passwordhashnotfoundinresponse_returnsfalse", - "label": ".IsPwnedAsync_PasswordHashNotFoundInResponse_ReturnsFalse()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".ispwnedasync_passwordhashnotfoundinresponse_returnsfalse()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L28" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_createtestee", - "label": ".CreateTestee()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": ".createtestee()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L88" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_dispose", - "label": ".Dispose()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "Dispose", - "receiver_type": "HttpMessageHandler", - "lang": "csharp", - "line": "L94" - } - ] - }, - "norm_label": ".dispose()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L94" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_withhttpresponsebody", - "label": ".WithHttpResponseBody()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "Dispose", - "receiver_type": "HttpMessageHandler", - "lang": "csharp", - "line": "L76" - } - ] - }, - "norm_label": ".withhttpresponsebody()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L74" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_withhttpthrowing", - "label": ".WithHttpThrowing()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "Dispose", - "receiver_type": "HttpMessageHandler", - "lang": "csharp", - "line": "L83" - } - ] - }, - "norm_label": ".withhttpthrowing()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L81" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_throwinghttpmessagehandler_sendasync", - "label": ".SendAsync()", - "_callable": true, - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ], - "unresolved_calls": [ - { - "callee": "FromException", - "receiver_type": "Task", - "lang": "csharp", - "line": "L106" - } - ] - }, - "norm_label": ".sendasync()", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L105" - }, { "id": "src_anichron_api_tests_unit_services_registrationvalidatortests_anichron_api_tests_unit_services_registrationvalidatortests_validateasync_allinputsvalid_returnsnull", "label": ".ValidateAsync_AllInputsValid_ReturnsNull()", @@ -29066,78 +29220,6 @@ "source_file": "src/Anichron.Core/Data/Repository/InviteRepository.cs", "source_location": "L8" }, - { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository_add", - "label": ".Add()", - "_callable": true, - "_origin": "ast", - "community": 79, - "community_name": "MediaAsset", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".add()", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L18" - }, - { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_efmediaassetrepository_findbyhashasync", - "label": ".FindByHashAsync()", - "_callable": true, - "_origin": "ast", - "community": 79, - "community_name": "MediaAsset", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".findbyhashasync()", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L14" - }, - { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository_add", - "label": ".Add()", - "_callable": true, - "_origin": "ast", - "community": 79, - "community_name": "MediaAsset", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".add()", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L9" - }, - { - "id": "src_anichron_core_data_repository_mediaassetrepository_anichron_core_data_repository_imediaassetrepository_findbyhashasync", - "label": ".FindByHashAsync()", - "_callable": true, - "_origin": "ast", - "community": 79, - "community_name": "MediaAsset", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Data.Repository", - "scope_chain": [ - "s66" - ] - }, - "norm_label": ".findbyhashasync()", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L8" - }, { "id": "src_anichron_api_infrastructure_applicationextensions_anichron_api_infrastructure_log_databasenotready", "label": ".DatabaseNotReady()", @@ -30170,6 +30252,17 @@ "source_file": "src/Anichron.API/Services/AuthError.cs", "source_location": "L19" }, + { + "id": "src_anichron_api_services_registrationvalidator", + "label": "RegistrationValidator.cs", + "_origin": "ast", + "community": 0, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "registrationvalidator.cs", + "source_file": "src/Anichron.API/Services/RegistrationValidator.cs", + "source_location": "L1" + }, { "id": "src_anichron_api_services_registrationvalidator_cs_cancellationtoken", "label": "CancellationToken", @@ -30522,6 +30615,83 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_services_bootstrapseeder_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_cs_exception", + "label": "Exception", + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "exception", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_cs_iconfiguration", + "label": "IConfiguration", + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "iconfiguration", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_cs_iguidfactory", + "label": "IGuidFactory", + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "iguidfactory", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_cs_ilogger", + "label": "ILogger", + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "ilogger", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_cs_loggermessage", + "label": "LoggerMessage", + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "loggermessage", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_bootstrapseeder_cs_task", + "label": "Task", + "_origin": "ast", + "community": 10, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_api_tests_unit_services_bootstrapseedertests_anichron_api_tests_unit_services_testfixture_unitofwork", "label": "UnitOfWork", @@ -31738,7 +31908,7 @@ "label": "Anichron.Core.Migrations", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -31754,18 +31924,40 @@ "label": "Migration", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "migration", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_globalusings", + "label": "Anichron.API/GlobalUsings.cs", + "_origin": "ast", + "community": 104, + "community_name": "nodatime", + "file_type": "code", + "norm_label": "anichron.api/globalusings.cs", + "source_file": "src/Anichron.API/GlobalUsings.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_core_globalusings", + "label": "Anichron.Core/GlobalUsings.cs", + "_origin": "ast", + "community": 104, + "community_name": "nodatime", + "file_type": "code", + "norm_label": "anichron.core/globalusings.cs", + "source_file": "src/Anichron.Core/GlobalUsings.cs", + "source_location": "L1" + }, { "id": "src_anichron_core_migrations_20260511154104_initialschema", "label": "20260511154104_InitialSchema.cs", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "20260511154104_initialschema.cs", "source_file": "src/Anichron.Core/Migrations/20260511154104_InitialSchema.cs", @@ -31776,7 +31968,7 @@ "label": "Guid", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "guid", "source_file": "", @@ -31787,7 +31979,7 @@ "label": "Instant", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "instant", "source_file": "", @@ -31798,7 +31990,7 @@ "label": "LocalDateTime", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "localdatetime", "source_file": "", @@ -31809,7 +32001,7 @@ "label": "MigrationBuilder", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "migrationbuilder", "source_file": "", @@ -31820,7 +32012,7 @@ "label": "20260511154104_InitialSchema.Designer.cs", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "20260511154104_initialschema.designer.cs", "source_file": "src/Anichron.Core/Migrations/20260511154104_InitialSchema.Designer.cs", @@ -31831,7 +32023,7 @@ "label": "Guid", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "guid", "source_file": "", @@ -31842,7 +32034,7 @@ "label": "Instant", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "instant", "source_file": "", @@ -31853,7 +32045,7 @@ "label": "LocalDateTime", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "localdatetime", "source_file": "", @@ -31864,7 +32056,7 @@ "label": "ModelBuilder", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "modelbuilder", "source_file": "", @@ -31875,7 +32067,7 @@ "label": "20260927145042_AddSchemaComments.cs", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "20260927145042_addschemacomments.cs", "source_file": "src/Anichron.Core/Migrations/20260927145042_AddSchemaComments.cs", @@ -31886,7 +32078,7 @@ "label": "Guid", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "guid", "source_file": "", @@ -31897,7 +32089,7 @@ "label": "MigrationBuilder", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "migrationbuilder", "source_file": "", @@ -31908,7 +32100,7 @@ "label": "20260927145042_AddSchemaComments.Designer.cs", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "20260927145042_addschemacomments.designer.cs", "source_file": "src/Anichron.Core/Migrations/20260927145042_AddSchemaComments.Designer.cs", @@ -31919,7 +32111,7 @@ "label": "Guid", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "guid", "source_file": "", @@ -31930,7 +32122,7 @@ "label": "Instant", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "instant", "source_file": "", @@ -31941,7 +32133,7 @@ "label": "LocalDateTime", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "localdatetime", "source_file": "", @@ -31952,7 +32144,7 @@ "label": "ModelBuilder", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "modelbuilder", "source_file": "", @@ -31963,12 +32155,35 @@ "label": "AnichronDbContextModelSnapshot.cs", "_origin": "ast", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "file_type": "code", "norm_label": "anichrondbcontextmodelsnapshot.cs", "source_file": "src/Anichron.Core/Migrations/AnichronDbContextModelSnapshot.cs", "source_location": "L1" }, + { + "id": "src_anichron_worker_ingestion_exifdata", + "label": "ExifData.cs", + "_origin": "ast", + "community": 104, + "community_name": "nodatime", + "file_type": "code", + "norm_label": "exifdata.cs", + "source_file": "src/Anichron.Worker/Ingestion/ExifData.cs", + "source_location": "L1" + }, + { + "id": "docs_adr_0004_schema_documentation_why_the_rationale_goes_in_comment_not_in_markdown", + "label": "Why the rationale goes in `COMMENT`, not in Markdown", + "_origin": "ast", + "community": 104, + "community_name": "nodatime", + "file_type": "document", + "node_kind": "heading", + "norm_label": "why the rationale goes in `comment`, not in markdown", + "source_file": "docs/adr/0004-schema-documentation.md", + "source_location": "L42" + }, { "id": "src_anichron_infrastructure_packages_lock_dependencies_microsoft_extensions_configuration", "label": "Microsoft.Extensions.Configuration", @@ -32783,17 +32998,6 @@ "source_file": "", "source_location": "" }, - { - "id": "backgroundservice", - "label": "BackgroundService", - "_origin": "ast", - "community": 109, - "community_name": "Worker", - "file_type": "code", - "norm_label": "backgroundservice", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_crawling_worker_cs_cancellationtoken", "label": "CancellationToken", @@ -32882,34 +33086,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_ingestion_exifdata_anichron_worker_ingestion_exifdata_empty", - "label": "Empty", - "_origin": "ast", - "community": 11, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s17" - ] - }, - "norm_label": "empty", - "source_file": "src/Anichron.Worker/Ingestion/ExifData.cs", - "source_location": "L17" - }, - { - "id": "src_anichron_worker_ingestion_exifdata_cs_localdatetime", - "label": "LocalDateTime", - "_origin": "ast", - "community": 11, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "localdatetime", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_persistencemiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_testfixture_clock", "label": "Clock", @@ -33636,6 +33812,28 @@ "source_file": "src/Anichron.Core/Data/AnichronDbContext.cs", "source_location": "L8" }, + { + "id": "src_anichron_core_data_anichrondbcontext_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 113, + "community_name": "AnichronDbContext", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_core_data_anichrondbcontext_cs_func", + "label": "Func", + "_origin": "ast", + "community": 113, + "community_name": "AnichronDbContext", + "file_type": "code", + "norm_label": "func", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_core_data_anichrondbcontext_cs_metadata", "label": "Metadata", @@ -33658,6 +33856,17 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_core_data_anichrondbcontext_cs_task", + "label": "Task", + "_origin": "ast", + "community": 113, + "community_name": "AnichronDbContext", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_core_tests_unit_packages_lock_dependencies_microsoft_extensions_caching_abstractions", "label": "Microsoft.Extensions.Caching.Abstractions", @@ -34780,62 +34989,51 @@ "label": "PostgresException", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "postgresexception", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_adminuserservice_cs_cancellationtoken", + "id": "src_anichron_api_services_adminresetservice_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_adminuserservice_cs_guid", + "id": "src_anichron_api_services_adminresetservice_cs_guid", "label": "Guid", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "guid", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_adminuserservice_cs_iclock", + "id": "src_anichron_api_services_adminresetservice_cs_iclock", "label": "IClock", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "iclock", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_adminuserservice_cs_list", - "label": "List", - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "norm_label": "list", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_adminuserservice_cs_task", + "id": "src_anichron_api_services_adminresetservice_cs_task", "label": "Task", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "task", "source_file": "", @@ -34846,7 +35044,7 @@ "label": "CancellationToken", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -34857,7 +35055,7 @@ "label": "Guid", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "guid", "source_file": "", @@ -34868,7 +35066,7 @@ "label": "IClock", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "iclock", "source_file": "", @@ -34879,7 +35077,7 @@ "label": "IGuidFactory", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "iguidfactory", "source_file": "", @@ -34890,29 +35088,18 @@ "label": "Task", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "task", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_core_data_iunitofwork", - "label": "IUnitOfWork.cs", - "_origin": "ast", - "community": 12, - "community_name": "IUnitOfWork", - "file_type": "code", - "norm_label": "iunitofwork.cs", - "source_file": "src/Anichron.Core/Data/IUnitOfWork.cs", - "source_location": "L1" - }, { "id": "src_anichron_core_data_iunitofwork_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -34923,7 +35110,7 @@ "label": "Func", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "func", "source_file": "", @@ -34934,35 +35121,18 @@ "label": "Task", "_origin": "ast", "community": 12, - "community_name": "IUnitOfWork", + "community_name": "AuthService", "file_type": "code", "norm_label": "task", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_entries", - "label": "Entries", - "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Maintenance", - "scope_chain": [ - "s241" - ] - }, - "norm_label": "entries", - "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", - "source_location": "L91" - }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_testfixture_clock", "label": "Clock", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -34979,7 +35149,7 @@ "label": "Now", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -34996,7 +35166,7 @@ "label": "Repository", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -35013,7 +35183,7 @@ "label": "ScopeFactory", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Maintenance", @@ -35030,84 +35200,40 @@ "label": "CancellationToken", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_eventid", - "label": "EventId", - "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "eventid", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_exception", - "label": "Exception", - "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "exception", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_fact", "label": "Fact", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "norm_label": "fact", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_func", - "label": "Func", - "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "func", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_iclock", "label": "IClock", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "norm_label": "iclock", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_idisposable", - "label": "IDisposable", - "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "idisposable", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_inlinedata", "label": "InlineData", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "norm_label": "inlinedata", "source_file": "", @@ -35118,7 +35244,7 @@ "label": "Instant", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "norm_label": "instant", "source_file": "", @@ -35129,73 +35255,29 @@ "label": "InvalidOperationException", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "norm_label": "invalidoperationexception", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_ireadonlylist", - "label": "IReadOnlyList", - "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "ireadonlylist", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_iservicescopefactory", "label": "IServiceScopeFactory", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "norm_label": "iservicescopefactory", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_level", - "label": "Level", - "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "level", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_list", - "label": "List", - "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "list", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_loglevel", - "label": "LogLevel", - "_origin": "ast", - "community": 120, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "loglevel", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_message", "label": "Message", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "norm_label": "message", "source_file": "", @@ -35206,7 +35288,7 @@ "label": "Task", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "norm_label": "task", "source_file": "", @@ -35217,7 +35299,7 @@ "label": "Theory", "_origin": "ast", "community": 120, - "community_name": "CapturingLogger", + "community_name": "TestFixture", "file_type": "code", "norm_label": "theory", "source_file": "", @@ -35303,22 +35385,6 @@ "source_location": "L5", "type": "namespace" }, - { - "id": "csharp_namespace:95d29278166f0a1e", - "label": "Anichron.Worker.Tests.Unit.Infrastructure", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Tests.Unit.Infrastructure" - }, - "norm_label": "anichron.worker.tests.unit.infrastructure", - "source_file": "src/Anichron.Worker.Tests.Unit/Infrastructure/WorkerServiceCollectionExtensionsTests.cs", - "source_location": "L11", - "type": "namespace" - }, { "id": "csharp_namespace:a2ab2f8afc8c2056", "label": "Anichron.Worker.Ingestion", @@ -35368,59 +35434,21 @@ "type": "namespace" }, { - "id": "csharp_namespace:ef074de659b610bc", - "label": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy" - }, - "norm_label": "anichron.worker.tests.unit.ingestion.proxy", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/FfmpegVideoProcessorTests.cs", - "source_location": "L6", - "type": "namespace" - }, - { - "id": "csharp_namespace:fbb90d1482bcdb40", - "label": "Anichron.Worker.Ingestion.Proxy", + "id": "csharp_namespace:deacb600b2c1e799", + "label": "Anichron.Worker.Tests.Unit.Ingestion", "_origin": "ast", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "file_type": "code", "metadata": { "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Ingestion.Proxy" + "namespace": "Anichron.Worker.Tests.Unit.Ingestion" }, - "norm_label": "anichron.worker.ingestion.proxy", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ImageProcessor.cs", - "source_location": "L9", + "norm_label": "anichron.worker.tests.unit.ingestion", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", + "source_location": "L3", "type": "namespace" }, - { - "id": "src_anichron_api_globalusings", - "label": "Anichron.API/GlobalUsings.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "anichron.api/globalusings.cs", - "source_file": "src/Anichron.API/GlobalUsings.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_core_globalusings", - "label": "Anichron.Core/GlobalUsings.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "anichron.core/globalusings.cs", - "source_file": "src/Anichron.Core/GlobalUsings.cs", - "source_location": "L1" - }, { "id": "src_anichron_infrastructure_tests_unit_configuration_appiniinitializertests", "label": "AppIniInitializerTests.cs", @@ -35432,28 +35460,6 @@ "source_file": "src/Anichron.Infrastructure.Tests.Unit/Configuration/AppIniInitializerTests.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_infrastructure_workerservicecollectionextensions", - "label": "WorkerServiceCollectionExtensions.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "workerservicecollectionextensions.cs", - "source_file": "src/Anichron.Worker/Infrastructure/WorkerServiceCollectionExtensions.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_ingestion_exifdata", - "label": "ExifData.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "exifdata.cs", - "source_file": "src/Anichron.Worker/Ingestion/ExifData.cs", - "source_location": "L1" - }, { "id": "src_anichron_worker_ingestion_livephotolinker", "label": "LivePhotoLinker.cs", @@ -35476,6 +35482,17 @@ "source_file": "src/Anichron.Worker/Ingestion/MediaFileExtensions.cs", "source_location": "L1" }, + { + "id": "src_anichron_worker_ingestion_mediatypedetector", + "label": "MediaTypeDetector.cs", + "_origin": "ast", + "community": 121, + "community_name": "Anichron.Worker.Ingestion.Pipeline", + "file_type": "code", + "norm_label": "mediatypedetector.cs", + "source_file": "src/Anichron.Worker/Ingestion/MediaTypeDetector.cs", + "source_location": "L1" + }, { "id": "src_anichron_worker_ingestion_middlewares_contenthashingmiddleware", "label": "ContentHashingMiddleware.cs", @@ -35509,17 +35526,6 @@ "source_file": "src/Anichron.Worker/Ingestion/Middlewares/IdempotencyCheckMiddleware.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware", - "label": "ImageProxyMiddleware.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "imageproxymiddleware.cs", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", - "source_location": "L1" - }, { "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware", "label": "LoggingMiddleware.cs", @@ -35553,6 +35559,17 @@ "source_file": "src/Anichron.Worker/Ingestion/Middlewares/VideoProxyMiddleware.cs", "source_location": "L1" }, + { + "id": "src_anichron_worker_ingestion_pipeline_ingestioncontext", + "label": "IngestionContext.cs", + "_origin": "ast", + "community": 121, + "community_name": "Anichron.Worker.Ingestion.Pipeline", + "file_type": "code", + "norm_label": "ingestioncontext.cs", + "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IngestionContext.cs", + "source_location": "L1" + }, { "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder", "label": "ProxyFileBuilder.cs", @@ -35576,25 +35593,47 @@ "source_location": "L1" }, { - "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators", - "label": "VideoProxyGenerators.cs", + "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests", + "label": "ExifDataTests.cs", "_origin": "ast", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "file_type": "code", - "norm_label": "videoproxygenerators.cs", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", + "norm_label": "exifdatatests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_tests_unit_infrastructure_workerservicecollectionextensionstests", - "label": "WorkerServiceCollectionExtensionsTests.cs", + "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests_cs_fact", + "label": "Fact", "_origin": "ast", "community": 121, "community_name": "Anichron.Worker.Ingestion.Pipeline", "file_type": "code", - "norm_label": "workerservicecollectionextensionstests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Infrastructure/WorkerServiceCollectionExtensionsTests.cs", + "norm_label": "fact", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_livephotolinkertests", + "label": "LivePhotoLinkerTests.cs", + "_origin": "ast", + "community": 121, + "community_name": "Anichron.Worker.Ingestion.Pipeline", + "file_type": "code", + "norm_label": "livephotolinkertests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/LivePhotoLinkerTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests", + "label": "MediaTypeDetectorTests.cs", + "_origin": "ast", + "community": 121, + "community_name": "Anichron.Worker.Ingestion.Pipeline", + "file_type": "code", + "norm_label": "mediatypedetectortests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", "source_location": "L1" }, { @@ -35707,39 +35746,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests", - "label": "FfmpegVideoProcessorTests.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "ffmpegvideoprocessortests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/FfmpegVideoProcessorTests.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_imageproxygeneratorstests", - "label": "ImageProxyGeneratorsTests.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "imageproxygeneratorstests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ImageProxyGeneratorsTests.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests", - "label": "ProxyShardStrategyTests.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "proxyshardstrategytests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", - "source_location": "L1" - }, { "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxystagingwritertests", "label": "ProxyStagingWriterTests.cs", @@ -35751,17 +35757,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyStagingWriterTests.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests", - "label": "VideoProxyGeneratorsTests.cs", - "_origin": "ast", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "file_type": "code", - "norm_label": "videoproxygeneratorstests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", - "source_location": "L1" - }, { "id": "src_anichron_worker_tests_unit_testdoubles_deletefailingfilesystem", "label": "DeleteFailingFileSystem.cs", @@ -37210,7 +37205,7 @@ "source_location": "L4" }, { - "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_abstractions_contenthash", + "id": "src_anichron_worker_packages_lock_humanizer_core_contenthash", "label": "contentHash", "_origin": "ast", "community": 13, @@ -37218,10 +37213,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L245" + "source_location": "L170" }, { - "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_abstractions_resolved", + "id": "src_anichron_worker_packages_lock_humanizer_core_resolved", "label": "resolved", "_origin": "ast", "community": 13, @@ -37229,10 +37224,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L244" + "source_location": "L169" }, { - "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_abstractions_type", + "id": "src_anichron_worker_packages_lock_humanizer_core_type", "label": "type", "_origin": "ast", "community": 13, @@ -37240,10 +37235,10 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L243" + "source_location": "L168" }, { - "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_analyzers_contenthash", + "id": "src_anichron_worker_packages_lock_microsoft_codeanalysis_analyzers_contenthash", "label": "contentHash", "_origin": "ast", "community": 13, @@ -37251,10 +37246,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L250" + "source_location": "L180" }, { - "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_analyzers_resolved", + "id": "src_anichron_worker_packages_lock_microsoft_codeanalysis_analyzers_resolved", "label": "resolved", "_origin": "ast", "community": 13, @@ -37262,10 +37257,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L249" + "source_location": "L179" }, { - "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_analyzers_type", + "id": "src_anichron_worker_packages_lock_microsoft_codeanalysis_analyzers_type", "label": "type", "_origin": "ast", "community": 13, @@ -37273,10 +37268,10 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L248" + "source_location": "L178" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_dependencyinjection_abstractions_contenthash", + "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_analyzers_contenthash", "label": "contentHash", "_origin": "ast", "community": 13, @@ -37284,10 +37279,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L352" + "source_location": "L250" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_dependencyinjection_abstractions_resolved", + "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_analyzers_resolved", "label": "resolved", "_origin": "ast", "community": 13, @@ -37295,10 +37290,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L351" + "source_location": "L249" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_dependencyinjection_abstractions_type", + "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_analyzers_type", "label": "type", "_origin": "ast", "community": 13, @@ -37306,10 +37301,10 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L350" + "source_location": "L248" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_filesystemglobbing_contenthash", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_caching_memory_contenthash", "label": "contentHash", "_origin": "ast", "community": 13, @@ -37317,10 +37312,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L399" + "source_location": "L263" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_filesystemglobbing_resolved", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_caching_memory_resolved", "label": "resolved", "_origin": "ast", "community": 13, @@ -37328,10 +37323,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L398" + "source_location": "L262" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_filesystemglobbing_type", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_caching_memory_type", "label": "type", "_origin": "ast", "community": 13, @@ -37339,10 +37334,10 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L397" + "source_location": "L261" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_contenthash", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_filesystemglobbing_contenthash", "label": "contentHash", "_origin": "ast", "community": 13, @@ -37350,43 +37345,43 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L416" + "source_location": "L399" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_eventlog_contenthash", - "label": "contentHash", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_filesystemglobbing_resolved", + "label": "resolved", "_origin": "ast", "community": 13, "community_name": "net10.0", "file_type": "code", - "norm_label": "contenthash", + "norm_label": "resolved", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L471" + "source_location": "L398" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_eventlog_resolved", - "label": "resolved", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_filesystemglobbing_type", + "label": "type", "_origin": "ast", "community": 13, "community_name": "net10.0", "file_type": "code", - "norm_label": "resolved", + "norm_label": "type", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L470" + "source_location": "L397" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_eventlog_type", - "label": "type", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_options_configurationextensions_contenthash", + "label": "contentHash", "_origin": "ast", "community": 13, "community_name": "net10.0", "file_type": "code", - "norm_label": "type", + "norm_label": "contenthash", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L469" + "source_location": "L504" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_resolved", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_options_configurationextensions_resolved", "label": "resolved", "_origin": "ast", "community": 13, @@ -37394,10 +37389,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L415" + "source_location": "L503" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_type", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_options_configurationextensions_type", "label": "type", "_origin": "ast", "community": 13, @@ -37405,7 +37400,7 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L414" + "source_location": "L502" }, { "id": "src_anichron_worker_packages_lock_microsoft_extensions_primitives_contenthash", @@ -37441,48 +37436,26 @@ "source_location": "L514" }, { - "id": "src_anichron_worker_packages_lock_microsoft_netcore_platforms_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 13, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L521" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_netcore_platforms_resolved", - "label": "resolved", - "_origin": "ast", - "community": 13, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L520" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_netcore_platforms_type", - "label": "type", + "id": "src_anichron_worker_packages_lock_net10_0_humanizer_core", + "label": "Humanizer.Core", "_origin": "ast", "community": 13, "community_name": "net10.0", "file_type": "code", - "norm_label": "type", + "norm_label": "humanizer.core", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L519" + "source_location": "L167" }, { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_entityframeworkcore_abstractions", - "label": "Microsoft.EntityFrameworkCore.Abstractions", + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_codeanalysis_analyzers", + "label": "Microsoft.CodeAnalysis.Analyzers", "_origin": "ast", "community": 13, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.entityframeworkcore.abstractions", + "norm_label": "microsoft.codeanalysis.analyzers", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L242" + "source_location": "L177" }, { "id": "src_anichron_worker_packages_lock_net10_0_microsoft_entityframeworkcore_analyzers", @@ -37496,15 +37469,15 @@ "source_location": "L247" }, { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_dependencyinjection_abstractions", - "label": "Microsoft.Extensions.DependencyInjection.Abstractions", + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_caching_memory", + "label": "Microsoft.Extensions.Caching.Memory", "_origin": "ast", "community": 13, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.dependencyinjection.abstractions", + "norm_label": "microsoft.extensions.caching.memory", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L349" + "source_location": "L260" }, { "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_filesystemglobbing", @@ -37518,26 +37491,15 @@ "source_location": "L396" }, { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_logging", - "label": "Microsoft.Extensions.Logging", - "_origin": "ast", - "community": 13, - "community_name": "net10.0", - "file_type": "code", - "norm_label": "microsoft.extensions.logging", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L413" - }, - { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_logging_eventlog", - "label": "Microsoft.Extensions.Logging.EventLog", + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_options_configurationextensions", + "label": "Microsoft.Extensions.Options.ConfigurationExtensions", "_origin": "ast", "community": 13, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.logging.eventlog", + "norm_label": "microsoft.extensions.options.configurationextensions", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L468" + "source_location": "L501" }, { "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_primitives", @@ -37551,26 +37513,26 @@ "source_location": "L513" }, { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_netcore_platforms", - "label": "Microsoft.NETCore.Platforms", + "id": "src_anichron_worker_packages_lock_net10_0_newtonsoft_json", + "label": "Newtonsoft.Json", "_origin": "ast", "community": 13, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.netcore.platforms", + "norm_label": "newtonsoft.json", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L518" + "source_location": "L544" }, { - "id": "src_anichron_worker_packages_lock_net10_0_newtonsoft_json", - "label": "Newtonsoft.Json", + "id": "src_anichron_worker_packages_lock_net10_0_roslynator_analyzers", + "label": "Roslynator.Analyzers", "_origin": "ast", "community": 13, "community_name": "net10.0", "file_type": "code", - "norm_label": "newtonsoft.json", + "norm_label": "roslynator.analyzers", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L544" + "source_location": "L125" }, { "id": "src_anichron_worker_packages_lock_net10_0_sixlabors_imagesharp", @@ -37594,6 +37556,17 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L137" }, + { + "id": "src_anichron_worker_packages_lock_net10_0_system_codedom", + "label": "System.CodeDom", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "system.codedom", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L558" + }, { "id": "src_anichron_worker_packages_lock_net10_0_system_composition_attributedmodel", "label": "System.Composition.AttributedModel", @@ -37605,6 +37578,17 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L575" }, + { + "id": "src_anichron_worker_packages_lock_net10_0_system_composition_runtime", + "label": "System.Composition.Runtime", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "system.composition.runtime", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L596" + }, { "id": "src_anichron_worker_packages_lock_net10_0_system_diagnostics_eventlog", "label": "System.Diagnostics.EventLog", @@ -37649,6 +37633,50 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L545" }, + { + "id": "src_anichron_worker_packages_lock_roslynator_analyzers_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L129" + }, + { + "id": "src_anichron_worker_packages_lock_roslynator_analyzers_requested", + "label": "requested", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "requested", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L127" + }, + { + "id": "src_anichron_worker_packages_lock_roslynator_analyzers_resolved", + "label": "resolved", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L128" + }, + { + "id": "src_anichron_worker_packages_lock_roslynator_analyzers_type", + "label": "type", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L126" + }, { "id": "src_anichron_worker_packages_lock_sixlabors_imagesharp_contenthash", "label": "contentHash", @@ -37737,6 +37765,39 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L138" }, + { + "id": "src_anichron_worker_packages_lock_system_codedom_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L561" + }, + { + "id": "src_anichron_worker_packages_lock_system_codedom_resolved", + "label": "resolved", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L560" + }, + { + "id": "src_anichron_worker_packages_lock_system_codedom_type", + "label": "type", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L559" + }, { "id": "src_anichron_worker_packages_lock_system_composition_attributedmodel_contenthash", "label": "contentHash", @@ -37770,6 +37831,39 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L576" }, + { + "id": "src_anichron_worker_packages_lock_system_composition_runtime_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L599" + }, + { + "id": "src_anichron_worker_packages_lock_system_composition_runtime_resolved", + "label": "resolved", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L598" + }, + { + "id": "src_anichron_worker_packages_lock_system_composition_runtime_type", + "label": "type", + "_origin": "ast", + "community": 13, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L597" + }, { "id": "src_anichron_worker_packages_lock_system_diagnostics_eventlog_resolved", "label": "resolved", @@ -39024,6 +39118,17 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L555" }, + { + "id": "backgroundservice", + "label": "BackgroundService", + "_origin": "ast", + "community": 138, + "community_name": "TokenCleanupService", + "file_type": "code", + "norm_label": "backgroundservice", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_maintenance_tokencleanupservice_cs_cancellationtoken", "label": "CancellationToken", @@ -39844,45 +39949,12 @@ "source_file": "src/Anichron.Core.Tests.Unit/packages.lock.json", "source_location": "L262" }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_caching_memory_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L263" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_caching_memory_resolved", - "label": "resolved", - "_origin": "ast", - "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L262" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_caching_memory_type", - "label": "type", - "_origin": "ast", - "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L261" - }, { "id": "src_anichron_worker_packages_lock_microsoft_extensions_dependencyinjection_contenthash", "label": "contentHash", "_origin": "ast", "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "Microsoft.Extensions.DependencyInjection", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker/packages.lock.json", @@ -39893,7 +39965,7 @@ "label": "dependencies", "_origin": "ast", "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "Microsoft.Extensions.DependencyInjection", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.Worker/packages.lock.json", @@ -39904,7 +39976,7 @@ "label": "resolved", "_origin": "ast", "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "Microsoft.Extensions.DependencyInjection", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker/packages.lock.json", @@ -39915,7 +39987,7 @@ "label": "type", "_origin": "ast", "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "Microsoft.Extensions.DependencyInjection", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker/packages.lock.json", @@ -39926,7 +39998,7 @@ "label": "contentHash", "_origin": "ast", "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "Microsoft.Extensions.DependencyInjection", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker/packages.lock.json", @@ -39937,7 +40009,7 @@ "label": "dependencies", "_origin": "ast", "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "Microsoft.Extensions.DependencyInjection", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.Worker/packages.lock.json", @@ -39948,7 +40020,7 @@ "label": "resolved", "_origin": "ast", "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "Microsoft.Extensions.DependencyInjection", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker/packages.lock.json", @@ -39959,29 +40031,18 @@ "label": "type", "_origin": "ast", "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "Microsoft.Extensions.DependencyInjection", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L424" }, - { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_caching_memory", - "label": "Microsoft.Extensions.Caching.Memory", - "_origin": "ast", - "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", - "file_type": "code", - "norm_label": "microsoft.extensions.caching.memory", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L260" - }, { "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_dependencyinjection", "label": "Microsoft.Extensions.DependencyInjection", "_origin": "ast", "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "Microsoft.Extensions.DependencyInjection", "file_type": "code", "norm_label": "microsoft.extensions.dependencyinjection", "source_file": "src/Anichron.Worker/packages.lock.json", @@ -39992,7 +40053,7 @@ "label": "Microsoft.Extensions.Logging.Abstractions", "_origin": "ast", "community": 142, - "community_name": "Microsoft.Extensions.Caching.Memory", + "community_name": "Microsoft.Extensions.DependencyInjection", "file_type": "code", "norm_label": "microsoft.extensions.logging.abstractions", "source_file": "src/Anichron.Worker/packages.lock.json", @@ -40274,111 +40335,45 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_api_packages_lock_anichron_core_dependencies", - "label": "dependencies", - "_origin": "ast", - "community": 145, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "dependencies", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L470" - }, - { - "id": "src_anichron_api_packages_lock_anichron_core_type", - "label": "type", - "_origin": "ast", - "community": 145, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L469" - }, - { - "id": "src_anichron_api_packages_lock_dependencies_nodatime", - "label": "NodaTime", - "_origin": "ast", - "community": 145, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "nodatime", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L369" - }, { "id": "src_anichron_api_packages_lock_dependencies_npgsql_entityframeworkcore_postgresql", "label": "Npgsql.EntityFrameworkCore.PostgreSQL", "_origin": "ast", "community": 145, - "community_name": "dependencies", + "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", "file_type": "code", "norm_label": "npgsql.entityframeworkcore.postgresql", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L474" }, - { - "id": "src_anichron_api_packages_lock_dependencies_npgsql_entityframeworkcore_postgresql_nodatime", - "label": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", - "_origin": "ast", - "community": 145, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "npgsql.entityframeworkcore.postgresql.nodatime", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L475" - }, { "id": "src_anichron_api_packages_lock_dependencies_npgsql_nodatime", "label": "Npgsql.NodaTime", "_origin": "ast", "community": 145, - "community_name": "dependencies", + "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", "file_type": "code", "norm_label": "npgsql.nodatime", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L500" }, - { - "id": "src_anichron_api_packages_lock_net10_0_anichron_core", - "label": "anichron.core", - "_origin": "ast", - "community": 145, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "anichron.core", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L468" - }, { "id": "src_anichron_api_packages_lock_net10_0_npgsql_entityframeworkcore_postgresql_nodatime", "label": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", "_origin": "ast", "community": 145, - "community_name": "dependencies", + "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", "file_type": "code", "norm_label": "npgsql.entityframeworkcore.postgresql.nodatime", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L493" }, - { - "id": "src_anichron_api_packages_lock_net10_0_npgsql_nodatime", - "label": "Npgsql.NodaTime", - "_origin": "ast", - "community": 145, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "npgsql.nodatime", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L364" - }, { "id": "src_anichron_api_packages_lock_npgsql_entityframeworkcore_postgresql_nodatime_contenthash", "label": "contentHash", "_origin": "ast", "community": 145, - "community_name": "dependencies", + "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", @@ -40389,7 +40384,7 @@ "label": "dependencies", "_origin": "ast", "community": 145, - "community_name": "dependencies", + "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.API/packages.lock.json", @@ -40400,7 +40395,7 @@ "label": "requested", "_origin": "ast", "community": 145, - "community_name": "dependencies", + "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", "file_type": "code", "norm_label": "requested", "source_file": "src/Anichron.API/packages.lock.json", @@ -40411,7 +40406,7 @@ "label": "resolved", "_origin": "ast", "community": 145, - "community_name": "dependencies", + "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", @@ -40422,56 +40417,12 @@ "label": "type", "_origin": "ast", "community": 145, - "community_name": "dependencies", + "community_name": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L494" }, - { - "id": "src_anichron_api_packages_lock_npgsql_nodatime_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 145, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L367" - }, - { - "id": "src_anichron_api_packages_lock_npgsql_nodatime_dependencies", - "label": "dependencies", - "_origin": "ast", - "community": 145, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "dependencies", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L368" - }, - { - "id": "src_anichron_api_packages_lock_npgsql_nodatime_resolved", - "label": "resolved", - "_origin": "ast", - "community": 145, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L366" - }, - { - "id": "src_anichron_api_packages_lock_npgsql_nodatime_type", - "label": "type", - "_origin": "ast", - "community": 145, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L365" - }, { "id": "src_anichron_core_tests_unit_packages_lock_dependencies_microsoft_win32_registry", "label": "Microsoft.Win32.Registry", @@ -42124,26 +42075,143 @@ "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_cancellationtoken", - "label": "CancellationToken", + "id": "src_anichron_core_domain_proxytype", + "label": "ProxyType.cs", "_origin": "ast", "community": 158, "community_name": "ProxyFile", "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" + "norm_label": "proxytype.cs", + "source_file": "src/Anichron.Core/Domain/ProxyType.cs", + "source_location": "L1" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_ingestiondelegate", - "label": "IngestionDelegate", + "id": "src_anichron_core_domain_proxytype_anichron_core_domain_proxytype_blurhash", + "label": "BlurHash", "_origin": "ast", "community": 158, "community_name": "ProxyFile", "file_type": "code", - "norm_label": "ingestiondelegate", - "source_file": "", - "source_location": "" + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "blurhash", + "source_file": "src/Anichron.Core/Domain/ProxyType.cs", + "source_location": "L15" + }, + { + "id": "src_anichron_core_domain_proxytype_anichron_core_domain_proxytype_fullpreview", + "label": "FullPreview", + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "fullpreview", + "source_file": "src/Anichron.Core/Domain/ProxyType.cs", + "source_location": "L12" + }, + { + "id": "src_anichron_core_domain_proxytype_anichron_core_domain_proxytype_thumbnail", + "label": "Thumbnail", + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "thumbnail", + "source_file": "src/Anichron.Core/Domain/ProxyType.cs", + "source_location": "L6" + }, + { + "id": "src_anichron_core_domain_proxytype_anichron_core_domain_proxytype_webvideo", + "label": "WebVideo", + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Core.Domain", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "webvideo", + "source_file": "src/Anichron.Core/Domain/ProxyType.cs", + "source_location": "L9" + }, + { + "id": "docs_adr_0004_schema_documentation", + "label": "0004-schema-documentation.md", + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "document", + "node_kind": "page", + "norm_label": "0004-schema-documentation.md", + "source_file": "docs/adr/0004-schema-documentation.md", + "source_location": "L1" + }, + { + "id": "docs_adr_0004_schema_documentation_consequences", + "label": "Consequences", + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "document", + "node_kind": "heading", + "norm_label": "consequences", + "source_file": "docs/adr/0004-schema-documentation.md", + "source_location": "L61" + }, + { + "id": "docs_adr_0004_schema_documentation_schema_documentation_is_generated_and_its_rationale_lives_in_the_schema", + "label": "Schema documentation is generated, and its rationale lives in the schema", + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "document", + "node_kind": "heading", + "norm_label": "schema documentation is generated, and its rationale lives in the schema", + "source_file": "docs/adr/0004-schema-documentation.md", + "source_location": "L1" + }, + { + "id": "docs_adr_0004_schema_documentation_what_went_wrong_which_is_the_only_reason_to_take_this_decision", + "label": "What went wrong, which is the only reason to take this decision", + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "document", + "node_kind": "heading", + "norm_label": "what went wrong, which is the only reason to take this decision", + "source_file": "docs/adr/0004-schema-documentation.md", + "source_location": "L14" + }, + { + "id": "docs_adr_0004_schema_documentation_why_not_simply_generate_a_nicer_document", + "label": "Why not simply generate a nicer document", + "_origin": "ast", + "community": 158, + "community_name": "ProxyFile", + "file_type": "document", + "node_kind": "heading", + "norm_label": "why not simply generate a nicer document", + "source_file": "docs/adr/0004-schema-documentation.md", + "source_location": "L32" }, { "id": "src_anichron_core_tests_unit_packages_lock_dependencies_microsoft_extensions_primitives", @@ -42271,57 +42339,18 @@ "label": "IHostedService", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "ihostedservice", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_crawling_workerstate", - "label": "WorkerState.cs", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "norm_label": "workerstate.cs", - "source_file": "src/Anichron.Worker/Crawling/WorkerState.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_crawling_workerstate_anichron_worker_crawling_workerstate_resolveduserid", - "label": "ResolvedUserId", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Crawling", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "resolveduserid", - "source_file": "src/Anichron.Worker/Crawling/WorkerState.cs", - "source_location": "L7" - }, - { - "id": "src_anichron_worker_crawling_workerstate_cs_guid", - "label": "Guid", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "norm_label": "guid", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_startup_databasemigratorservice_anichron_worker_startup_databasemigratorservice_retrydelay", "label": "RetryDelay", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Startup", @@ -42338,7 +42367,7 @@ "label": "CancellationToken", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -42349,7 +42378,7 @@ "label": "Exception", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "exception", "source_file": "", @@ -42360,7 +42389,7 @@ "label": "ILogger", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "ilogger", "source_file": "", @@ -42371,7 +42400,7 @@ "label": "IServiceScopeFactory", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "iservicescopefactory", "source_file": "", @@ -42382,7 +42411,7 @@ "label": "LoggerMessage", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "loggermessage", "source_file": "", @@ -42393,73 +42422,7 @@ "label": "Task", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_startup_workerinitializer_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_startup_workerinitializer_cs_ilogger", - "label": "ILogger", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "norm_label": "ilogger", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_startup_workerinitializer_cs_ioptions", - "label": "IOptions", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "norm_label": "ioptions", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_startup_workerinitializer_cs_iservicescopefactory", - "label": "IServiceScopeFactory", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "norm_label": "iservicescopefactory", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_startup_workerinitializer_cs_loggermessage", - "label": "LoggerMessage", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", - "file_type": "code", - "norm_label": "loggermessage", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_startup_workerinitializer_cs_task", - "label": "Task", - "_origin": "ast", - "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "task", "source_file": "", @@ -42470,7 +42433,7 @@ "label": "Migrator", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Startup", @@ -42487,7 +42450,7 @@ "label": "CancellationToken", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -42498,7 +42461,7 @@ "label": "Fact", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "fact", "source_file": "", @@ -42509,7 +42472,7 @@ "label": "ILogger", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "ilogger", "source_file": "", @@ -42520,7 +42483,7 @@ "label": "InvalidOperationException", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "invalidoperationexception", "source_file": "", @@ -42531,7 +42494,7 @@ "label": "IServiceScopeFactory", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "iservicescopefactory", "source_file": "", @@ -42542,7 +42505,7 @@ "label": "Task", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "task", "source_file": "", @@ -42553,7 +42516,7 @@ "label": "TimeSpan", "_origin": "ast", "community": 16, - "community_name": "WorkerInitializer", + "community_name": "TestFixture", "file_type": "code", "norm_label": "timespan", "source_file": "", @@ -43336,17 +43299,6 @@ "source_file": "", "source_location": "" }, - { - "id": "jwtsecuritytokenhandler", - "label": "JwtSecurityTokenHandler", - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "norm_label": "jwtsecuritytokenhandler", - "source_file": "", - "source_location": "" - }, { "id": "securitytokeninvalidsignatureexception", "label": "SecurityTokenInvalidSignatureException", @@ -43358,135 +43310,6 @@ "source_file": "", "source_location": "" }, - { - "id": "signingcredentials", - "label": "SigningCredentials", - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "norm_label": "signingcredentials", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_security_jwtfactory_cs_iclock", - "label": "IClock", - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "norm_label": "iclock", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_security_jwtfactory_cs_iguidfactory", - "label": "IGuidFactory", - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "norm_label": "iguidfactory", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_settings_jwtsettings", - "label": "JwtSettings.cs", - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "norm_label": "jwtsettings.cs", - "source_file": "src/Anichron.API/Settings/JwtSettings.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings_accesstokenminutes", - "label": "AccessTokenMinutes", - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "accesstokenminutes", - "source_file": "src/Anichron.API/Settings/JwtSettings.cs", - "source_location": "L8" - }, - { - "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings_audience", - "label": "Audience", - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "audience", - "source_file": "src/Anichron.API/Settings/JwtSettings.cs", - "source_location": "L7" - }, - { - "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings_issuer", - "label": "Issuer", - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "issuer", - "source_file": "src/Anichron.API/Settings/JwtSettings.cs", - "source_location": "L6" - }, - { - "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings_refreshtokendays", - "label": "RefreshTokenDays", - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "refreshtokendays", - "source_file": "src/Anichron.API/Settings/JwtSettings.cs", - "source_location": "L9" - }, - { - "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings_secret", - "label": "Secret", - "_origin": "ast", - "community": 17, - "community_name": "JwtFactoryTests", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "secret", - "source_file": "src/Anichron.API/Settings/JwtSettings.cs", - "source_location": "L5" - }, { "id": "src_anichron_api_tests_unit_security_jwtfactorytests_cs_fact", "label": "Fact", @@ -45299,6 +45122,22 @@ "source_location": "L1", "type": "namespace" }, + { + "id": "csharp_namespace:95d29278166f0a1e", + "label": "Anichron.Worker.Tests.Unit.Infrastructure", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Worker.Tests.Unit.Infrastructure" + }, + "norm_label": "anichron.worker.tests.unit.infrastructure", + "source_file": "src/Anichron.Worker.Tests.Unit/Infrastructure/WorkerServiceCollectionExtensionsTests.cs", + "source_location": "L11", + "type": "namespace" + }, { "id": "csharp_namespace:9c3c73549b575877", "label": "Anichron.Worker.Crawling", @@ -45315,6 +45154,54 @@ "source_location": "L10", "type": "namespace" }, + { + "id": "csharp_namespace:e7ede4e1e15a6263", + "label": "Anichron.Worker.Infrastructure", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Worker.Infrastructure" + }, + "norm_label": "anichron.worker.infrastructure", + "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", + "source_location": "L4", + "type": "namespace" + }, + { + "id": "csharp_namespace:ef074de659b610bc", + "label": "Anichron.Worker.Tests.Unit.Ingestion.Proxy", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Proxy" + }, + "norm_label": "anichron.worker.tests.unit.ingestion.proxy", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/FfmpegVideoProcessorTests.cs", + "source_location": "L6", + "type": "namespace" + }, + { + "id": "csharp_namespace:fbb90d1482bcdb40", + "label": "Anichron.Worker.Ingestion.Proxy", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.Worker.Ingestion.Proxy" + }, + "norm_label": "anichron.worker.ingestion.proxy", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ImageProcessor.cs", + "source_location": "L9", + "type": "namespace" + }, { "id": "src_anichron_worker_crawling_fileingestionpipeline", "label": "FileIngestionPipeline.cs", @@ -45337,6 +45224,39 @@ "source_file": "src/Anichron.Worker/Crawling/Worker.cs", "source_location": "L1" }, + { + "id": "src_anichron_worker_infrastructure_hostapplicationbuilderextensions", + "label": "HostApplicationBuilderExtensions.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "hostapplicationbuilderextensions.cs", + "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_infrastructure_workerservicecollectionextensions", + "label": "WorkerServiceCollectionExtensions.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "workerservicecollectionextensions.cs", + "source_file": "src/Anichron.Worker/Infrastructure/WorkerServiceCollectionExtensions.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware", + "label": "ImageProxyMiddleware.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "imageproxymiddleware.cs", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", + "source_location": "L1" + }, { "id": "src_anichron_worker_ingestion_pipeline_ingestionpipelinerunner", "label": "IngestionPipelineRunner.cs", @@ -45370,6 +45290,17 @@ "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProcessor.cs", "source_location": "L1" }, + { + "id": "src_anichron_worker_ingestion_proxy_videoproxygenerators", + "label": "VideoProxyGenerators.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "videoproxygenerators.cs", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/VideoProxyGenerators.cs", + "source_location": "L1" + }, { "id": "src_anichron_worker_maintenance_tokencleanupservice", "label": "TokenCleanupService.cs", @@ -45381,6 +45312,17 @@ "source_file": "src/Anichron.Worker/Maintenance/TokenCleanupService.cs", "source_location": "L1" }, + { + "id": "src_anichron_worker_program", + "label": "Anichron.Worker/Program.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "anichron.worker/program.cs", + "source_file": "src/Anichron.Worker/Program.cs", + "source_location": "L1" + }, { "id": "src_anichron_worker_settings_workerdefaults", "label": "WorkerDefaults.cs", @@ -45436,6 +45378,61 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Crawling/WorkerTests.cs", "source_location": "L1" }, + { + "id": "src_anichron_worker_tests_unit_infrastructure_workerservicecollectionextensionstests", + "label": "WorkerServiceCollectionExtensionsTests.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "workerservicecollectionextensionstests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Infrastructure/WorkerServiceCollectionExtensionsTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_ffmpegvideoprocessortests", + "label": "FfmpegVideoProcessorTests.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "ffmpegvideoprocessortests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/FfmpegVideoProcessorTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_imageproxygeneratorstests", + "label": "ImageProxyGeneratorsTests.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "imageproxygeneratorstests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ImageProxyGeneratorsTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_proxyshardstrategytests", + "label": "ProxyShardStrategyTests.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "proxyshardstrategytests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/ProxyShardStrategyTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_proxy_videoproxygeneratorstests", + "label": "VideoProxyGeneratorsTests.cs", + "_origin": "ast", + "community": 182, + "community_name": "microsoft_extensions_options", + "file_type": "code", + "norm_label": "videoproxygeneratorstests.cs", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Proxy/VideoProxyGeneratorsTests.cs", + "source_location": "L1" + }, { "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests", "label": "TokenCleanupServiceTests.cs", @@ -45558,81 +45555,144 @@ "source_location": "L17" }, { - "id": "src_anichron_api_services_bootstrapseeder_cs_cancellationtoken", - "label": "CancellationToken", + "id": "jwtsecuritytokenhandler", + "label": "JwtSecurityTokenHandler", "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", - "norm_label": "cancellationtoken", + "norm_label": "jwtsecuritytokenhandler", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_bootstrapseeder_cs_exception", - "label": "Exception", + "id": "signingcredentials", + "label": "SigningCredentials", "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", - "norm_label": "exception", + "norm_label": "signingcredentials", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_bootstrapseeder_cs_iconfiguration", - "label": "IConfiguration", + "id": "src_anichron_api_security_jwtfactory_cs_iclock", + "label": "IClock", "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", - "norm_label": "iconfiguration", + "norm_label": "iclock", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_bootstrapseeder_cs_iguidfactory", + "id": "src_anichron_api_security_jwtfactory_cs_iguidfactory", "label": "IGuidFactory", "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", "norm_label": "iguidfactory", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_bootstrapseeder_cs_ilogger", - "label": "ILogger", + "id": "src_anichron_api_settings_jwtsettings", + "label": "JwtSettings.cs", "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", - "norm_label": "ilogger", - "source_file": "", - "source_location": "" + "norm_label": "jwtsettings.cs", + "source_file": "src/Anichron.API/Settings/JwtSettings.cs", + "source_location": "L1" }, { - "id": "src_anichron_api_services_bootstrapseeder_cs_loggermessage", - "label": "LoggerMessage", + "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings_accesstokenminutes", + "label": "AccessTokenMinutes", "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", - "norm_label": "loggermessage", - "source_file": "", - "source_location": "" + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "accesstokenminutes", + "source_file": "src/Anichron.API/Settings/JwtSettings.cs", + "source_location": "L8" }, { - "id": "src_anichron_api_services_bootstrapseeder_cs_task", - "label": "Task", + "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings_audience", + "label": "Audience", "_origin": "ast", "community": 184, - "community_name": "BootstrapSeeder", + "community_name": "JwtSettings", "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "audience", + "source_file": "src/Anichron.API/Settings/JwtSettings.cs", + "source_location": "L7" + }, + { + "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings_issuer", + "label": "Issuer", + "_origin": "ast", + "community": 184, + "community_name": "JwtSettings", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "issuer", + "source_file": "src/Anichron.API/Settings/JwtSettings.cs", + "source_location": "L6" + }, + { + "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings_refreshtokendays", + "label": "RefreshTokenDays", + "_origin": "ast", + "community": 184, + "community_name": "JwtSettings", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "refreshtokendays", + "source_file": "src/Anichron.API/Settings/JwtSettings.cs", + "source_location": "L9" + }, + { + "id": "src_anichron_api_settings_jwtsettings_anichron_api_settings_jwtsettings_secret", + "label": "Secret", + "_origin": "ast", + "community": 184, + "community_name": "JwtSettings", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "secret", + "source_file": "src/Anichron.API/Settings/JwtSettings.cs", + "source_location": "L5" }, { "id": "src_anichron_worker_tests_unit_packages_lock_dependencies_xunit_analyzers", @@ -46070,6 +46130,39 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 19, + "community_name": "IAuthResponseMapper", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_fact", + "label": "Fact", + "_origin": "ast", + "community": 19, + "community_name": "IAuthResponseMapper", + "file_type": "code", + "norm_label": "fact", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_task", + "label": "Task", + "_origin": "ast", + "community": 19, + "community_name": "IAuthResponseMapper", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_api_tests_unit_endpoints_adminstorageconfigendpointstests_cs_cancellationtoken", "label": "CancellationToken", @@ -46631,12 +46724,28 @@ "source_file": "src/Anichron.API.Tests.Unit/packages.lock.json", "source_location": "L605" }, + { + "id": "csharp_namespace:16742b72470e0efe", + "label": "Anichron.API.Tests.Unit.Security", + "_origin": "ast", + "community": 196, + "community_name": "ServiceCollectionExtensions.cs", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.API.Tests.Unit.Security" + }, + "norm_label": "anichron.api.tests.unit.security", + "source_file": "src/Anichron.API.Tests.Unit/Security/JwtFactoryTests.cs", + "source_location": "L9", + "type": "namespace" + }, { "id": "csharp_namespace:3f7e9ffe1d92df00", "label": "Anichron.Infrastructure.Tests.Unit.Infrastructure", "_origin": "ast", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -46652,7 +46761,7 @@ "label": "Anichron.Infrastructure.Configuration", "_origin": "ast", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -46664,85 +46773,91 @@ "type": "namespace" }, { - "id": "csharp_namespace:e7ede4e1e15a6263", - "label": "Anichron.Worker.Infrastructure", + "id": "src_anichron_api_infrastructure_servicecollectionextensions", + "label": "ServiceCollectionExtensions.cs", "_origin": "ast", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Infrastructure" - }, - "norm_label": "anichron.worker.infrastructure", - "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", - "source_location": "L4", - "type": "namespace" + "norm_label": "servicecollectionextensions.cs", + "source_file": "src/Anichron.API/Infrastructure/ServiceCollectionExtensions.cs", + "source_location": "L1" }, { "id": "src_anichron_api_infrastructure_webapplicationbuilderextensions", "label": "WebApplicationBuilderExtensions.cs", "_origin": "ast", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "file_type": "code", "norm_label": "webapplicationbuilderextensions.cs", "source_file": "src/Anichron.API/Infrastructure/WebApplicationBuilderExtensions.cs", "source_location": "L1" }, { - "id": "src_anichron_infrastructure_configuration_appiniinitializer", - "label": "AppIniInitializer.cs", + "id": "src_anichron_api_security_jwtfactory", + "label": "JwtFactory.cs", "_origin": "ast", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "file_type": "code", - "norm_label": "appiniinitializer.cs", - "source_file": "src/Anichron.Infrastructure/Configuration/AppIniInitializer.cs", + "norm_label": "jwtfactory.cs", + "source_file": "src/Anichron.API/Security/JwtFactory.cs", "source_location": "L1" }, { - "id": "src_anichron_infrastructure_configuration_databaseconfiguration", - "label": "DatabaseConfiguration.cs", + "id": "src_anichron_api_security_passwordhasher", + "label": "PasswordHasher.cs", "_origin": "ast", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "file_type": "code", - "norm_label": "databaseconfiguration.cs", - "source_file": "src/Anichron.Infrastructure/Configuration/DatabaseConfiguration.cs", + "norm_label": "passwordhasher.cs", + "source_file": "src/Anichron.API/Security/PasswordHasher.cs", "source_location": "L1" }, { - "id": "src_anichron_infrastructure_tests_unit_infrastructure_databaseconfigurationtests", - "label": "DatabaseConfigurationTests.cs", + "id": "src_anichron_api_tests_unit_security_jwtfactorytests", + "label": "JwtFactoryTests.cs", "_origin": "ast", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "file_type": "code", - "norm_label": "databaseconfigurationtests.cs", - "source_file": "src/Anichron.Infrastructure.Tests.Unit/Infrastructure/DatabaseConfigurationTests.cs", + "norm_label": "jwtfactorytests.cs", + "source_file": "src/Anichron.API.Tests.Unit/Security/JwtFactoryTests.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_infrastructure_hostapplicationbuilderextensions", - "label": "HostApplicationBuilderExtensions.cs", + "id": "src_anichron_infrastructure_configuration_appiniinitializer", + "label": "AppIniInitializer.cs", "_origin": "ast", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "file_type": "code", - "norm_label": "hostapplicationbuilderextensions.cs", - "source_file": "src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs", + "norm_label": "appiniinitializer.cs", + "source_file": "src/Anichron.Infrastructure/Configuration/AppIniInitializer.cs", "source_location": "L1" }, { - "id": "src_anichron_worker_program", - "label": "Anichron.Worker/Program.cs", + "id": "src_anichron_infrastructure_configuration_databaseconfiguration", + "label": "DatabaseConfiguration.cs", "_origin": "ast", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "file_type": "code", - "norm_label": "anichron.worker/program.cs", - "source_file": "src/Anichron.Worker/Program.cs", + "norm_label": "databaseconfiguration.cs", + "source_file": "src/Anichron.Infrastructure/Configuration/DatabaseConfiguration.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_infrastructure_tests_unit_infrastructure_databaseconfigurationtests", + "label": "DatabaseConfigurationTests.cs", + "_origin": "ast", + "community": 196, + "community_name": "ServiceCollectionExtensions.cs", + "file_type": "code", + "norm_label": "databaseconfigurationtests.cs", + "source_file": "src/Anichron.Infrastructure.Tests.Unit/Infrastructure/DatabaseConfigurationTests.cs", "source_location": "L1" }, { @@ -46976,17 +47091,6 @@ "source_file": "src/Anichron.Core/packages.lock.json", "source_location": "L273" }, - { - "id": "samesitemode", - "label": "SameSiteMode", - "_origin": "ast", - "community": 2, - "community_name": "AuthResult", - "file_type": "code", - "norm_label": "samesitemode", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_api_endpoints_authresponsemapper_cs_httpcontext", "label": "HttpContext", @@ -47099,51 +47203,6 @@ "source_file": "src/Anichron.API/Services/AuthService.cs", "source_location": "L18" }, - { - "id": "src_anichron_api_settings_authcookiesettings", - "label": "AuthCookieSettings.cs", - "_origin": "ast", - "community": 2, - "community_name": "AuthResult", - "file_type": "code", - "norm_label": "authcookiesettings.cs", - "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings_refreshtokendays", - "label": "RefreshTokenDays", - "_origin": "ast", - "community": 2, - "community_name": "AuthResult", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "refreshtokendays", - "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", - "source_location": "L6" - }, - { - "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings_samesite", - "label": "SameSite", - "_origin": "ast", - "community": 2, - "community_name": "AuthResult", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Settings", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "samesite", - "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", - "source_location": "L5" - }, { "id": "idirectory", "label": "IDirectory", @@ -49619,155 +49678,59 @@ "source_location": "L555" }, { - "id": "src_anichron_core_domain_proxytype", - "label": "ProxyType.cs", + "id": "src_anichron_api_services_lockoutservice_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", + "community_name": "LockoutService", "file_type": "code", - "norm_label": "proxytype.cs", - "source_file": "src/Anichron.Core/Domain/ProxyType.cs", - "source_location": "L1" + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_core_domain_proxytype_anichron_core_domain_proxytype_blurhash", - "label": "BlurHash", + "id": "src_anichron_api_services_lockoutservice_cs_instant", + "label": "Instant", "_origin": "ast", "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", + "community_name": "LockoutService", "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "blurhash", - "source_file": "src/Anichron.Core/Domain/ProxyType.cs", - "source_location": "L15" + "norm_label": "instant", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_core_domain_proxytype_anichron_core_domain_proxytype_fullpreview", - "label": "FullPreview", + "id": "src_anichron_api_services_lockoutservice_cs_task", + "label": "Task", "_origin": "ast", "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", + "community_name": "LockoutService", "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "fullpreview", - "source_file": "src/Anichron.Core/Domain/ProxyType.cs", - "source_location": "L12" + "norm_label": "task", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_core_domain_proxytype_anichron_core_domain_proxytype_thumbnail", - "label": "Thumbnail", + "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_inlinedata", + "label": "InlineData", "_origin": "ast", "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", + "community_name": "LockoutService", "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "thumbnail", - "source_file": "src/Anichron.Core/Domain/ProxyType.cs", - "source_location": "L6" + "norm_label": "inlinedata", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_core_domain_proxytype_anichron_core_domain_proxytype_webvideo", - "label": "WebVideo", + "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_theory", + "label": "Theory", "_origin": "ast", "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", + "community_name": "LockoutService", "file_type": "code", - "metadata": { - "namespace": "Anichron.Core.Domain", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "webvideo", - "source_file": "src/Anichron.Core/Domain/ProxyType.cs", - "source_location": "L9" - }, - { - "id": "docs_adr_0004_schema_documentation", - "label": "0004-schema-documentation.md", - "_origin": "ast", - "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", - "file_type": "document", - "node_kind": "page", - "norm_label": "0004-schema-documentation.md", - "source_file": "docs/adr/0004-schema-documentation.md", - "source_location": "L1" - }, - { - "id": "docs_adr_0004_schema_documentation_consequences", - "label": "Consequences", - "_origin": "ast", - "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", - "file_type": "document", - "node_kind": "heading", - "norm_label": "consequences", - "source_file": "docs/adr/0004-schema-documentation.md", - "source_location": "L61" - }, - { - "id": "docs_adr_0004_schema_documentation_schema_documentation_is_generated_and_its_rationale_lives_in_the_schema", - "label": "Schema documentation is generated, and its rationale lives in the schema", - "_origin": "ast", - "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", - "file_type": "document", - "node_kind": "heading", - "norm_label": "schema documentation is generated, and its rationale lives in the schema", - "source_file": "docs/adr/0004-schema-documentation.md", - "source_location": "L1" - }, - { - "id": "docs_adr_0004_schema_documentation_what_went_wrong_which_is_the_only_reason_to_take_this_decision", - "label": "What went wrong, which is the only reason to take this decision", - "_origin": "ast", - "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", - "file_type": "document", - "node_kind": "heading", - "norm_label": "what went wrong, which is the only reason to take this decision", - "source_file": "docs/adr/0004-schema-documentation.md", - "source_location": "L14" - }, - { - "id": "docs_adr_0004_schema_documentation_why_not_simply_generate_a_nicer_document", - "label": "Why not simply generate a nicer document", - "_origin": "ast", - "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", - "file_type": "document", - "node_kind": "heading", - "norm_label": "why not simply generate a nicer document", - "source_file": "docs/adr/0004-schema-documentation.md", - "source_location": "L32" - }, - { - "id": "docs_adr_0004_schema_documentation_why_the_rationale_goes_in_comment_not_in_markdown", - "label": "Why the rationale goes in `COMMENT`, not in Markdown", - "_origin": "ast", - "community": 224, - "community_name": "Schema documentation is generated, and its rationale lives in the schema", - "file_type": "document", - "node_kind": "heading", - "norm_label": "why the rationale goes in `comment`, not in markdown", - "source_file": "docs/adr/0004-schema-documentation.md", - "source_location": "L42" + "norm_label": "theory", + "source_file": "", + "source_location": "" }, { "id": "src_anichron_core_packages_lock_dependencies_system_codedom", @@ -50198,6 +50161,50 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L159" }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_guid", + "label": "Guid", + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "norm_label": "guid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_instant", + "label": "Instant", + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "norm_label": "instant", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_task", + "label": "Task", + "_origin": "ast", + "community": 231, + "community_name": "RefreshToken", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_core_domain_refreshtoken", "label": "RefreshToken.cs", @@ -51006,44 +51013,55 @@ "source_location": "" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_cancellationtoken", + "id": "src_anichron_api_services_adminuserservice_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_guid", + "id": "src_anichron_api_services_adminuserservice_cs_guid", "label": "Guid", "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", "norm_label": "guid", "source_file": "", "source_location": "" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_instant", - "label": "Instant", + "id": "src_anichron_api_services_adminuserservice_cs_iclock", + "label": "IClock", "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", - "norm_label": "instant", + "norm_label": "iclock", "source_file": "", "source_location": "" }, { - "id": "src_anichron_core_data_repository_refreshtokenrepository_cs_task", + "id": "src_anichron_api_services_adminuserservice_cs_list", + "label": "List", + "_origin": "ast", + "community": 240, + "community_name": ".DeleteAsync", + "file_type": "code", + "norm_label": "list", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_services_adminuserservice_cs_task", "label": "Task", "_origin": "ast", "community": 240, - "community_name": "IRefreshTokenRepository", + "community_name": ".DeleteAsync", "file_type": "code", "norm_label": "task", "source_file": "", @@ -51486,7 +51504,7 @@ "source_location": "L158" }, { - "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_contenthash", + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_contenthash", "label": "contentHash", "_origin": "ast", "community": 248, @@ -51494,10 +51512,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L165" + "source_location": "L230" }, { - "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_resolved", + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_resolved", "label": "resolved", "_origin": "ast", "community": 248, @@ -51505,10 +51523,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L164" + "source_location": "L229" }, { - "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_type", + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_type", "label": "type", "_origin": "ast", "community": 248, @@ -51516,10 +51534,10 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L163" + "source_location": "L228" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_contenthash", + "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_contenthash", "label": "contentHash", "_origin": "ast", "community": 248, @@ -51527,10 +51545,10 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L245" + "source_location": "L235" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_resolved", + "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_resolved", "label": "resolved", "_origin": "ast", "community": 248, @@ -51538,10 +51556,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L244" + "source_location": "L234" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_type", + "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_type", "label": "type", "_origin": "ast", "community": 248, @@ -51549,7 +51567,40 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L243" + "source_location": "L233" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 248, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L240" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_resolved", + "label": "resolved", + "_origin": "ast", + "community": 248, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L239" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_type", + "label": "type", + "_origin": "ast", + "community": 248, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L238" }, { "id": "src_anichron_api_packages_lock_microsoft_openapi_contenthash", @@ -51607,26 +51658,37 @@ "source_location": "L157" }, { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_codeanalysis_analyzers", - "label": "Microsoft.CodeAnalysis.Analyzers", + "id": "src_anichron_api_packages_lock_net10_0_microsoft_entityframeworkcore_analyzers", + "label": "Microsoft.EntityFrameworkCore.Analyzers", "_origin": "ast", "community": 248, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.codeanalysis.analyzers", + "norm_label": "microsoft.entityframeworkcore.analyzers", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L162" + "source_location": "L227" }, { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_dependencyinjection_autoactivation", - "label": "Microsoft.Extensions.DependencyInjection.AutoActivation", + "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_ambientmetadata_application", + "label": "Microsoft.Extensions.AmbientMetadata.Application", "_origin": "ast", "community": 248, "community_name": "net10.0", "file_type": "code", - "norm_label": "microsoft.extensions.dependencyinjection.autoactivation", + "norm_label": "microsoft.extensions.ambientmetadata.application", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L242" + "source_location": "L232" + }, + { + "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_compliance_abstractions", + "label": "Microsoft.Extensions.Compliance.Abstractions", + "_origin": "ast", + "community": 248, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "microsoft.extensions.compliance.abstractions", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L237" }, { "id": "src_anichron_api_packages_lock_net10_0_microsoft_openapi", @@ -51640,15 +51702,15 @@ "source_location": "L341" }, { - "id": "src_anichron_api_packages_lock_net10_0_polly_core", - "label": "Polly.Core", + "id": "src_anichron_api_packages_lock_net10_0_sonaranalyzer_csharp", + "label": "SonarAnalyzer.CSharp", "_origin": "ast", "community": 248, "community_name": "net10.0", "file_type": "code", - "norm_label": "polly.core", + "norm_label": "sonaranalyzer.csharp", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L373" + "source_location": "L116" }, { "id": "src_anichron_api_packages_lock_net10_0_system_codedom", @@ -51662,7 +51724,18 @@ "source_location": "L394" }, { - "id": "src_anichron_api_packages_lock_polly_core_contenthash", + "id": "src_anichron_api_packages_lock_net10_0_system_composition_attributedmodel", + "label": "System.Composition.AttributedModel", + "_origin": "ast", + "community": 248, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "system.composition.attributedmodel", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L411" + }, + { + "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_contenthash", "label": "contentHash", "_origin": "ast", "community": 248, @@ -51670,10 +51743,21 @@ "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L376" + "source_location": "L120" }, { - "id": "src_anichron_api_packages_lock_polly_core_resolved", + "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_requested", + "label": "requested", + "_origin": "ast", + "community": 248, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "requested", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L118" + }, + { + "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_resolved", "label": "resolved", "_origin": "ast", "community": 248, @@ -51681,10 +51765,10 @@ "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L375" + "source_location": "L119" }, { - "id": "src_anichron_api_packages_lock_polly_core_type", + "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_type", "label": "type", "_origin": "ast", "community": 248, @@ -51692,7 +51776,7 @@ "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L374" + "source_location": "L117" }, { "id": "src_anichron_api_packages_lock_system_codedom_contenthash", @@ -51727,6 +51811,39 @@ "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L395" }, + { + "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 248, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L414" + }, + { + "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_resolved", + "label": "resolved", + "_origin": "ast", + "community": 248, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L413" + }, + { + "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_type", + "label": "type", + "_origin": "ast", + "community": 248, + "community_name": "net10.0", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L412" + }, { "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencymodel_contenthash", "label": "contentHash", @@ -51776,18 +51893,52 @@ "label": "DirectoryNotFoundException", "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "norm_label": "directorynotfoundexception", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem_primarymediatype", + "label": "PrimaryMediaType", + "_origin": "ast", + "community": 25, + "community_name": "SingleFileItem", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s29" + ] + }, + "norm_label": "primarymediatype", + "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", + "source_location": "L21" + }, + { + "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem_secondaryfile", + "label": "SecondaryFile", + "_origin": "ast", + "community": 25, + "community_name": "SingleFileItem", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion", + "scope_chain": [ + "s29" + ] + }, + "norm_label": "secondaryfile", + "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", + "source_location": "L22" + }, { "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_anichron_worker_tests_unit_crawling_testfixture_filesystem", "label": "FileSystem", "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -51804,7 +51955,7 @@ "label": "ProcessedContexts", "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Crawling", @@ -51821,7 +51972,7 @@ "label": "Fact", "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "norm_label": "fact", "source_file": "", @@ -51832,7 +51983,7 @@ "label": "MockFileSystem", "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "norm_label": "mockfilesystem", "source_file": "", @@ -51843,7 +51994,7 @@ "label": "OperationCanceledException", "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "norm_label": "operationcanceledexception", "source_file": "", @@ -51854,7 +52005,7 @@ "label": "Task", "_origin": "ast", "community": 25, - "community_name": "TestFixture", + "community_name": "SingleFileItem", "file_type": "code", "norm_label": "task", "source_file": "", @@ -52465,50 +52616,6 @@ "source_file": "src/Anichron.Core/packages.lock.json", "source_location": "L50" }, - { - "id": "src_anichron_api_services_lockoutservice", - "label": "LockoutService.cs", - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "norm_label": "lockoutservice.cs", - "source_file": "src/Anichron.API/Services/LockoutService.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_services_lockoutservice_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_lockoutservice_cs_instant", - "label": "Instant", - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "norm_label": "instant", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_services_lockoutservice_cs_task", - "label": "Task", - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_fact", "label": "Fact", @@ -52520,17 +52627,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_inlinedata", - "label": "InlineData", - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "norm_label": "inlinedata", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_instant", "label": "Instant", @@ -52553,17 +52649,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_api_tests_unit_services_lockoutservicetests_cs_theory", - "label": "Theory", - "_origin": "ast", - "community": 26, - "community_name": "LockoutServiceTests", - "file_type": "code", - "norm_label": "theory", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_core_packages_lock_net10_0_npgsql_entityframeworkcore_postgresql", "label": "Npgsql.EntityFrameworkCore.PostgreSQL", @@ -53158,17 +53243,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_crawling_fileingestionpipeline_cs_exception", - "label": "Exception", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "exception", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_crawling_fileingestionpipeline_cs_ifilesystem", "label": "IFileSystem", @@ -53180,17 +53254,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_crawling_fileingestionpipeline_cs_ilogger", - "label": "ILogger", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "ilogger", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_crawling_fileingestionpipeline_cs_ioptions", "label": "IOptions", @@ -53213,17 +53276,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_crawling_fileingestionpipeline_cs_loggermessage", - "label": "LoggerMessage", - "_origin": "ast", - "community": 27, - "community_name": "FileIngestionPipeline", - "file_type": "code", - "norm_label": "loggermessage", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_crawling_fileingestionpipeline_cs_task", "label": "Task", @@ -54557,46 +54609,107 @@ "source_location": "L108" }, { - "id": "src_anichron_core_guidfactory", - "label": "GuidFactory.cs", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_anichron_worker_tests_unit_maintenance_capturinglogger_entries", + "label": "Entries", "_origin": "ast", "community": 283, - "community_name": "IGuidFactory", + "community_name": "CapturingLogger", "file_type": "code", - "norm_label": "guidfactory.cs", - "source_file": "src/Anichron.Core/GuidFactory.cs", - "source_location": "L1" + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Maintenance", + "scope_chain": [ + "s241" + ] + }, + "norm_label": "entries", + "source_file": "src/Anichron.Worker.Tests.Unit/Maintenance/TokenCleanupServiceTests.cs", + "source_location": "L91" }, { - "id": "src_anichron_core_guidfactory_cs_guid", - "label": "Guid", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_eventid", + "label": "EventId", "_origin": "ast", "community": 283, - "community_name": "IGuidFactory", + "community_name": "CapturingLogger", "file_type": "code", - "norm_label": "guid", + "norm_label": "eventid", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_cs_iclock", - "label": "IClock", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_exception", + "label": "Exception", "_origin": "ast", "community": 283, - "community_name": "IGuidFactory", + "community_name": "CapturingLogger", "file_type": "code", - "norm_label": "iclock", + "norm_label": "exception", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_cs_proxytype", - "label": "ProxyType", + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_func", + "label": "Func", "_origin": "ast", "community": 283, - "community_name": "IGuidFactory", + "community_name": "CapturingLogger", "file_type": "code", - "norm_label": "proxytype", + "norm_label": "func", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_idisposable", + "label": "IDisposable", + "_origin": "ast", + "community": 283, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "idisposable", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_ireadonlylist", + "label": "IReadOnlyList", + "_origin": "ast", + "community": 283, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "ireadonlylist", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_level", + "label": "Level", + "_origin": "ast", + "community": 283, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "level", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_list", + "label": "List", + "_origin": "ast", + "community": 283, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "list", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_maintenance_tokencleanupservicetests_cs_loglevel", + "label": "LogLevel", + "_origin": "ast", + "community": 283, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "loglevel", "source_file": "", "source_location": "" }, @@ -54820,12 +54933,95 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L119" }, + { + "id": "iserviceprovider", + "label": "IServiceProvider", + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "norm_label": "iserviceprovider", + "source_file": "", + "source_location": "" + }, + { + "id": "iservicescope", + "label": "IServiceScope", + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "norm_label": "iservicescope", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware", + "label": "IIngestionMiddleware.cs", + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "norm_label": "iingestionmiddleware.cs", + "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_iingestionmiddleware_order", + "label": "Order", + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Pipeline", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "order", + "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", + "source_location": "L7" + }, + { + "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_cs_ingestiondelegate", + "label": "IngestionDelegate", + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "norm_label": "ingestiondelegate", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_cs_task", + "label": "Task", + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "norm_label": "task", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_ingestion_pipeline_ingestionpipelinerunner_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -54836,7 +55032,7 @@ "label": "Exception", "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "norm_label": "exception", "source_file": "", @@ -54847,7 +55043,7 @@ "label": "IEnumerable", "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "norm_label": "ienumerable", "source_file": "", @@ -54858,7 +55054,7 @@ "label": "IFileSystem", "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "norm_label": "ifilesystem", "source_file": "", @@ -54869,7 +55065,7 @@ "label": "ILogger", "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "norm_label": "ilogger", "source_file": "", @@ -54880,7 +55076,7 @@ "label": "IngestionDelegate", "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "norm_label": "ingestiondelegate", "source_file": "", @@ -54891,7 +55087,7 @@ "label": "IOptions", "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "norm_label": "ioptions", "source_file": "", @@ -54902,7 +55098,7 @@ "label": "IReadOnlyList", "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "norm_label": "ireadonlylist", "source_file": "", @@ -54913,7 +55109,7 @@ "label": "LoggerMessage", "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "norm_label": "loggermessage", "source_file": "", @@ -54924,12 +55120,56 @@ "label": "Task", "_origin": "ast", "community": 288, - "community_name": "IngestionPipelineRunner", + "community_name": "IIngestionMiddleware", "file_type": "code", "norm_label": "task", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_cs_guid", + "label": "Guid", + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "norm_label": "guid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_cs_ienumerable", + "label": "IEnumerable", + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "norm_label": "ienumerable", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_cs_ilogger", + "label": "ILogger", + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "norm_label": "ilogger", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_cs_iservicescopefactory", + "label": "IServiceScopeFactory", + "_origin": "ast", + "community": 288, + "community_name": "IIngestionMiddleware", + "file_type": "code", + "norm_label": "iservicescopefactory", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_dependencyinjection_contenthash", "label": "contentHash", @@ -55433,60 +55673,136 @@ "source_location": "L43" }, { - "id": "src_anichron_worker_ingestion_ingestionitem", - "label": "IngestionItem.cs", + "id": "src_anichron_worker_packages_lock_dependencies_microsoft_extensions_diagnostics_abstractions", + "label": "Microsoft.Extensions.Diagnostics.Abstractions", "_origin": "ast", "community": 293, - "community_name": "SingleFileItem", + "community_name": "dependencies", "file_type": "code", - "norm_label": "ingestionitem.cs", - "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", - "source_location": "L1" + "norm_label": "microsoft.extensions.diagnostics.abstractions", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L365" }, { - "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem_primarymediatype", - "label": "PrimaryMediaType", + "id": "src_anichron_worker_packages_lock_dependencies_microsoft_extensions_options_configurationextensions", + "label": "Microsoft.Extensions.Options.ConfigurationExtensions", "_origin": "ast", "community": 293, - "community_name": "SingleFileItem", + "community_name": "dependencies", "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s29" - ] - }, - "norm_label": "primarymediatype", - "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", - "source_location": "L21" + "norm_label": "microsoft.extensions.options.configurationextensions", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L366" }, { - "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_singlefileitem_secondaryfile", - "label": "SecondaryFile", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_diagnostics_contenthash", + "label": "contentHash", "_origin": "ast", "community": 293, - "community_name": "SingleFileItem", + "community_name": "dependencies", "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion", - "scope_chain": [ - "s29" - ] - }, - "norm_label": "secondaryfile", - "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", - "source_location": "L22" + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L362" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_cs_fact", - "label": "Fact", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_diagnostics_dependencies", + "label": "dependencies", "_origin": "ast", "community": 293, - "community_name": "SingleFileItem", + "community_name": "dependencies", "file_type": "code", - "norm_label": "fact", - "source_file": "", - "source_location": "" + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L363" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_diagnostics_resolved", + "label": "resolved", + "_origin": "ast", + "community": 293, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L361" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_diagnostics_type", + "label": "type", + "_origin": "ast", + "community": 293, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L360" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_hosting_abstractions_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 293, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L404" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_hosting_abstractions_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 293, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L405" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_hosting_abstractions_resolved", + "label": "resolved", + "_origin": "ast", + "community": 293, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L403" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_hosting_abstractions_type", + "label": "type", + "_origin": "ast", + "community": 293, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L402" + }, + { + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_diagnostics", + "label": "Microsoft.Extensions.Diagnostics", + "_origin": "ast", + "community": 293, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "microsoft.extensions.diagnostics", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L359" + }, + { + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_hosting_abstractions", + "label": "Microsoft.Extensions.Hosting.Abstractions", + "_origin": "ast", + "community": 293, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "microsoft.extensions.hosting.abstractions", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L401" }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_entityframeworkcore_contenthash", @@ -55603,59 +55919,59 @@ "source_location": "L12" }, { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_contenthash", - "label": "contentHash", + "id": "src_anichron_core_data_repository_mediaassetrepository", + "label": "MediaAssetRepository.cs", "_origin": "ast", "community": 296, - "community_name": "Microsoft.EntityFrameworkCore.Design", + "community_name": "IMediaAssetRepository", "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L46" + "norm_label": "mediaassetrepository.cs", + "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", + "source_location": "L1" }, { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_requested", - "label": "requested", + "id": "src_anichron_core_data_repository_mediaassetrepository_cs_anichrondbcontext", + "label": "AnichronDbContext", "_origin": "ast", "community": 296, - "community_name": "Microsoft.EntityFrameworkCore.Design", + "community_name": "IMediaAssetRepository", "file_type": "code", - "norm_label": "requested", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L44" + "norm_label": "anichrondbcontext", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_resolved", - "label": "resolved", + "id": "src_anichron_core_data_repository_mediaassetrepository_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", "community": 296, - "community_name": "Microsoft.EntityFrameworkCore.Design", + "community_name": "IMediaAssetRepository", "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L45" + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_type", - "label": "type", + "id": "src_anichron_core_data_repository_mediaassetrepository_cs_guid", + "label": "Guid", "_origin": "ast", "community": 296, - "community_name": "Microsoft.EntityFrameworkCore.Design", + "community_name": "IMediaAssetRepository", "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L43" + "norm_label": "guid", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_entityframeworkcore_design", - "label": "Microsoft.EntityFrameworkCore.Design", + "id": "src_anichron_core_data_repository_mediaassetrepository_cs_task", + "label": "Task", "_origin": "ast", "community": 296, - "community_name": "Microsoft.EntityFrameworkCore.Design", + "community_name": "IMediaAssetRepository", "file_type": "code", - "norm_label": "microsoft.entityframeworkcore.design", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L42" + "norm_label": "task", + "source_file": "", + "source_location": "" }, { "id": "src_anichron_worker_packages_lock_net10_0_system_io_hashing", @@ -55713,83 +56029,44 @@ "source_location": "L154" }, { - "id": "src_anichron_api_packages_lock_net10_0_sonaranalyzer_csharp", - "label": "SonarAnalyzer.CSharp", - "_origin": "ast", - "community": 298, - "community_name": "SonarAnalyzer.CSharp", - "file_type": "code", - "norm_label": "sonaranalyzer.csharp", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L116" - }, - { - "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 298, - "community_name": "SonarAnalyzer.CSharp", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L120" - }, - { - "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_requested", - "label": "requested", + "id": "src_anichron_worker_crawling_fileingestionpipeline_cs_exception", + "label": "Exception", "_origin": "ast", "community": 298, - "community_name": "SonarAnalyzer.CSharp", + "community_name": ".ItemFailed", "file_type": "code", - "norm_label": "requested", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L118" + "norm_label": "exception", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_resolved", - "label": "resolved", + "id": "src_anichron_worker_crawling_fileingestionpipeline_cs_ilogger", + "label": "ILogger", "_origin": "ast", "community": 298, - "community_name": "SonarAnalyzer.CSharp", + "community_name": ".ItemFailed", "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L119" + "norm_label": "ilogger", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_api_packages_lock_sonaranalyzer_csharp_type", - "label": "type", + "id": "src_anichron_worker_crawling_fileingestionpipeline_cs_loggermessage", + "label": "LoggerMessage", "_origin": "ast", "community": 298, - "community_name": "SonarAnalyzer.CSharp", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L117" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_capturinglogger_entries", - "label": "Entries", - "_origin": "ast", - "community": 299, - "community_name": "CapturingLogger", + "community_name": ".ItemFailed", "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", - "scope_chain": [ - "s185" - ] - }, - "norm_label": "entries", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/LoggingMiddlewareTests.cs", - "source_location": "L113" + "norm_label": "loggermessage", + "source_file": "", + "source_location": "" }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_eventid", "label": "EventId", "_origin": "ast", "community": 299, - "community_name": "CapturingLogger", + "community_name": ".Log", "file_type": "code", "norm_label": "eventid", "source_file": "", @@ -55800,7 +56077,7 @@ "label": "Exception", "_origin": "ast", "community": 299, - "community_name": "CapturingLogger", + "community_name": ".Log", "file_type": "code", "norm_label": "exception", "source_file": "", @@ -55811,78 +56088,23 @@ "label": "Func", "_origin": "ast", "community": 299, - "community_name": "CapturingLogger", + "community_name": ".Log", "file_type": "code", "norm_label": "func", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_idisposable", - "label": "IDisposable", - "_origin": "ast", - "community": 299, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "idisposable", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_ireadonlylist", - "label": "IReadOnlyList", - "_origin": "ast", - "community": 299, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "ireadonlylist", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_level", - "label": "Level", - "_origin": "ast", - "community": 299, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "level", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_list", - "label": "List", - "_origin": "ast", - "community": 299, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "list", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_loglevel", "label": "LogLevel", "_origin": "ast", "community": 299, - "community_name": "CapturingLogger", + "community_name": ".Log", "file_type": "code", "norm_label": "loglevel", "source_file": "", "source_location": "" }, - { - "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_message", - "label": "Message", - "_origin": "ast", - "community": 299, - "community_name": "CapturingLogger", - "file_type": "code", - "norm_label": "message", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_proxydirectorycreatingmiddleware_order", "label": "Order", @@ -55917,6 +56139,23 @@ "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", "source_location": "L303" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_stubmiddleware_order", + "label": "Order", + "_origin": "ast", + "community": 3, + "community_name": "IngestionPipelineRunnerTests", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", + "scope_chain": [ + "s368" + ] + }, + "norm_label": "order", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", + "source_location": "L288" + }, { "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_testfixture_directorystrategy", "label": "DirectoryStrategy", @@ -56023,6 +56262,17 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_list", + "label": "List", + "_origin": "ast", + "community": 3, + "community_name": "IngestionPipelineRunnerTests", + "file_type": "code", + "norm_label": "list", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_mockfilesystem", "label": "MockFileSystem", @@ -56100,39 +56350,6 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L80" }, - { - "id": "src_anichron_worker_packages_lock_dependencies_microsoft_extensions_diagnostics_abstractions", - "label": "Microsoft.Extensions.Diagnostics.Abstractions", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "microsoft.extensions.diagnostics.abstractions", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L365" - }, - { - "id": "src_anichron_worker_packages_lock_dependencies_microsoft_extensions_fileproviders_abstractions", - "label": "Microsoft.Extensions.FileProviders.Abstractions", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "microsoft.extensions.fileproviders.abstractions", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L65" - }, - { - "id": "src_anichron_worker_packages_lock_dependencies_microsoft_extensions_fileproviders_physical", - "label": "Microsoft.Extensions.FileProviders.Physical", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "microsoft.extensions.fileproviders.physical", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L86" - }, { "id": "src_anichron_worker_packages_lock_microsoft_extensions_configuration_binder_contenthash", "label": "contentHash", @@ -56265,50 +56482,6 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L299" }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_configuration_fileextensions_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L310" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_configuration_fileextensions_dependencies", - "label": "dependencies", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "dependencies", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L311" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_configuration_fileextensions_resolved", - "label": "resolved", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L309" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_configuration_fileextensions_type", - "label": "type", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L308" - }, { "id": "src_anichron_worker_packages_lock_microsoft_extensions_configuration_ini_contenthash", "label": "contentHash", @@ -56452,94 +56625,6 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L331" }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_diagnostics_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L362" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_diagnostics_dependencies", - "label": "dependencies", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "dependencies", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L363" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_diagnostics_resolved", - "label": "resolved", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L361" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_diagnostics_type", - "label": "type", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L360" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_hosting_abstractions_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L404" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_hosting_abstractions_dependencies", - "label": "dependencies", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "dependencies", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L405" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_hosting_abstractions_resolved", - "label": "resolved", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L403" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_hosting_abstractions_type", - "label": "type", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L402" - }, { "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_configuration_binder", "label": "Microsoft.Extensions.Configuration.Binder", @@ -56573,17 +56658,6 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L298" }, - { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_configuration_fileextensions", - "label": "Microsoft.Extensions.Configuration.FileExtensions", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "microsoft.extensions.configuration.fileextensions", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L307" - }, { "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_configuration_ini", "label": "Microsoft.Extensions.Configuration.Ini", @@ -56617,28 +56691,6 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L330" }, - { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_diagnostics", - "label": "Microsoft.Extensions.Diagnostics", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "microsoft.extensions.diagnostics", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L359" - }, - { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_hosting_abstractions", - "label": "Microsoft.Extensions.Hosting.Abstractions", - "_origin": "ast", - "community": 30, - "community_name": "Microsoft.Extensions.Configuration.Abstractions", - "file_type": "code", - "norm_label": "microsoft.extensions.hosting.abstractions", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L401" - }, { "id": "src_anichron_worker_ingestion_ingestionshutdown", "label": "IngestionShutdown.cs", @@ -56772,59 +56824,60 @@ "source_location": "L294" }, { - "id": "src_anichron_worker_packages_lock_net10_0_roslynator_analyzers", - "label": "Roslynator.Analyzers", - "_origin": "ast", - "community": 303, - "community_name": "Roslynator.Analyzers", - "file_type": "code", - "norm_label": "roslynator.analyzers", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L125" - }, - { - "id": "src_anichron_worker_packages_lock_roslynator_analyzers_contenthash", - "label": "contentHash", + "id": "samesitemode", + "label": "SameSiteMode", "_origin": "ast", "community": 303, - "community_name": "Roslynator.Analyzers", + "community_name": "AuthCookieSettings", "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L129" + "norm_label": "samesitemode", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_worker_packages_lock_roslynator_analyzers_requested", - "label": "requested", + "id": "src_anichron_api_settings_authcookiesettings", + "label": "AuthCookieSettings.cs", "_origin": "ast", "community": 303, - "community_name": "Roslynator.Analyzers", + "community_name": "AuthCookieSettings", "file_type": "code", - "norm_label": "requested", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L127" + "norm_label": "authcookiesettings.cs", + "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", + "source_location": "L1" }, { - "id": "src_anichron_worker_packages_lock_roslynator_analyzers_resolved", - "label": "resolved", + "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings_refreshtokendays", + "label": "RefreshTokenDays", "_origin": "ast", "community": 303, - "community_name": "Roslynator.Analyzers", + "community_name": "AuthCookieSettings", "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L128" + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "refreshtokendays", + "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", + "source_location": "L6" }, { - "id": "src_anichron_worker_packages_lock_roslynator_analyzers_type", - "label": "type", + "id": "src_anichron_api_settings_authcookiesettings_anichron_api_settings_authcookiesettings_samesite", + "label": "SameSite", "_origin": "ast", "community": 303, - "community_name": "Roslynator.Analyzers", + "community_name": "AuthCookieSettings", "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L126" + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "samesite", + "source_file": "src/Anichron.API/Settings/AuthCookieSettings.cs", + "source_location": "L5" }, { "id": "src_anichron_api_packages_lock_net10_0_newtonsoft_json", @@ -57940,29 +57993,12 @@ "source_file": "src/Anichron.API.Tests.Unit/packages.lock.json", "source_location": "L122" }, - { - "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_loggingmiddleware_order", - "label": "Order", - "_origin": "ast", - "community": 313, - "community_name": "LoggingMiddleware", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Middlewares", - "scope_chain": [ - "s43" - ] - }, - "norm_label": "order", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", - "source_location": "L7" - }, { "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_cs_ilogger", "label": "ILogger", "_origin": "ast", "community": 313, - "community_name": "LoggingMiddleware", + "community_name": "Log", "file_type": "code", "norm_label": "ilogger", "source_file": "", @@ -57973,7 +58009,7 @@ "label": "LoggerMessage", "_origin": "ast", "community": 313, - "community_name": "LoggingMiddleware", + "community_name": "Log", "file_type": "code", "norm_label": "loggermessage", "source_file": "", @@ -58112,48 +58148,48 @@ "source_location": "L614" }, { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_contenthash", + "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_contenthash", "label": "contentHash", "_origin": "ast", "community": 317, - "community_name": "Microsoft.EntityFrameworkCore.Analyzers", + "community_name": "Microsoft.CodeAnalysis.Analyzers", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L230" + "source_location": "L165" }, { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_resolved", + "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_resolved", "label": "resolved", "_origin": "ast", "community": 317, - "community_name": "Microsoft.EntityFrameworkCore.Analyzers", + "community_name": "Microsoft.CodeAnalysis.Analyzers", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L229" + "source_location": "L164" }, { - "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_analyzers_type", + "id": "src_anichron_api_packages_lock_microsoft_codeanalysis_analyzers_type", "label": "type", "_origin": "ast", "community": 317, - "community_name": "Microsoft.EntityFrameworkCore.Analyzers", + "community_name": "Microsoft.CodeAnalysis.Analyzers", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L228" + "source_location": "L163" }, { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_entityframeworkcore_analyzers", - "label": "Microsoft.EntityFrameworkCore.Analyzers", + "id": "src_anichron_api_packages_lock_net10_0_microsoft_codeanalysis_analyzers", + "label": "Microsoft.CodeAnalysis.Analyzers", "_origin": "ast", "community": 317, - "community_name": "Microsoft.EntityFrameworkCore.Analyzers", + "community_name": "Microsoft.CodeAnalysis.Analyzers", "file_type": "code", - "norm_label": "microsoft.entityframeworkcore.analyzers", + "norm_label": "microsoft.codeanalysis.analyzers", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L227" + "source_location": "L162" }, { "id": "src_anichron_api_packages_lock_microsoft_extensions_diagnostics_exceptionsummarization_contenthash", @@ -58200,123 +58236,162 @@ "source_location": "L252" }, { - "id": "iserviceprovider", - "label": "IServiceProvider", + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_imageproxymiddleware_order", + "label": "Order", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", - "norm_label": "iserviceprovider", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Middlewares", + "scope_chain": [ + "s209" + ] + }, + "norm_label": "order", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", + "source_location": "L17" + }, + { + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_cancellationtoken", + "label": "CancellationToken", + "_origin": "ast", + "community": 319, + "community_name": "ImageProxyMiddleware", + "file_type": "code", + "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "iservicescope", - "label": "IServiceScope", + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_ienumerable", + "label": "IEnumerable", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", - "norm_label": "iservicescope", + "norm_label": "ienumerable", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_cancellationtoken", - "label": "CancellationToken", + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_ifilesystem", + "label": "IFileSystem", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", - "norm_label": "cancellationtoken", + "norm_label": "ifilesystem", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_ingestiondelegate", + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_ilogger", + "label": "ILogger", + "_origin": "ast", + "community": 319, + "community_name": "ImageProxyMiddleware", + "file_type": "code", + "norm_label": "ilogger", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_ingestiondelegate", "label": "IngestionDelegate", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "norm_label": "ingestiondelegate", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_task", - "label": "Task", + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_loggermessage", + "label": "LoggerMessage", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", - "norm_label": "task", + "norm_label": "loggermessage", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_proxy_proxyshardstrategy", - "label": "ProxyShardStrategy.cs", + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_rgba32", + "label": "Rgba32", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", - "norm_label": "proxyshardstrategy.cs", - "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyShardStrategy.cs", - "source_location": "L1" + "norm_label": "rgba32", + "source_file": "", + "source_location": "" }, { - "id": "src_anichron_worker_ingestion_proxy_proxyshardstrategy_cs_guid", - "label": "Guid", + "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_task", + "label": "Task", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", - "norm_label": "guid", + "norm_label": "task", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_cs_guid", - "label": "Guid", + "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", - "norm_label": "guid", + "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_cs_ienumerable", - "label": "IEnumerable", + "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_ingestiondelegate", + "label": "IngestionDelegate", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", - "norm_label": "ienumerable", + "norm_label": "ingestiondelegate", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_cs_ilogger", - "label": "ILogger", + "id": "src_anichron_worker_ingestion_middlewares_videoproxymiddleware_cs_task", + "label": "Task", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", - "norm_label": "ilogger", + "norm_label": "task", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_crawling_fileingestionpipelinetests_cs_iservicescopefactory", - "label": "IServiceScopeFactory", + "id": "src_anichron_worker_ingestion_proxy_proxyshardstrategy", + "label": "ProxyShardStrategy.cs", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", - "norm_label": "iservicescopefactory", + "norm_label": "proxyshardstrategy.cs", + "source_file": "src/Anichron.Worker/Ingestion/Proxy/ProxyShardStrategy.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_worker_ingestion_proxy_proxyshardstrategy_cs_guid", + "label": "Guid", + "_origin": "ast", + "community": 319, + "community_name": "ImageProxyMiddleware", + "file_type": "code", + "norm_label": "guid", "source_file": "", "source_location": "" }, @@ -58325,7 +58400,7 @@ "label": "Fact", "_origin": "ast", "community": 319, - "community_name": ".BuildWithMiddlewares", + "community_name": "ImageProxyMiddleware", "file_type": "code", "norm_label": "fact", "source_file": "", @@ -58505,92 +58580,92 @@ "source_location": "" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_contenthash", + "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_contenthash", "label": "contentHash", "_origin": "ast", "community": 320, - "community_name": "Microsoft.Extensions.AmbientMetadata.Application", + "community_name": "Microsoft.Extensions.DependencyInjection.AutoActivation", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L235" + "source_location": "L245" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_resolved", + "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_resolved", "label": "resolved", "_origin": "ast", "community": 320, - "community_name": "Microsoft.Extensions.AmbientMetadata.Application", + "community_name": "Microsoft.Extensions.DependencyInjection.AutoActivation", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L234" + "source_location": "L244" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_ambientmetadata_application_type", + "id": "src_anichron_api_packages_lock_microsoft_extensions_dependencyinjection_autoactivation_type", "label": "type", "_origin": "ast", "community": 320, - "community_name": "Microsoft.Extensions.AmbientMetadata.Application", + "community_name": "Microsoft.Extensions.DependencyInjection.AutoActivation", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L233" + "source_location": "L243" }, { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_ambientmetadata_application", - "label": "Microsoft.Extensions.AmbientMetadata.Application", + "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_dependencyinjection_autoactivation", + "label": "Microsoft.Extensions.DependencyInjection.AutoActivation", "_origin": "ast", "community": 320, - "community_name": "Microsoft.Extensions.AmbientMetadata.Application", + "community_name": "Microsoft.Extensions.DependencyInjection.AutoActivation", "file_type": "code", - "norm_label": "microsoft.extensions.ambientmetadata.application", + "norm_label": "microsoft.extensions.dependencyinjection.autoactivation", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L232" + "source_location": "L242" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_contenthash", - "label": "contentHash", + "id": "src_anichron_api_packages_lock_net10_0_polly_core", + "label": "Polly.Core", "_origin": "ast", "community": 321, - "community_name": "Microsoft.Extensions.Compliance.Abstractions", + "community_name": "Polly.Core", "file_type": "code", - "norm_label": "contenthash", + "norm_label": "polly.core", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L240" + "source_location": "L373" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_resolved", - "label": "resolved", + "id": "src_anichron_api_packages_lock_polly_core_contenthash", + "label": "contentHash", "_origin": "ast", "community": 321, - "community_name": "Microsoft.Extensions.Compliance.Abstractions", + "community_name": "Polly.Core", "file_type": "code", - "norm_label": "resolved", + "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L239" + "source_location": "L376" }, { - "id": "src_anichron_api_packages_lock_microsoft_extensions_compliance_abstractions_type", - "label": "type", + "id": "src_anichron_api_packages_lock_polly_core_resolved", + "label": "resolved", "_origin": "ast", "community": 321, - "community_name": "Microsoft.Extensions.Compliance.Abstractions", + "community_name": "Polly.Core", "file_type": "code", - "norm_label": "type", + "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L238" + "source_location": "L375" }, { - "id": "src_anichron_api_packages_lock_net10_0_microsoft_extensions_compliance_abstractions", - "label": "Microsoft.Extensions.Compliance.Abstractions", + "id": "src_anichron_api_packages_lock_polly_core_type", + "label": "type", "_origin": "ast", "community": 321, - "community_name": "Microsoft.Extensions.Compliance.Abstractions", + "community_name": "Polly.Core", "file_type": "code", - "norm_label": "microsoft.extensions.compliance.abstractions", + "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L237" + "source_location": "L374" }, { "id": "scripts_assemble_pages_test", @@ -58838,48 +58913,48 @@ "source_location": "L258" }, { - "id": "src_anichron_api_packages_lock_net10_0_system_composition_attributedmodel", - "label": "System.Composition.AttributedModel", - "_origin": "ast", - "community": 325, - "community_name": "System.Composition.AttributedModel", - "file_type": "code", - "norm_label": "system.composition.attributedmodel", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L411" - }, - { - "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_contenthash", + "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_abstractions_contenthash", "label": "contentHash", "_origin": "ast", "community": 325, - "community_name": "System.Composition.AttributedModel", + "community_name": "Microsoft.EntityFrameworkCore.Abstractions", "file_type": "code", "norm_label": "contenthash", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L414" + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L245" }, { - "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_resolved", + "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_abstractions_resolved", "label": "resolved", "_origin": "ast", "community": 325, - "community_name": "System.Composition.AttributedModel", + "community_name": "Microsoft.EntityFrameworkCore.Abstractions", "file_type": "code", "norm_label": "resolved", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L413" + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L244" }, { - "id": "src_anichron_api_packages_lock_system_composition_attributedmodel_type", + "id": "src_anichron_worker_packages_lock_microsoft_entityframeworkcore_abstractions_type", "label": "type", "_origin": "ast", "community": 325, - "community_name": "System.Composition.AttributedModel", + "community_name": "Microsoft.EntityFrameworkCore.Abstractions", "file_type": "code", "norm_label": "type", - "source_file": "src/Anichron.API/packages.lock.json", - "source_location": "L412" + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L243" + }, + { + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_entityframeworkcore_abstractions", + "label": "Microsoft.EntityFrameworkCore.Abstractions", + "_origin": "ast", + "community": 325, + "community_name": "Microsoft.EntityFrameworkCore.Abstractions", + "file_type": "code", + "norm_label": "microsoft.entityframeworkcore.abstractions", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L242" }, { "id": "src_anichron_api_tests_unit_packages_lock_microsoft_entityframeworkcore_abstractions_contenthash", @@ -58926,148 +59001,143 @@ "source_location": "L127" }, { - "id": "src_anichron_core_data_anichrondbcontext_cs_cancellationtoken", - "label": "CancellationToken", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_dependencyinjection_abstractions_contenthash", + "label": "contentHash", "_origin": "ast", "community": 327, - "community_name": ".ExecuteInTransactionAsync", + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L352" }, { - "id": "src_anichron_core_data_anichrondbcontext_cs_func", - "label": "Func", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_dependencyinjection_abstractions_resolved", + "label": "resolved", "_origin": "ast", "community": 327, - "community_name": ".ExecuteInTransactionAsync", + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "func", - "source_file": "", - "source_location": "" + "norm_label": "resolved", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L351" }, { - "id": "src_anichron_core_data_anichrondbcontext_cs_task", - "label": "Task", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_dependencyinjection_abstractions_type", + "label": "type", "_origin": "ast", "community": 327, - "community_name": ".ExecuteInTransactionAsync", + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" + "norm_label": "type", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L350" }, { - "id": "csharp_namespace:deacb600b2c1e799", - "label": "Anichron.Worker.Tests.Unit.Ingestion", + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_dependencyinjection_abstractions", + "label": "Microsoft.Extensions.DependencyInjection.Abstractions", "_origin": "ast", - "community": 328, - "community_name": "LivePhotoLinkerTests.cs", + "community": 327, + "community_name": "Microsoft.Extensions.DependencyInjection.Abstractions", "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.Worker.Tests.Unit.Ingestion" - }, - "norm_label": "anichron.worker.tests.unit.ingestion", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", - "source_location": "L3", - "type": "namespace" + "norm_label": "microsoft.extensions.dependencyinjection.abstractions", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L349" }, { - "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests", - "label": "ExifDataTests.cs", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_contenthash", + "label": "contentHash", "_origin": "ast", "community": 328, - "community_name": "LivePhotoLinkerTests.cs", + "community_name": "Microsoft.Extensions.Logging", "file_type": "code", - "norm_label": "exifdatatests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/ExifDataTests.cs", - "source_location": "L1" + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L416" }, { - "id": "src_anichron_worker_tests_unit_ingestion_exifdatatests_cs_fact", - "label": "Fact", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_resolved", + "label": "resolved", "_origin": "ast", "community": 328, - "community_name": "LivePhotoLinkerTests.cs", + "community_name": "Microsoft.Extensions.Logging", "file_type": "code", - "norm_label": "fact", - "source_file": "", - "source_location": "" + "norm_label": "resolved", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L415" }, { - "id": "src_anichron_worker_tests_unit_ingestion_livephotolinkertests", - "label": "LivePhotoLinkerTests.cs", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_type", + "label": "type", "_origin": "ast", "community": 328, - "community_name": "LivePhotoLinkerTests.cs", + "community_name": "Microsoft.Extensions.Logging", "file_type": "code", - "norm_label": "livephotolinkertests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/LivePhotoLinkerTests.cs", - "source_location": "L1" + "norm_label": "type", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L414" }, { - "id": "src_anichron_worker_tests_unit_ingestion_mediatypedetectortests", - "label": "MediaTypeDetectorTests.cs", + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_logging", + "label": "Microsoft.Extensions.Logging", "_origin": "ast", "community": 328, - "community_name": "LivePhotoLinkerTests.cs", + "community_name": "Microsoft.Extensions.Logging", "file_type": "code", - "norm_label": "mediatypedetectortests.cs", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/MediaTypeDetectorTests.cs", - "source_location": "L1" + "norm_label": "microsoft.extensions.logging", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L413" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_console_contenthash", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_eventlog_contenthash", "label": "contentHash", "_origin": "ast", "community": 329, - "community_name": "Microsoft.Extensions.Logging.Console", + "community_name": "Microsoft.Extensions.Logging.EventLog", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L449" + "source_location": "L471" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_console_resolved", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_eventlog_resolved", "label": "resolved", "_origin": "ast", "community": 329, - "community_name": "Microsoft.Extensions.Logging.Console", + "community_name": "Microsoft.Extensions.Logging.EventLog", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L448" + "source_location": "L470" }, { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_console_type", + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_eventlog_type", "label": "type", "_origin": "ast", "community": 329, - "community_name": "Microsoft.Extensions.Logging.Console", + "community_name": "Microsoft.Extensions.Logging.EventLog", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L447" + "source_location": "L469" }, { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_logging_console", - "label": "Microsoft.Extensions.Logging.Console", + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_logging_eventlog", + "label": "Microsoft.Extensions.Logging.EventLog", "_origin": "ast", "community": 329, - "community_name": "Microsoft.Extensions.Logging.Console", + "community_name": "Microsoft.Extensions.Logging.EventLog", "file_type": "code", - "norm_label": "microsoft.extensions.logging.console", + "norm_label": "microsoft.extensions.logging.eventlog", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L446" + "source_location": "L468" }, { "id": "csharp_namespace:2afce6c2c8cf3b78", "label": "Anichron.API.Tests.Unit.Infrastructure", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -59083,7 +59153,7 @@ "label": "Anichron.API.Endpoints", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -59099,7 +59169,7 @@ "label": "Anichron.API.Infrastructure", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -59110,12 +59180,28 @@ "source_location": "L1", "type": "namespace" }, + { + "id": "csharp_namespace:869ecaef5ac1f3a9", + "label": "Anichron.API.Settings", + "_origin": "ast", + "community": 33, + "community_name": "Anichron.API.Settings", + "file_type": "code", + "metadata": { + "kind": "csharp_namespace", + "namespace": "Anichron.API.Settings" + }, + "norm_label": "anichron.api.settings", + "source_file": "src/Anichron.API/Settings/AppDefaults.cs", + "source_location": "L3", + "type": "namespace" + }, { "id": "csharp_namespace:cea16f26468a585b", "label": "Anichron.API.Tests.Unit.Endpoints", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "metadata": { "kind": "csharp_namespace", @@ -59131,7 +59217,7 @@ "label": "AdminEndpoints.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "adminendpoints.cs", "source_file": "src/Anichron.API/Endpoints/AdminEndpoints.cs", @@ -59142,7 +59228,7 @@ "label": "AuthEndpoints.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "authendpoints.cs", "source_file": "src/Anichron.API/Endpoints/AuthEndpoints.cs", @@ -59153,18 +59239,29 @@ "label": "UserEndpoints.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "userendpoints.cs", "source_file": "src/Anichron.API/Endpoints/UserEndpoints.cs", "source_location": "L1" }, + { + "id": "src_anichron_api_infrastructure_applicationextensions", + "label": "ApplicationExtensions.cs", + "_origin": "ast", + "community": 33, + "community_name": "Anichron.API.Settings", + "file_type": "code", + "norm_label": "applicationextensions.cs", + "source_file": "src/Anichron.API/Infrastructure/ApplicationExtensions.cs", + "source_location": "L1" + }, { "id": "src_anichron_api_infrastructure_authmessages", "label": "AuthMessages.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "authmessages.cs", "source_file": "src/Anichron.API/Infrastructure/AuthMessages.cs", @@ -59175,7 +59272,7 @@ "label": "AuthPolicies.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "authpolicies.cs", "source_file": "src/Anichron.API/Infrastructure/AuthPolicies.cs", @@ -59186,7 +59283,7 @@ "label": "HealthCheckResponseWriter.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "healthcheckresponsewriter.cs", "source_file": "src/Anichron.API/Infrastructure/HealthCheckResponseWriter.cs", @@ -59197,7 +59294,7 @@ "label": "MustChangePasswordMiddleware.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "mustchangepasswordmiddleware.cs", "source_file": "src/Anichron.API/Infrastructure/MustChangePasswordMiddleware.cs", @@ -59208,7 +59305,7 @@ "label": "ProxyStorageHealthCheck.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "proxystoragehealthcheck.cs", "source_file": "src/Anichron.API/Infrastructure/ProxyStorageHealthCheck.cs", @@ -59219,18 +59316,68 @@ "label": "Anichron.API/Program.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "anichron.api/program.cs", "source_file": "src/Anichron.API/Program.cs", "source_location": "L1" }, + { + "id": "src_anichron_api_settings_corssettings", + "label": "CorsSettings.cs", + "_origin": "ast", + "community": 33, + "community_name": "Anichron.API.Settings", + "file_type": "code", + "norm_label": "corssettings.cs", + "source_file": "src/Anichron.API/Settings/CorsSettings.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_api_settings_corssettings_anichron_api_settings_corssettings_allowedorigins", + "label": "AllowedOrigins", + "_origin": "ast", + "community": 33, + "community_name": "Anichron.API.Settings", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Settings", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "allowedorigins", + "source_file": "src/Anichron.API/Settings/CorsSettings.cs", + "source_location": "L5" + }, + { + "id": "src_anichron_api_settings_passwordpolicy", + "label": "PasswordPolicy.cs", + "_origin": "ast", + "community": 33, + "community_name": "Anichron.API.Settings", + "file_type": "code", + "norm_label": "passwordpolicy.cs", + "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_api_settings_usernamepolicy", + "label": "UsernamePolicy.cs", + "_origin": "ast", + "community": 33, + "community_name": "Anichron.API.Settings", + "file_type": "code", + "norm_label": "usernamepolicy.cs", + "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", + "source_location": "L1" + }, { "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests", "label": "AdminEndpointsTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "adminendpointstests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminEndpointsTests.cs", @@ -59241,7 +59388,7 @@ "label": "AdminStorageConfigEndpointsTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "adminstorageconfigendpointstests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminStorageConfigEndpointsTests.cs", @@ -59252,7 +59399,7 @@ "label": "AdminUserEndpointsTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "adminuserendpointstests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AdminUserEndpointsTests.cs", @@ -59263,7 +59410,7 @@ "label": "AuthEndpointsTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "authendpointstests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthEndpointsTests.cs", @@ -59274,7 +59421,7 @@ "label": "AuthResponseMapperTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "authresponsemappertests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/AuthResponseMapperTests.cs", @@ -59285,7 +59432,7 @@ "label": "UserEndpointsTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "userendpointstests.cs", "source_file": "src/Anichron.API.Tests.Unit/Endpoints/UserEndpointsTests.cs", @@ -59296,7 +59443,7 @@ "label": "HealthCheckResponseWriterTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "healthcheckresponsewritertests.cs", "source_file": "src/Anichron.API.Tests.Unit/Infrastructure/HealthCheckResponseWriterTests.cs", @@ -59307,7 +59454,7 @@ "label": "MustChangePasswordMiddlewareTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "mustchangepasswordmiddlewaretests.cs", "source_file": "src/Anichron.API.Tests.Unit/Infrastructure/MustChangePasswordMiddlewareTests.cs", @@ -59318,7 +59465,7 @@ "label": "ProxyStorageHealthCheckTests.cs", "_origin": "ast", "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community_name": "Anichron.API.Settings", "file_type": "code", "norm_label": "proxystoragehealthchecktests.cs", "source_file": "src/Anichron.API.Tests.Unit/Infrastructure/ProxyStorageHealthCheckTests.cs", @@ -60509,73 +60656,12 @@ "source_file": "src/Anichron.Core.Tests.Unit/packages.lock.json", "source_location": "L129" }, - { - "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware", - "label": "IIngestionMiddleware.cs", - "_origin": "ast", - "community": 35, - "community_name": "IIngestionMiddleware", - "file_type": "code", - "norm_label": "iingestionmiddleware.cs", - "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_anichron_worker_ingestion_pipeline_iingestionmiddleware_order", - "label": "Order", - "_origin": "ast", - "community": 35, - "community_name": "IIngestionMiddleware", - "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Pipeline", - "scope_chain": [ - "s0" - ] - }, - "norm_label": "order", - "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IIngestionMiddleware.cs", - "source_location": "L7" - }, - { - "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 35, - "community_name": "IIngestionMiddleware", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_cs_ingestiondelegate", - "label": "IngestionDelegate", - "_origin": "ast", - "community": 35, - "community_name": "IIngestionMiddleware", - "file_type": "code", - "norm_label": "ingestiondelegate", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_worker_ingestion_pipeline_iingestionmiddleware_cs_task", - "label": "Task", - "_origin": "ast", - "community": 35, - "community_name": "IIngestionMiddleware", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_cancellingmiddleware_order", "label": "Order", "_origin": "ast", "community": 35, - "community_name": "IIngestionMiddleware", + "community_name": "CancellingMiddleware", "file_type": "code", "metadata": { "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", @@ -60588,41 +60674,35 @@ "source_location": "L353" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_anichron_worker_tests_unit_ingestion_pipeline_stubmiddleware_order", - "label": "Order", + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", "community": 35, - "community_name": "IIngestionMiddleware", + "community_name": "CancellingMiddleware", "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Pipeline", - "scope_chain": [ - "s368" - ] - }, - "norm_label": "order", - "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Pipeline/IngestionPipelineRunnerTests.cs", - "source_location": "L288" + "norm_label": "cancellationtoken", + "source_file": "", + "source_location": "" }, { "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_cancellationtokensource", "label": "CancellationTokenSource", "_origin": "ast", "community": 35, - "community_name": "IIngestionMiddleware", + "community_name": "CancellingMiddleware", "file_type": "code", "norm_label": "cancellationtokensource", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_list", - "label": "List", + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestionpipelinerunnertests_cs_ingestiondelegate", + "label": "IngestionDelegate", "_origin": "ast", "community": 35, - "community_name": "IIngestionMiddleware", + "community_name": "CancellingMiddleware", "file_type": "code", - "norm_label": "list", + "norm_label": "ingestiondelegate", "source_file": "", "source_location": "" }, @@ -61066,22 +61146,6 @@ "source_file": "src/Anichron.Infrastructure.Tests.Unit/packages.lock.json", "source_location": "L96" }, - { - "id": "csharp_namespace:16742b72470e0efe", - "label": "Anichron.API.Tests.Unit.Security", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.API.Tests.Unit.Security" - }, - "norm_label": "anichron.api.tests.unit.security", - "source_file": "src/Anichron.API.Tests.Unit/Security/JwtFactoryTests.cs", - "source_location": "L9", - "type": "namespace" - }, { "id": "csharp_namespace:1cfceb504c1ea4bc", "label": "Anichron.API.Tests.Unit.Services", @@ -61162,22 +61226,6 @@ "source_location": "L1", "type": "namespace" }, - { - "id": "csharp_namespace:869ecaef5ac1f3a9", - "label": "Anichron.API.Settings", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "metadata": { - "kind": "csharp_namespace", - "namespace": "Anichron.API.Settings" - }, - "norm_label": "anichron.api.settings", - "source_file": "src/Anichron.API/Settings/AppDefaults.cs", - "source_location": "L3", - "type": "namespace" - }, { "id": "csharp_namespace:d3a8580f96f5ec51", "label": "Anichron.API.Services", @@ -61221,28 +61269,6 @@ "source_file": "src/Anichron.API/Endpoints/AuthResponseMapper.cs", "source_location": "L1" }, - { - "id": "src_anichron_api_infrastructure_applicationextensions", - "label": "ApplicationExtensions.cs", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "norm_label": "applicationextensions.cs", - "source_file": "src/Anichron.API/Infrastructure/ApplicationExtensions.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_infrastructure_servicecollectionextensions", - "label": "ServiceCollectionExtensions.cs", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "norm_label": "servicecollectionextensions.cs", - "source_file": "src/Anichron.API/Infrastructure/ServiceCollectionExtensions.cs", - "source_location": "L1" - }, { "id": "src_anichron_api_security_appclaimtypes", "label": "AppClaimTypes.cs", @@ -61254,28 +61280,6 @@ "source_file": "src/Anichron.API/Security/AppClaimTypes.cs", "source_location": "L1" }, - { - "id": "src_anichron_api_security_jwtfactory", - "label": "JwtFactory.cs", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "norm_label": "jwtfactory.cs", - "source_file": "src/Anichron.API/Security/JwtFactory.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_security_passwordhasher", - "label": "PasswordHasher.cs", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "norm_label": "passwordhasher.cs", - "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L1" - }, { "id": "src_anichron_api_services_adminresetservice", "label": "AdminResetService.cs", @@ -61343,25 +61347,25 @@ "source_location": "L1" }, { - "id": "src_anichron_api_services_pwnedpasswordclient", - "label": "PwnedPasswordClient.cs", + "id": "src_anichron_api_services_lockoutservice", + "label": "LockoutService.cs", "_origin": "ast", "community": 36, "community_name": "Anichron.Core.Domain", "file_type": "code", - "norm_label": "pwnedpasswordclient.cs", - "source_file": "src/Anichron.API/Services/PwnedPasswordClient.cs", + "norm_label": "lockoutservice.cs", + "source_file": "src/Anichron.API/Services/LockoutService.cs", "source_location": "L1" }, { - "id": "src_anichron_api_services_registrationvalidator", - "label": "RegistrationValidator.cs", + "id": "src_anichron_api_services_pwnedpasswordclient", + "label": "PwnedPasswordClient.cs", "_origin": "ast", "community": 36, "community_name": "Anichron.Core.Domain", "file_type": "code", - "norm_label": "registrationvalidator.cs", - "source_file": "src/Anichron.API/Services/RegistrationValidator.cs", + "norm_label": "pwnedpasswordclient.cs", + "source_file": "src/Anichron.API/Services/PwnedPasswordClient.cs", "source_location": "L1" }, { @@ -61375,39 +61379,6 @@ "source_file": "src/Anichron.API/Services/TokenService.cs", "source_location": "L1" }, - { - "id": "src_anichron_api_settings_passwordpolicy", - "label": "PasswordPolicy.cs", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "norm_label": "passwordpolicy.cs", - "source_file": "src/Anichron.API/Settings/PasswordPolicy.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_settings_usernamepolicy", - "label": "UsernamePolicy.cs", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "norm_label": "usernamepolicy.cs", - "source_file": "src/Anichron.API/Settings/UsernamePolicy.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_tests_unit_security_jwtfactorytests", - "label": "JwtFactoryTests.cs", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "norm_label": "jwtfactorytests.cs", - "source_file": "src/Anichron.API.Tests.Unit/Security/JwtFactoryTests.cs", - "source_location": "L1" - }, { "id": "src_anichron_api_tests_unit_security_passwordhashertests", "label": "PasswordHasherTests.cs", @@ -61496,17 +61467,6 @@ "source_file": "src/Anichron.API.Tests.Unit/Services/LockoutServiceTests.cs", "source_location": "L1" }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests", - "label": "PwnedPasswordClientTests.cs", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "norm_label": "pwnedpasswordclienttests.cs", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L1" - }, { "id": "src_anichron_api_tests_unit_services_registrationvalidatortests", "label": "RegistrationValidatorTests.cs", @@ -61562,17 +61522,6 @@ "source_file": "src/Anichron.Core/Data/Repository/InviteRepository.cs", "source_location": "L1" }, - { - "id": "src_anichron_core_data_repository_mediaassetrepository", - "label": "MediaAssetRepository.cs", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "norm_label": "mediaassetrepository.cs", - "source_file": "src/Anichron.Core/Data/Repository/MediaAssetRepository.cs", - "source_location": "L1" - }, { "id": "src_anichron_core_data_repository_refreshtokenrepository", "label": "RefreshTokenRepository.cs", @@ -61661,28 +61610,6 @@ "source_file": "src/Anichron.Core.Tests.Unit/Data/Repository/UserStorageConfigRepositoryTests.cs", "source_location": "L1" }, - { - "id": "src_anichron_worker_ingestion_mediatypedetector", - "label": "MediaTypeDetector.cs", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "norm_label": "mediatypedetector.cs", - "source_file": "src/Anichron.Worker/Ingestion/MediaTypeDetector.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_worker_ingestion_pipeline_ingestioncontext", - "label": "IngestionContext.cs", - "_origin": "ast", - "community": 36, - "community_name": "Anichron.Core.Domain", - "file_type": "code", - "norm_label": "ingestioncontext.cs", - "source_file": "src/Anichron.Worker/Ingestion/Pipeline/IngestionContext.cs", - "source_location": "L1" - }, { "id": "src_anichron_infrastructure_tests_unit_packages_lock_microsoft_entityframeworkcore_analyzers_contenthash", "label": "contentHash", @@ -62052,48 +61979,48 @@ "source_location": "L172" }, { - "id": "src_anichron_worker_packages_lock_net10_0_system_codedom", - "label": "System.CodeDom", - "_origin": "ast", - "community": 368, - "community_name": "System.CodeDom", - "file_type": "code", - "norm_label": "system.codedom", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L558" - }, - { - "id": "src_anichron_worker_packages_lock_system_codedom_contenthash", + "id": "src_anichron_worker_packages_lock_microsoft_netcore_platforms_contenthash", "label": "contentHash", "_origin": "ast", "community": 368, - "community_name": "System.CodeDom", + "community_name": "Microsoft.NETCore.Platforms", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L561" + "source_location": "L521" }, { - "id": "src_anichron_worker_packages_lock_system_codedom_resolved", + "id": "src_anichron_worker_packages_lock_microsoft_netcore_platforms_resolved", "label": "resolved", "_origin": "ast", "community": 368, - "community_name": "System.CodeDom", + "community_name": "Microsoft.NETCore.Platforms", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L560" + "source_location": "L520" }, { - "id": "src_anichron_worker_packages_lock_system_codedom_type", + "id": "src_anichron_worker_packages_lock_microsoft_netcore_platforms_type", "label": "type", "_origin": "ast", "community": 368, - "community_name": "System.CodeDom", + "community_name": "Microsoft.NETCore.Platforms", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L559" + "source_location": "L519" + }, + { + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_netcore_platforms", + "label": "Microsoft.NETCore.Platforms", + "_origin": "ast", + "community": 368, + "community_name": "Microsoft.NETCore.Platforms", + "file_type": "code", + "norm_label": "microsoft.netcore.platforms", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L518" }, { "id": "src_anichron_worker_packages_lock_microsoft_extensions_dependencymodel_contenthash", @@ -62419,6 +62346,17 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_pipeline_ingestioncontexttests_cs_fact", + "label": "Fact", + "_origin": "ast", + "community": 37, + "community_name": "IngestionContext", + "file_type": "code", + "norm_label": "fact", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_testably_abstractions_filesystem_interface", "label": "Testably.Abstractions.FileSystem.Interface", @@ -62508,76 +62446,32 @@ "source_location": "L99" }, { - "id": "src_anichron_api_settings_corssettings", - "label": "CorsSettings.cs", - "_origin": "ast", - "community": 372, - "community_name": "CorsSettings.cs", - "file_type": "code", - "norm_label": "corssettings.cs", - "source_file": "src/Anichron.API/Settings/CorsSettings.cs", - "source_location": "L1" - }, - { - "id": "src_anichron_api_settings_corssettings_anichron_api_settings_corssettings_allowedorigins", - "label": "AllowedOrigins", + "id": "src_anichron_worker_ingestion_exifdata_anichron_worker_ingestion_exifdata_empty", + "label": "Empty", "_origin": "ast", "community": 372, - "community_name": "CorsSettings.cs", + "community_name": "ExifData", "file_type": "code", "metadata": { - "namespace": "Anichron.API.Settings", + "namespace": "Anichron.Worker.Ingestion", "scope_chain": [ - "s0" + "s17" ] }, - "norm_label": "allowedorigins", - "source_file": "src/Anichron.API/Settings/CorsSettings.cs", - "source_location": "L5" - }, - { - "id": "src_anichron_worker_packages_lock_humanizer_core_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 373, - "community_name": "Humanizer.Core", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L170" - }, - { - "id": "src_anichron_worker_packages_lock_humanizer_core_resolved", - "label": "resolved", - "_origin": "ast", - "community": 373, - "community_name": "Humanizer.Core", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L169" - }, - { - "id": "src_anichron_worker_packages_lock_humanizer_core_type", - "label": "type", - "_origin": "ast", - "community": 373, - "community_name": "Humanizer.Core", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L168" + "norm_label": "empty", + "source_file": "src/Anichron.Worker/Ingestion/ExifData.cs", + "source_location": "L17" }, { - "id": "src_anichron_worker_packages_lock_net10_0_humanizer_core", - "label": "Humanizer.Core", + "id": "src_anichron_worker_ingestion_exifdata_cs_localdatetime", + "label": "LocalDateTime", "_origin": "ast", - "community": 373, - "community_name": "Humanizer.Core", + "community": 372, + "community_name": "ExifData", "file_type": "code", - "norm_label": "humanizer.core", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L167" + "norm_label": "localdatetime", + "source_file": "", + "source_location": "" }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_entityframeworkcore_abstractions_contenthash", @@ -62623,50 +62517,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L109" }, - { - "id": "src_anichron_worker_packages_lock_microsoft_codeanalysis_analyzers_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 377, - "community_name": "Microsoft.CodeAnalysis.Analyzers", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L180" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_codeanalysis_analyzers_resolved", - "label": "resolved", - "_origin": "ast", - "community": 377, - "community_name": "Microsoft.CodeAnalysis.Analyzers", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L179" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_codeanalysis_analyzers_type", - "label": "type", - "_origin": "ast", - "community": 377, - "community_name": "Microsoft.CodeAnalysis.Analyzers", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L178" - }, - { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_codeanalysis_analyzers", - "label": "Microsoft.CodeAnalysis.Analyzers", - "_origin": "ast", - "community": 377, - "community_name": "Microsoft.CodeAnalysis.Analyzers", - "file_type": "code", - "norm_label": "microsoft.codeanalysis.analyzers", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L177" - }, { "id": "src_anichron_worker_tests_unit_packages_lock_microsoft_extensions_diagnostics_contenthash", "label": "contentHash", @@ -62887,6 +62737,17 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L363" }, + { + "id": "src_anichron_worker_ingestion_ingestionitem", + "label": "IngestionItem.cs", + "_origin": "ast", + "community": 39, + "community_name": "LivePhotoPairItem", + "file_type": "code", + "norm_label": "ingestionitem.cs", + "source_file": "src/Anichron.Worker/Ingestion/IngestionItem.cs", + "source_location": "L1" + }, { "id": "src_anichron_worker_ingestion_ingestionitem_anichron_worker_ingestion_livephotopairitem_primarymediatype", "label": "PrimaryMediaType", @@ -62987,94 +62848,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L415" }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_configuration_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 391, - "community_name": "Microsoft.Extensions.Logging.Configuration", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L434" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_configuration_resolved", - "label": "resolved", - "_origin": "ast", - "community": 391, - "community_name": "Microsoft.Extensions.Logging.Configuration", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L433" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_configuration_type", - "label": "type", - "_origin": "ast", - "community": 391, - "community_name": "Microsoft.Extensions.Logging.Configuration", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L432" - }, - { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_logging_configuration", - "label": "Microsoft.Extensions.Logging.Configuration", - "_origin": "ast", - "community": 391, - "community_name": "Microsoft.Extensions.Logging.Configuration", - "file_type": "code", - "norm_label": "microsoft.extensions.logging.configuration", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L431" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_options_configurationextensions_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 393, - "community_name": "Microsoft.Extensions.Options.ConfigurationExtensions", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L504" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_options_configurationextensions_resolved", - "label": "resolved", - "_origin": "ast", - "community": 393, - "community_name": "Microsoft.Extensions.Options.ConfigurationExtensions", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L503" - }, - { - "id": "src_anichron_worker_packages_lock_microsoft_extensions_options_configurationextensions_type", - "label": "type", - "_origin": "ast", - "community": 393, - "community_name": "Microsoft.Extensions.Options.ConfigurationExtensions", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L502" - }, - { - "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_options_configurationextensions", - "label": "Microsoft.Extensions.Options.ConfigurationExtensions", - "_origin": "ast", - "community": 393, - "community_name": "Microsoft.Extensions.Options.ConfigurationExtensions", - "file_type": "code", - "norm_label": "microsoft.extensions.options.configurationextensions", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L501" - }, { "id": "src_anichron_worker_tests_unit_packages_lock_net10_0_xunit_v3_assert", "label": "xunit.v3.assert", @@ -63163,50 +62936,6 @@ "source_file": "src/Anichron.Worker.Tests.Unit/packages.lock.json", "source_location": "L375" }, - { - "id": "src_anichron_worker_packages_lock_net10_0_system_composition_runtime", - "label": "System.Composition.Runtime", - "_origin": "ast", - "community": 398, - "community_name": "System.Composition.Runtime", - "file_type": "code", - "norm_label": "system.composition.runtime", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L596" - }, - { - "id": "src_anichron_worker_packages_lock_system_composition_runtime_contenthash", - "label": "contentHash", - "_origin": "ast", - "community": 398, - "community_name": "System.Composition.Runtime", - "file_type": "code", - "norm_label": "contenthash", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L599" - }, - { - "id": "src_anichron_worker_packages_lock_system_composition_runtime_resolved", - "label": "resolved", - "_origin": "ast", - "community": 398, - "community_name": "System.Composition.Runtime", - "file_type": "code", - "norm_label": "resolved", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L598" - }, - { - "id": "src_anichron_worker_packages_lock_system_composition_runtime_type", - "label": "type", - "_origin": "ast", - "community": 398, - "community_name": "System.Composition.Runtime", - "file_type": "code", - "norm_label": "type", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L597" - }, { "id": "readme", "label": "README.md", @@ -64171,17 +63900,6 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L95" }, - { - "id": "src_anichron_worker_packages_lock_dependencies_microsoft_extensions_options_configurationextensions", - "label": "Microsoft.Extensions.Options.ConfigurationExtensions", - "_origin": "ast", - "community": 41, - "community_name": "dependencies", - "file_type": "code", - "norm_label": "microsoft.extensions.options.configurationextensions", - "source_file": "src/Anichron.Worker/packages.lock.json", - "source_location": "L366" - }, { "id": "src_anichron_worker_packages_lock_dependencies_system_diagnostics_eventlog", "label": "System.Diagnostics.EventLog", @@ -64259,6 +63977,17 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L73" }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_configuration_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 41, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L434" + }, { "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_configuration_dependencies", "label": "dependencies", @@ -64270,6 +63999,39 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L435" }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_configuration_resolved", + "label": "resolved", + "_origin": "ast", + "community": 41, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L433" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_configuration_type", + "label": "type", + "_origin": "ast", + "community": 41, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L432" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_console_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 41, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L449" + }, { "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_console_dependencies", "label": "dependencies", @@ -64281,6 +64043,28 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L450" }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_console_resolved", + "label": "resolved", + "_origin": "ast", + "community": 41, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L448" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_console_type", + "label": "type", + "_origin": "ast", + "community": 41, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L447" + }, { "id": "src_anichron_worker_packages_lock_microsoft_extensions_logging_debug_contenthash", "label": "contentHash", @@ -64468,6 +64252,28 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L369" }, + { + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_logging_configuration", + "label": "Microsoft.Extensions.Logging.Configuration", + "_origin": "ast", + "community": 41, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "microsoft.extensions.logging.configuration", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L431" + }, + { + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_logging_console", + "label": "Microsoft.Extensions.Logging.Console", + "_origin": "ast", + "community": 41, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "microsoft.extensions.logging.console", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L446" + }, { "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_logging_debug", "label": "Microsoft.Extensions.Logging.Debug", @@ -65694,7 +65500,7 @@ "label": "CancellationToken", "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -65705,7 +65511,7 @@ "label": "IConfiguration", "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "norm_label": "iconfiguration", "source_file": "", @@ -65716,7 +65522,7 @@ "label": "ILogger", "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "norm_label": "ilogger", "source_file": "", @@ -65727,7 +65533,7 @@ "label": "LoggerMessage", "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "norm_label": "loggermessage", "source_file": "", @@ -65738,12 +65544,23 @@ "label": "Task", "_origin": "ast", "community": 45, - "community_name": "BootstrapResetService", + "community_name": "IUnitOfWork", "file_type": "code", "norm_label": "task", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_core_data_iunitofwork", + "label": "IUnitOfWork.cs", + "_origin": "ast", + "community": 45, + "community_name": "IUnitOfWork", + "file_type": "code", + "norm_label": "iunitofwork.cs", + "source_file": "src/Anichron.Core/Data/IUnitOfWork.cs", + "source_location": "L1" + }, { "id": "src_anichron_worker_packages_lock_dependencies_humanizer_core", "label": "Humanizer.Core", @@ -66654,82 +66471,248 @@ "source_location": "L16" }, { - "id": "src_anichron_api_services_adminresetservice_cs_cancellationtoken", - "label": "CancellationToken", + "id": "capturinglogger", + "label": "CapturingLogger", "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "cancellationtoken", + "norm_label": "capturinglogger", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_adminresetservice_cs_guid", - "label": "Guid", + "id": "httpmessagehandler", + "label": "HttpMessageHandler", "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "guid", + "norm_label": "httpmessagehandler", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_adminresetservice_cs_iclock", - "label": "IClock", + "id": "httprequestmessage", + "label": "HttpRequestMessage", "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "iclock", + "norm_label": "httprequestmessage", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_services_adminresetservice_cs_task", - "label": "Task", + "id": "httpresponsemessage", + "label": "HttpResponseMessage", "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", - "norm_label": "task", + "norm_label": "httpresponsemessage", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_cancellationtoken", + "id": "idisposable", + "label": "IDisposable", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "idisposable", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests", + "label": "PwnedPasswordClientTests.cs", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "pwnedpasswordclienttests.cs", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_entries", + "label": "Entries", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": "entries", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L112" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_logger", + "label": "Logger", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "metadata": { + "namespace": "Anichron.API.Tests.Unit.Services", + "scope_chain": [ + "s84" + ] + }, + "norm_label": "logger", + "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", + "source_location": "L72" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_fact", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_eventid", + "label": "EventId", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "eventid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_exception", + "label": "Exception", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "exception", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_fact", "label": "Fact", "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "norm_label": "fact", "source_file": "", "source_location": "" }, { - "id": "src_anichron_api_tests_unit_endpoints_adminendpointstests_cs_task", + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_func", + "label": "Func", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "func", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_httprequestexception", + "label": "HttpRequestException", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "httprequestexception", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_inlinedata", + "label": "InlineData", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "inlinedata", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_ireadonlylist", + "label": "IReadOnlyList", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "ireadonlylist", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_level", + "label": "Level", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "level", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_list", + "label": "List", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "list", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_loglevel", + "label": "LogLevel", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "loglevel", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_task", "label": "Task", "_origin": "ast", "community": 5, - "community_name": "AdminCreatedUser", + "community_name": "TestFixture", "file_type": "code", "norm_label": "task", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_theory", + "label": "Theory", + "_origin": "ast", + "community": 5, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "theory", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_api_tests_unit_services_adminstorageconfigservicetests_anichron_api_tests_unit_services_testfixture_guidfactory", "label": "GuidFactory", @@ -67793,6 +67776,17 @@ "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L209" }, + { + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 54, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L46" + }, { "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_dependencies", "label": "dependencies", @@ -67804,6 +67798,39 @@ "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L47" }, + { + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_requested", + "label": "requested", + "_origin": "ast", + "community": 54, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "requested", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L44" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_resolved", + "label": "resolved", + "_origin": "ast", + "community": 54, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L45" + }, + { + "id": "src_anichron_api_packages_lock_microsoft_entityframeworkcore_design_type", + "label": "type", + "_origin": "ast", + "community": 54, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L43" + }, { "id": "src_anichron_api_packages_lock_net10_0_microsoft_codeanalysis_common", "label": "Microsoft.CodeAnalysis.Common", @@ -67859,6 +67886,17 @@ "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L208" }, + { + "id": "src_anichron_api_packages_lock_net10_0_microsoft_entityframeworkcore_design", + "label": "Microsoft.EntityFrameworkCore.Design", + "_origin": "ast", + "community": 54, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "microsoft.entityframeworkcore.design", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L42" + }, { "id": "src_anichron_worker_tests_unit_packages_lock_dependencies", "label": "dependencies", @@ -68432,105 +68470,105 @@ "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_anichron_worker_ingestion_middlewares_imageproxymiddleware_order", - "label": "Order", + "id": "src_anichron_worker_crawling_workerstate", + "label": "WorkerState.cs", "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", - "metadata": { - "namespace": "Anichron.Worker.Ingestion.Middlewares", - "scope_chain": [ - "s209" - ] - }, - "norm_label": "order", - "source_file": "src/Anichron.Worker/Ingestion/Middlewares/ImageProxyMiddleware.cs", - "source_location": "L17" + "norm_label": "workerstate.cs", + "source_file": "src/Anichron.Worker/Crawling/WorkerState.cs", + "source_location": "L1" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_cancellationtoken", - "label": "CancellationToken", + "id": "src_anichron_worker_crawling_workerstate_anichron_worker_crawling_workerstate_resolveduserid", + "label": "ResolvedUserId", "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" + "metadata": { + "namespace": "Anichron.Worker.Crawling", + "scope_chain": [ + "s0" + ] + }, + "norm_label": "resolveduserid", + "source_file": "src/Anichron.Worker/Crawling/WorkerState.cs", + "source_location": "L7" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_ienumerable", - "label": "IEnumerable", + "id": "src_anichron_worker_crawling_workerstate_cs_guid", + "label": "Guid", "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", - "norm_label": "ienumerable", + "norm_label": "guid", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_ifilesystem", - "label": "IFileSystem", + "id": "src_anichron_worker_startup_workerinitializer_cs_cancellationtoken", + "label": "CancellationToken", "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", - "norm_label": "ifilesystem", + "norm_label": "cancellationtoken", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_ilogger", + "id": "src_anichron_worker_startup_workerinitializer_cs_ilogger", "label": "ILogger", "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", "norm_label": "ilogger", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_ingestiondelegate", - "label": "IngestionDelegate", + "id": "src_anichron_worker_startup_workerinitializer_cs_ioptions", + "label": "IOptions", "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", - "norm_label": "ingestiondelegate", + "norm_label": "ioptions", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_loggermessage", - "label": "LoggerMessage", + "id": "src_anichron_worker_startup_workerinitializer_cs_iservicescopefactory", + "label": "IServiceScopeFactory", "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", - "norm_label": "loggermessage", + "norm_label": "iservicescopefactory", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_rgba32", - "label": "Rgba32", + "id": "src_anichron_worker_startup_workerinitializer_cs_loggermessage", + "label": "LoggerMessage", "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", - "norm_label": "rgba32", + "norm_label": "loggermessage", "source_file": "", "source_location": "" }, { - "id": "src_anichron_worker_ingestion_middlewares_imageproxymiddleware_cs_task", + "id": "src_anichron_worker_startup_workerinitializer_cs_task", "label": "Task", "_origin": "ast", "community": 57, - "community_name": "ImageProxyMiddleware", + "community_name": "WorkerInitializer", "file_type": "code", "norm_label": "task", "source_file": "", @@ -70956,18 +70994,35 @@ "label": "ILogger", "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "ilogger", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_anichron_worker_ingestion_middlewares_loggingmiddleware_order", + "label": "Order", + "_origin": "ast", + "community": 65, + "community_name": "CapturingLogger", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Ingestion.Middlewares", + "scope_chain": [ + "s43" + ] + }, + "norm_label": "order", + "source_file": "src/Anichron.Worker/Ingestion/Middlewares/LoggingMiddleware.cs", + "source_location": "L7" + }, { "id": "src_anichron_worker_ingestion_middlewares_loggingmiddleware_cs_cancellationtoken", "label": "CancellationToken", "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "cancellationtoken", "source_file": "", @@ -70978,7 +71033,7 @@ "label": "IngestionDelegate", "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "ingestiondelegate", "source_file": "", @@ -70989,40 +71044,112 @@ "label": "Task", "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "task", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_anichron_worker_tests_unit_ingestion_middlewares_capturinglogger_entries", + "label": "Entries", + "_origin": "ast", + "community": 65, + "community_name": "CapturingLogger", + "file_type": "code", + "metadata": { + "namespace": "Anichron.Worker.Tests.Unit.Ingestion.Middlewares", + "scope_chain": [ + "s185" + ] + }, + "norm_label": "entries", + "source_file": "src/Anichron.Worker.Tests.Unit/Ingestion/Middlewares/LoggingMiddlewareTests.cs", + "source_location": "L113" + }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_fact", "label": "Fact", "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "fact", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_idisposable", + "label": "IDisposable", + "_origin": "ast", + "community": 65, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "idisposable", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_invalidoperationexception", "label": "InvalidOperationException", "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "invalidoperationexception", "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_ireadonlylist", + "label": "IReadOnlyList", + "_origin": "ast", + "community": 65, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "ireadonlylist", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_level", + "label": "Level", + "_origin": "ast", + "community": 65, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "level", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_list", + "label": "List", + "_origin": "ast", + "community": 65, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "list", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_message", + "label": "Message", + "_origin": "ast", + "community": 65, + "community_name": "CapturingLogger", + "file_type": "code", + "norm_label": "message", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_tests_unit_ingestion_middlewares_loggingmiddlewaretests_cs_task", "label": "Task", "_origin": "ast", "community": 65, - "community_name": ".InvokeAsync", + "community_name": "CapturingLogger", "file_type": "code", "norm_label": "task", "source_file": "", @@ -72112,6 +72239,50 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_core_guidfactory", + "label": "GuidFactory.cs", + "_origin": "ast", + "community": 72, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "guidfactory.cs", + "source_file": "src/Anichron.Core/GuidFactory.cs", + "source_location": "L1" + }, + { + "id": "src_anichron_core_guidfactory_cs_guid", + "label": "Guid", + "_origin": "ast", + "community": 72, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "guid", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_cs_iclock", + "label": "IClock", + "_origin": "ast", + "community": 72, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "iclock", + "source_file": "", + "source_location": "" + }, + { + "id": "src_anichron_worker_ingestion_proxy_proxyfilebuilder_cs_proxytype", + "label": "ProxyType", + "_origin": "ast", + "community": 72, + "community_name": "TestFixture", + "file_type": "code", + "norm_label": "proxytype", + "source_file": "", + "source_location": "" + }, { "id": "src_anichron_worker_ingestion_proxy_proxystagingwriter_cs_cancellationtoken", "label": "CancellationToken", @@ -72450,17 +72621,6 @@ "source_file": "", "source_location": "" }, - { - "id": "capturinglogger", - "label": "CapturingLogger", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "capturinglogger", - "source_file": "", - "source_location": "" - }, { "id": "httpclient", "label": "HttpClient", @@ -72472,50 +72632,6 @@ "source_file": "", "source_location": "" }, - { - "id": "httpmessagehandler", - "label": "HttpMessageHandler", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "httpmessagehandler", - "source_file": "", - "source_location": "" - }, - { - "id": "httprequestmessage", - "label": "HttpRequestMessage", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "httprequestmessage", - "source_file": "", - "source_location": "" - }, - { - "id": "httpresponsemessage", - "label": "HttpResponseMessage", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "httpresponsemessage", - "source_file": "", - "source_location": "" - }, - { - "id": "idisposable", - "label": "IDisposable", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "idisposable", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_api_services_pwnedpasswordclient_cs_cancellationtoken", "label": "CancellationToken", @@ -72571,183 +72687,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_capturinglogger_entries", - "label": "Entries", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": "entries", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L112" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_anichron_api_tests_unit_services_testfixture_logger", - "label": "Logger", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "metadata": { - "namespace": "Anichron.API.Tests.Unit.Services", - "scope_chain": [ - "s84" - ] - }, - "norm_label": "logger", - "source_file": "src/Anichron.API.Tests.Unit/Services/PwnedPasswordClientTests.cs", - "source_location": "L72" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_eventid", - "label": "EventId", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "eventid", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_exception", - "label": "Exception", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "exception", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_fact", - "label": "Fact", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "fact", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_func", - "label": "Func", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "func", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_httprequestexception", - "label": "HttpRequestException", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "httprequestexception", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_inlinedata", - "label": "InlineData", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "inlinedata", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_ireadonlylist", - "label": "IReadOnlyList", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "ireadonlylist", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_level", - "label": "Level", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "level", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_list", - "label": "List", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "list", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_loglevel", - "label": "LogLevel", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "loglevel", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_task", - "label": "Task", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_api_tests_unit_services_pwnedpasswordclienttests_cs_theory", - "label": "Theory", - "_origin": "ast", - "community": 73, - "community_name": "TestFixture", - "file_type": "code", - "norm_label": "theory", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_api_tests_unit_services_registrationvalidatortests_anichron_api_tests_unit_services_testfixture_pwnedclient", "label": "PwnedClient", @@ -74101,50 +74040,6 @@ "source_file": "", "source_location": "" }, - { - "id": "src_anichron_core_data_repository_mediaassetrepository_cs_anichrondbcontext", - "label": "AnichronDbContext", - "_origin": "ast", - "community": 79, - "community_name": "MediaAsset", - "file_type": "code", - "norm_label": "anichrondbcontext", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_data_repository_mediaassetrepository_cs_cancellationtoken", - "label": "CancellationToken", - "_origin": "ast", - "community": 79, - "community_name": "MediaAsset", - "file_type": "code", - "norm_label": "cancellationtoken", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_data_repository_mediaassetrepository_cs_guid", - "label": "Guid", - "_origin": "ast", - "community": 79, - "community_name": "MediaAsset", - "file_type": "code", - "norm_label": "guid", - "source_file": "", - "source_location": "" - }, - { - "id": "src_anichron_core_data_repository_mediaassetrepository_cs_task", - "label": "Task", - "_origin": "ast", - "community": 79, - "community_name": "MediaAsset", - "file_type": "code", - "norm_label": "task", - "source_file": "", - "source_location": "" - }, { "id": "src_anichron_core_domain_mediaasset", "label": "MediaAsset.cs", @@ -75678,12 +75573,34 @@ "source_file": "src/Anichron.Core/packages.lock.json", "source_location": "L240" }, + { + "id": "src_anichron_api_packages_lock_anichron_core_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 82, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L470" + }, + { + "id": "src_anichron_api_packages_lock_anichron_core_type", + "label": "type", + "_origin": "ast", + "community": 82, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L469" + }, { "id": "src_anichron_api_packages_lock_anichron_infrastructure_dependencies", "label": "dependencies", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.API/packages.lock.json", @@ -75694,7 +75611,7 @@ "label": "type", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", @@ -75705,7 +75622,7 @@ "label": "Microsoft.EntityFrameworkCore", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "microsoft.entityframeworkcore", "source_file": "src/Anichron.API/packages.lock.json", @@ -75716,29 +75633,51 @@ "label": "Microsoft.EntityFrameworkCore.Relational", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "microsoft.entityframeworkcore.relational", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L53" }, + { + "id": "src_anichron_api_packages_lock_dependencies_nodatime", + "label": "NodaTime", + "_origin": "ast", + "community": 82, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "nodatime", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L369" + }, { "id": "src_anichron_api_packages_lock_dependencies_npgsql", "label": "Npgsql", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "npgsql", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L107" }, + { + "id": "src_anichron_api_packages_lock_dependencies_npgsql_entityframeworkcore_postgresql_nodatime", + "label": "Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime", + "_origin": "ast", + "community": 82, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "npgsql.entityframeworkcore.postgresql.nodatime", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L475" + }, { "id": "src_anichron_api_packages_lock_dependencies_system_io_abstractions", "label": "System.IO.Abstractions", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "system.io.abstractions", "source_file": "src/Anichron.API/packages.lock.json", @@ -75749,7 +75688,7 @@ "label": "contentHash", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", @@ -75760,7 +75699,7 @@ "label": "dependencies", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.API/packages.lock.json", @@ -75771,7 +75710,7 @@ "label": "requested", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "requested", "source_file": "src/Anichron.API/packages.lock.json", @@ -75782,7 +75721,7 @@ "label": "resolved", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", @@ -75793,7 +75732,7 @@ "label": "type", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", @@ -75804,7 +75743,7 @@ "label": "contentHash", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", @@ -75815,7 +75754,7 @@ "label": "dependencies", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.API/packages.lock.json", @@ -75826,7 +75765,7 @@ "label": "requested", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "requested", "source_file": "src/Anichron.API/packages.lock.json", @@ -75837,7 +75776,7 @@ "label": "resolved", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", @@ -75848,18 +75787,29 @@ "label": "type", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L69" }, + { + "id": "src_anichron_api_packages_lock_net10_0_anichron_core", + "label": "anichron.core", + "_origin": "ast", + "community": 82, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "anichron.core", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L468" + }, { "id": "src_anichron_api_packages_lock_net10_0_anichron_infrastructure", "label": "anichron.infrastructure", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "anichron.infrastructure", "source_file": "src/Anichron.API/packages.lock.json", @@ -75870,7 +75820,7 @@ "label": "Microsoft.EntityFrameworkCore.Relational", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "microsoft.entityframeworkcore.relational", "source_file": "src/Anichron.API/packages.lock.json", @@ -75881,7 +75831,7 @@ "label": "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "microsoft.extensions.diagnostics.healthchecks.entityframeworkcore", "source_file": "src/Anichron.API/packages.lock.json", @@ -75892,18 +75842,29 @@ "label": "Npgsql.EntityFrameworkCore.PostgreSQL", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "npgsql.entityframeworkcore.postgresql", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L99" }, + { + "id": "src_anichron_api_packages_lock_net10_0_npgsql_nodatime", + "label": "Npgsql.NodaTime", + "_origin": "ast", + "community": 82, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "npgsql.nodatime", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L364" + }, { "id": "src_anichron_api_packages_lock_npgsql_entityframeworkcore_postgresql_contenthash", "label": "contentHash", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "contenthash", "source_file": "src/Anichron.API/packages.lock.json", @@ -75914,7 +75875,7 @@ "label": "dependencies", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "dependencies", "source_file": "src/Anichron.API/packages.lock.json", @@ -75925,7 +75886,7 @@ "label": "requested", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "requested", "source_file": "src/Anichron.API/packages.lock.json", @@ -75936,7 +75897,7 @@ "label": "resolved", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "resolved", "source_file": "src/Anichron.API/packages.lock.json", @@ -75947,12 +75908,56 @@ "label": "type", "_origin": "ast", "community": 82, - "community_name": "Microsoft.EntityFrameworkCore.Relational", + "community_name": "dependencies", "file_type": "code", "norm_label": "type", "source_file": "src/Anichron.API/packages.lock.json", "source_location": "L100" }, + { + "id": "src_anichron_api_packages_lock_npgsql_nodatime_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 82, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L367" + }, + { + "id": "src_anichron_api_packages_lock_npgsql_nodatime_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 82, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L368" + }, + { + "id": "src_anichron_api_packages_lock_npgsql_nodatime_resolved", + "label": "resolved", + "_origin": "ast", + "community": 82, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L366" + }, + { + "id": "src_anichron_api_packages_lock_npgsql_nodatime_type", + "label": "type", + "_origin": "ast", + "community": 82, + "community_name": "dependencies", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.API/packages.lock.json", + "source_location": "L365" + }, { "id": "src_anichron_core_packages_lock_dependencies_humanizer_core", "label": "Humanizer.Core", @@ -79513,6 +79518,28 @@ "source_file": "", "source_location": "" }, + { + "id": "src_anichron_worker_packages_lock_dependencies_microsoft_extensions_fileproviders_abstractions", + "label": "Microsoft.Extensions.FileProviders.Abstractions", + "_origin": "ast", + "community": 96, + "community_name": "Microsoft.Extensions.Primitives", + "file_type": "code", + "norm_label": "microsoft.extensions.fileproviders.abstractions", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L65" + }, + { + "id": "src_anichron_worker_packages_lock_dependencies_microsoft_extensions_fileproviders_physical", + "label": "Microsoft.Extensions.FileProviders.Physical", + "_origin": "ast", + "community": 96, + "community_name": "Microsoft.Extensions.Primitives", + "file_type": "code", + "norm_label": "microsoft.extensions.fileproviders.physical", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L86" + }, { "id": "src_anichron_worker_packages_lock_dependencies_microsoft_extensions_filesystemglobbing", "label": "Microsoft.Extensions.FileSystemGlobbing", @@ -79623,6 +79650,50 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L273" }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_configuration_fileextensions_contenthash", + "label": "contentHash", + "_origin": "ast", + "community": 96, + "community_name": "Microsoft.Extensions.Primitives", + "file_type": "code", + "norm_label": "contenthash", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L310" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_configuration_fileextensions_dependencies", + "label": "dependencies", + "_origin": "ast", + "community": 96, + "community_name": "Microsoft.Extensions.Primitives", + "file_type": "code", + "norm_label": "dependencies", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L311" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_configuration_fileextensions_resolved", + "label": "resolved", + "_origin": "ast", + "community": 96, + "community_name": "Microsoft.Extensions.Primitives", + "file_type": "code", + "norm_label": "resolved", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L309" + }, + { + "id": "src_anichron_worker_packages_lock_microsoft_extensions_configuration_fileextensions_type", + "label": "type", + "_origin": "ast", + "community": 96, + "community_name": "Microsoft.Extensions.Primitives", + "file_type": "code", + "norm_label": "type", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L308" + }, { "id": "src_anichron_worker_packages_lock_microsoft_extensions_fileproviders_abstractions_contenthash", "label": "contentHash", @@ -79777,6 +79848,17 @@ "source_file": "src/Anichron.Worker/packages.lock.json", "source_location": "L272" }, + { + "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_configuration_fileextensions", + "label": "Microsoft.Extensions.Configuration.FileExtensions", + "_origin": "ast", + "community": 96, + "community_name": "Microsoft.Extensions.Primitives", + "file_type": "code", + "norm_label": "microsoft.extensions.configuration.fileextensions", + "source_file": "src/Anichron.Worker/packages.lock.json", + "source_location": "L307" + }, { "id": "src_anichron_worker_packages_lock_net10_0_microsoft_extensions_fileproviders_abstractions", "label": "Microsoft.Extensions.FileProviders.Abstractions", @@ -80997,12 +81079,24 @@ "source_location": "lines 71-72", "source_url": null }, + { + "id": "system_net_mail", + "label": "system_net_mail", + "_origin": "semantic", + "community": 0, + "community_name": "TestFixture", + "external": true, + "file_type": "concept", + "norm_label": "system_net_mail", + "source_file": "", + "type": "external" + }, { "id": "microsoft_entityframeworkcore_infrastructure", "label": "microsoft_entityframeworkcore_infrastructure", "_origin": "semantic", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "external": true, "file_type": "concept", "norm_label": "microsoft_entityframeworkcore_infrastructure", @@ -81014,7 +81108,7 @@ "label": "microsoft_entityframeworkcore_migrations", "_origin": "semantic", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "external": true, "file_type": "concept", "norm_label": "microsoft_entityframeworkcore_migrations", @@ -81026,19 +81120,31 @@ "label": "microsoft_entityframeworkcore_storage_valueconversion", "_origin": "semantic", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "external": true, "file_type": "concept", "norm_label": "microsoft_entityframeworkcore_storage_valueconversion", "source_file": "", "type": "external" }, + { + "id": "nodatime", + "label": "nodatime", + "_origin": "semantic", + "community": 104, + "community_name": "nodatime", + "external": true, + "file_type": "concept", + "norm_label": "nodatime", + "source_file": "", + "type": "external" + }, { "id": "npgsql_entityframeworkcore_postgresql_metadata", "label": "npgsql_entityframeworkcore_postgresql_metadata", "_origin": "semantic", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "external": true, "file_type": "concept", "norm_label": "npgsql_entityframeworkcore_postgresql_metadata", @@ -81050,7 +81156,7 @@ "label": "system", "_origin": "semantic", "community": 104, - "community_name": "20260511154104_InitialSchema.Designer.cs", + "community_name": "nodatime", "external": true, "file_type": "concept", "norm_label": "system", @@ -81093,18 +81199,6 @@ "source_file": "", "type": "external" }, - { - "id": "microsoft_extensions_hosting", - "label": "microsoft_extensions_hosting", - "_origin": "semantic", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "external": true, - "file_type": "concept", - "norm_label": "microsoft_extensions_hosting", - "source_file": "", - "type": "external" - }, { "id": "microsoft_extensions_logging", "label": "microsoft_extensions_logging", @@ -81117,18 +81211,6 @@ "source_file": "", "type": "external" }, - { - "id": "nodatime", - "label": "nodatime", - "_origin": "semantic", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "external": true, - "file_type": "concept", - "norm_label": "nodatime", - "source_file": "", - "type": "external" - }, { "id": "nodatime_text", "label": "nodatime_text", @@ -81141,30 +81223,6 @@ "source_file": "", "type": "external" }, - { - "id": "sixlabors_imagesharp", - "label": "sixlabors_imagesharp", - "_origin": "semantic", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "external": true, - "file_type": "concept", - "norm_label": "sixlabors_imagesharp", - "source_file": "", - "type": "external" - }, - { - "id": "sixlabors_imagesharp_pixelformats", - "label": "sixlabors_imagesharp_pixelformats", - "_origin": "semantic", - "community": 121, - "community_name": "Anichron.Worker.Ingestion.Pipeline", - "external": true, - "file_type": "concept", - "norm_label": "sixlabors_imagesharp_pixelformats", - "source_file": "", - "type": "external" - }, { "id": "system_io_abstractions", "label": "system_io_abstractions", @@ -81225,6 +81283,18 @@ "source_file": "", "type": "external" }, + { + "id": "microsoft_extensions_hosting", + "label": "microsoft_extensions_hosting", + "_origin": "semantic", + "community": 182, + "community_name": "microsoft_extensions_options", + "external": true, + "file_type": "concept", + "norm_label": "microsoft_extensions_hosting", + "source_file": "", + "type": "external" + }, { "id": "microsoft_extensions_options", "label": "microsoft_extensions_options", @@ -81237,6 +81307,18 @@ "source_file": "", "type": "external" }, + { + "id": "sixlabors_imagesharp", + "label": "sixlabors_imagesharp", + "_origin": "semantic", + "community": 182, + "community_name": "microsoft_extensions_options", + "external": true, + "file_type": "concept", + "norm_label": "sixlabors_imagesharp", + "source_file": "", + "type": "external" + }, { "id": "sixlabors_imagesharp_formats_jpeg", "label": "sixlabors_imagesharp_formats_jpeg", @@ -81249,6 +81331,18 @@ "source_file": "", "type": "external" }, + { + "id": "sixlabors_imagesharp_pixelformats", + "label": "sixlabors_imagesharp_pixelformats", + "_origin": "semantic", + "community": 182, + "community_name": "microsoft_extensions_options", + "external": true, + "file_type": "concept", + "norm_label": "sixlabors_imagesharp_pixelformats", + "source_file": "", + "type": "external" + }, { "id": "sixlabors_imagesharp_processing", "label": "sixlabors_imagesharp_processing", @@ -81310,134 +81404,134 @@ "type": "external" }, { - "id": "microsoft_extensions_configuration", - "label": "microsoft_extensions_configuration", + "id": "konscious_security_cryptography", + "label": "konscious_security_cryptography", "_origin": "semantic", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "external": true, "file_type": "concept", - "norm_label": "microsoft_extensions_configuration", + "norm_label": "konscious_security_cryptography", "source_file": "", "type": "external" }, { - "id": "system_globalization", - "label": "system_globalization", + "id": "microsoft_aspnetcore_authentication_jwtbearer", + "label": "microsoft_aspnetcore_authentication_jwtbearer", "_origin": "semantic", "community": 196, - "community_name": "Anichron.Infrastructure.Configuration", + "community_name": "ServiceCollectionExtensions.cs", "external": true, "file_type": "concept", - "norm_label": "system_globalization", + "norm_label": "microsoft_aspnetcore_authentication_jwtbearer", "source_file": "", "type": "external" }, { - "id": "system_componentmodel_dataannotations", - "label": "system_componentmodel_dataannotations", + "id": "microsoft_aspnetcore_httpoverrides", + "label": "microsoft_aspnetcore_httpoverrides", "_origin": "semantic", - "community": 22, - "community_name": "WorkerSettings", + "community": 196, + "community_name": "ServiceCollectionExtensions.cs", "external": true, "file_type": "concept", - "norm_label": "system_componentmodel_dataannotations", + "norm_label": "microsoft_aspnetcore_httpoverrides", "source_file": "", "type": "external" }, { - "id": "microsoft_aspnetcore_http", - "label": "microsoft_aspnetcore_http", + "id": "microsoft_extensions_configuration", + "label": "microsoft_extensions_configuration", "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community": 196, + "community_name": "ServiceCollectionExtensions.cs", "external": true, "file_type": "concept", - "norm_label": "microsoft_aspnetcore_http", + "norm_label": "microsoft_extensions_configuration", "source_file": "", "type": "external" }, { - "id": "microsoft_aspnetcore_http_json", - "label": "microsoft_aspnetcore_http_json", + "id": "microsoft_identitymodel_tokens", + "label": "microsoft_identitymodel_tokens", "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community": 196, + "community_name": "ServiceCollectionExtensions.cs", "external": true, "file_type": "concept", - "norm_label": "microsoft_aspnetcore_http_json", + "norm_label": "microsoft_identitymodel_tokens", "source_file": "", "type": "external" }, { - "id": "microsoft_aspnetcore_mvc", - "label": "microsoft_aspnetcore_mvc", + "id": "system_globalization", + "label": "system_globalization", "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community": 196, + "community_name": "ServiceCollectionExtensions.cs", "external": true, "file_type": "concept", - "norm_label": "microsoft_aspnetcore_mvc", + "norm_label": "system_globalization", "source_file": "", "type": "external" }, { - "id": "microsoft_extensions_diagnostics_healthchecks", - "label": "microsoft_extensions_diagnostics_healthchecks", + "id": "system_globalization_cultureinfo", + "label": "system_globalization_cultureinfo", "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community": 196, + "community_name": "ServiceCollectionExtensions.cs", "external": true, "file_type": "concept", - "norm_label": "microsoft_extensions_diagnostics_healthchecks", + "norm_label": "system_globalization_cultureinfo", "source_file": "", "type": "external" }, { - "id": "system_security_claims", - "label": "system_security_claims", + "id": "system_identitymodel_tokens_jwt", + "label": "system_identitymodel_tokens_jwt", "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community": 196, + "community_name": "ServiceCollectionExtensions.cs", "external": true, "file_type": "concept", - "norm_label": "system_security_claims", + "norm_label": "system_identitymodel_tokens_jwt", "source_file": "", "type": "external" }, { - "id": "system_text_json", - "label": "system_text_json", + "id": "system_text", + "label": "system_text", "_origin": "semantic", - "community": 33, - "community_name": "Anichron.API.Infrastructure", + "community": 196, + "community_name": "ServiceCollectionExtensions.cs", "external": true, "file_type": "concept", - "norm_label": "system_text_json", + "norm_label": "system_text", "source_file": "", "type": "external" }, { - "id": "konscious_security_cryptography", - "label": "konscious_security_cryptography", + "id": "system_threading_ratelimiting", + "label": "system_threading_ratelimiting", "_origin": "semantic", - "community": 36, - "community_name": "Anichron.Core.Domain", + "community": 196, + "community_name": "ServiceCollectionExtensions.cs", "external": true, "file_type": "concept", - "norm_label": "konscious_security_cryptography", + "norm_label": "system_threading_ratelimiting", "source_file": "", "type": "external" }, { - "id": "microsoft_aspnetcore_authentication_jwtbearer", - "label": "microsoft_aspnetcore_authentication_jwtbearer", + "id": "system_componentmodel_dataannotations", + "label": "system_componentmodel_dataannotations", "_origin": "semantic", - "community": 36, - "community_name": "Anichron.Core.Domain", + "community": 22, + "community_name": "WorkerSettings", "external": true, "file_type": "concept", - "norm_label": "microsoft_aspnetcore_authentication_jwtbearer", + "norm_label": "system_componentmodel_dataannotations", "source_file": "", "type": "external" }, @@ -81445,8 +81539,8 @@ "id": "microsoft_aspnetcore_diagnostics_healthchecks", "label": "microsoft_aspnetcore_diagnostics_healthchecks", "_origin": "semantic", - "community": 36, - "community_name": "Anichron.Core.Domain", + "community": 33, + "community_name": "Anichron.API.Settings", "external": true, "file_type": "concept", "norm_label": "microsoft_aspnetcore_diagnostics_healthchecks", @@ -81454,170 +81548,170 @@ "type": "external" }, { - "id": "microsoft_aspnetcore_httpoverrides", - "label": "microsoft_aspnetcore_httpoverrides", + "id": "microsoft_aspnetcore_http", + "label": "microsoft_aspnetcore_http", "_origin": "semantic", - "community": 36, - "community_name": "Anichron.Core.Domain", + "community": 33, + "community_name": "Anichron.API.Settings", "external": true, "file_type": "concept", - "norm_label": "microsoft_aspnetcore_httpoverrides", + "norm_label": "microsoft_aspnetcore_http", "source_file": "", "type": "external" }, { - "id": "microsoft_entityframeworkcore", - "label": "microsoft_entityframeworkcore", + "id": "microsoft_aspnetcore_http_json", + "label": "microsoft_aspnetcore_http_json", "_origin": "semantic", - "community": 36, - "community_name": "Anichron.Core.Domain", + "community": 33, + "community_name": "Anichron.API.Settings", "external": true, "file_type": "concept", - "norm_label": "microsoft_entityframeworkcore", + "norm_label": "microsoft_aspnetcore_http_json", "source_file": "", "type": "external" }, { - "id": "microsoft_entityframeworkcore_design", - "label": "microsoft_entityframeworkcore_design", + "id": "microsoft_aspnetcore_mvc", + "label": "microsoft_aspnetcore_mvc", "_origin": "semantic", - "community": 36, - "community_name": "Anichron.Core.Domain", + "community": 33, + "community_name": "Anichron.API.Settings", "external": true, "file_type": "concept", - "norm_label": "microsoft_entityframeworkcore_design", + "norm_label": "microsoft_aspnetcore_mvc", "source_file": "", "type": "external" }, { - "id": "microsoft_identitymodel_tokens", - "label": "microsoft_identitymodel_tokens", + "id": "microsoft_extensions_diagnostics_healthchecks", + "label": "microsoft_extensions_diagnostics_healthchecks", "_origin": "semantic", - "community": 36, - "community_name": "Anichron.Core.Domain", + "community": 33, + "community_name": "Anichron.API.Settings", "external": true, "file_type": "concept", - "norm_label": "microsoft_identitymodel_tokens", + "norm_label": "microsoft_extensions_diagnostics_healthchecks", "source_file": "", "type": "external" }, { - "id": "npgsql", - "label": "npgsql", + "id": "system_security_claims", + "label": "system_security_claims", "_origin": "semantic", - "community": 36, - "community_name": "Anichron.Core.Domain", + "community": 33, + "community_name": "Anichron.API.Settings", "external": true, "file_type": "concept", - "norm_label": "npgsql", + "norm_label": "system_security_claims", "source_file": "", "type": "external" }, { - "id": "system_diagnostics", - "label": "system_diagnostics", + "id": "system_text_json", + "label": "system_text_json", "_origin": "semantic", - "community": 36, - "community_name": "Anichron.Core.Domain", + "community": 33, + "community_name": "Anichron.API.Settings", "external": true, "file_type": "concept", - "norm_label": "system_diagnostics", + "norm_label": "system_text_json", "source_file": "", "type": "external" }, { - "id": "system_globalization_cultureinfo", - "label": "system_globalization_cultureinfo", + "id": "system_text_regularexpressions", + "label": "system_text_regularexpressions", "_origin": "semantic", - "community": 36, - "community_name": "Anichron.Core.Domain", + "community": 33, + "community_name": "Anichron.API.Settings", "external": true, "file_type": "concept", - "norm_label": "system_globalization_cultureinfo", + "norm_label": "system_text_regularexpressions", "source_file": "", "type": "external" }, { - "id": "system_identitymodel_tokens_jwt", - "label": "system_identitymodel_tokens_jwt", + "id": "microsoft_entityframeworkcore", + "label": "microsoft_entityframeworkcore", "_origin": "semantic", "community": 36, "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "system_identitymodel_tokens_jwt", + "norm_label": "microsoft_entityframeworkcore", "source_file": "", "type": "external" }, { - "id": "system_net", - "label": "system_net", + "id": "microsoft_entityframeworkcore_design", + "label": "microsoft_entityframeworkcore_design", "_origin": "semantic", "community": 36, "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "system_net", + "norm_label": "microsoft_entityframeworkcore_design", "source_file": "", "type": "external" }, { - "id": "system_net_mail", - "label": "system_net_mail", + "id": "npgsql", + "label": "npgsql", "_origin": "semantic", "community": 36, "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "system_net_mail", + "norm_label": "npgsql", "source_file": "", "type": "external" }, { - "id": "system_security_cryptography", - "label": "system_security_cryptography", + "id": "nsubstitute_exceptionextensions", + "label": "nsubstitute_exceptionextensions", "_origin": "semantic", "community": 36, "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "system_security_cryptography", + "norm_label": "nsubstitute_exceptionextensions", "source_file": "", "type": "external" }, { - "id": "system_text", - "label": "system_text", + "id": "system_diagnostics", + "label": "system_diagnostics", "_origin": "semantic", "community": 36, "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "system_text", + "norm_label": "system_diagnostics", "source_file": "", "type": "external" }, { - "id": "system_text_regularexpressions", - "label": "system_text_regularexpressions", + "id": "system_security_cryptography", + "label": "system_security_cryptography", "_origin": "semantic", "community": 36, "community_name": "Anichron.Core.Domain", "external": true, "file_type": "concept", - "norm_label": "system_text_regularexpressions", + "norm_label": "system_security_cryptography", "source_file": "", "type": "external" }, { - "id": "system_threading_ratelimiting", - "label": "system_threading_ratelimiting", + "id": "system_net", + "label": "system_net", "_origin": "semantic", - "community": 36, - "community_name": "Anichron.Core.Domain", + "community": 5, + "community_name": "TestFixture", "external": true, "file_type": "concept", - "norm_label": "system_threading_ratelimiting", + "norm_label": "system_net", "source_file": "", "type": "external" }, @@ -81632,17 +81726,6 @@ "norm_label": "system_diagnostics_codeanalysis", "source_file": "", "type": "external" - }, - { - "id": "nsubstitute_exceptionextensions", - "label": "nsubstitute_exceptionextensions", - "community": 36, - "community_name": "Anichron.Core.Domain", - "external": true, - "file_type": "concept", - "norm_label": "nsubstitute_exceptionextensions", - "source_file": "", - "type": "external" } ], "links": [ @@ -83368,7 +83451,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L64", + "source_location": "L65", "weight": 1.0 }, { @@ -83383,7 +83466,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L12", + "source_location": "L13", "weight": 1.0 }, { @@ -83398,7 +83481,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L22", + "source_location": "L23", "weight": 1.0 }, { @@ -83413,7 +83496,37 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L44", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_nullstoredhash_doesnotshortcircuit", + "target": "src_anichron_api_tests_unit_security_passwordhashertests_cs_fact", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "attribute", + "metadata": { + "ref_token": "Fact" + }, + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_nullstoredhash_returnsfalse", + "target": "src_anichron_api_tests_unit_security_passwordhashertests_cs_fact", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "attribute", + "metadata": { + "ref_token": "Fact" + }, + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L103", "weight": 1.0 }, { @@ -83428,7 +83541,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L75", + "source_location": "L76", "weight": 1.0 }, { @@ -83443,7 +83556,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L54", + "source_location": "L55", "weight": 1.0 }, { @@ -83878,7 +83991,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L844", + "source_location": "L860", "weight": 1.0 }, { @@ -83893,7 +84006,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L856", + "source_location": "L872", "weight": 1.0 }, { @@ -83908,7 +84021,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L775", + "source_location": "L791", "weight": 1.0 }, { @@ -83923,7 +84036,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L890", + "source_location": "L906", "weight": 1.0 }, { @@ -83938,7 +84051,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L880", + "source_location": "L896", "weight": 1.0 }, { @@ -83953,7 +84066,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L785", + "source_location": "L801", "weight": 1.0 }, { @@ -83968,7 +84081,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L830", + "source_location": "L846", "weight": 1.0 }, { @@ -83983,7 +84096,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L813", + "source_location": "L829", "weight": 1.0 }, { @@ -83998,7 +84111,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L799", + "source_location": "L815", "weight": 1.0 }, { @@ -84013,7 +84126,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L868", + "source_location": "L884", "weight": 1.0 }, { @@ -84028,7 +84141,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L765", + "source_location": "L781", "weight": 1.0 }, { @@ -84043,7 +84156,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L635", + "source_location": "L651", "weight": 1.0 }, { @@ -84058,7 +84171,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L645", + "source_location": "L661", "weight": 1.0 }, { @@ -84073,7 +84186,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L655", + "source_location": "L671", "weight": 1.0 }, { @@ -84088,7 +84201,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L711", + "source_location": "L727", "weight": 1.0 }, { @@ -84103,7 +84216,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L745", + "source_location": "L761", "weight": 1.0 }, { @@ -84118,7 +84231,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L726", + "source_location": "L742", "weight": 1.0 }, { @@ -84133,7 +84246,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L671", + "source_location": "L687", "weight": 1.0 }, { @@ -84178,7 +84291,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L485", + "source_location": "L501", "weight": 1.0 }, { @@ -84193,7 +84306,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L503", + "source_location": "L519", "weight": 1.0 }, { @@ -84208,7 +84321,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L589", + "source_location": "L605", "weight": 1.0 }, { @@ -84253,7 +84366,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L571", + "source_location": "L587", "weight": 1.0 }, { @@ -84271,6 +84384,21 @@ "source_location": "L454", "weight": 1.0 }, + { + "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_unknownuser_verifiesagainstanullhashexactlyonce", + "target": "src_anichron_api_tests_unit_services_authservicetests_cs_fact", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "attribute", + "metadata": { + "ref_token": "Fact" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", + "source_location": "L473", + "weight": 1.0 + }, { "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_validcredentials_returnsokwithtokens", "target": "src_anichron_api_tests_unit_services_authservicetests_cs_fact", @@ -84298,7 +84426,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L542", + "source_location": "L558", "weight": 1.0 }, { @@ -84328,7 +84456,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L468", + "source_location": "L484", "weight": 1.0 }, { @@ -84343,7 +84471,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L528", + "source_location": "L544", "weight": 1.0 }, { @@ -84358,7 +84486,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L556", + "source_location": "L572", "weight": 1.0 }, { @@ -84373,7 +84501,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L607", + "source_location": "L623", "weight": 1.0 }, { @@ -84613,7 +84741,7 @@ "ref_token": "Fact" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L620", + "source_location": "L636", "weight": 1.0 }, { @@ -89803,7 +89931,7 @@ "ref_token": "InlineData" }, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L32", + "source_location": "L33", "weight": 1.0 }, { @@ -89833,7 +89961,7 @@ "ref_token": "InlineData" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L900", + "source_location": "L916", "weight": 1.0 }, { @@ -89848,7 +89976,7 @@ "ref_token": "InlineData" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L688", + "source_location": "L704", "weight": 1.0 }, { @@ -90778,7 +90906,7 @@ "ref_token": "Theory" }, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L32", + "source_location": "L33", "weight": 1.0 }, { @@ -90808,7 +90936,7 @@ "ref_token": "Theory" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L900", + "source_location": "L916", "weight": 1.0 }, { @@ -90823,7 +90951,7 @@ "ref_token": "Theory" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L688", + "source_location": "L704", "weight": 1.0 }, { @@ -92146,7 +92274,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L19", + "source_location": "L23", "weight": 1.0 }, { @@ -92158,7 +92286,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L41", + "source_location": "L66", "weight": 1.0 }, { @@ -92170,7 +92298,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L32", + "source_location": "L50", "weight": 1.0 }, { @@ -92314,7 +92442,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L210", + "source_location": "L216", "weight": 1.0 }, { @@ -92326,7 +92454,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L237", + "source_location": "L243", "weight": 1.0 }, { @@ -92338,7 +92466,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L240", + "source_location": "L246", "weight": 1.0 }, { @@ -92350,7 +92478,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L240", + "source_location": "L246", "weight": 1.0 }, { @@ -92362,7 +92490,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L182", + "source_location": "L188", "weight": 1.0 }, { @@ -92374,7 +92502,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L197", + "source_location": "L203", "weight": 1.0 }, { @@ -92386,7 +92514,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L144", + "source_location": "L150", "weight": 1.0 }, { @@ -92398,7 +92526,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L153", + "source_location": "L159", "weight": 1.0 }, { @@ -92410,7 +92538,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L166", + "source_location": "L172", "weight": 1.0 }, { @@ -92422,7 +92550,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L106", + "source_location": "L104", "weight": 1.0 }, { @@ -92434,7 +92562,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L118", + "source_location": "L116", "weight": 1.0 }, { @@ -92446,7 +92574,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L75", + "source_location": "L73", "weight": 1.0 }, { @@ -92458,7 +92586,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L77", + "source_location": "L75", "weight": 1.0 }, { @@ -97150,7 +97278,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L847", + "source_location": "L863", "weight": 1.0 }, { @@ -97162,7 +97290,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L847", + "source_location": "L863", "weight": 1.0 }, { @@ -97174,7 +97302,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L847", + "source_location": "L863", "weight": 1.0 }, { @@ -97186,7 +97314,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L848", + "source_location": "L864", "weight": 1.0 }, { @@ -97198,7 +97326,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L859", + "source_location": "L875", "weight": 1.0 }, { @@ -97210,7 +97338,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L859", + "source_location": "L875", "weight": 1.0 }, { @@ -97222,7 +97350,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L859", + "source_location": "L875", "weight": 1.0 }, { @@ -97234,7 +97362,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L860", + "source_location": "L876", "weight": 1.0 }, { @@ -97246,7 +97374,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L778", + "source_location": "L794", "weight": 1.0 }, { @@ -97258,7 +97386,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L778", + "source_location": "L794", "weight": 1.0 }, { @@ -97270,7 +97398,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L778", + "source_location": "L794", "weight": 1.0 }, { @@ -97282,7 +97410,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L905", + "source_location": "L921", "weight": 1.0 }, { @@ -97294,7 +97422,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L905", + "source_location": "L921", "weight": 1.0 }, { @@ -97306,7 +97434,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L905", + "source_location": "L921", "weight": 1.0 }, { @@ -97318,7 +97446,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L893", + "source_location": "L909", "weight": 1.0 }, { @@ -97330,7 +97458,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L893", + "source_location": "L909", "weight": 1.0 }, { @@ -97342,7 +97470,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L883", + "source_location": "L899", "weight": 1.0 }, { @@ -97354,7 +97482,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L883", + "source_location": "L899", "weight": 1.0 }, { @@ -97366,7 +97494,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L788", + "source_location": "L804", "weight": 1.0 }, { @@ -97378,7 +97506,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L788", + "source_location": "L804", "weight": 1.0 }, { @@ -97390,7 +97518,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L833", + "source_location": "L849", "weight": 1.0 }, { @@ -97402,7 +97530,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L833", + "source_location": "L849", "weight": 1.0 }, { @@ -97414,7 +97542,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L817", + "source_location": "L833", "weight": 1.0 }, { @@ -97426,7 +97554,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L803", + "source_location": "L819", "weight": 1.0 }, { @@ -97438,7 +97566,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L871", + "source_location": "L887", "weight": 1.0 }, { @@ -97450,7 +97578,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L871", + "source_location": "L887", "weight": 1.0 }, { @@ -97462,7 +97590,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L871", + "source_location": "L887", "weight": 1.0 }, { @@ -97474,7 +97602,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L872", + "source_location": "L888", "weight": 1.0 }, { @@ -97486,7 +97614,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L768", + "source_location": "L784", "weight": 1.0 }, { @@ -97498,7 +97626,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L768", + "source_location": "L784", "weight": 1.0 }, { @@ -97510,7 +97638,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L768", + "source_location": "L784", "weight": 1.0 }, { @@ -97522,7 +97650,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L696", + "source_location": "L712", "weight": 1.0 }, { @@ -97534,7 +97662,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L696", + "source_location": "L712", "weight": 1.0 }, { @@ -97546,7 +97674,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L696", + "source_location": "L712", "weight": 1.0 }, { @@ -97558,7 +97686,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L696", + "source_location": "L712", "weight": 1.0 }, { @@ -97570,7 +97698,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L638", + "source_location": "L654", "weight": 1.0 }, { @@ -97582,7 +97710,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L638", + "source_location": "L654", "weight": 1.0 }, { @@ -97594,7 +97722,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L648", + "source_location": "L664", "weight": 1.0 }, { @@ -97606,7 +97734,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L648", + "source_location": "L664", "weight": 1.0 }, { @@ -97618,7 +97746,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L659", + "source_location": "L675", "weight": 1.0 }, { @@ -97630,7 +97758,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L659", + "source_location": "L675", "weight": 1.0 }, { @@ -97642,7 +97770,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L716", + "source_location": "L732", "weight": 1.0 }, { @@ -97654,7 +97782,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L716", + "source_location": "L732", "weight": 1.0 }, { @@ -97666,7 +97794,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L716", + "source_location": "L732", "weight": 1.0 }, { @@ -97678,7 +97806,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L750", + "source_location": "L766", "weight": 1.0 }, { @@ -97690,7 +97818,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L750", + "source_location": "L766", "weight": 1.0 }, { @@ -97702,7 +97830,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L750", + "source_location": "L766", "weight": 1.0 }, { @@ -97714,7 +97842,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L731", + "source_location": "L747", "weight": 1.0 }, { @@ -97726,7 +97854,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L731", + "source_location": "L747", "weight": 1.0 }, { @@ -97738,7 +97866,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L731", + "source_location": "L747", "weight": 1.0 }, { @@ -97750,7 +97878,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L676", + "source_location": "L692", "weight": 1.0 }, { @@ -97762,7 +97890,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L676", + "source_location": "L692", "weight": 1.0 }, { @@ -97798,7 +97926,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L489", + "source_location": "L505", "weight": 1.0 }, { @@ -97810,7 +97938,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L489", + "source_location": "L505", "weight": 1.0 }, { @@ -97822,7 +97950,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L489", + "source_location": "L505", "weight": 1.0 }, { @@ -97834,7 +97962,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L512", + "source_location": "L528", "weight": 1.0 }, { @@ -97846,7 +97974,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L512", + "source_location": "L528", "weight": 1.0 }, { @@ -97858,7 +97986,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L512", + "source_location": "L528", "weight": 1.0 }, { @@ -97870,7 +97998,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L512", + "source_location": "L528", "weight": 1.0 }, { @@ -97882,7 +98010,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L593", + "source_location": "L609", "weight": 1.0 }, { @@ -97894,7 +98022,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L593", + "source_location": "L609", "weight": 1.0 }, { @@ -97906,7 +98034,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L593", + "source_location": "L609", "weight": 1.0 }, { @@ -97966,7 +98094,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L575", + "source_location": "L591", "weight": 1.0 }, { @@ -97978,7 +98106,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L575", + "source_location": "L591", "weight": 1.0 }, { @@ -97990,7 +98118,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L575", + "source_location": "L591", "weight": 1.0 }, { @@ -98017,6 +98145,18 @@ "source_location": "L457", "weight": 1.0 }, + { + "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_unknownuser_verifiesagainstanullhashexactlyonce", + "target": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_testfixture", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", + "source_location": "L476", + "weight": 1.0 + }, { "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_validcredentials_returnsokwithtokens", "target": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_testfixture", @@ -98074,7 +98214,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L546", + "source_location": "L562", "weight": 1.0 }, { @@ -98086,7 +98226,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L546", + "source_location": "L562", "weight": 1.0 }, { @@ -98098,7 +98238,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L546", + "source_location": "L562", "weight": 1.0 }, { @@ -98134,7 +98274,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L472", + "source_location": "L488", "weight": 1.0 }, { @@ -98146,7 +98286,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L472", + "source_location": "L488", "weight": 1.0 }, { @@ -98158,7 +98298,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L533", + "source_location": "L549", "weight": 1.0 }, { @@ -98170,7 +98310,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L533", + "source_location": "L549", "weight": 1.0 }, { @@ -98182,7 +98322,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L560", + "source_location": "L576", "weight": 1.0 }, { @@ -98194,7 +98334,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L560", + "source_location": "L576", "weight": 1.0 }, { @@ -98206,7 +98346,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L560", + "source_location": "L576", "weight": 1.0 }, { @@ -98218,7 +98358,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L610", + "source_location": "L626", "weight": 1.0 }, { @@ -98230,7 +98370,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L611", + "source_location": "L627", "weight": 1.0 }, { @@ -98242,7 +98382,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L611", + "source_location": "L627", "weight": 1.0 }, { @@ -98710,7 +98850,7 @@ "confidence_score": 1.0, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L623", + "source_location": "L639", "weight": 1.0 }, { @@ -98737,6 +98877,18 @@ "source_location": "L85", "weight": 1.0 }, + { + "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_testfixture_withpasswordvalid", + "target": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_verify", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", + "source_location": "L61", + "weight": 1.0 + }, { "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_testfixture_withtokenissued", "target": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_issueasync", @@ -115495,7 +115647,7 @@ "ref_token": "ArgumentNullException" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L897", + "source_location": "L913", "weight": 1.0 }, { @@ -115510,7 +115662,7 @@ "ref_token": "ArgumentNullException" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L887", + "source_location": "L903", "weight": 1.0 }, { @@ -115525,7 +115677,7 @@ "ref_token": "ArgumentNullException" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L642", + "source_location": "L658", "weight": 1.0 }, { @@ -115540,7 +115692,7 @@ "ref_token": "ArgumentNullException" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L652", + "source_location": "L668", "weight": 1.0 }, { @@ -115915,7 +116067,7 @@ "ref_token": "AuthResult" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L200", + "source_location": "L206", "weight": 1.0 }, { @@ -115930,7 +116082,7 @@ "ref_token": "AuthResult" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L175", + "source_location": "L181", "weight": 1.0 }, { @@ -115945,7 +116097,7 @@ "ref_token": "AuthResult" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L125", + "source_location": "L123", "weight": 1.0 }, { @@ -115960,7 +116112,7 @@ "ref_token": "AuthResult" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L169", + "source_location": "L175", "weight": 1.0 }, { @@ -115975,7 +116127,7 @@ "ref_token": "AuthResult" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L67", + "source_location": "L65", "weight": 1.0 }, { @@ -116305,7 +116457,7 @@ "ref_token": "AuthTokens" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L153", + "source_location": "L159", "weight": 1.0 }, { @@ -116320,7 +116472,7 @@ "ref_token": "AuthTokens" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L169", + "source_location": "L175", "weight": 1.0 }, { @@ -116335,7 +116487,7 @@ "ref_token": "AuthTokens" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L118", + "source_location": "L116", "weight": 1.0 }, { @@ -117715,7 +117867,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L758", + "source_location": "L774", "weight": 1.0 }, { @@ -117730,7 +117882,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L539", + "source_location": "L555", "weight": 1.0 }, { @@ -117745,7 +117897,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L568", + "source_location": "L584", "weight": 1.0 }, { @@ -117760,7 +117912,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L628", + "source_location": "L644", "weight": 1.0 }, { @@ -119035,7 +119187,7 @@ "ref_token": "Exception" }, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L61", + "source_location": "L62", "weight": 1.0 }, { @@ -119155,7 +119307,7 @@ "ref_token": "FormatException" }, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L51", + "source_location": "L52", "weight": 1.0 }, { @@ -122860,7 +123012,7 @@ "ref_token": "Instant" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L758", + "source_location": "L774", "weight": 1.0 }, { @@ -122875,7 +123027,7 @@ "ref_token": "Instant" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L539", + "source_location": "L555", "weight": 1.0 }, { @@ -122890,7 +123042,7 @@ "ref_token": "Instant" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L568", + "source_location": "L584", "weight": 1.0 }, { @@ -125305,7 +125457,7 @@ "ref_token": "UnreachableException" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L877", + "source_location": "L893", "weight": 1.0 }, { @@ -125515,7 +125667,7 @@ "ref_token": "User" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L818", + "source_location": "L834", "weight": 1.0 }, { @@ -125530,7 +125682,7 @@ "ref_token": "User" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L804", + "source_location": "L820", "weight": 1.0 }, { @@ -125545,7 +125697,7 @@ "ref_token": "User" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L568", + "source_location": "L584", "weight": 1.0 }, { @@ -134899,6 +135051,23 @@ "source_location": "L7", "weight": 1.0 }, + { + "source": "src_anichron_api_tests_unit_security_passwordhashertests", + "target": "system_diagnostics", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "metadata": { + "using_kind": "namespace", + "target_fqn": "System.Diagnostics", + "scope_kind": "file" + }, + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L2", + "weight": 1.0 + }, { "source": "src_anichron_api_tests_unit_services_authservicetests", "target": "system_diagnostics", @@ -140793,7 +140962,7 @@ "ref_token": "AuthError" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L900", + "source_location": "L916", "weight": 1.0 }, { @@ -140808,7 +140977,7 @@ "ref_token": "AuthError" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L688", + "source_location": "L704", "weight": 1.0 }, { @@ -141738,7 +141907,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L200", + "source_location": "L206", "weight": 1.0 }, { @@ -141753,7 +141922,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L175", + "source_location": "L181", "weight": 1.0 }, { @@ -141768,7 +141937,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L125", + "source_location": "L123", "weight": 1.0 }, { @@ -141783,7 +141952,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L169", + "source_location": "L175", "weight": 1.0 }, { @@ -141798,7 +141967,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L67", + "source_location": "L65", "weight": 1.0 }, { @@ -141813,7 +141982,7 @@ "ref_token": "CancellationToken" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L172", + "source_location": "L178", "weight": 1.0 }, { @@ -144828,7 +144997,7 @@ "ref_token": "Guid" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L175", + "source_location": "L181", "weight": 1.0 }, { @@ -148968,7 +149137,7 @@ "ref_token": "PostgresException" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L243", + "source_location": "L249", "weight": 1.0 }, { @@ -149898,7 +150067,7 @@ "ref_token": "AuthError" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L243", + "source_location": "L249", "weight": 1.0 }, { @@ -151923,7 +152092,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L200", + "source_location": "L206", "weight": 1.0 }, { @@ -151938,7 +152107,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L175", + "source_location": "L181", "weight": 1.0 }, { @@ -151953,7 +152122,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L125", + "source_location": "L123", "weight": 1.0 }, { @@ -151968,7 +152137,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L169", + "source_location": "L175", "weight": 1.0 }, { @@ -151983,7 +152152,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L67", + "source_location": "L65", "weight": 1.0 }, { @@ -151998,7 +152167,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L172", + "source_location": "L178", "weight": 1.0 }, { @@ -153798,7 +153967,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L844", + "source_location": "L860", "weight": 1.0 }, { @@ -153813,7 +153982,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L856", + "source_location": "L872", "weight": 1.0 }, { @@ -153828,7 +153997,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L775", + "source_location": "L791", "weight": 1.0 }, { @@ -153843,7 +154012,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L900", + "source_location": "L916", "weight": 1.0 }, { @@ -153858,7 +154027,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L890", + "source_location": "L906", "weight": 1.0 }, { @@ -153873,7 +154042,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L880", + "source_location": "L896", "weight": 1.0 }, { @@ -153888,7 +154057,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L785", + "source_location": "L801", "weight": 1.0 }, { @@ -153903,7 +154072,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L830", + "source_location": "L846", "weight": 1.0 }, { @@ -153918,7 +154087,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L813", + "source_location": "L829", "weight": 1.0 }, { @@ -153933,7 +154102,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L799", + "source_location": "L815", "weight": 1.0 }, { @@ -153948,7 +154117,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L868", + "source_location": "L884", "weight": 1.0 }, { @@ -153963,7 +154132,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L765", + "source_location": "L781", "weight": 1.0 }, { @@ -153978,7 +154147,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L688", + "source_location": "L704", "weight": 1.0 }, { @@ -153993,7 +154162,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L635", + "source_location": "L651", "weight": 1.0 }, { @@ -154008,7 +154177,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L645", + "source_location": "L661", "weight": 1.0 }, { @@ -154023,7 +154192,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L655", + "source_location": "L671", "weight": 1.0 }, { @@ -154038,7 +154207,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L711", + "source_location": "L727", "weight": 1.0 }, { @@ -154053,7 +154222,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L745", + "source_location": "L761", "weight": 1.0 }, { @@ -154068,7 +154237,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L726", + "source_location": "L742", "weight": 1.0 }, { @@ -154083,7 +154252,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L671", + "source_location": "L687", "weight": 1.0 }, { @@ -154098,7 +154267,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L485", + "source_location": "L501", "weight": 1.0 }, { @@ -154113,7 +154282,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L503", + "source_location": "L519", "weight": 1.0 }, { @@ -154128,7 +154297,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L589", + "source_location": "L605", "weight": 1.0 }, { @@ -154173,7 +154342,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L571", + "source_location": "L587", "weight": 1.0 }, { @@ -154191,6 +154360,21 @@ "source_location": "L454", "weight": 1.0 }, + { + "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_unknownuser_verifiesagainstanullhashexactlyonce", + "target": "src_anichron_api_tests_unit_services_authservicetests_cs_task", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "metadata": { + "ref_token": "Task" + }, + "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", + "source_location": "L473", + "weight": 1.0 + }, { "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_validcredentials_returnsokwithtokens", "target": "src_anichron_api_tests_unit_services_authservicetests_cs_task", @@ -154218,7 +154402,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L542", + "source_location": "L558", "weight": 1.0 }, { @@ -154248,7 +154432,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L468", + "source_location": "L484", "weight": 1.0 }, { @@ -154263,7 +154447,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L528", + "source_location": "L544", "weight": 1.0 }, { @@ -154278,7 +154462,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L556", + "source_location": "L572", "weight": 1.0 }, { @@ -154293,7 +154477,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L607", + "source_location": "L623", "weight": 1.0 }, { @@ -154548,7 +154732,7 @@ "ref_token": "Task" }, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L620", + "source_location": "L636", "weight": 1.0 }, { @@ -161051,7 +161235,7 @@ "ref_token": "IPasswordHasher" }, "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L14", + "source_location": "L18", "weight": 1.0 }, { @@ -167757,7 +167941,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L14", + "source_location": "L18", "weight": 1.0 }, { @@ -174247,7 +174431,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L3", + "source_location": "L4", "weight": 1.0 }, { @@ -174258,7 +174442,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L5", + "source_location": "L6", "weight": 1.0 }, { @@ -202966,7 +203150,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L16", + "source_location": "L20", "weight": 1.0 }, { @@ -202977,7 +203161,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L27", + "source_location": "L31", "weight": 1.0 }, { @@ -202988,7 +203172,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L36", + "source_location": "L61", "weight": 1.0 }, { @@ -202999,7 +203183,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L49", + "source_location": "L74", "weight": 1.0 }, { @@ -203021,7 +203205,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L11", + "source_location": "L15", "weight": 1.0 }, { @@ -203241,7 +203425,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L122", + "source_location": "L120", "weight": 1.0 }, { @@ -203252,7 +203436,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L125", + "source_location": "L123", "weight": 1.0 }, { @@ -203263,7 +203447,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L169", + "source_location": "L175", "weight": 1.0 }, { @@ -203274,7 +203458,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L172", + "source_location": "L178", "weight": 1.0 }, { @@ -203285,7 +203469,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L175", + "source_location": "L181", "weight": 1.0 }, { @@ -203296,7 +203480,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L200", + "source_location": "L206", "weight": 1.0 }, { @@ -203307,7 +203491,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L243", + "source_location": "L249", "weight": 1.0 }, { @@ -203318,7 +203502,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L67", + "source_location": "L65", "weight": 1.0 }, { @@ -205356,6 +205540,28 @@ "source_location": "L37", "weight": 1.0 }, + { + "source": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests", + "target": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_nullstoredhash_returnsfalse", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests", + "target": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_nullstoredhash_doesnotshortcircuit", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L118", + "weight": 1.0 + }, { "source": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests", "target": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_hash_validpassword_returnsbase64stringofexpectedlength", @@ -205364,7 +205570,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L12", + "source_location": "L13", "weight": 1.0 }, { @@ -205375,7 +205581,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L22", + "source_location": "L23", "weight": 1.0 }, { @@ -205386,7 +205592,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L32", + "source_location": "L33", "weight": 1.0 }, { @@ -205397,7 +205603,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L44", + "source_location": "L45", "weight": 1.0 }, { @@ -205408,7 +205614,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L54", + "source_location": "L55", "weight": 1.0 }, { @@ -205419,7 +205625,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L64", + "source_location": "L65", "weight": 1.0 }, { @@ -205430,7 +205636,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L75", + "source_location": "L76", "weight": 1.0 }, { @@ -206049,6 +206255,17 @@ "source_location": "L454", "weight": 1.0 }, + { + "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests", + "target": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_unknownuser_verifiesagainstanullhashexactlyonce", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", + "source_location": "L473", + "weight": 1.0 + }, { "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests", "target": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_authservicetests_loginasync_wrongpassword_returnsinvalidcredentials", @@ -206057,7 +206274,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L468", + "source_location": "L484", "weight": 1.0 }, { @@ -206068,7 +206285,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L485", + "source_location": "L501", "weight": 1.0 }, { @@ -206079,7 +206296,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L503", + "source_location": "L519", "weight": 1.0 }, { @@ -206090,7 +206307,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L528", + "source_location": "L544", "weight": 1.0 }, { @@ -206101,7 +206318,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L542", + "source_location": "L558", "weight": 1.0 }, { @@ -206112,7 +206329,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L556", + "source_location": "L572", "weight": 1.0 }, { @@ -206123,7 +206340,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L571", + "source_location": "L587", "weight": 1.0 }, { @@ -206134,7 +206351,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L589", + "source_location": "L605", "weight": 1.0 }, { @@ -206145,7 +206362,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L607", + "source_location": "L623", "weight": 1.0 }, { @@ -206156,7 +206373,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L620", + "source_location": "L636", "weight": 1.0 }, { @@ -206167,7 +206384,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L635", + "source_location": "L651", "weight": 1.0 }, { @@ -206178,7 +206395,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L645", + "source_location": "L661", "weight": 1.0 }, { @@ -206189,7 +206406,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L655", + "source_location": "L671", "weight": 1.0 }, { @@ -206200,7 +206417,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L671", + "source_location": "L687", "weight": 1.0 }, { @@ -206211,7 +206428,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L688", + "source_location": "L704", "weight": 1.0 }, { @@ -206222,7 +206439,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L711", + "source_location": "L727", "weight": 1.0 }, { @@ -206233,7 +206450,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L726", + "source_location": "L742", "weight": 1.0 }, { @@ -206244,7 +206461,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L745", + "source_location": "L761", "weight": 1.0 }, { @@ -206255,7 +206472,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L765", + "source_location": "L781", "weight": 1.0 }, { @@ -206266,7 +206483,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L775", + "source_location": "L791", "weight": 1.0 }, { @@ -206277,7 +206494,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L785", + "source_location": "L801", "weight": 1.0 }, { @@ -206288,7 +206505,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L799", + "source_location": "L815", "weight": 1.0 }, { @@ -206299,7 +206516,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L813", + "source_location": "L829", "weight": 1.0 }, { @@ -206310,7 +206527,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L830", + "source_location": "L846", "weight": 1.0 }, { @@ -206321,7 +206538,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L844", + "source_location": "L860", "weight": 1.0 }, { @@ -206332,7 +206549,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L856", + "source_location": "L872", "weight": 1.0 }, { @@ -206343,7 +206560,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L868", + "source_location": "L884", "weight": 1.0 }, { @@ -206354,7 +206571,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L880", + "source_location": "L896", "weight": 1.0 }, { @@ -206365,7 +206582,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L890", + "source_location": "L906", "weight": 1.0 }, { @@ -206376,7 +206593,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L900", + "source_location": "L916", "weight": 1.0 }, { @@ -214476,7 +214693,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L208", + "source_location": "L214", "weight": 1.0 }, { @@ -214488,7 +214705,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L212", + "source_location": "L218", "weight": 1.0 }, { @@ -214500,7 +214717,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L215", + "source_location": "L221", "weight": 1.0 }, { @@ -214512,7 +214729,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L222", + "source_location": "L228", "weight": 1.0 }, { @@ -214524,7 +214741,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L225", + "source_location": "L231", "weight": 1.0 }, { @@ -214536,7 +214753,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L229", + "source_location": "L235", "weight": 1.0 }, { @@ -214548,7 +214765,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L233", + "source_location": "L239", "weight": 1.0 }, { @@ -214560,7 +214777,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L180", + "source_location": "L186", "weight": 1.0 }, { @@ -214572,7 +214789,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L181", + "source_location": "L187", "weight": 1.0 }, { @@ -214584,7 +214801,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L184", + "source_location": "L190", "weight": 1.0 }, { @@ -214596,7 +214813,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L188", + "source_location": "L194", "weight": 1.0 }, { @@ -214608,7 +214825,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L190", + "source_location": "L196", "weight": 1.0 }, { @@ -214620,7 +214837,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L193", + "source_location": "L199", "weight": 1.0 }, { @@ -214632,7 +214849,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L194", + "source_location": "L200", "weight": 1.0 }, { @@ -214644,7 +214861,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L131", + "source_location": "L129", "weight": 1.0 }, { @@ -214656,7 +214873,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L134", + "source_location": "L140", "weight": 1.0 }, { @@ -214668,7 +214885,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L140", + "source_location": "L146", "weight": 1.0 }, { @@ -214680,7 +214897,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L141", + "source_location": "L147", "weight": 1.0 }, { @@ -214692,7 +214909,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L158", + "source_location": "L164", "weight": 1.0 }, { @@ -214704,7 +214921,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L160", + "source_location": "L166", "weight": 1.0 }, { @@ -214716,7 +214933,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L162", + "source_location": "L168", "weight": 1.0 }, { @@ -214728,7 +214945,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L163", + "source_location": "L169", "weight": 1.0 }, { @@ -214740,24 +214957,24 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L170", + "source_location": "L176", "weight": 1.0 }, { "source": "src_anichron_api_services_authservice_anichron_api_services_authservice_registerasync", - "target": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_iuserrepository_add", + "target": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork_executeintransactionasync", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L100", + "source_location": "L104", "weight": 1.0 }, { "source": "src_anichron_api_services_authservice_anichron_api_services_authservice_registerasync", - "target": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork_executeintransactionasync", + "target": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork_savechangesasync", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", @@ -214769,98 +214986,98 @@ }, { "source": "src_anichron_api_services_authservice_anichron_api_services_authservice_registerasync", - "target": "src_anichron_core_data_iunitofwork_anichron_core_data_iunitofwork_savechangesasync", + "target": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_issueasync", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L108", + "source_location": "L107", "weight": 1.0 }, { "source": "src_anichron_api_services_authservice_anichron_api_services_authservice_registerasync", - "target": "src_anichron_api_services_tokenservice_anichron_api_services_itokenservice_issueasync", + "target": "src_anichron_core_data_repository_inviterepository_anichron_core_data_repository_iinviterepository_findvalidbyhashasync", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L109", + "source_location": "L73", "weight": 1.0 }, { "source": "src_anichron_api_services_authservice_anichron_api_services_authservice_registerasync", - "target": "src_anichron_core_data_repository_inviterepository_anichron_core_data_repository_iinviterepository_findvalidbyhashasync", + "target": "src_anichron_api_services_registrationvalidator_anichron_api_services_iregistrationvalidator_validateasync", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L75", + "source_location": "L80", "weight": 1.0 }, { "source": "src_anichron_api_services_authservice_anichron_api_services_authservice_registerasync", - "target": "src_anichron_api_services_registrationvalidator_anichron_api_services_iregistrationvalidator_validateasync", + "target": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_iuserrepository_anybyusernameasync", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L82", + "source_location": "L84", "weight": 1.0 }, { "source": "src_anichron_api_services_authservice_anichron_api_services_authservice_registerasync", - "target": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_iuserrepository_anybyusernameasync", + "target": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_iuserrepository_anybyemailasync", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L86", + "source_location": "L87", "weight": 1.0 }, { "source": "src_anichron_api_services_authservice_anichron_api_services_authservice_registerasync", - "target": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_iuserrepository_anybyemailasync", + "target": "src_anichron_core_guidfactory_anichron_core_iguidfactory_newguid", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L89", + "source_location": "L92", "weight": 1.0 }, { "source": "src_anichron_api_services_authservice_anichron_api_services_authservice_registerasync", - "target": "src_anichron_core_guidfactory_anichron_core_iguidfactory_newguid", + "target": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_hash", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L94", + "source_location": "L95", "weight": 1.0 }, { "source": "src_anichron_api_services_authservice_anichron_api_services_authservice_registerasync", - "target": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_hash", + "target": "src_anichron_core_data_repository_userrepository_anichron_core_data_repository_iuserrepository_add", "relation": "calls", "_origin": "ast", "confidence": "INFERRED", "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L97", + "source_location": "L98", "weight": 1.0 }, { @@ -214872,7 +215089,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API/Services/AuthService.cs", - "source_location": "L173", + "source_location": "L179", "weight": 1.0 }, { @@ -215268,7 +215485,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L69", + "source_location": "L70", "weight": 1.0 }, { @@ -215280,7 +215497,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L17", + "source_location": "L18", "weight": 1.0 }, { @@ -215292,7 +215509,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L27", + "source_location": "L28", "weight": 1.0 }, { @@ -215304,7 +215521,31 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L49", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_nullstoredhash_doesnotshortcircuit", + "target": "src_anichron_api_security_passwordhasher_anichron_api_security_argon2passwordhasher_verify", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.8, + "context": "call", + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_nullstoredhash_returnsfalse", + "target": "src_anichron_api_security_passwordhasher_anichron_api_security_argon2passwordhasher_verify", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.8, + "context": "call", + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L108", "weight": 1.0 }, { @@ -215316,7 +215557,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L80", + "source_location": "L81", "weight": 1.0 }, { @@ -215328,7 +215569,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L59", + "source_location": "L60", "weight": 1.0 }, { @@ -215340,7 +215581,7 @@ "confidence_score": 0.8, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L39", + "source_location": "L40", "weight": 1.0 }, { @@ -215367,18 +215608,6 @@ "source_location": "L47", "weight": 1.0 }, - { - "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_testfixture_withpasswordvalid", - "target": "src_anichron_api_security_passwordhasher_anichron_api_security_ipasswordhasher_verify", - "relation": "calls", - "_origin": "ast", - "confidence": "INFERRED", - "confidence_score": 0.8, - "context": "call", - "source_file": "src/Anichron.API.Tests.Unit/Services/AuthServiceTests.cs", - "source_location": "L61", - "weight": 1.0 - }, { "source": "src_anichron_api_tests_unit_services_authservicetests_anichron_api_tests_unit_services_testfixture_withpasswordvalidationerror", "target": "src_anichron_api_services_registrationvalidator_anichron_api_services_iregistrationvalidator_validatepasswordasync", @@ -217092,7 +217321,7 @@ "confidence_score": 0.85, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L67", + "source_location": "L68", "weight": 1.0 }, { @@ -217104,7 +217333,7 @@ "confidence_score": 0.85, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L15", + "source_location": "L16", "weight": 1.0 }, { @@ -217116,7 +217345,7 @@ "confidence_score": 0.85, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L25", + "source_location": "L26", "weight": 1.0 }, { @@ -217128,7 +217357,31 @@ "confidence_score": 0.85, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L47", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_nullstoredhash_doesnotshortcircuit", + "target": "src_anichron_api_security_passwordhasher_anichron_api_security_argon2passwordhasher", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L121", + "weight": 1.0 + }, + { + "source": "src_anichron_api_tests_unit_security_passwordhashertests_anichron_api_tests_unit_security_passwordhashertests_verify_nullstoredhash_returnsfalse", + "target": "src_anichron_api_security_passwordhasher_anichron_api_security_argon2passwordhasher", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", + "source_location": "L106", "weight": 1.0 }, { @@ -217140,7 +217393,7 @@ "confidence_score": 0.85, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L78", + "source_location": "L79", "weight": 1.0 }, { @@ -217152,7 +217405,7 @@ "confidence_score": 0.85, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L57", + "source_location": "L58", "weight": 1.0 }, { @@ -217164,7 +217417,7 @@ "confidence_score": 0.85, "context": "call", "source_file": "src/Anichron.API.Tests.Unit/Security/PasswordHasherTests.cs", - "source_location": "L37", + "source_location": "L38", "weight": 1.0 }, { @@ -219408,7 +219661,7 @@ "confidence_score": 0.9, "context": "call", "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L14", + "source_location": "L18", "weight": 1.0 }, { @@ -219420,7 +219673,7 @@ "confidence_score": 0.9, "context": "call", "source_file": "src/Anichron.API/Security/PasswordHasher.cs", - "source_location": "L14", + "source_location": "L18", "weight": 1.0 }, { @@ -220972,5 +221225,5 @@ "source_file": "CLAUDE.md" } ], - "built_at_commit": "a6985a853eb4b8089ccbbf309a310db40e1b733a" + "built_at_commit": "3d290f7ca4f97ed5631e7340cdc52efe702b9b8c" } \ No newline at end of file