Enhance async capabilities and refactor project structure

Updated project files for `Beam.Dynamic`, `Beam.Exports`, `Beam.Puppeteer`, `Beam.Temporary.Cli`, and `Beam` to include new XML headers, reorganize property groups, and add project references.

Modified `PuppetedUnitDownloader` to support additional parameters for async transformers. Changed return types in `CommonTransformers` to `AsyncTransformer` for asynchronous processing.

Significant refactoring in `DownloadBuilder`, `DownloadContext`, and `DownloadContextBuilder` to introduce generic parameters and improve context management. Updated `SequentialDownloader`, `SequentialFragmentDownloader`, and `UnitDownloader` to accommodate new async transformer types.

Introduced `TypeExtensions` for unique type name generation and added `UnitFragmentDownloaderBinary` for handling binary downloads. Updated solution file to include the new `aeqw89.Beam` project, ensuring proper references across the solution.

These changes enhance the asynchronous capabilities of the Beam library, improve type safety, and streamline the downloading process.
This commit is contained in:
qwsdcvghyu89
2025-06-23 20:30:09 +03:00
parent 482a46b568
commit 056e426572
23 changed files with 531 additions and 262 deletions
+5
View File
@@ -0,0 +1,5 @@
namespace aeqw89.Beam {
public class Class1 {
}
}
+121
View File
@@ -0,0 +1,121 @@
<?xml version='1.0' encoding='utf-8'?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Title>Beam</Title>
<Authors>aeqw89</Authors>
<Company>qwsdcvghyu</Company>
<Version>1.2.4</Version>
<Description>A library for downloading internet resources</Description>
<PackageProjectUrl>https://github.com/qwsdcvghyu89/Beam</PackageProjectUrl>
<RepositoryUrl>https://github.com/qwsdcvghyu89/Beam</RepositoryUrl>
<PackageId>aeqw89.Beam</PackageId>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Beam.Dynamic\Beam.Dynamic.csproj">
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
<ProjectReference Include="..\Beam.Exports\Beam.Exports.csproj">
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
<ProjectReference Include="..\Beam.Puppeteer\Beam.Puppeteer.csproj">
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
<ProjectReference Include="..\Beam.Temporary.Cli\Beam.Temporary.Cli.csproj">
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
<ProjectReference Include="..\Beam\Beam.csproj">
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
<PackageReference Include="aeqw89.DataKeys" Version="1.0.1">
<PrivateAssets />
<Transitive>true</Transitive>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Content Include="..\Beam\bin\$(Configuration)\$(TargetFramework)\Beam.dll">
<PackagePath>lib\$(TargetFramework)\</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="..\Beam.Dynamic\bin\$(Configuration)\$(TargetFramework)\Beam.Dynamic.dll">
<PackagePath>lib\$(TargetFramework)\</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="..\Beam.Exports\bin\$(Configuration)\$(TargetFramework)\Beam.Exports.dll">
<PackagePath>lib\$(TargetFramework)\</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="..\Beam.Puppeteer\bin\$(Configuration)\$(TargetFramework)\Beam.Puppeteer.dll">
<PackagePath>lib\$(TargetFramework)\</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="..\Beam.Temporary.Cli\bin\$(Configuration)\$(TargetFramework)\Beam.Temporary.Cli.dll">
<PackagePath>lib\$(TargetFramework)\</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="..\Beam.Temporary.Cli\bin\$(Configuration)\$(TargetFramework)\HtmlAgilityPack.dll">
<PackagePath>lib\$(TargetFramework)\</PackagePath>
<Pack>true</Pack>
</Content>
<PackageReference Include="HtmlAgilityPack" Version="1.11.72">
<PrivateAssets />
<Transitive>true</Transitive>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.1">
<PrivateAssets />
<Transitive>true</Transitive>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Linq.Async" Version="6.0.1">
<PrivateAssets />
<Transitive>true</Transitive>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="aeqw89.PersistentData" Version="1.0.0">
<PrivateAssets />
<Transitive>true</Transitive>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Recognizers.Text.Number" Version="1.8.13">
<PrivateAssets />
<Transitive>true</Transitive>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Playwright" Version="1.52.0">
<PrivateAssets />
<Transitive>true</Transitive>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.1">
<PrivateAssets />
<Transitive>true</Transitive>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.1">
<PrivateAssets />
<Transitive>true</Transitive>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="OpenAI" Version="2.1.0">
<PrivateAssets />
<Transitive>true</Transitive>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Spectre.Console" Version="0.49.2-preview.0.70">
<PrivateAssets />
<Transitive>true</Transitive>
</PackageReference>
</ItemGroup>
</Project>