Skip to content

Commit 2fffb9d

Browse files
committed
libraries version updated, shared library refactoring
1 parent 7a3299b commit 2fffb9d

26 files changed

+196
-49
lines changed

.build/Targets/Extension_Targets.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ partial class Build
6767
.DependsOn(Extension_Build)
6868
.Executes(() =>
6969
{
70-
var path = Directory.GetFiles(ExtensionDirectory, "*.nupkg", SearchOption.AllDirectories).FirstOrDefault();
70+
var path = Directory.GetFiles(ExtensionDirectory, $"{ExtensionName}.*.nupkg", SearchOption.AllDirectories).FirstOrDefault();
7171
if (string.IsNullOrWhiteSpace(path)) throw new FileNotFoundException("Extension library wasn't found.");
7272

7373
DotNetNuGetPush(x => x

.build/Targets/Solution_Targets.cs

+7-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using System.IO;
44
using System.Linq;
55
using Nuke.Common;
6-
using Nuke.Common.Tooling;
76
using Nuke.Common.Tools.DotNet;
87
using static Nuke.Common.Tools.DotNet.DotNetTasks;
98

@@ -16,6 +15,13 @@ partial class Build
1615
{
1716
if (Directory.Exists(OutputDirectory)) Directory.Delete(OutputDirectory, true);
1817
DotNetClean(x => x.SetProject(Solution));
18+
19+
// delete all 'bin' directories
20+
foreach (var project in Solution.AllProjects.Where(x => !x.Name.Equals("Builder.Shared", StringComparison.Ordinal)))
21+
{
22+
var binDir = project.Directory / "bin";
23+
if (Directory.Exists(binDir)) Directory.Delete(binDir, true);
24+
}
1925
});
2026

2127
Target Solution_Restore => _ => _

build-all.ps1

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
param(
2+
[string]$version = ""
3+
)
4+
5+
# call script in cli
6+
nuke Solution_Clean
7+
nuke Shared_Build --SharedLibVersion $version
8+
9+
# find all in Extensions folder
10+
$extensions = Get-ChildItem -Path .\src\Extensions -Directory
11+
foreach ($extension in $extensions) {
12+
nuke Extension_Build --ExtensionName $extension.Name --ExtensionLibVersion $version
13+
}
14+
15+
# find all nupkg files and store to one folder
16+
$nugetsFolder = ".\.local\nuget"
17+
if (Test-Path .\.local\nuget) {
18+
Remove-Item -Path $nugetsFolder -Recurse -Force
19+
}
20+
New-Item -ItemType Directory -Path $nugetsFolder -Force
21+
22+
$files = Get-ChildItem -Path .\.local\builds -Recurse -Filter *.nupkg
23+
$files | ForEach-Object { Copy-Item $_.FullName -Destination $nugetsFolder -Force }

src/Extensions/Directory.Build.props

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<RepositoryUrl>https://github.com/RestApia/RestApia.Shared</RepositoryUrl>
77
<PackageLicenseExpression>MIT</PackageLicenseExpression>
88
<PackageReadmeFile>README.md</PackageReadmeFile>
9+
<PackageReleaseNotes>RestApia: 0.3.0</PackageReleaseNotes>
910
</PropertyGroup>
1011

1112
<ItemGroup>

src/Extensions/RestApia.Extensions.Auth.Basic/BasicAuthService.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@ public class BasicAuthService : IAuthService
1212
public bool IsReloadFeatureAvailable => false;
1313
public bool IsShowPayloadFeatureAvailable => true;
1414

15-
public Task<IReadOnlyCollection<ValueModel>> GetValuesAsync(object settingsObj, Guid authId) => Task.FromResult(GetValues(settingsObj));
15+
public Task<IReadOnlyCollection<ExtensionValueModel>> GetValuesAsync(object settingsObj, Guid authId) => Task.FromResult(GetValues(settingsObj));
1616

17-
private static IReadOnlyCollection<ValueModel> GetValues(object rawSettings)
17+
private static IReadOnlyCollection<ExtensionValueModel> GetValues(object rawSettings)
1818
{
1919
if (rawSettings is not BasicAuthSettings settings) return [];
2020
var token = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{settings.UserName}:{settings.Password}"));
2121

2222
return
2323
[
24-
new () { Name = "Authorization", Type = ValuesContentItemTypeEnum.Header, Value = $"Basic {token}" },
24+
new () { Name = "Authorization", Type = ValueTypeEnum.Header, Value = $"Basic {token}" },
2525
];
2626
}
2727

src/Extensions/RestApia.Extensions.Auth.Basic/BasicAuthSettings.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ namespace RestApia.Extensions.Auth.Basic;
33

44
public record BasicAuthSettings
55
{
6-
[ValuesContentItem("Name", "User login name", IsRequired = true)]
6+
[ContentValue("Name", "User login name", IsRequired = true)]
77
public string UserName { get; init; } = string.Empty;
88

9-
[ValuesContentItem("Password", "User password", IsRequired = true)]
9+
[ContentValue("Password", "User password", IsRequired = true)]
1010
public string Password { get; init; } = string.Empty;
1111
}

src/Extensions/RestApia.Extensions.Auth.Basic/RestApia.Extensions.Auth.Basic.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
<Title>Basic Authorization extension</Title>
44
<Description>Generate Authorization header based on settings for requests.</Description>
55
<RepositoryUrl>https://github.com/RestApia/RestApia.Shared/tree/main/src/Extensions/RestApia.Extensions.Auth.Basic</RepositoryUrl>
6-
<PackageTags>RestApiaEmbedded, Extension</PackageTags>
6+
<PackageTags>RestApiaEmbedded, Extension, Authorization</PackageTags>
77
</PropertyGroup>
88
</Project>

src/Extensions/RestApia.Extensions.Auth.OAuth2/AuthCode/OAuth2AuthCodeService.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public OAuth2AuthCodeService(IExtensionValuesStorage storage, ILogger logger, IE
2929
public bool IsShowPayloadFeatureAvailable => true;
3030
public Type SettingsType => typeof(OAuth2AuthCodeSettings);
3131

32-
public Task<IReadOnlyCollection<ValueModel>> GetValuesAsync(object settingsObj, Guid authId)
32+
public Task<IReadOnlyCollection<ExtensionValueModel>> GetValuesAsync(object settingsObj, Guid authId)
3333
{
3434
var result = _storage.GetValues(authId);
3535
result = [..result, ..OAuth2Helper.GetCustomValues(result, _logger)];
@@ -62,12 +62,12 @@ public async Task<bool> ReloadAsync(object settingsObj, Guid authId)
6262
expiresAt = token.ValidTo;
6363
}
6464

65-
IReadOnlyCollection<ValueModel> values =
65+
IReadOnlyCollection<ExtensionValueModel> values =
6666
[
6767
new ()
6868
{
6969
Name = "Authorization",
70-
Type = ValuesContentItemTypeEnum.Header,
70+
Type = ValueTypeEnum.Header,
7171
Value = $"Bearer {tokenString}",
7272
},
7373
];

src/Extensions/RestApia.Extensions.Auth.OAuth2/AuthCode/OAuth2AuthCodeSettings.cs

+11-11
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,36 @@ namespace RestApia.Extensions.Auth.OAuth2.AuthCode;
33

44
public record OAuth2AuthCodeSettings
55
{
6-
[ValuesContentItem("AuthUrl", "Authorization URL", IsRequired = true)]
6+
[ContentValue("AuthUrl", "Authorization URL", IsRequired = true)]
77
public required string AuthUrl { get; init; }
88

9-
[ValuesContentItem("TokenUrl", "Access token URL", IsRequired = true)]
9+
[ContentValue("TokenUrl", "Access token URL", IsRequired = true)]
1010
public required string AccessTokenUrl { get; init; }
1111

12-
[ValuesContentItem("RedirectUrl", "Redirect URL", IsRequired = true)]
12+
[ContentValue("RedirectUrl", "Redirect URL", IsRequired = true)]
1313
public required string RedirectUrl { get; init; }
1414

15-
[ValuesContentItem("ClientId", "Client Id", IsRequired = true)]
15+
[ContentValue("ClientId", "Client Id", IsRequired = true)]
1616
public required string ClientId { get; init; }
1717

18-
[ValuesContentItem("ClientSecret", "Client secret")]
18+
[ContentValue("ClientSecret", "Client secret")]
1919
public string ClientSecret { get; init; } = string.Empty;
2020

21-
[ValuesContentItem("SendMethod", "Credentials send method. Can be 'Header' or 'Body'")]
21+
[ContentValue("SendMethod", "Credentials send method. Can be 'Header' or 'Body'")]
2222
public required string CredentialsSendMethod { get; init; }
2323

24-
[ValuesContentItem("Scopes", "List of scopes, separated by space, comma or semicolon")]
24+
[ContentValue("Scopes", "List of scopes, separated by space, comma or semicolon")]
2525
public string Scopes { get; init; } = string.Empty;
2626

27-
[ValuesContentItem("Audience", "Audience")]
27+
[ContentValue("Audience", "Audience")]
2828
public string Audience { get; init; } = string.Empty;
2929

30-
[ValuesContentItem("State", "State")]
30+
[ContentValue("State", "State")]
3131
public string State { get; init; } = string.Empty;
3232

33-
[ValuesContentItem("Resource", "Resource")]
33+
[ContentValue("Resource", "Resource")]
3434
public string Resource { get; init; } = string.Empty;
3535

36-
[ValuesContentItem("Origin", "Origin")]
36+
[ContentValue("Origin", "Origin")]
3737
public string Origin { get; init; } = string.Empty;
3838
}

src/Extensions/RestApia.Extensions.Auth.OAuth2/Implicit/OAuth2ImplicitService.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public OAuth2ImplicitService(IExtensionValuesStorage storage, ILogger logger, IE
2424
public bool IsShowPayloadFeatureAvailable => true;
2525
public Type SettingsType => typeof(OAuth2ImplicitSettings);
2626

27-
public Task<IReadOnlyCollection<ValueModel>> GetValuesAsync(object settingsObj, Guid authId)
27+
public Task<IReadOnlyCollection<ExtensionValueModel>> GetValuesAsync(object settingsObj, Guid authId)
2828
{
2929
var result = _storage.GetValues(authId);
3030
result = [..result, ..OAuth2Helper.GetCustomValues(result, _logger)];
@@ -92,12 +92,12 @@ public async Task<bool> ReloadAsync(object settingsObj, Guid authId)
9292
expiresAt = token.ValidTo;
9393
}
9494

95-
IReadOnlyCollection<ValueModel> values =
95+
IReadOnlyCollection<ExtensionValueModel> values =
9696
[
9797
new ()
9898
{
9999
Name = "Authorization",
100-
Type = ValuesContentItemTypeEnum.Header,
100+
Type = ValueTypeEnum.Header,
101101
Value = $"Bearer {tokenString}",
102102
},
103103
];

src/Extensions/RestApia.Extensions.Auth.OAuth2/Implicit/OAuth2ImplicitSettings.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@ namespace RestApia.Extensions.Auth.OAuth2.Implicit;
33

44
public record OAuth2ImplicitSettings
55
{
6-
[ValuesContentItem("AuthUrl", "Authorization URL", IsRequired = true)]
6+
[ContentValue("AuthUrl", "Authorization URL", IsRequired = true)]
77
public required string AuthUrl { get; init; }
88

9-
[ValuesContentItem("RedirectUrl", "Redirect URL", IsRequired = true)]
9+
[ContentValue("RedirectUrl", "Redirect URL", IsRequired = true)]
1010
public required string RedirectUrl { get; init; }
1111

12-
[ValuesContentItem("ClientId", "Client Id", IsRequired = true)]
12+
[ContentValue("ClientId", "Client Id", IsRequired = true)]
1313
public required string ClientId { get; init; }
1414

15-
[ValuesContentItem("Scopes", "List of scopes, separated by space, comma or semicolon")]
15+
[ContentValue("Scopes", "List of scopes, separated by space, comma or semicolon")]
1616
public string Scopes { get; init; } = string.Empty;
1717

18-
[ValuesContentItem("Audience", "Audience")]
18+
[ContentValue("Audience", "Audience")]
1919
public string Audience { get; init; } = string.Empty;
2020
}

src/Extensions/RestApia.Extensions.Auth.OAuth2/OAuth2Helper.cs

+7-7
Original file line numberDiff line numberDiff line change
@@ -41,21 +41,21 @@ public static string AddQueryParams(string url, IReadOnlyCollection<KeyValuePair
4141
return uriBuilder.ToString();
4242
}
4343

44-
public static IReadOnlyCollection<ValueModel> GetCustomValues(IReadOnlyCollection<ValueModel> original, ILogger logger)
44+
public static IReadOnlyCollection<ExtensionValueModel> GetCustomValues(IReadOnlyCollection<ExtensionValueModel> original, ILogger logger)
4545
{
4646
var tokenStr = original.FirstOrDefault(x => x.Name == "Authorization")?.Value?.ToString().Split(' ').LastOrDefault();
4747

4848
if (string.IsNullOrWhiteSpace(tokenStr) || !TryParseToken(tokenStr, logger, out var token)) return [];
4949

50-
var result = new List<ValueModel>();
51-
result.Add(new () { Name = "Valid from", Value = token.ValidFrom.ToString("s"), Type = ValuesContentItemTypeEnum.Other, Description = "Info" });
52-
result.Add(new () { Name = "Valid to", Value = token.ValidTo.ToString("s"), Type = ValuesContentItemTypeEnum.Other, Description = "Info" });
53-
result.Add(new () { Name = "Expired in", Value = token.ValidTo > DateTime.UtcNow ? (token.ValidTo - DateTime.UtcNow).ToString("g") : "Expired", Type = ValuesContentItemTypeEnum.Other, Description = "Info" });
54-
result.AddRange(token.Claims.Select(claim => new ValueModel
50+
var result = new List<ExtensionValueModel>();
51+
result.Add(new () { Name = "Valid from", Value = token.ValidFrom.ToString("s"), Type = ValueTypeEnum.Other, Description = "Info" });
52+
result.Add(new () { Name = "Valid to", Value = token.ValidTo.ToString("s"), Type = ValueTypeEnum.Other, Description = "Info" });
53+
result.Add(new () { Name = "Expired in", Value = token.ValidTo > DateTime.UtcNow ? (token.ValidTo - DateTime.UtcNow).ToString("g") : "Expired", Type = ValueTypeEnum.Other, Description = "Info" });
54+
result.AddRange(token.Claims.Select(claim => new ExtensionValueModel
5555
{
5656
Name = claim.Type,
5757
Value = claim.Value,
58-
Type = ValuesContentItemTypeEnum.Other,
58+
Type = ValueTypeEnum.Other,
5959
Description = "JWT Claim",
6060
}));
6161

src/Extensions/RestApia.Extensions.Auth.OAuth2/RestApia.Extensions.Auth.OAuth2.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<Title>OAuth2 Authorization extension</Title>
44
<Description>Extension provides OAuth2 Implicit and AuthCode authorizations</Description>
55
<RepositoryUrl>https://github.com/RestApia/RestApia.Shared/tree/main/src/Extensions/RestApia.Extensions.Auth.OAuth2</RepositoryUrl>
6-
<PackageTags>RestApiaEmbedded, Extension</PackageTags>
6+
<PackageTags>RestApiaEmbedded, Extension, Authorization</PackageTags>
77
</PropertyGroup>
88

99
<ItemGroup>

src/Extensions/RestApia.Extensions.Import.Postman/PostmanImportService.cs

+3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ namespace RestApia.Extensions.Import.Postman;
1313
/// </summary>
1414
public class PostmanImportService : IImportService
1515
{
16+
/// <inheritdoc />
17+
public string DisplayName { get; } = "Postman Collection v2.1 (preview version)";
18+
1619
/// <inheritdoc />
1720
public ImportedFileModel Import(string path)
1821
{

src/Extensions/RestApia.Extensions.Import.Postman/RestApia.Extensions.Import.Postman.csproj

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net8.0</TargetFramework>
5-
<ImplicitUsings>enable</ImplicitUsings>
6-
<Nullable>enable</Nullable>
4+
<Title>Import Postman Collection v2.1</Title>
5+
<Description>Adds a new option to import Postman Collection v2.1, making it easy to bring your collections into RestApia for testing and development.</Description>
6+
<RepositoryUrl>https://github.com/RestApia/RestApia.Shared/tree/main/src/Extensions/RestApia.Extensions.Import.Postman</RepositoryUrl>
7+
<PackageTags>RestApiaEmbedded, Extension, Import</PackageTags>
78
</PropertyGroup>
89

910
<ItemGroup>

src/Playground/RestApia.Experiments.Tests/Auth/AuthBasicExperiments.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public async Task GetValues_Defined_Expected(string userName, string password, s
2525

2626
var result = results.First();
2727
result.Name.Should().Be("Authorization");
28-
result.Type.Should().Be(ValuesContentItemTypeEnum.Header);
28+
result.Type.Should().Be(ValueTypeEnum.Header);
2929
result.Value.Should().Be($"Basic {expected}");
3030
}
3131
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
using FluentAssertions;
2+
using NuGet.Frameworks;
3+
using NuGet.Packaging;
4+
using RestApia.Shared.Common;
5+
using RestApia.Shared.Common.Enums;
6+
using RestApia.Shared.Common.Services;
7+
namespace RestApia.Experiments.Tests.Extensions;
8+
9+
public class ValidateMyExtension
10+
{
11+
[TestCase(@"X:\projects\RestApia3\repos\RestApia.Shared\.local\builds\RestApia.Extensions.Import.Postman\RestApia.Extensions.Import.Postman.*.nupkg")]
12+
[TestCase(@"X:\projects\RestApia3\repos\RestApia.Shared\.local\builds\RestApia.Extensions.Auth.OAuth2\RestApia.Extensions.Auth.OAuth2.*.nupkg")]
13+
[TestCase(@"X:\projects\RestApia3\repos\RestApia.Shared\.local\builds\RestApia.Extensions.Auth.Basic\RestApia.Extensions.Auth.Basic.*.nupkg")]
14+
public void ValidateNugetPackage(string fileSearchPath)
15+
{
16+
var filePath = Directory.GetFiles(Directory.GetParent(fileSearchPath)!.FullName, Path.GetFileName(fileSearchPath)).FirstOrDefault();
17+
filePath.Should().NotBeEmpty();
18+
File.Exists(filePath).Should().BeTrue("Nuget package should exist");
19+
20+
var targetFramework = NuGetFramework.ParseFrameworkName(".NETCoreApp,Version=v8.0", DefaultFrameworkNameProvider.Instance);
21+
using var package = new PackageArchiveReader(filePath);
22+
var packageIdentity = package.GetIdentity();
23+
24+
// check identity
25+
packageIdentity.Id.Should().NotBeEmpty("Package should have an Id");
26+
packageIdentity.Version.Should().NotBeNull("Version should not be null");
27+
Console.WriteLine($"Package Id: {packageIdentity.Id}");
28+
Console.WriteLine($"Version: {packageIdentity.Version}");
29+
30+
// search assembly
31+
var files = package
32+
.GetFiles()
33+
.Where(x =>
34+
x.StartsWith($"lib/{targetFramework.GetShortFolderName()}/", StringComparison.Ordinal) &&
35+
Path.GetFileName(x).Equals($"{packageIdentity.Id}.dll", StringComparison.Ordinal))
36+
.ToList();
37+
38+
files.Should().NotBeEmpty($"Package should contain a '{packageIdentity.Id}.dll' file");
39+
files.Should().HaveCount(1, $"Package should contain only one '{packageIdentity.Id}.dll' file");
40+
Console.WriteLine($"Assembly found: {files[0]}");
41+
42+
// check dependencies, must include shared library
43+
var dependencies = package.GetPackageDependencies().FirstOrDefault(x => NuGetFrameworkUtility.IsCompatibleWithFallbackCheck(targetFramework, x.TargetFramework));
44+
dependencies.Should().NotBeNull("Package should have dependencies");
45+
dependencies!.Packages.Should().NotBeEmpty("Package should have dependencies");
46+
47+
var sharedLibrary = dependencies.Packages.FirstOrDefault(x => x.Id.Equals("RestApia.Shared", StringComparison.Ordinal));
48+
sharedLibrary.Should().NotBeNull("Package should have a dependency on 'RestApia.Shared'");
49+
50+
// check metadata
51+
var owners = package.NuspecReader.GetOwners().IfEmpty(package.NuspecReader.GetAuthors());
52+
var description = package.NuspecReader.GetDescription();
53+
var projectUrl = package.NuspecReader.GetProjectUrl();
54+
55+
owners.Should().NotBeEmpty("Package should have owners");
56+
description.Should().NotBeEmpty("Package should have a description");
57+
Console.WriteLine($"Description: {description}");
58+
Console.WriteLine($"Owners: {owners}");
59+
60+
if (owners.Split(',').Select(x => x.Trim()).Any(x => x.Equals("RestApia", StringComparison.OrdinalIgnoreCase)))
61+
Console.WriteLine("[WARN] Package owners should not include 'RestApia'");
62+
63+
if (projectUrl.IsEmpty()) Console.WriteLine("[WARN] It is recommended to have a project URL in the package metadata");
64+
else Console.WriteLine($"Project URL: {projectUrl}");
65+
66+
// check requirements
67+
var requirements = PackageReader.RequirementsRead(package.NuspecReader.GetReleaseNotes());
68+
if (!requirements.TryGetValue(PackageRequirement.MinAppVersion, out var requirement)) Console.WriteLine("[WARN] It is recommended to have a 'MinAppVersion' requirement");
69+
else Console.WriteLine($"Minimum application version: {requirement}");
70+
}
71+
}

src/Playground/RestApia.Experiments.Tests/RestApia.Experiments.Tests.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<PackageReference Include="coverlet.collector" Version="6.0.0"/>
1414
<PackageReference Include="FluentAssertions" Version="6.12.1" />
1515
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0"/>
16+
<PackageReference Include="NuGet.Protocol" Version="6.11.1" />
1617
<PackageReference Include="NUnit" Version="3.14.0"/>
1718
<PackageReference Include="NUnit.Analyzers" Version="3.9.0"/>
1819
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0"/>

src/RestApia.Shared/Common/Attributes/ValuesContentItemAttribute.cs renamed to src/RestApia.Shared/Common/Attributes/ContentValueAttribute.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ namespace RestApia.Shared.Common.Attributes;
33

44
[AttributeUsage(AttributeTargets.Property)]
55
[SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Global")]
6-
public class ValuesContentItemAttribute(string name, string description) : Attribute
6+
public class ContentValueAttribute(string name, string description) : Attribute
77
{
88
public string Name { get; } = name;
99
public string Description { get; } = description;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace RestApia.Shared.Common.Enums;
2+
3+
public enum PackageRequirement
4+
{
5+
MinAppVersion,
6+
}

src/RestApia.Shared/Common/Enums/ValuesContentItemTypeEnum.cs renamed to src/RestApia.Shared/Common/Enums/ValueTypeEnum.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace RestApia.Shared.Common.Enums;
22

3-
public enum ValuesContentItemTypeEnum
3+
public enum ValueTypeEnum
44
{
55
Variable,
66
Header,

0 commit comments

Comments
 (0)