Skip to content

Commit ac0dd64

Browse files
authored
Adds Nitro CLI (#8537)
1 parent 9ae7220 commit ac0dd64

File tree

249 files changed

+16310
-65
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

249 files changed

+16310
-65
lines changed

src/Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
<PropertyGroup>
4747
<TargetFrameworks>net10.0; net9.0; net8.0</TargetFrameworks>
4848
<ExtendedTargetFrameworks>net10.0; net9.0; net8.0; netstandard2.0</ExtendedTargetFrameworks>
49+
<CLITargetFrameworks>net10.0; net9.0</CLITargetFrameworks>
4950
</PropertyGroup>
5051

5152
<PropertyGroup>

src/Directory.Packages.props

Lines changed: 73 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -3,71 +3,76 @@
33
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
44
</PropertyGroup>
55
<ItemGroup>
6-
<PackageVersion Include="AlterNats.Hosting" Version="1.0.6" />
7-
<PackageVersion Include="Aspire.Hosting" Version="8.0.0" />
8-
<PackageVersion Include="Aspire.Hosting.AppHost" Version="8.0.0" />
9-
<PackageVersion Include="Aspire.Hosting.PostgreSQL" Version="8.0.0" />
10-
<PackageVersion Include="Aspire.Hosting.RabbitMQ" Version="8.0.0" />
11-
<PackageVersion Include="Aspire.Hosting.Redis" Version="8.0.0" />
12-
<PackageVersion Include="Azure.Storage.Blobs" Version="12.23.0" />
13-
<PackageVersion Include="Basic.Reference.Assemblies.Net80" Version="1.8.2" />
14-
<PackageVersion Include="Basic.Reference.Assemblies.Net90" Version="1.8.2" />
15-
<PackageVersion Include="Basic.Reference.Assemblies.Net100" Version="1.8.2" />
16-
<PackageVersion Include="ChilliCream.Nitro.App" Version="$(NitroVersion)" />
17-
<PackageVersion Include="ChilliCream.Testing.Utilities" Version="0.2.0" />
18-
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
19-
<PackageVersion Include="DiffPlex" Version="1.8.0" />
20-
<PackageVersion Include="Glob" Version="1.1.9" />
21-
<PackageVersion Include="IdentityModel" Version="4.1.1" />
22-
<PackageVersion Include="JsonPointer.Net" Version="5.0.0" />
23-
<PackageVersion Include="Marten" Version="7.33.0" />
24-
<PackageVersion Include="McMaster.Extensions.CommandLineUtils" Version="4.0.1" />
25-
<PackageVersion Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
26-
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Core" Version="1.4.0" />
27-
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.Abstractions" Version="1.1.0" />
28-
<PackageVersion Include="Microsoft.Bcl.HashCode" Version="1.1.1" />
29-
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" />
30-
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.13.0" />
31-
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.13.0" />
32-
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="7.0.3" />
33-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
34-
<PackageVersion Include="Microsoft.OpenApi" Version="1.6.14" />
35-
<PackageVersion Include="Microsoft.OpenApi.Readers" Version="1.6.14" />
36-
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="17.14.2" />
37-
<PackageVersion Include="MongoDB.Driver" Version="3.0.0" />
38-
<PackageVersion Include="Moq" Version="4.20.72" />
39-
<PackageVersion Include="NetTopologySuite" Version="2.0.0" />
40-
<PackageVersion Include="Newtonsoft.Json" Version="13.0.2" />
41-
<PackageVersion Include="NodaTime" Version="3.2.1" />
42-
<PackageVersion Include="Npgsql" Version="8.0.4" />
43-
<PackageVersion Include="OpenTelemetry.Api" Version="1.1.0" />
44-
<PackageVersion Include="ProjNET" Version="2.0.0" />
45-
<PackageVersion Include="RabbitMQ.Client" Version="6.4.0" />
46-
<PackageVersion Include="RavenDB.Client" Version="6.0.104" />
47-
<PackageVersion Include="Snapshooter.Xunit" Version="0.5.4" />
48-
<PackageVersion Include="sqlite-net-pcl" Version="1.9.172" />
49-
<PackageVersion Include="SQLitePCLRaw.bundle_green" Version="2.1.8" />
50-
<PackageVersion Include="Squadron.Mongo" Version="0.25.0-preview.2" />
51-
<PackageVersion Include="Squadron.Nats" Version="0.25.0-preview.2" />
52-
<PackageVersion Include="Squadron.PostgreSql" Version="0.25.0-preview.2" />
53-
<PackageVersion Include="Squadron.RabbitMQ" Version="0.25.0-preview.2" />
54-
<PackageVersion Include="Squadron.RavenDB" Version="0.25.0-preview.2" />
55-
<PackageVersion Include="Squadron.Redis" Version="0.25.0-preview.2" />
56-
<PackageVersion Include="Squadron.AzureStorage" Version="0.25.0-preview.2" />
57-
<PackageVersion Include="StackExchange.Redis" Version="2.6.80" />
58-
<PackageVersion Include="System.Collections.Immutable" Version="8.0.0" />
59-
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
60-
<PackageVersion Include="System.Reactive" Version="6.0.0" />
61-
<PackageVersion Include="Testcontainers" Version="4.6.0" />
62-
<PackageVersion Include="TUnit" Version="0.25.21" />
63-
<PackageVersion Include="xunit" Version="2.9.3" />
64-
<PackageVersion Include="xunit.assert" Version="2.9.3" />
65-
<PackageVersion Include="xunit.extensibility.core" Version="2.9.3" />
66-
<PackageVersion Include="xunit.extensibility.execution" Version="2.9.3" />
67-
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.1" />
68-
<PackageVersion Include="xunit.v3" Version="1.1.0" />
69-
<PackageVersion Include="xunit.v3.assert" Version="1.1.0" />
70-
<PackageVersion Include="xunit.v3.extensibility.core" Version="1.1.0" />
6+
<PackageVersion Include="AlterNats.Hosting" Version="1.0.6" />
7+
<PackageVersion Include="Aspire.Hosting.AppHost" Version="8.0.0" />
8+
<PackageVersion Include="Aspire.Hosting.PostgreSQL" Version="8.0.0" />
9+
<PackageVersion Include="Aspire.Hosting.RabbitMQ" Version="8.0.0" />
10+
<PackageVersion Include="Aspire.Hosting.Redis" Version="8.0.0" />
11+
<PackageVersion Include="Aspire.Hosting" Version="8.0.0" />
12+
<PackageVersion Include="Azure.Storage.Blobs" Version="12.23.0" />
13+
<PackageVersion Include="Basic.Reference.Assemblies.Net100" Version="1.8.2" />
14+
<PackageVersion Include="Basic.Reference.Assemblies.Net80" Version="1.8.2" />
15+
<PackageVersion Include="Basic.Reference.Assemblies.Net90" Version="1.8.2" />
16+
<PackageVersion Include="ChilliCream.Nitro.App" Version="$(NitroVersion)" />
17+
<PackageVersion Include="ChilliCream.Testing.Utilities" Version="0.2.0" />
18+
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
19+
<PackageVersion Include="DiffPlex" Version="1.8.0" />
20+
<PackageVersion Include="Duende.IdentityModel.OidcClient" Version="6.0.1" />
21+
<PackageVersion Include="Glob" Version="1.1.9" />
22+
<PackageVersion Include="IdentityModel" Version="4.1.1" />
23+
<PackageVersion Include="JsonPointer.Net" Version="5.0.0" />
24+
<PackageVersion Include="Marten" Version="7.33.0" />
25+
<PackageVersion Include="McMaster.Extensions.CommandLineUtils" Version="4.0.1" />
26+
<PackageVersion Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
27+
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Core" Version="1.4.0" />
28+
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.Abstractions" Version="1.1.0" />
29+
<PackageVersion Include="Microsoft.Bcl.HashCode" Version="1.1.1" />
30+
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" />
31+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.13.0" />
32+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.13.0" />
33+
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="7.0.3" />
34+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
35+
<PackageVersion Include="Microsoft.OpenApi.Readers" Version="1.6.14" />
36+
<PackageVersion Include="Microsoft.OpenApi" Version="1.6.14" />
37+
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="17.14.2" />
38+
<PackageVersion Include="MongoDB.Driver" Version="3.0.0" />
39+
<PackageVersion Include="Moq" Version="4.20.72" />
40+
<PackageVersion Include="NetTopologySuite" Version="2.0.0" />
41+
<PackageVersion Include="Newtonsoft.Json" Version="13.0.2" />
42+
<PackageVersion Include="NodaTime" Version="3.2.1" />
43+
<PackageVersion Include="Npgsql" Version="8.0.4" />
44+
<PackageVersion Include="OpenTelemetry.Api" Version="1.1.0" />
45+
<PackageVersion Include="ProjNET" Version="2.0.0" />
46+
<PackageVersion Include="RabbitMQ.Client" Version="6.4.0" />
47+
<PackageVersion Include="RavenDB.Client" Version="6.0.104" />
48+
<PackageVersion Include="Snapshooter.Xunit" Version="0.5.4" />
49+
<PackageVersion Include="Spectre.Console.Json" Version="0.50.0" />
50+
<PackageVersion Include="Spectre.Console" Version="0.50.0" />
51+
<PackageVersion Include="sqlite-net-pcl" Version="1.9.172" />
52+
<PackageVersion Include="SQLitePCLRaw.bundle_green" Version="2.1.8" />
53+
<PackageVersion Include="Squadron.AzureStorage" Version="0.25.0-preview.2" />
54+
<PackageVersion Include="Squadron.Mongo" Version="0.25.0-preview.2" />
55+
<PackageVersion Include="Squadron.Nats" Version="0.25.0-preview.2" />
56+
<PackageVersion Include="Squadron.PostgreSql" Version="0.25.0-preview.2" />
57+
<PackageVersion Include="Squadron.RabbitMQ" Version="0.25.0-preview.2" />
58+
<PackageVersion Include="Squadron.RavenDB" Version="0.25.0-preview.2" />
59+
<PackageVersion Include="Squadron.Redis" Version="0.25.0-preview.2" />
60+
<PackageVersion Include="StackExchange.Redis" Version="2.6.80" />
61+
<PackageVersion Include="System.Collections.Immutable" Version="8.0.0" />
62+
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
63+
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="8.13.1" />
64+
<PackageVersion Include="System.Linq.Async" Version="6.0.3" />
65+
<PackageVersion Include="System.Reactive" Version="6.0.0" />
66+
<PackageVersion Include="Testcontainers" Version="4.6.0" />
67+
<PackageVersion Include="TUnit" Version="0.25.21" />
68+
<PackageVersion Include="xunit.assert" Version="2.9.3" />
69+
<PackageVersion Include="xunit.extensibility.core" Version="2.9.3" />
70+
<PackageVersion Include="xunit.extensibility.execution" Version="2.9.3" />
71+
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.1" />
72+
<PackageVersion Include="xunit.v3.assert" Version="1.1.0" />
73+
<PackageVersion Include="xunit.v3.extensibility.core" Version="1.1.0" />
74+
<PackageVersion Include="xunit.v3" Version="1.1.0" />
75+
<PackageVersion Include="xunit" Version="2.9.3" />
7176
</ItemGroup>
7277
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
7378
<PackageVersion Include="Microsoft.AspNetCore.Components.Web" Version="10.0.0-preview.5.25277.114" />
@@ -91,6 +96,7 @@
9196
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="10.0.0-preview.5" />
9297
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime" Version="10.0.0-preview.5" />
9398
<PackageVersion Include="System.IO.Hashing" Version="10.0.0-preview.5.25277.114" />
99+
<PackageVersion Include="System.IO.Packaging" Version="10.0.0-preview.5.25277.114" />
94100
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="10.0.0-preview.6.25358.103" />
95101
</ItemGroup>
96102
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
@@ -115,6 +121,7 @@
115121
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="9.0.3" />
116122
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime" Version="9.0.3" />
117123
<PackageVersion Include="System.IO.Hashing" Version="9.0.6" />
124+
<PackageVersion Include="System.IO.Packaging" Version="9.0.6" />
118125
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="9.0.8" />
119126
</ItemGroup>
120127
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
@@ -139,6 +146,7 @@
139146
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="8.0.10" />
140147
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime" Version="8.0.10" />
141148
<PackageVersion Include="System.IO.Pipelines" Version="8.0.0" />
149+
<PackageVersion Include="System.IO.Packaging" Version="8.0.0" />
142150
<PackageVersion Include="System.IO.Hashing" Version="8.0.0" />
143151
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="8.0.1" />
144152
</ItemGroup>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
namespace HotChocolate.Fusion.Composition;
2+
3+
/// <summary>
4+
/// Represents the configuration for an HTTP client that can be used to fetch data from a subgraph.
5+
/// </summary>
6+
public sealed class HttpClientConfiguration : IClientConfiguration
7+
{
8+
/// <summary>
9+
/// Initializes a new instance of the <see cref="HttpClientConfiguration"/> class.
10+
/// </summary>
11+
/// <param name="baseAddress">
12+
/// The base address of the client.
13+
/// </param>
14+
/// <param name="clientName">
15+
/// The name of the client.
16+
/// </param>
17+
public HttpClientConfiguration(Uri baseAddress, string? clientName = null)
18+
{
19+
BaseAddress = baseAddress;
20+
ClientName = clientName;
21+
}
22+
23+
/// <summary>
24+
/// Gets the name of the client.
25+
/// </summary>
26+
public string? ClientName { get; }
27+
28+
/// <summary>
29+
/// Gets the base address of the client.
30+
/// </summary>
31+
public Uri BaseAddress { get; }
32+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System.Text.Json;
2+
using HotChocolate.Utilities;
3+
4+
namespace HotChocolate.Fusion.Composition;
5+
6+
internal static class JsonElementExtensions
7+
{
8+
public static JsonElement SafeClone(this JsonElement element)
9+
{
10+
using var writer = new ArrayWriter();
11+
using var jsonWriter = new Utf8JsonWriter(writer);
12+
13+
element.WriteTo(jsonWriter);
14+
jsonWriter.Flush();
15+
16+
var reader = new Utf8JsonReader(writer.GetWrittenSpan(), true, default);
17+
return JsonElement.ParseValue(ref reader);
18+
}
19+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
using System.Text.Json;
2+
3+
namespace HotChocolate.Fusion.Composition;
4+
5+
/// <summary>
6+
/// The runtime representation of subgraph-config.json.
7+
/// </summary>
8+
internal sealed record SubgraphConfigJson
9+
{
10+
/// <summary>
11+
/// Initializes a new instance of the <see cref="SubgraphConfigJson"/> class.
12+
/// </summary>
13+
/// <param name="name">
14+
/// The name of the subgraph.
15+
/// </param>
16+
/// <param name="clients">
17+
/// The list of clients that can be used to fetch data from this subgraph.
18+
/// </param>
19+
/// <param name="extensions">
20+
/// The "extensions" property of the subgraph-config.json.
21+
/// </param>
22+
public SubgraphConfigJson(
23+
string name,
24+
IReadOnlyList<IClientConfiguration>? clients = null,
25+
JsonElement? extensions = null)
26+
{
27+
Name = name;
28+
Clients = clients ?? Array.Empty<IClientConfiguration>();
29+
Extensions = extensions;
30+
}
31+
32+
/// <summary>
33+
/// Gets the name that is used to refer to a subgraph.
34+
/// </summary>
35+
public string Name { get; init; }
36+
37+
/// <summary>
38+
/// Gets the client configurations that are used to fetch data from a subgraph.
39+
/// </summary>
40+
public IReadOnlyList<IClientConfiguration> Clients { get; init; }
41+
42+
/// <summary>
43+
/// Gets the "extensions" property of the subgraph-config.json.
44+
/// </summary>
45+
public JsonElement? Extensions { get; init; }
46+
47+
/// <summary>
48+
/// Deconstructs the <see cref="SubgraphConfigJson"/> into its components.
49+
/// </summary>
50+
/// <param name="name">
51+
/// The name of the subgraph.
52+
/// </param>
53+
/// <param name="clients">
54+
/// The list of clients that can be used to fetch data from this subgraph.
55+
/// </param>
56+
/// <param name="extensions">
57+
/// The "extensions" property of the subgraph-config.json.
58+
/// </param>
59+
public void Deconstruct(
60+
out string name,
61+
out IReadOnlyList<IClientConfiguration> clients,
62+
out JsonElement? extensions)
63+
{
64+
name = Name;
65+
clients = Clients;
66+
extensions = Extensions;
67+
}
68+
}

0 commit comments

Comments
 (0)