Compare commits

...
Sign in to create a new pull request.

8 commits

Author SHA1 Message Date
cee62f55d1 Merge pull request 'add scoring infra' (#1) from scoring into main
Reviewed-on: #1
2025-11-20 07:24:58 +00:00
1b8f3a31b8 add scoring infra 2025-11-19 14:50:14 +00:00
mbsbahru
a9a4d3a631 push the readme 2025-08-01 10:19:01 +07:00
mbsbahru
dd78487b84 create main branch, add gitignore 2025-08-01 09:59:29 +07:00
mbsbahru
cbc092987d release 2025-08-01 00:59:22 +07:00
mbsbahru
a101d84e45 release 2025-08-01 00:53:20 +07:00
e868c152e0 release 2025-08-01 00:30:05 +07:00
93b41bfa94 release 2025-08-01 00:01:05 +07:00
21 changed files with 176 additions and 789 deletions

6
.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
bin
obj
.vs
*.png
.idea
/.contest

View file

@ -1,13 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/modules.xml
/contentModel.xml
/projectSettingsUpdater.xml
/.idea.lilo-stitcher-console.iml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>

View file

@ -1,17 +1,18 @@
using lilos_stitcher;
using Microsoft.AspNetCore.Mvc;
namespace LiloStitcher;
[ApiController]
[Route( "api/image" )]
public sealed class LiloController( LiloStitcher stitcher ) : ControllerBase
public sealed class LiloController( lilos_stitcher.LiloStitcher stitcher ) : ControllerBase
{
[HttpPost]
[Route( "generate" )]
[Produces( "image/png" )]
public async Task<IActionResult> Generate( [FromBody] GenerateRequest payload, CancellationToken ct )
{
var png = await stitcher.CreateImageAsync( payload, ct );
return File( png, "image/png" );
string path = await stitcher.CreateImageAsync( payload, ct );
return PhysicalFile(path, "image/png", enableRangeProcessing: false);
}
}

View file

@ -1,7 +1,7 @@
using Microsoft.Extensions.Caching.Memory;
using NetVips;
namespace LiloStitcher;
namespace lilos_stitcher;
public sealed record GenerateRequest(
string Canvas_Rect,
@ -60,10 +60,12 @@ public class TileLoader( TileCache cache, string assetDir )
public class LiloStitcher( TileLoader loader )
{
public async Task<byte[]> CreateImageAsync( GenerateRequest req, CancellationToken ct )
public async Task<string> CreateImageAsync( GenerateRequest req, CancellationToken ct )
{
(int rowMin, int colMin, int rows, int cols) = ParseCanvas( req.Canvas_Rect );
Validate(req.Crop_Offset, nameof(req.Crop_Offset));
Validate(req.Crop_Size, nameof(req.Crop_Size));
double scale = req.Output_Scale;
if( scale <= 0 || scale > 1 )
throw new ArgumentOutOfRangeException( nameof( req.Output_Scale ) );
@ -82,8 +84,8 @@ public class LiloStitcher( TileLoader loader )
var mosaic = Image.Arrayjoin( tiles.ToArray(), across: cols );
int offsetX = (int)Math.Truncate( req.Output_Scale * mosaic.Width );
int offsetY = (int)Math.Truncate( req.Output_Scale * mosaic.Height );
int offsetX = (int)Math.Truncate( req.Crop_Offset[0] * mosaic.Width );
int offsetY = (int)Math.Truncate( req.Crop_Offset[1] * mosaic.Height );
int restWidth = mosaic.Width - offsetX;
int restHeight = mosaic.Height - offsetY;
@ -96,13 +98,9 @@ public class LiloStitcher( TileLoader loader )
var cropped = mosaic.Crop( cropX, cropY, cropWidth, cropHeight );
var finalImg = scale < 1.0 ? cropped.Resize( scale ) : cropped;
string tmp = Path.GetTempFileName() + ".png";
finalImg.WriteToFile( tmp );
byte[] result = await File.ReadAllBytesAsync( tmp, ct );
File.Delete( tmp );
return result;
string path = Path.Combine(Path.GetTempPath(), $"mosaic-{Guid.NewGuid():N}.png");
cropped.WriteToFile(path);
return path;
}
private static (int rowMin, int colMin, int rows, int cols) ParseCanvas( string rect )

View file

@ -1,19 +1,20 @@
using lilos_stitcher;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
// builder.Services.AddOpenApi();
NetVips.NetVips.Init();
NetVips.NetVips.Concurrency = 3;
builder.Services.AddControllers().AddJsonOptions(options => options.JsonSerializerOptions.PropertyNameCaseInsensitive = true);
builder.Services.AddControllers().AddJsonOptions(o => o.JsonSerializerOptions.PropertyNameCaseInsensitive = true);
builder.Services.AddMemoryCache(o => o.SizeLimit = 256 * 1024 * 1024);
builder.Services.AddMemoryCache(o => o.SizeLimit = 128L * 1024 * 1024);
builder.Services.AddSingleton<LiloStitcher.TileCache>();
builder.Services.AddSingleton<LiloStitcher.TileLoader>();
builder.Services.AddSingleton<LiloStitcher.LiloStitcher>();
string assetDir = Environment.GetEnvironmentVariable("ASSET_PATH_RO") ?? throw new InvalidOperationException("dir not found");
builder.Services.AddSingleton<TileCache>();
builder.Services.AddSingleton(provider => new TileLoader(provider.GetRequiredService<TileCache>(), assetDir));
builder.Services.AddSingleton<lilos_stitcher.LiloStitcher>();
var app = builder.Build();
app.MapControllers();
app.Run();

44
README.md Normal file
View file

@ -0,0 +1,44 @@
# Lilo Stitcher API
An ASP.NET Core Web API for stitching, cropping, and scaling tiled images (720×720).
## Prerequisites
* .NET 9.0 SDK
* `ASSET_PATH_RO` environment variable containing the path to tiles directory (1,705 PNGs named A1.png…AE55.png)
## Build & Run
```bash
cd lilo-stitcher
dotnet clean
dotnet run
```
By default, the API listens on `http://localhost:5243` and `https://localhost:7121` (see [`launchSettings.json`](https://null.formulatrix.dev/fikribahru/lilo-stitcher/src/branch/main/Properties/launchSettings.json)).
## Usage
**Endpoint:** `POST /api/image/generate`
**Request Body (JSON):**
```json
{
"canvas_rect": "A1:H12",
"crop_offset": [0.25, 0.25],
"crop_size": [0.5, 0.5],
"output_scale": 1.0
}
```
**Example (using `curl`):**
```bash
curl -X POST http://localhost:5243/api/image/generate \
-H "Content-Type: application/json" \
-o output.png \
-d '{"canvas_rect":"A1:H12","crop_offset":[0.25,0.25],"crop_size":[0.5,0.5],"output_scale":1.0}'
```
The API will return a `image/png` containing the stitched, cropped, and scaled result.

View file

@ -5,12 +5,14 @@
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>lilos_stitcher</RootNamespace>
<LangVersion>preview</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="10.0.0-preview.6.25358.103" />
<PackageReference Include="NetVips" Version="3.1.0" />
<PackageReference Include="NetVips.Native.linux-x64" Version="8.17.1" />
<PackageReference Include="NetVips.Native.linux-arm64" Version="8.17.1" />
<!-- <PackageReference Include="NetVips.Native.linux-x64" Version="8.17.1" />-->
</ItemGroup>

92
mise.toml Normal file
View file

@ -0,0 +1,92 @@
# Quick Guide
# - install mise
# - download the asset and extract them to ASSET_PATH_RO
# - mise trust mise.toml
# - mise run verify-asset
# - require hashdeep
# `hashdeep` package in debian
# or `md5deep` package in fedora
# or uncomment `tools."http:hashdeep"` below in windows
# - mise run serve
# - mise run arrange
# - mise run action
# - mise run assert
# - mise run bench
[env]
ASSET_PATH_RO = "{{ [xdg_cache_home, 'stitch-a-ton', 'asset'] | join_path }}"
CONTEST_HOST = "http://localhost:7007"
CONTEST_API = "/api/image/generate"
CONTEST_OUTPUT = "{{ [cwd, '.contest'] | join_path }}"
DOTNET_ENVIRONMENT = "Production"
ANSWER_COMMIT_HASH = "89a07b40bf0414212c96945671a012035d375a25"
[tools]
dotnet = "9"
xh = "latest"
uv = "latest"
k6 = "latest"
# uncomment these if you're on windows
#[tools."http:hashdeep"]
#version = "4.4"
#[tools."http:hashdeep".platforms]
#windows-x64 = {url = "https://github.com/jessek/hashdeep/releases/download/v4.4/md5deep-4.4.zip"}
[tasks.setup]
run = '''
{% if env.CONTEST_OUTPUT is not exists %}
mkdir .contest
{% endif %}
'''
[tasks.verify-asset]
dir = "{{ env.ASSET_PATH_RO }}"
run = '''
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/asset.txt -o ../asset.txt
hashdeep -arbvk ../asset.txt .
'''
[tasks.arrange]
depends = ['setup']
dir = "{{ env.CONTEST_OUTPUT }}"
outputs = ['answer.json', 'action.py', 'assert.py', 'bench.js', 'fuzzy.json']
run = '''
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/answer.json -o answer.json
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/action.py -o action.py
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/assert.py -o assert.py
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/bench.js -o bench.js
xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/fuzzy.json -o fuzzy.json
'''
[tasks.serve]
run = "dotnet run -c Release --no-launch-profile --urls {{env.CONTEST_HOST}}"
[tasks.quick]
depends = ['arrange']
dir = "{{ env.CONTEST_OUTPUT }}"
run = '''
xh post {{env.CONTEST_HOST}}{{env.CONTEST_ENDPOINT}} canvas_rect=A1:H12 crop_offset:=[0,0] crop_size:=[1,1] output_scale:=0.25 -o quick.png
'''
[tasks.action]
depends = ['arrange']
dir = "{{ env.CONTEST_OUTPUT }}"
run = '''
uv run --no-config --script {{ [env.CONTEST_OUTPUT, 'action.py'] | join_path }}
'''
[tasks.assert]
depends = ['arrange']
dir = "{{ env.CONTEST_OUTPUT }}"
run = '''
uvx --no-config --with-requirements assert.py pytest assert.py
'''
[tasks.bench]
depends = ['arrange']
dir = "{{ env.CONTEST_OUTPUT }}"
run = '''
k6 run -e TARGET_URL="{{ env.CONTEST_HOST }}{{ env.CONTEST_API }}" bench.js
'''

View file

@ -1,4 +0,0 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]

View file

@ -1,22 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
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.

View file

@ -1 +0,0 @@
b9648f35d08e6094ba68410eef2ef1b321e87149ab6afaeef61e60bd1216d6d3

View file

@ -1,21 +0,0 @@
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 =

View file

@ -1,17 +0,0 @@
// <auto-generated/>
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;

View file

@ -1,86 +0,0 @@
{
"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"
}
}
}
}
}

View file

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/mbsbahru/.nuget/packages/</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/mbsbahru/.nuget/packages/</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.12.4</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="/home/mbsbahru/.nuget/packages/" />
</ItemGroup>
</Project>

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options/10.0.0-preview.6.25358.103/buildTransitive/net8.0/Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options/10.0.0-preview.6.25358.103/buildTransitive/net8.0/Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.0-preview.6.25358.103/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.0-preview.6.25358.103/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets')" />
</ImportGroup>
</Project>

View file

@ -1,549 +0,0 @@
{
"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"
}
}
}
}

View file

@ -1,18 +0,0 @@
{
"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": []
}