diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index e12bae7..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d18070c..0000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -bin -obj -.vs -*.png \ No newline at end of file diff --git a/LiloController.cs b/LiloController.cs new file mode 100644 index 0000000..ce39378 --- /dev/null +++ b/LiloController.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Mvc; + +namespace LiloStitcher; + +[ApiController] +[Route( "api/image" )] +public sealed class LiloController( LiloStitcher stitcher ) : ControllerBase +{ + [HttpPost] + [Route( "generate" )] + [Produces( "image/png" )] + public async Task Generate( [FromBody] GenerateRequest payload, CancellationToken ct ) + { + var png = await stitcher.CreateImageAsync( payload, ct ); + return File( png, "image/png" ); + } +} \ No newline at end of file diff --git a/LiloStitcher.cs b/LiloStitcher.cs index a2ed464..64e3a52 100644 --- a/LiloStitcher.cs +++ b/LiloStitcher.cs @@ -1,136 +1,139 @@ using Microsoft.Extensions.Caching.Memory; using NetVips; -namespace lilo_stitcher_console; +namespace LiloStitcher; -public record GenerateRequest( - string CanvasRect, - double[] CropOffset, - double[] CropSize, - double OutputScale +public sealed record GenerateRequest( + string Canvas_Rect, + double[] Crop_Offset, + double[] Crop_Size, + double Output_Scale ); -public readonly record struct PlateCoordinate(int Row, int Col) +public readonly record struct PlateCoordinate( int Row, int Col ) { - public static PlateCoordinate Parse(string token) - { - var rowPart = new string(token.TakeWhile(char.IsLetter).ToArray()).ToUpperInvariant(); - var colPart = new string(token.SkipWhile(char.IsLetter).ToArray()); - - int row = 0; - foreach (var character in rowPart) - row = row * 26 + (character - 'A' + 1); - - int.TryParse(colPart, out int col); - return new PlateCoordinate(row, col); - } -} - -public class TileCache(IMemoryCache cache) -{ - private const long TileBytes = 720L * 720 * 3; - - public Image? Get(string key) => cache.TryGetValue(key, out Image? img) ? img : null; - - public void Set(string key, Image img) => - cache.Set(key, img, new MemoryCacheEntryOptions + public static PlateCoordinate Parse( string token ) { - Size = TileBytes, - SlidingExpiration = TimeSpan.FromMinutes(20) - }); + if( string.IsNullOrWhiteSpace( token ) ) + throw new ArgumentException( "Empty coordinate." ); + + var rowPart = new string( token.TakeWhile( char.IsLetter ).ToArray() ).ToUpperInvariant(); + var colPart = new string( token.SkipWhile( char.IsLetter ).ToArray() ); + + int row = 0; + foreach( char c in rowPart ) + row = row * 26 + ( c - 'A' + 1 ); + + return new PlateCoordinate( row, int.Parse( colPart ) ); + } } -public class TileLoader(TileCache cache, string assetDir) -{ - public async Task LoadAsync(string name, CancellationToken ct) - { - if (cache.Get(name) is { } hit) - return hit; - - var image = await Task.Run(() => - Image.NewFromFile(Path.Combine(assetDir, $"{name}.png"), access: Enums.Access.Sequential), ct); - cache.Set(name, image); - return image; - } +public class TileCache( IMemoryCache cache ) +{ + private const long TileBytes = 720L * 720 * 3; + + public Image? Get( string key ) => cache.TryGetValue( key, out Image? img ) ? img : null; + + public void Set( string key, Image img ) => + cache.Set( key, img, new MemoryCacheEntryOptions + { + Size = TileBytes, + SlidingExpiration = TimeSpan.FromMinutes( 20 ) + } ); } -public class LiloStitcher(TileLoader loader) +public class TileLoader( TileCache cache, string assetDir ) { - public async Task CreateImageAsync(GenerateRequest req, CancellationToken ct) + public async Task LoadAsync( string name, CancellationToken ct ) { - (int rowMin, int colMin, int rows, int cols) = ParseCanvas(req.CanvasRect); + if( cache.Get( name ) is { } hit ) + return hit; - Validate(req.CropOffset, nameof(req.CropOffset)); - Validate(req.CropSize, nameof(req.CropSize)); + var image = await Task.Run( () => + Image.NewFromFile( Path.Combine( assetDir, $"{name}.png" ), access: Enums.Access.Sequential ), ct ); - double scale = req.OutputScale; - if (scale <= 0 || scale > 1) - throw new ArgumentOutOfRangeException(nameof(req.OutputScale)); + cache.Set( name, image ); + return image; + } +} - var tiles = new List(rows * cols); +public class LiloStitcher( TileLoader loader ) +{ + public async Task CreateImageAsync( GenerateRequest req, CancellationToken ct ) + { + (int rowMin, int colMin, int rows, int cols) = ParseCanvas( req.Canvas_Rect ); + + double scale = req.Output_Scale; + if( scale <= 0 || scale > 1 ) + throw new ArgumentOutOfRangeException( nameof( req.Output_Scale ) ); + + var tiles = new List( rows * cols ); for( int row = 0; row < rows; row++ ) { - for( int col = 0; col < cols; col++ ) - { - string id = $"{RowName( rowMin + row )}{colMin + col}"; - var tile = await loader.LoadAsync( id, ct ); - if( scale < 1 ) tile = tile.Resize( scale ); - tiles.Add( tile ); - } + for( int col = 0; col < cols; col++ ) + { + string id = $"{RowName( rowMin + row )}{colMin + col}"; + var tile = await loader.LoadAsync( id, ct ); + if( scale < 1 ) tile = tile.Resize( scale ); + tiles.Add( tile ); + } } - var mosaic = Image.Arrayjoin(tiles.ToArray(), across: cols); + var mosaic = Image.Arrayjoin( tiles.ToArray(), across: cols ); - int offsetX = (int)Math.Truncate(req.CropOffset[0] * mosaic.Width); - int offsetY = (int)Math.Truncate(req.CropOffset[1] * mosaic.Height); + int offsetX = (int)Math.Truncate( req.Output_Scale * mosaic.Width ); + int offsetY = (int)Math.Truncate( req.Output_Scale * mosaic.Height ); int restWidth = mosaic.Width - offsetX; int restHeight = mosaic.Height - offsetY; - int cropWidth = Math.Max(1, (int)Math.Truncate(req.CropSize[0] * restWidth)); - int cropHeight = Math.Max(1, (int)Math.Truncate(req.CropSize[1] * restHeight)); + int cropWidth = Math.Max( 1, (int)Math.Truncate( req.Crop_Size[0] * restWidth ) ); + int cropHeight = Math.Max( 1, (int)Math.Truncate( req.Crop_Size[1] * restHeight ) ); - int cropX = (int)Math.Truncate(offsetX / 2.0 + (restWidth - cropWidth) / 2.0); - int cropY = (int)Math.Truncate(offsetY / 2.0 + (restHeight - cropHeight) / 2.0); + int cropX = (int)Math.Truncate( offsetX / 2.0 + ( restWidth - cropWidth ) / 2.0 ); + int cropY = (int)Math.Truncate( offsetY / 2.0 + ( restHeight - cropHeight ) / 2.0 ); - var cropRect = mosaic.Crop(cropX, cropY, cropWidth, cropHeight); + var cropped = mosaic.Crop( cropX, cropY, cropWidth, cropHeight ); - string tmpPath = Path.Combine(Path.GetTempPath(), $"mosaic-{Guid.NewGuid():N}.png"); - cropRect.WriteToFile(tmpPath); + var finalImg = scale < 1.0 ? cropped.Resize( scale ) : cropped; - return tmpPath; + string tmp = Path.GetTempFileName() + ".png"; + finalImg.WriteToFile( tmp ); + byte[] result = await File.ReadAllBytesAsync( tmp, ct ); + File.Delete( tmp ); + return result; } - private static (int rowMin, int colMin, int rows, int cols) ParseCanvas(string rect) + private static (int rowMin, int colMin, int rows, int cols) ParseCanvas( string rect ) { - var parts = rect.ToUpperInvariant().Split(':', StringSplitOptions.RemoveEmptyEntries); - var part1 = PlateCoordinate.Parse(parts[0]); - var part2 = PlateCoordinate.Parse(parts[1]); - int rowMin = Math.Min(part1.Row, part2.Row); - int rowMax = Math.Max(part1.Row, part2.Row); - int colMin = Math.Min(part1.Col, part2.Col); - int colMax = Math.Max(part1.Col, part2.Col); + var parts = rect.ToUpperInvariant().Split( ':', StringSplitOptions.RemoveEmptyEntries ); + var part1 = PlateCoordinate.Parse( parts[0] ); + var part2 = PlateCoordinate.Parse( parts[1] ); + int rowMin = Math.Min( part1.Row, part2.Row ); + int rowMax = Math.Max( part1.Row, part2.Row ); + int colMin = Math.Min( part1.Col, part2.Col ); + int colMax = Math.Max( part1.Col, part2.Col ); return (rowMin, colMin, rowMax - rowMin + 1, colMax - colMin + 1); } - private static void Validate(double[] arr, string name) + private static void Validate( double[] arr, string name ) { - if (arr is null || arr.Length < 2) - throw new ArgumentException($"{name} length"); - if (arr.Any(x => x < 0 || x > 1)) - throw new ArgumentOutOfRangeException(name); + if( arr is null || arr.Length < 2 ) + throw new ArgumentException( $"{name} length" ); + if( arr.Any( x => x < 0 || x > 1 ) ) + throw new ArgumentOutOfRangeException( name ); } - static string RowName(int row) + static string RowName( int row ) { - var stringBuilder = new System.Text.StringBuilder(); - while (row > 0) - { - row--; - stringBuilder.Insert(0, (char)('A' + row % 26)); - row /= 26; - } - return stringBuilder.ToString(); + var stringBuilder = new System.Text.StringBuilder(); + while( row > 0 ) + { + row--; + stringBuilder.Insert( 0, (char)( 'A' + row % 26 ) ); + row /= 26; + } + return stringBuilder.ToString(); } } diff --git a/Program.cs b/Program.cs index 7019819..05492df 100644 --- a/Program.cs +++ b/Program.cs @@ -1,68 +1,19 @@ -using lilo_stitcher_console; -using System.Diagnostics; -using Microsoft.Extensions.Caching.Memory; +var builder = WebApplication.CreateBuilder(args); -namespace LiloStitcher; +// Add services to the container. +// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi +// builder.Services.AddOpenApi(); -public static class Program -{ - public static async Task Main( string[] args ) - { - try - { - NetVips.NetVips.Init(); - NetVips.NetVips.Concurrency = 3; - - Stopwatch sw = Stopwatch.StartNew(); - var begin = sw.ElapsedMilliseconds; - var opt = new Options - { - CanvasRect = "A1:AE55", - CropOffset = new[] { 0.4, 0.4 }, - CropSize = new[] { 0.8, 0.8 }, - OutputScale = 0.5, - OutputPath = "stitched.png" - }; +builder.Services.AddControllers().AddJsonOptions(options => options.JsonSerializerOptions.PropertyNameCaseInsensitive = true); - string tileFilePath = "../tiles1705"; // should later be directed to the read-only `ASSET_PATH_RO` environment variable - string assetDir = Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), tileFilePath)); +builder.Services.AddMemoryCache(o => o.SizeLimit = 256 * 1024 * 1024); - using var memCache = new MemoryCache(new MemoryCacheOptions { SizeLimit = 128L * 1024 * 1024 }); - var tileCache = new TileCache(memCache); - var loader = new TileLoader(tileCache, assetDir); - var stitcher = new lilo_stitcher_console.LiloStitcher(loader); +builder.Services.AddSingleton(); +builder.Services.AddSingleton(); +builder.Services.AddSingleton(); - var req = new GenerateRequest( - opt.CanvasRect!, - opt.CropOffset!, - opt.CropSize!, - opt.OutputScale - ); +var app = builder.Build(); - Console.WriteLine("Stitching..."); - var png = await stitcher.CreateImageAsync(req, CancellationToken.None); - File.Move( png, opt.OutputPath!, overwrite: true ); - - long bytes = new FileInfo( opt.OutputPath! ).Length; - Console.WriteLine($"Done. Wrote {opt.OutputPath} ({bytes / 1024.0:F1} KB)"); +app.MapControllers(); - Console.WriteLine(sw.ElapsedMilliseconds - begin); - - return 0; - } - catch( Exception ex ) - { - Console.Error.WriteLine( "ERROR: " + ex.Message ); - return 1; - } - } - - private struct Options - { - public string? CanvasRect { get; set; } - public double[]? CropOffset { get; set; } - public double[]? CropSize { get; set; } - public double OutputScale { get; set; } - public string? OutputPath { get; set; } - } -} \ No newline at end of file +app.Run(); \ No newline at end of file diff --git a/Properties/launchSettings.json b/Properties/launchSettings.json new file mode 100644 index 0000000..23d5fa7 --- /dev/null +++ b/Properties/launchSettings.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "http://localhost:5243", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "https://localhost:7121;http://localhost:5243", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/appsettings.Development.json b/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/appsettings.json b/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/lilo-stitcher-console.csproj b/lilos-stitcher.csproj similarity index 66% rename from lilo-stitcher-console.csproj rename to lilos-stitcher.csproj index cd56a0f..c86ded4 100644 --- a/lilo-stitcher-console.csproj +++ b/lilos-stitcher.csproj @@ -1,18 +1,17 @@ - + - Exe net9.0 - lilo_stitcher_console - enable enable - preview + enable + lilos_stitcher - + + - + \ No newline at end of file diff --git a/lilos-stitcher.http b/lilos-stitcher.http new file mode 100644 index 0000000..8e967ed --- /dev/null +++ b/lilos-stitcher.http @@ -0,0 +1,6 @@ +@lilos_stitcher_HostAddress = http://localhost:5243 + +GET {{lilos_stitcher_HostAddress}}/weatherforecast/ +Accept: application/json + +### \ No newline at end of file diff --git a/lilo-stitcher-console.sln b/lilos-stitcher.sln similarity index 58% rename from lilo-stitcher-console.sln rename to lilos-stitcher.sln index 2e5c9ca..b15f5b6 100644 --- a/lilo-stitcher-console.sln +++ b/lilos-stitcher.sln @@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.5.2.0 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "lilo-stitcher-console", "lilo-stitcher-console.csproj", "{2A1F81C9-D10F-1AE9-CA5C-0714270F48C1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "lilos-stitcher", "lilos-stitcher.csproj", "{8FDFFCBC-9C8E-94D5-A96D-606027D71B44}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -10,15 +10,15 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2A1F81C9-D10F-1AE9-CA5C-0714270F48C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A1F81C9-D10F-1AE9-CA5C-0714270F48C1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2A1F81C9-D10F-1AE9-CA5C-0714270F48C1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A1F81C9-D10F-1AE9-CA5C-0714270F48C1}.Release|Any CPU.Build.0 = Release|Any CPU + {8FDFFCBC-9C8E-94D5-A96D-606027D71B44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8FDFFCBC-9C8E-94D5-A96D-606027D71B44}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8FDFFCBC-9C8E-94D5-A96D-606027D71B44}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8FDFFCBC-9C8E-94D5-A96D-606027D71B44}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {C7CD65D7-8035-4FC2-A584-06B21F732FF7} + SolutionGuid = {8DD20971-C4B3-41BF-8263-D31D5D81631F} EndGlobalSection EndGlobal diff --git a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs new file mode 100644 index 0000000..feda5e9 --- /dev/null +++ b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] diff --git a/obj/Debug/net9.0/lilos-stitcher.AssemblyInfo.cs b/obj/Debug/net9.0/lilos-stitcher.AssemblyInfo.cs new file mode 100644 index 0000000..ad099f6 --- /dev/null +++ b/obj/Debug/net9.0/lilos-stitcher.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("lilos-stitcher")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("lilos-stitcher")] +[assembly: System.Reflection.AssemblyTitleAttribute("lilos-stitcher")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/obj/Debug/net9.0/lilos-stitcher.AssemblyInfoInputs.cache b/obj/Debug/net9.0/lilos-stitcher.AssemblyInfoInputs.cache new file mode 100644 index 0000000..55bfa87 --- /dev/null +++ b/obj/Debug/net9.0/lilos-stitcher.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +b9648f35d08e6094ba68410eef2ef1b321e87149ab6afaeef61e60bd1216d6d3 diff --git a/obj/Debug/net9.0/lilos-stitcher.GeneratedMSBuildEditorConfig.editorconfig b/obj/Debug/net9.0/lilos-stitcher.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..14eb60c --- /dev/null +++ b/obj/Debug/net9.0/lilos-stitcher.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,21 @@ +is_global = true +build_property.TargetFramework = net9.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = true +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = lilos_stitcher +build_property.RootNamespace = lilos_stitcher +build_property.ProjectDir = /home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.RazorLangVersion = 9.0 +build_property.SupportLocalizedComponentNames = +build_property.GenerateRazorMetadataSourceChecksumAttributes = +build_property.MSBuildProjectDirectory = /home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet +build_property._RazorSourceGeneratorDebug = +build_property.EffectiveAnalysisLevelStyle = 9.0 +build_property.EnableCodeStyleSeverity = diff --git a/obj/Debug/net9.0/lilos-stitcher.GlobalUsings.g.cs b/obj/Debug/net9.0/lilos-stitcher.GlobalUsings.g.cs new file mode 100644 index 0000000..025530a --- /dev/null +++ b/obj/Debug/net9.0/lilos-stitcher.GlobalUsings.g.cs @@ -0,0 +1,17 @@ +// +global using global::Microsoft.AspNetCore.Builder; +global using global::Microsoft.AspNetCore.Hosting; +global using global::Microsoft.AspNetCore.Http; +global using global::Microsoft.AspNetCore.Routing; +global using global::Microsoft.Extensions.Configuration; +global using global::Microsoft.Extensions.DependencyInjection; +global using global::Microsoft.Extensions.Hosting; +global using global::Microsoft.Extensions.Logging; +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Net.Http.Json; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/obj/Debug/net9.0/lilos-stitcher.assets.cache b/obj/Debug/net9.0/lilos-stitcher.assets.cache new file mode 100644 index 0000000..ddf522c Binary files /dev/null and b/obj/Debug/net9.0/lilos-stitcher.assets.cache differ diff --git a/obj/Debug/net9.0/lilos-stitcher.csproj.AssemblyReference.cache b/obj/Debug/net9.0/lilos-stitcher.csproj.AssemblyReference.cache new file mode 100644 index 0000000..a2fb20e Binary files /dev/null and b/obj/Debug/net9.0/lilos-stitcher.csproj.AssemblyReference.cache differ diff --git a/obj/lilos-stitcher.csproj.nuget.dgspec.json b/obj/lilos-stitcher.csproj.nuget.dgspec.json new file mode 100644 index 0000000..4f7b5ab --- /dev/null +++ b/obj/lilos-stitcher.csproj.nuget.dgspec.json @@ -0,0 +1,86 @@ +{ + "format": 1, + "restore": { + "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj": {} + }, + "projects": { + "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj", + "projectName": "lilos-stitcher", + "projectPath": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj", + "packagesPath": "/home/mbsbahru/.nuget/packages/", + "outputPath": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/mbsbahru/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "/home/mbsbahru/nuget-local": {}, + "/usr/lib/dotnet/library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.100" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "dependencies": { + "Microsoft.Extensions.Caching.Memory": { + "target": "Package", + "version": "[10.0.0-preview.6.25358.103, )" + }, + "NetVips": { + "target": "Package", + "version": "[3.1.0, )" + }, + "NetVips.Native.linux-x64": { + "target": "Package", + "version": "[8.17.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/9.0.108/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/obj/lilos-stitcher.csproj.nuget.g.props b/obj/lilos-stitcher.csproj.nuget.g.props new file mode 100644 index 0000000..beeabf2 --- /dev/null +++ b/obj/lilos-stitcher.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /home/mbsbahru/.nuget/packages/ + /home/mbsbahru/.nuget/packages/ + PackageReference + 6.12.4 + + + + + \ No newline at end of file diff --git a/obj/lilos-stitcher.csproj.nuget.g.targets b/obj/lilos-stitcher.csproj.nuget.g.targets new file mode 100644 index 0000000..f34860e --- /dev/null +++ b/obj/lilos-stitcher.csproj.nuget.g.targets @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/obj/project.assets.json b/obj/project.assets.json new file mode 100644 index 0000000..b5b766b --- /dev/null +++ b/obj/project.assets.json @@ -0,0 +1,549 @@ +{ + "version": 3, + "targets": { + "net9.0": { + "Microsoft.Extensions.Caching.Abstractions/10.0.0-preview.6.25358.103": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.0-preview.6.25358.103" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.Memory/10.0.0-preview.6.25358.103": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "10.0.0-preview.6.25358.103", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-preview.6.25358.103", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0-preview.6.25358.103", + "Microsoft.Extensions.Options": "10.0.0-preview.6.25358.103", + "Microsoft.Extensions.Primitives": "10.0.0-preview.6.25358.103" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0-preview.6.25358.103": { + "type": "package", + "compile": { + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0-preview.6.25358.103": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-preview.6.25358.103", + "System.Diagnostics.DiagnosticSource": "10.0.0-preview.6.25358.103" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Options/10.0.0-preview.6.25358.103": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-preview.6.25358.103", + "Microsoft.Extensions.Primitives": "10.0.0-preview.6.25358.103" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Primitives/10.0.0-preview.6.25358.103": { + "type": "package", + "compile": { + "lib/net9.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "NetVips/3.1.0": { + "type": "package", + "compile": { + "lib/net6.0/NetVips.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/NetVips.dll": { + "related": ".xml" + } + } + }, + "NetVips.Native.linux-x64/8.17.1": { + "type": "package", + "compile": { + "lib/net6.0/_._": {} + }, + "runtime": { + "lib/net6.0/_._": {} + }, + "runtimeTargets": { + "runtimes/linux-x64/native/libvips.so.42": { + "assetType": "native", + "rid": "linux-x64" + } + } + }, + "System.Diagnostics.DiagnosticSource/10.0.0-preview.6.25358.103": { + "type": "package", + "compile": { + "lib/net9.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + } + } + }, + "libraries": { + "Microsoft.Extensions.Caching.Abstractions/10.0.0-preview.6.25358.103": { + "sha512": "XueBRYerg0fC13swErWCHB8zJ7feYt5R5Und/CjDy45DIccK7MvGJ2aSrtg+OUvPCUinJYphBaLiarfrLuIWfw==", + "type": "package", + "path": "microsoft.extensions.caching.abstractions/10.0.0-preview.6.25358.103", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", + "lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net10.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", + "microsoft.extensions.caching.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512", + "microsoft.extensions.caching.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.Memory/10.0.0-preview.6.25358.103": { + "sha512": "TnEV0E/xlGsAX2zXwdmBVyHcKCAXm7zlOXavdFF7HyHWf0qiReM1ZAvnCDGMERippHxqqUtXC3koZ2uz28UvhQ==", + "type": "package", + "path": "microsoft.extensions.caching.memory/10.0.0-preview.6.25358.103", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", + "lib/net10.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net10.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net462/Microsoft.Extensions.Caching.Memory.dll", + "lib/net462/Microsoft.Extensions.Caching.Memory.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net9.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net9.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", + "microsoft.extensions.caching.memory.10.0.0-preview.6.25358.103.nupkg.sha512", + "microsoft.extensions.caching.memory.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0-preview.6.25358.103": { + "sha512": "XrX5CQwI6dnGvmPJJxf/X1JxhPzRwdKKUf9onJKN+qyqP+wwH9floTgkckGdJxVV+jvnWeUgSJ6MZvQM6WmwSg==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0-preview.6.25358.103", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0-preview.6.25358.103": { + "sha512": "ktG/8xOcrtBL176cYv6mzOL+YRSPySE8hcppHonAXYa8jf3lW/WmxfAUwK0WtUEl7MdYR8mbuEAbSg81crBq5Q==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/10.0.0-preview.6.25358.103", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/10.0.0-preview.6.25358.103": { + "sha512": "V3IaV1wPAVpVfDrOK0b4xKZVEHMFlYSL0Wfx6/Tm8bt4ovodorVqHe/EvsogWmsbcj1XhJvFuWXVDuG479i2vw==", + "type": "package", + "path": "microsoft.extensions.options/10.0.0-preview.6.25358.103", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net8.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net10.0/Microsoft.Extensions.Options.dll", + "lib/net10.0/Microsoft.Extensions.Options.xml", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/net9.0/Microsoft.Extensions.Options.dll", + "lib/net9.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.10.0.0-preview.6.25358.103.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/10.0.0-preview.6.25358.103": { + "sha512": "iSpD+A130hPiq20tbqKGujXtFY1Zc3q/R/AlN3qPpUYwmxEZbybykQ+YpiDzdyoGvo0gp/4vtk/Hqcvkwt53Gw==", + "type": "package", + "path": "microsoft.extensions.primitives/10.0.0-preview.6.25358.103", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net10.0/Microsoft.Extensions.Primitives.dll", + "lib/net10.0/Microsoft.Extensions.Primitives.xml", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/net9.0/Microsoft.Extensions.Primitives.dll", + "lib/net9.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.10.0.0-preview.6.25358.103.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "NetVips/3.1.0": { + "sha512": "/8vwrHjZYO8ec2hXtHxzoreA8TGeSUlcbM+EBc951jlhNQ3n6KfjmZSDQ4T3Is2YS/+FPQrAEUnMIXV2IhxRfg==", + "type": "package", + "path": "netvips/3.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net452/NetVips.dll", + "lib/net452/NetVips.xml", + "lib/net6.0/NetVips.dll", + "lib/net6.0/NetVips.xml", + "netvips.3.1.0.nupkg.sha512", + "netvips.nuspec" + ] + }, + "NetVips.Native.linux-x64/8.17.1": { + "sha512": "i5enEqi0SDWKoinxP/cyjq7T4Vo8bDCfvv5Nf5smBdynAj6EuyNxDaZ54inRjcRD2pA8hZV7mW9gI5H/v/Ls2w==", + "type": "package", + "path": "netvips.native.linux-x64/8.17.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "THIRD-PARTY-NOTICES.md", + "lib/net6.0/_._", + "netvips.native.linux-x64.8.17.1.nupkg.sha512", + "netvips.native.linux-x64.nuspec", + "runtimes/linux-x64/native/libvips.so.42", + "versions.json" + ] + }, + "System.Diagnostics.DiagnosticSource/10.0.0-preview.6.25358.103": { + "sha512": "SmleXl7WsR4hURxBWoTqeCVt8B+doEKMJRev9fxbqdSi5r18kTX/wYqsNePbq/eJeoq3x8UlngVwxwXplYXXfg==", + "type": "package", + "path": "system.diagnostics.diagnosticsource/10.0.0-preview.6.25358.103", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Diagnostics.DiagnosticSource.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets", + "lib/net10.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net10.0/System.Diagnostics.DiagnosticSource.xml", + "lib/net462/System.Diagnostics.DiagnosticSource.dll", + "lib/net462/System.Diagnostics.DiagnosticSource.xml", + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net8.0/System.Diagnostics.DiagnosticSource.xml", + "lib/net9.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net9.0/System.Diagnostics.DiagnosticSource.xml", + "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll", + "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml", + "system.diagnostics.diagnosticsource.10.0.0-preview.6.25358.103.nupkg.sha512", + "system.diagnostics.diagnosticsource.nuspec", + "useSharedDesignerContext.txt" + ] + } + }, + "projectFileDependencyGroups": { + "net9.0": [ + "Microsoft.Extensions.Caching.Memory >= 10.0.0-preview.6.25358.103", + "NetVips >= 3.1.0", + "NetVips.Native.linux-x64 >= 8.17.1" + ] + }, + "packageFolders": { + "/home/mbsbahru/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj", + "projectName": "lilos-stitcher", + "projectPath": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj", + "packagesPath": "/home/mbsbahru/.nuget/packages/", + "outputPath": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/mbsbahru/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "/home/mbsbahru/nuget-local": {}, + "/usr/lib/dotnet/library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.100" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "dependencies": { + "Microsoft.Extensions.Caching.Memory": { + "target": "Package", + "version": "[10.0.0-preview.6.25358.103, )" + }, + "NetVips": { + "target": "Package", + "version": "[3.1.0, )" + }, + "NetVips.Native.linux-x64": { + "target": "Package", + "version": "[8.17.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/9.0.108/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache new file mode 100644 index 0000000..d39e319 --- /dev/null +++ b/obj/project.nuget.cache @@ -0,0 +1,18 @@ +{ + "version": 2, + "dgSpecHash": "ND5vzXBabtw=", + "success": true, + "projectFilePath": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj", + "expectedPackageFiles": [ + "/home/mbsbahru/.nuget/packages/microsoft.extensions.caching.abstractions/10.0.0-preview.6.25358.103/microsoft.extensions.caching.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512", + "/home/mbsbahru/.nuget/packages/microsoft.extensions.caching.memory/10.0.0-preview.6.25358.103/microsoft.extensions.caching.memory.10.0.0-preview.6.25358.103.nupkg.sha512", + "/home/mbsbahru/.nuget/packages/microsoft.extensions.dependencyinjection.abstractions/10.0.0-preview.6.25358.103/microsoft.extensions.dependencyinjection.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512", + "/home/mbsbahru/.nuget/packages/microsoft.extensions.logging.abstractions/10.0.0-preview.6.25358.103/microsoft.extensions.logging.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512", + "/home/mbsbahru/.nuget/packages/microsoft.extensions.options/10.0.0-preview.6.25358.103/microsoft.extensions.options.10.0.0-preview.6.25358.103.nupkg.sha512", + "/home/mbsbahru/.nuget/packages/microsoft.extensions.primitives/10.0.0-preview.6.25358.103/microsoft.extensions.primitives.10.0.0-preview.6.25358.103.nupkg.sha512", + "/home/mbsbahru/.nuget/packages/netvips/3.1.0/netvips.3.1.0.nupkg.sha512", + "/home/mbsbahru/.nuget/packages/netvips.native.linux-x64/8.17.1/netvips.native.linux-x64.8.17.1.nupkg.sha512", + "/home/mbsbahru/.nuget/packages/system.diagnostics.diagnosticsource/10.0.0-preview.6.25358.103/system.diagnostics.diagnosticsource.10.0.0-preview.6.25358.103.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file