Browse Source

Merge branch 'dev' into dynamic-claims-middleware

pull/18064/head
maliming 3 years ago
parent
commit
1c25e5cdb9
  1. 2
      .github/workflows/build-and-test.yml
  2. 205
      Directory.Packages.props
  3. 4
      docs/en/Community-Articles/2023-10-23-NET-8-Feature-containers/POST.md
  4. 2
      docs/en/Community-Articles/2023-11-05-EF-Core-8-Complex-Types/POST.MD
  5. 2
      docs/en/Community-Articles/2023-11-06-EF-Core_Hierarchy-Id/POST.md
  6. 5
      docs/en/Community-Articles/2023-11-97-AOT-Compilation/Post.md
  7. 56
      docs/en/Migration-Guides/Abp-8_0.md
  8. 1
      framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj
  9. 3
      framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj
  10. 2
      global.json
  11. 1
      npm/ng-packs/.gitignore
  12. 3
      npm/ng-packs/.prettierignore
  13. 2
      npm/ng-packs/apps/dev-app-e2e/project.json
  14. 11
      npm/ng-packs/apps/dev-app/project.json
  15. 152
      npm/ng-packs/migrations.json
  16. 38
      npm/ng-packs/nx.json
  17. 93
      npm/ng-packs/package.json
  18. 5
      npm/ng-packs/packages/account-core/project.json
  19. 5
      npm/ng-packs/packages/account/project.json
  20. 7
      npm/ng-packs/packages/components/extensible/src/lib/components/date-time-picker/extensible-date-time-picker.component.ts
  21. 2
      npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.html
  22. 133
      npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts
  23. 123
      npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.ts
  24. 51
      npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts
  25. 5
      npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.ts
  26. 5
      npm/ng-packs/packages/components/extensible/src/lib/components/page-toolbar/page-toolbar.component.ts
  27. 1
      npm/ng-packs/packages/components/extensible/src/lib/directives/prop-data.directive.ts
  28. 35
      npm/ng-packs/packages/components/extensible/src/lib/extensible.module.ts
  29. 1
      npm/ng-packs/packages/components/extensible/src/lib/pipes/create-injector.pipe.ts
  30. 77
      npm/ng-packs/packages/components/extensible/src/lib/services/extensible-form-prop.service.ts
  31. 5
      npm/ng-packs/packages/components/page/src/page.module.ts
  32. 5
      npm/ng-packs/packages/components/project.json
  33. 5
      npm/ng-packs/packages/core/project.json
  34. 8
      npm/ng-packs/packages/core/src/lib/abstracts/ng-model.component.ts
  35. 5
      npm/ng-packs/packages/feature-management/project.json
  36. 11
      npm/ng-packs/packages/generators/project.json
  37. 5
      npm/ng-packs/packages/identity/project.json
  38. 5
      npm/ng-packs/packages/oauth/project.json
  39. 5
      npm/ng-packs/packages/permission-management/project.json
  40. 5
      npm/ng-packs/packages/schematics/project.json
  41. 5
      npm/ng-packs/packages/setting-management/project.json
  42. 5
      npm/ng-packs/packages/tenant-management/project.json
  43. 5
      npm/ng-packs/packages/theme-basic/project.json
  44. 5
      npm/ng-packs/packages/theme-shared/project.json
  45. 4
      npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts
  46. 4
      npm/ng-packs/packages/theme-shared/src/lib/components/form-input/form-input.component.ts
  47. 11
      npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts
  48. 7
      npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts
  49. 1
      npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-default.directive.ts
  50. 1
      npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts
  51. 11
      npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts
  52. 8
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj
  53. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231026071039_Initial.Designer.cs
  54. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs
  55. 10
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj
  56. 8
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj
  57. 6
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj
  58. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20231026071041_Initial.Designer.cs
  59. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/MyProjectNameDbContextModelSnapshot.cs
  60. 8
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj
  61. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared.csproj
  62. 4
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj
  63. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20231026071035_Initial.Designer.cs
  64. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/MyProjectNameDbContextModelSnapshot.cs
  65. 6
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj
  66. 4
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj
  67. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20231026071042_Initial.Designer.cs
  68. 2
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs
  69. 6
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj
  70. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj
  71. 8
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj
  72. 6
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj
  73. 8
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj
  74. 41
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/global.css
  75. 40
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/global.js
  76. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/index.html
  77. 8
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj
  78. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj
  79. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20231026070402_Initial.Designer.cs
  80. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs
  81. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj
  82. 6
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj
  83. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj
  84. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
  85. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj
  86. 4
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj
  87. 4
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj
  88. 4
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj
  89. 4
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj
  90. 4
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj
  91. 10
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj
  92. 6
      templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj
  93. 10
      templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj
  94. 2
      templates/maui/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj
  95. 2
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20231026071058_Initial.Designer.cs
  96. 2
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs
  97. 6
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj
  98. 8
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj
  99. 15
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/wwwroot/global.css
  100. 2
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/wwwroot/global.js

2
.github/workflows/build-and-test.yml

@ -51,7 +51,7 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: actions/setup-dotnet@master - uses: actions/setup-dotnet@master
with: with:
dotnet-version: 8.0.100-rc.2.23502.2 dotnet-version: 8.0.100
- name: chown - name: chown
run: | run: |

205
Directory.Packages.props

@ -4,104 +4,105 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageVersion Include="AlibabaCloud.SDK.Dysmsapi20170525" Version="2.0.24" /> <PackageVersion Include="AlibabaCloud.SDK.Dysmsapi20170525" Version="2.0.24" />
<PackageVersion Include="aliyun-net-sdk-sts" Version="3.1.1" /> <PackageVersion Include="aliyun-net-sdk-sts" Version="3.1.2" />
<PackageVersion Include="Aliyun.OSS.SDK.NetCore" Version="2.13.0" /> <PackageVersion Include="Aliyun.OSS.SDK.NetCore" Version="2.13.0" />
<PackageVersion Include="AsyncKeyedLock" Version="6.2.2" /> <PackageVersion Include="AsyncKeyedLock" Version="6.2.2" />
<PackageVersion Include="Autofac" Version="7.1.0" /> <PackageVersion Include="Autofac" Version="7.1.0" />
<PackageVersion Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" /> <PackageVersion Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
<PackageVersion Include="Autofac.Extras.DynamicProxy" Version="7.1.0" /> <PackageVersion Include="Autofac.Extras.DynamicProxy" Version="7.1.0" />
<PackageVersion Include="AutoMapper" Version="12.0.1" /> <PackageVersion Include="AutoMapper" Version="12.0.1" />
<PackageVersion Include="AWSSDK.S3" Version="3.7.205.9" /> <PackageVersion Include="AWSSDK.S3" Version="3.7.300.2" />
<PackageVersion Include="AWSSDK.SecurityToken" Version="3.7.202.4" /> <PackageVersion Include="AWSSDK.SecurityToken" Version="3.7.300.2" />
<PackageVersion Include="Azure.Messaging.ServiceBus" Version="7.8.1" /> <PackageVersion Include="Azure.Messaging.ServiceBus" Version="7.17.0" />
<PackageVersion Include="Azure.Storage.Blobs" Version="12.18.0" /> <PackageVersion Include="Azure.Storage.Blobs" Version="12.19.1" />
<PackageVersion Include="Blazorise" Version="1.3.1" /> <PackageVersion Include="Blazorise" Version="1.3.2" />
<PackageVersion Include="Blazorise.Components" Version="1.3.1" /> <PackageVersion Include="Blazorise.Components" Version="1.3.2" />
<PackageVersion Include="Blazorise.DataGrid" Version="1.3.1" /> <PackageVersion Include="Blazorise.DataGrid" Version="1.3.2" />
<PackageVersion Include="Blazorise.Snackbar" Version="1.3.1" /> <PackageVersion Include="Blazorise.Snackbar" Version="1.3.2" />
<PackageVersion Include="Castle.Core" Version="5.1.1" /> <PackageVersion Include="Castle.Core" Version="5.1.1" />
<PackageVersion Include="Castle.Core.AsyncInterceptor" Version="2.1.0" /> <PackageVersion Include="Castle.Core.AsyncInterceptor" Version="2.1.0" />
<PackageVersion Include="CommonMark.NET" Version="0.15.1" /> <PackageVersion Include="CommonMark.NET" Version="0.15.1" />
<PackageVersion Include="Confluent.Kafka" Version="2.2.0" /> <PackageVersion Include="Confluent.Kafka" Version="2.3.0" />
<PackageVersion Include="Dapper" Version="2.1.4" /> <PackageVersion Include="Dapper" Version="2.1.21" />
<PackageVersion Include="Dapr.AspNetCore" Version="1.9.0" /> <PackageVersion Include="Dapr.AspNetCore" Version="1.12.0" />
<PackageVersion Include="Dapr.Client" Version="1.11.0" /> <PackageVersion Include="Dapr.Client" Version="1.12.0" />
<PackageVersion Include="Devart.Data.Oracle.EFCore" Version="10.1.134.7" /> <PackageVersion Include="Devart.Data.Oracle.EFCore" Version="10.1.151.7" />
<PackageVersion Include="DistributedLock.Core" Version="1.0.5" /> <PackageVersion Include="DistributedLock.Core" Version="1.0.5" />
<PackageVersion Include="DistributedLock.Redis" Version="1.0.2" /> <PackageVersion Include="DistributedLock.Redis" Version="1.0.2" />
<PackageVersion Include="EphemeralMongo.Core" Version="1.1.3" /> <PackageVersion Include="EphemeralMongo.Core" Version="1.1.3" />
<PackageVersion Include="EphemeralMongo6.runtime.linux-x64" Version="1.1.3" /> <PackageVersion Include="EphemeralMongo6.runtime.linux-x64" Version="1.1.3" />
<PackageVersion Include="EphemeralMongo6.runtime.osx-x64" Version="1.1.3" /> <PackageVersion Include="EphemeralMongo6.runtime.osx-x64" Version="1.1.3" />
<PackageVersion Include="EphemeralMongo6.runtime.win-x64" Version="1.1.3" /> <PackageVersion Include="EphemeralMongo6.runtime.win-x64" Version="1.1.3" />
<PackageVersion Include="FluentValidation" Version="11.7.1" /> <PackageVersion Include="FluentValidation" Version="11.8.0" />
<PackageVersion Include="Hangfire.AspNetCore" Version="1.8.5" /> <PackageVersion Include="Hangfire.AspNetCore" Version="1.8.6" />
<PackageVersion Include="Hangfire.SqlServer" Version="1.8.5" /> <PackageVersion Include="Hangfire.SqlServer" Version="1.8.6" />
<PackageVersion Include="HtmlSanitizer" Version="8.0.723" /> <PackageVersion Include="HtmlSanitizer" Version="8.0.746" />
<PackageVersion Include="IdentityModel" Version="6.2.0" /> <PackageVersion Include="IdentityModel" Version="6.2.0" />
<PackageVersion Include="IdentityServer4" Version="4.1.2" /> <PackageVersion Include="IdentityServer4" Version="4.1.2" />
<PackageVersion Include="IdentityServer4.AspNetIdentity" Version="4.1.2" /> <PackageVersion Include="IdentityServer4.AspNetIdentity" Version="4.1.2" />
<PackageVersion Include="JetBrains.Annotations" Version="2023.2.0" /> <PackageVersion Include="JetBrains.Annotations" Version="2023.3.0" />
<PackageVersion Include="LdapForNet" Version="2.7.15" /> <PackageVersion Include="LdapForNet" Version="2.7.15" />
<PackageVersion Include="LibGit2Sharp" Version="0.27.2" /> <PackageVersion Include="LibGit2Sharp" Version="0.28.0" />
<PackageVersion Include="Magick.NET-Q16-AnyCPU" Version="13.3.0" /> <PackageVersion Include="Magick.NET-Q16-AnyCPU" Version="13.4.0" />
<PackageVersion Include="MailKit" Version="4.2.0" /> <PackageVersion Include="MailKit" Version="4.3.0" />
<PackageVersion Include="Markdig.Signed" Version="0.33.0" /> <PackageVersion Include="Markdig.Signed" Version="0.33.0" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Authorization" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Authorization" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Components" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Components" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Components.Authorization" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Components.Authorization" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Components.Web" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Components.Web" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.Authentication" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.Authentication" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="2.2.0" /> <PackageVersion Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="2.2.0" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Versioning" Version="5.1.0" /> <PackageVersion Include="Microsoft.AspNetCore.Mvc.Versioning" Version="5.1.0" />
<PackageVersion Include="Microsoft.AspNetCore.Razor.Language" Version="6.0.22" /> <PackageVersion Include="Microsoft.AspNetCore.Razor.Language" Version="6.0.25" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.WebUtilities" Version="2.2.0" /> <PackageVersion Include="Microsoft.AspNetCore.WebUtilities" Version="8.0.0" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.5.0" /> <PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.5.0" />
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
<PackageVersion Include="Microsoft.Data.Sqlite" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Data.Sqlite" Version="8.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="8.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Composite" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.FileProviders.Composite" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Physical" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.FileProviders.Physical" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Localization" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Localization" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> <PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0" />
<PackageVersion Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.0-rc.2" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageVersion Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.0-rc.2.23509.1" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="1.1.1" /> <PackageVersion Include="Microsoft.SourceLink.GitHub" Version="1.1.1" />
<PackageVersion Include="Minio" Version="6.0.0" /> <PackageVersion Include="Minio" Version="6.0.1" />
<PackageVersion Include="MongoDB.Driver" Version="2.21.0" /> <PackageVersion Include="MongoDB.Driver" Version="2.22.0" />
<PackageVersion Include="NEST" Version="7.17.5" /> <PackageVersion Include="NEST" Version="7.17.5" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" /> <PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="Nito.AsyncEx.Context" Version="5.1.2" /> <PackageVersion Include="Nito.AsyncEx.Context" Version="5.1.2" />
@ -111,60 +112,60 @@
<PackageVersion Include="NuGet.Versioning" Version="6.7.0" /> <PackageVersion Include="NuGet.Versioning" Version="6.7.0" />
<PackageVersion Include="NUglify" Version="1.21.0" /> <PackageVersion Include="NUglify" Version="1.21.0" />
<PackageVersion Include="Nullable" Version="1.3.1" /> <PackageVersion Include="Nullable" Version="1.3.1" />
<PackageVersion Include="Octokit" Version="8.0.1" /> <PackageVersion Include="Octokit" Version="9.0.0" />
<PackageVersion Include="OpenIddict.Abstractions" Version="4.8.0" /> <PackageVersion Include="OpenIddict.Abstractions" Version="4.10.0" />
<PackageVersion Include="OpenIddict.Core" Version="4.8.0" /> <PackageVersion Include="OpenIddict.Core" Version="4.10.0" />
<PackageVersion Include="OpenIddict.Server.AspNetCore" Version="4.8.0" /> <PackageVersion Include="OpenIddict.Server.AspNetCore" Version="4.10.0" />
<PackageVersion Include="OpenIddict.Validation.AspNetCore" Version="4.8.0" /> <PackageVersion Include="OpenIddict.Validation.AspNetCore" Version="4.10.0" />
<PackageVersion Include="OpenIddict.Validation.ServerIntegration" Version="4.8.0" /> <PackageVersion Include="OpenIddict.Validation.ServerIntegration" Version="4.10.0" />
<PackageVersion Include="Oracle.EntityFrameworkCore" Version="7.21.8" /> <PackageVersion Include="Oracle.EntityFrameworkCore" Version="7.21.12" />
<PackageVersion Include="Polly" Version="8.0.0" /> <PackageVersion Include="Polly" Version="8.2.0" />
<PackageVersion Include="Polly.Extensions.Http" Version="3.0.0" /> <PackageVersion Include="Polly.Extensions.Http" Version="3.0.0" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.0-beta.1" /> <PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.0-beta.1" />
<PackageVersion Include="Quartz" Version="3.7.0" /> <PackageVersion Include="Quartz" Version="3.7.0" />
<PackageVersion Include="Quartz.Extensions.DependencyInjection" Version="3.7.0" /> <PackageVersion Include="Quartz.Extensions.DependencyInjection" Version="3.7.0" />
<PackageVersion Include="Quartz.Plugins.TimeZoneConverter" Version="3.7.0" /> <PackageVersion Include="Quartz.Plugins.TimeZoneConverter" Version="3.7.0" />
<PackageVersion Include="Quartz.Serialization.Json" Version="3.3.3" /> <PackageVersion Include="Quartz.Serialization.Json" Version="3.7.0" />
<PackageVersion Include="RabbitMQ.Client" Version="6.5.0" /> <PackageVersion Include="RabbitMQ.Client" Version="6.6.0" />
<PackageVersion Include="Rebus" Version="7.2.1" /> <PackageVersion Include="Rebus" Version="7.2.1" />
<PackageVersion Include="Rebus.ServiceProvider" Version="9.1.0" /> <PackageVersion Include="Rebus.ServiceProvider" Version="9.1.0" />
<PackageVersion Include="Scriban" Version="5.9.0" /> <PackageVersion Include="Scriban" Version="5.9.0" />
<PackageVersion Include="Serilog" Version="2.11.0" /> <PackageVersion Include="Serilog" Version="3.1.1" />
<PackageVersion Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageVersion Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageVersion Include="Serilog.Extensions.Hosting" Version="7.0.0" /> <PackageVersion Include="Serilog.Extensions.Hosting" Version="8.0.0" />
<PackageVersion Include="Serilog.Extensions.Logging" Version="7.0.0" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="8.0.0" />
<PackageVersion Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageVersion Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="4.1.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="5.0.0" />
<PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" /> <PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageVersion Include="SharpZipLib" Version="1.4.2" /> <PackageVersion Include="SharpZipLib" Version="1.4.2" />
<PackageVersion Include="Shouldly" Version="4.0.3" /> <PackageVersion Include="Shouldly" Version="4.2.1" />
<PackageVersion Include="SixLabors.ImageSharp" Version="3.0.2" /> <PackageVersion Include="SixLabors.ImageSharp" Version="3.0.2" />
<PackageVersion Include="SixLabors.ImageSharp.Drawing" Version="2.0.0" /> <PackageVersion Include="SixLabors.ImageSharp.Drawing" Version="2.0.1" />
<PackageVersion Include="SkiaSharp" Version="2.88.6" /> <PackageVersion Include="SkiaSharp" Version="2.88.6" />
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.6" /> <PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.6" />
<PackageVersion Include="SkiaSharp.NativeAssets.macOS" Version="2.88.6" /> <PackageVersion Include="SkiaSharp.NativeAssets.macOS" Version="2.88.6" />
<PackageVersion Include="Slugify.Core" Version="4.0.1" /> <PackageVersion Include="Slugify.Core" Version="4.0.1" />
<PackageVersion Include="Spectre.Console" Version="0.47.0" /> <PackageVersion Include="Spectre.Console" Version="0.47.0" />
<PackageVersion Include="StackExchange.Redis" Version="2.6.122" /> <PackageVersion Include="StackExchange.Redis" Version="2.7.4" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" /> <PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" />
<PackageVersion Include="System.Collections.Immutable" Version="8.0.0-rc.2" /> <PackageVersion Include="System.Collections.Immutable" Version="8.0.0" />
<PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" /> <PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageVersion Include="System.Linq.Async" Version="6.0.1" /> <PackageVersion Include="System.Linq.Async" Version="6.0.1" />
<PackageVersion Include="System.Linq.Dynamic.Core" Version="1.3.5" /> <PackageVersion Include="System.Linq.Dynamic.Core" Version="1.3.5" />
<PackageVersion Include="System.Linq.Queryable" Version="4.3.0" /> <PackageVersion Include="System.Linq.Queryable" Version="4.3.0" />
<PackageVersion Include="System.Runtime.Loader" Version="4.3.0" /> <PackageVersion Include="System.Runtime.Loader" Version="4.3.0" />
<PackageVersion Include="System.Security.Permissions" Version="8.0.0-rc.2" /> <PackageVersion Include="System.Security.Permissions" Version="8.0.0" />
<PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0" /> <PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0" />
<PackageVersion Include="System.Text.Encoding.CodePages" Version="8.0.0-rc.2" /> <PackageVersion Include="System.Text.Encoding.CodePages" Version="8.0.0" />
<PackageVersion Include="System.Text.Encodings.Web" Version="8.0.0-rc.2" /> <PackageVersion Include="System.Text.Encodings.Web" Version="8.0.0" />
<PackageVersion Include="System.Text.Json" Version="8.0.0-rc.2" /> <PackageVersion Include="System.Text.Json" Version="8.0.0" />
<PackageVersion Include="TimeZoneConverter" Version="6.1.0" /> <PackageVersion Include="TimeZoneConverter" Version="6.1.0" />
<PackageVersion Include="Unidecode.NET" Version="2.1.0" /> <PackageVersion Include="Unidecode.NET" Version="2.1.0" />
<PackageVersion Include="xunit" Version="2.5.1" /> <PackageVersion Include="xunit" Version="2.6.1" />
<PackageVersion Include="xunit.extensibility.execution" Version="2.5.1" /> <PackageVersion Include="xunit.extensibility.execution" Version="2.6.1" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.1" /> <PackageVersion Include="xunit.runner.visualstudio" Version="2.5.3" />
<PackageVersion Include="coverlet.collector" Version="3.1.2" /> <PackageVersion Include="coverlet.collector" Version="6.0.0" />
<PackageVersion Include="ConfigureAwait.Fody" Version="3.3.2"/> <PackageVersion Include="ConfigureAwait.Fody" Version="3.3.2" />
<PackageVersion Include="Fody" Version="6.8.0" /> <PackageVersion Include="Fody" Version="6.8.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

4
docs/en/Community-Articles/2023-10-23-NET-8-Feature-containers/POST.md

@ -17,8 +17,8 @@ It's important to note that this change only affects the default port used when
If you want your application to continue using port 80, you can still specify it during the application launch or configure it in the application settings. If you want your application to continue using port 80, you can still specify it during the application launch or configure it in the application settings.
* Recommended: Explicitly set the `ASPNETCORE_HTTP_PORTS`, `ASPNETCORE_HTTPS_PORTS``, and `ASPNETCORE_URLS` environment variables to the desired port. Example: `docker run --rm -it -p 9999:80 -e ASPNETCORE_HTTP_PORTS=80 <my-app>`` * Recommended: Explicitly set the `ASPNETCORE_HTTP_PORTS`, `ASPNETCORE_HTTPS_PORTS`, and `ASPNETCORE_URLS` environment variables to the desired port. Example: `docker run --rm -it -p 9999:80 -e ASPNETCORE_HTTP_PORTS=80 <my-app>`
* Update existing commands and configuration that rely on the expected default port of port 80 to reference port 8080 instead. Example: `docker run --rm -it -p 9999:8080 <my-app>`` * Update existing commands and configuration that rely on the expected default port of port 80 to reference port 8080 instead. Example: `docker run --rm -it -p 9999:8080 <my-app>`
> The `dockerfile` of ABP templates has been updated to use port `80`. > The `dockerfile` of ABP templates has been updated to use port `80`.

2
docs/en/Community-Articles/2023-11-05-EF-Core-8-Complex-Types/POST.MD

@ -180,7 +180,7 @@ For more details and examples, see the Microsoft's document in the *References*
You can find the sample project here: You can find the sample project here:
https://github.com/hikalkan/samples/tree/master/EfCoreComplexTypeDemo [https://github.com/hikalkan/samples/tree/master/EfCoreComplexTypeDemo](https://github.com/hikalkan/samples/tree/master/EfCoreComplexTypeDemo)
## References ## References

2
docs/en/Community-Articles/2023-11-06-EF-Core_Hierarchy-Id/POST.md

@ -76,4 +76,4 @@ await context.SaveChangesAsync();
For more information about hierarchy id, see the following resource: For more information about hierarchy id, see the following resource:
https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew#hierarchyid-in-net-and-ef-core - [https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew#hierarchyid-in-net-and-ef-core](https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew#hierarchyid-in-net-and-ef-core)

5
docs/en/Community-Articles/2023-11-97-AOT-Compilation/Post.md

@ -39,7 +39,7 @@ I have created a simple console application to test the Native AOT Compilation.
| | Size | Speed | | | Size | Speed |
| --- | --- | --- | | --- | --- | --- |
| .NET 8 <br/>_(Self-Contained, Single File)_ | 65938 kb | 00.0051806 ~5ms | | .NET 8 <br/>_(Self-Contained, Single File)_ | 65938 kb | 00.0051806 ~5ms |
| .NET 7 AOT (default) | 4452 kb | 00.0029823 ~2ms | | .NET 7 AOT (default) | 4452 kb | 00.0029823 ~2ms |
| .NET 8 AOT (default) | 1242 kb | 00.0028638 ~2ms | | .NET 8 AOT (default) | 1242 kb | 00.0028638 ~2ms |
@ -65,11 +65,8 @@ Always consider the specific needs and constraints of your project before decidi
Native AOT Compilation is a great feature that improves the performance of .NET applications. It's still in early-stages and not all libraries support it yet. But it's a great beginning for the future of .NET 🚀 Native AOT Compilation is a great feature that improves the performance of .NET applications. It's still in early-stages and not all libraries support it yet. But it's a great beginning for the future of .NET 🚀
## Links ## Links
- Native AOT deployment overview - .NET | Microsoft Learn. https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/. - Native AOT deployment overview - .NET | Microsoft Learn. https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/.
-
- Optimize AOT deployments https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/optimizing - Optimize AOT deployments https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/optimizing
-
- What's new in .NET 8 | Microsoft Learn. https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8. - What's new in .NET 8 | Microsoft Learn. https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8.

56
docs/en/Migration-Guides/Abp-8_0.md

@ -11,58 +11,58 @@ The following NuGet libraries have been upgraded:
| All Microsoft packages | 7.x | 8.x | | All Microsoft packages | 7.x | 8.x |
| Microsoft.CodeAnalysis | 4.2.0 | 4.5.0 | | Microsoft.CodeAnalysis | 4.2.0 | 4.5.0 |
| NUglify | 1.20.0 | 1.21.0 | | NUglify | 1.20.0 | 1.21.0 |
| Polly | 7.2.3 | 8.0.0 | | Polly | 7.2.3 | 8.2.0 |
| aliyun-net-sdk-sts | 3.1.0 | 3.1.1 | | aliyun-net-sdk-sts | 3.1.0 | 3.1.2 |
| Autofac | 7.0.0 | 7.1.0 | | Autofac | 7.0.0 | 7.1.0 |
| Autofac.Extras.DynamicProxy | 6.0.1 | 7.1.0 | | Autofac.Extras.DynamicProxy | 6.0.1 | 7.1.0 |
| AutoMapper | 12.0.0 | 12.0.1 | | AutoMapper | 12.0.0 | 12.0.1 |
| AsyncKeyedLock | 6.2.1 | 6.2.2 | | AsyncKeyedLock | 6.2.1 | 6.2.2 |
| AWSSDK.S3 | 3.7.9.2 | 3.7.205.9 | | AWSSDK.S3 | 3.7.9.2 | 3.7.300.2 |
| AWSSDK.SecurityToken | 3.7.1.151 | 3.7.202.4 | | AWSSDK.SecurityToken | 3.7.1.151 | 3.7.300.2 |
| Azure.Storage.Blobs | 12.15.0 | 12.18.0 | | Azure.Storage.Blobs | 12.15.0 | 12.19.1 |
| ConfigureAwait.Fody | 3.3.1 | 3.3.2 | | ConfigureAwait.Fody | 3.3.1 | 3.3.2 |
| Confluent.Kafka | 1.8.2 | 2.2.0 | | Confluent.Kafka | 1.8.2 | 2.3.0 |
| Dapper | 2.0.123 | 2.1.4 | | Dapper | 2.0.123 | 2.1.21 |
| Dapr.Client | 1.11.0 | 1.9.0 | | Dapr.Client | 1.11.0 | 1.12.0 |
| DistributedLock.Core | 1.0.4 | 1.0.5 | | DistributedLock.Core | 1.0.4 | 1.0.5 |
| DistributedLock.Redis | 1.0.1 | 1.0.2 | | DistributedLock.Redis | 1.0.1 | 1.0.2 |
| EphemeralMongo.Core | 1.1.0 | 1.1.3 | | EphemeralMongo.Core | 1.1.0 | 1.1.3 |
| EphemeralMongo6.runtime.linux-x64 | 1.1.0 | 1.1.3 | | EphemeralMongo6.runtime.linux-x64 | 1.1.0 | 1.1.3 |
| EphemeralMongo6.runtime.osx-x64 | 1.1.0 | 1.1.3 | | EphemeralMongo6.runtime.osx-x64 | 1.1.0 | 1.1.3 |
| EphemeralMongo6.runtime.win-x64 | 1.1.0 | 1.1.3 | | EphemeralMongo6.runtime.win-x64 | 1.1.0 | 1.1.3 |
| FluentValidation | 11.0.1 | 11.7.1 | | FluentValidation | 11.0.1 | 11.8.0 |
| Fody | 6.6.1 | 6.8.0 | | Fody | 6.6.1 | 6.8.0 |
| Hangfire.AspNetCore | 1.8.2 | 1.8.5 | | Hangfire.AspNetCore | 1.8.2 | 1.8.6 |
| Hangfire.SqlServer | 1.8.2 | 1.8.5 | | Hangfire.SqlServer | 1.8.2 | 1.8.6 |
| HtmlSanitizer | 5.0.331 | 8.0.723 | | HtmlSanitizer | 5.0.331 | 8.0.746 |
| IdentityModel | 6.0.0 | 6.2.0 | | IdentityModel | 6.0.0 | 6.2.0 |
| IdentityServer4.AspNetIdentity | 4.1.1 | 4.1.2 | | IdentityServer4.AspNetIdentity | 4.1.1 | 4.1.2 |
| JetBrains.Annotations | 2022.1.0 | 2023.2.0 | | JetBrains.Annotations | 2022.1.0 | 2023.3.0 |
| LibGit2Sharp | 0.26.2 | 0.27.2 | | LibGit2Sharp | 0.26.2 | 0.28.0 |
| Magick.NET-Q16-AnyCPU | 13.2.0 | 13.3.0 | | Magick.NET-Q16-AnyCPU | 13.2.0 | 13.4.0 |
| MailKit | 3.2.0 | 4.2.0 | | MailKit | 3.2.0 | 4.3.0 |
| Markdig.Signed | 0.26.0 | 0.33.0 | | Markdig.Signed | 0.26.0 | 0.33.0 |
| Microsoft.AspNetCore.Mvc.Versioning | 5.0.0 | 5.1.0 | | Microsoft.AspNetCore.Mvc.Versioning | 5.0.0 | 5.1.0 |
| Microsoft.AspNetCore.Razor.Language | 6.0.8 | 6.0.22 | | Microsoft.AspNetCore.Razor.Language | 6.0.8 | 6.0.25 |
| Microsoft.NET.Test.Sdk | 17.2.0 | 17.7.2 | | Microsoft.NET.Test.Sdk | 17.2.0 | 17.8.0 |
| Minio | 4.0.6 | 6.0.0 | | Minio | 4.0.6 | 6.0.1 |
| MongoDB.Driver | 2.19.1 | 2.21.0 | | MongoDB.Driver | 2.19.1 | 2.22.0 |
| NEST | 7.14.1 | 7.17.5 | | NEST | 7.14.1 | 7.17.5 |
| Newtonsoft.Json | 13.0.1 | 13.0.3 | | Newtonsoft.Json | 13.0.1 | 13.0.3 |
| NSubstitute | 4.3.0 | 5.1.0 | | NSubstitute | 4.3.0 | 5.1.0 |
| NSubstitute.Analyzers.CSharp | 1.0.15 | 1.0.16 | | NSubstitute.Analyzers.CSharp | 1.0.15 | 1.0.16 |
| NuGet.Versioning | 5.11.0 | 6.7.0 | | NuGet.Versioning | 5.11.0 | 6.7.0 |
| Octokit | 0.50.0 | 8.0.1 | | Octokit | 0.50.0 | 9.0.0 |
| Quartz | 3.4.0 | 3.7.0 | | Quartz | 3.4.0 | 3.7.0 |
| Quartz.Extensions.DependencyInjection | 3.4.0 | 3.7.0 | | Quartz.Extensions.DependencyInjection | 3.4.0 | 3.7.0 |
| Quartz.Plugins.TimeZoneConverter | 3.4.0 | 3.7.0 | | Quartz.Plugins.TimeZoneConverter | 3.4.0 | 3.7.0 |
| RabbitMQ.Client | 6.3.0 | 6.5.0 | | RabbitMQ.Client | 6.3.0 | 6.6.0 |
| Rebus | 6.6.5 | 7.2.1 | | Rebus | 6.6.5 | 7.2.1 |
| Rebus.ServiceProvider | 7.0.0 | 9.1.0 | | Rebus.ServiceProvider | 7.0.0 | 9.1.0 |
| Scriban | 5.4.4 | 5.9.0 | | Scriban | 5.4.4 | 5.9.0 |
| Serilog.AspNetCore | 5.0.0 | 7.0.0 | | Serilog.AspNetCore | 5.0.0 | 8.0.0 |
| Serilog.Extensions.Hosting | 3.1.0 | 7.0.0 | | Serilog.Extensions.Hosting | 3.1.0 | 8.0.0 |
| Serilog.Extensions.Logging | 3.1.0 | 7.0.0 | | Serilog.Extensions.Logging | 3.1.0 | 8.0.0 |
| Serilog.Sinks.Async | 1.4.0 | 1.5.0 | | Serilog.Sinks.Async | 1.4.0 | 1.5.0 |
| SharpZipLib | 1.3.3 | 1.4.2 | | SharpZipLib | 1.3.3 | 1.4.2 |
| Shouldly | 4.1.0 | 4.2.1 | | Shouldly | 4.1.0 | 4.2.1 |
@ -72,6 +72,6 @@ The following NuGet libraries have been upgraded:
| Swashbuckle.AspNetCore | 6.2.1 | 6.5.0 | | Swashbuckle.AspNetCore | 6.2.1 | 6.5.0 |
| System.Linq.Dynamic.Core | 1.3.3 | 1.3.5 | | System.Linq.Dynamic.Core | 1.3.3 | 1.3.5 |
| TimeZoneConverter | 5.0.0 | 6.1.0 | | TimeZoneConverter | 5.0.0 | 6.1.0 |
| xunit | 2.4.1 | 2.5.1 | | xunit | 2.4.1 | 2.6.1 |
| xunit.extensibility.execution | 2.4.1 | 2.5.1 | | xunit.extensibility.execution | 2.4.1 | 2.6.1 |
| xunit.runner.visualstudio | 2.4.5 | 2.5.1 | | xunit.runner.visualstudio | 2.4.5 | 2.6.1 |

1
framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj

@ -21,6 +21,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" VersionOverride="7.0.14" />
<PackageReference Include="Devart.Data.Oracle.EFCore" /> <PackageReference Include="Devart.Data.Oracle.EFCore" />
</ItemGroup> </ItemGroup>

3
framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj

@ -21,6 +21,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="System.Text.Json" VersionOverride="7.0.4" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
<PackageReference Include="Rebus" /> <PackageReference Include="Rebus" />
<PackageReference Include="Rebus.ServiceProvider" /> <PackageReference Include="Rebus.ServiceProvider" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" /> <PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" />

2
global.json

@ -1,6 +1,6 @@
{ {
"sdk": { "sdk": {
"version": "8.0.100-rc.2.23502.2", "version": "8.0.100",
"rollForward": "latestFeature" "rollForward": "latestFeature"
} }
} }

1
npm/ng-packs/.gitignore

@ -58,4 +58,3 @@ Thumbs.db
.angular .angular
.nx/ .nx/
.nx/cache

3
npm/ng-packs/.prettierignore

@ -7,4 +7,5 @@
/node_modules /node_modules
/scripts /scripts
/tools /tools
/source-code-requirements /source-code-requirements
/.nx/cache

2
npm/ng-packs/apps/dev-app-e2e/project.json

@ -18,7 +18,7 @@
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": ["apps/dev-app-e2e/**/*.{js,ts}"] "lintFilePatterns": ["apps/dev-app-e2e/**/*.{js,ts}"]
}, },

11
npm/ng-packs/apps/dev-app/project.json

@ -151,10 +151,10 @@
"executor": "@angular-devkit/build-angular:dev-server", "executor": "@angular-devkit/build-angular:dev-server",
"configurations": { "configurations": {
"production": { "production": {
"browserTarget": "dev-app:build:production" "buildTarget": "dev-app:build:production"
}, },
"development": { "development": {
"browserTarget": "dev-app:build:development" "buildTarget": "dev-app:build:development"
} }
}, },
"defaultConfiguration": "development" "defaultConfiguration": "development"
@ -162,11 +162,11 @@
"extract-i18n": { "extract-i18n": {
"executor": "@angular-devkit/build-angular:extract-i18n", "executor": "@angular-devkit/build-angular:extract-i18n",
"options": { "options": {
"browserTarget": "dev-app:build" "buildTarget": "dev-app:build"
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": ["apps/dev-app/src/**/*.ts", "apps/dev-app/src/**/*.html"] "lintFilePatterns": ["apps/dev-app/src/**/*.ts", "apps/dev-app/src/**/*.html"]
} }
@ -175,8 +175,7 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/apps/dev-app"], "outputs": ["{workspaceRoot}/coverage/apps/dev-app"],
"options": { "options": {
"jestConfig": "apps/dev-app/jest.config.ts", "jestConfig": "apps/dev-app/jest.config.ts"
"passWithNoTests": true
} }
} }
} }

152
npm/ng-packs/migrations.json

@ -2,115 +2,131 @@
"migrations": [ "migrations": [
{ {
"cli": "nx", "cli": "nx",
"version": "16.6.0-beta.6", "version": "17.0.0-beta.1",
"description": "Prefix outputs with {workspaceRoot}/{projectRoot} if needed", "description": "Updates the default cache directory to .nx/cache",
"implementation": "./src/migrations/update-15-0-0/prefix-outputs", "implementation": "./src/migrations/update-17-0-0/move-cache-directory",
"package": "nx", "package": "nx",
"name": "16.6.0-prefix-outputs" "name": "17.0.0-move-cache-directory"
}, },
{ {
"cli": "nx", "cli": "nx",
"version": "16.8.0-beta.3", "version": "17.0.0-beta.3",
"description": "Escape $ in env variables", "description": "Use minimal config for tasksRunnerOptions",
"implementation": "./src/migrations/update-16-8-0/escape-dollar-sign-env-variables", "implementation": "./src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options",
"package": "nx", "package": "nx",
"name": "16.8.0-escape-dollar-sign-env" "name": "17.0.0-use-minimal-config-for-tasks-runner-options"
}, },
{ {
"version": "16.8.0", "version": "17.0.0-rc.1",
"description": "update-16-8-0-add-ignored-files", "description": "Migration for v17.0.0-rc.1",
"implementation": "./src/migrations/update-16-8-0-add-ignored-files/update-16-8-0-add-ignored-files", "implementation": "./src/migrations/update-17-0-0/rm-default-collection-npm-scope",
"package": "@nx/linter", "package": "nx",
"name": "update-16-8-0-add-ignored-files" "name": "rm-default-collection-npm-scope"
}, },
{ {
"cli": "nx", "cli": "nx",
"version": "16.9.0-beta.1", "version": "17.0.2",
"description": "Replace imports of Module Federation utils frm @nx/devkit to @nx/webpack", "description": "Remove deprecated build options",
"implementation": "./src/migrations/update-16-9-0/migrate-mf-util-usage", "implementation": "./src/migrations/update-17-0-0/remove-deprecated-build-options",
"package": "@nx/devkit", "package": "@nx/js",
"name": "update-16-9-0-migrate-mf-usage-to-webpack" "name": "update-17-0-0-remove-deprecated-build-options"
},
{
"version": "17.0.0-beta.7",
"description": "update-17-0-0-rename-to-eslint",
"implementation": "./src/migrations/update-17-0-0-rename-to-eslint/update-17-0-0-rename-to-eslint",
"package": "@nx/eslint",
"name": "update-17-0-0-rename-to-eslint"
},
{
"version": "17.1.0-beta.1",
"description": "Updates for @typescript-utils/utils v6.9.1+",
"implementation": "./src/migrations/update-17-1-0/update-typescript-eslint",
"package": "@nx/eslint",
"name": "update-typescript-eslint"
},
{
"version": "17.1.0-beta.2",
"description": "Move jest executor options to nx.json targetDefaults",
"implementation": "./src/migrations/update-17-1-0/move-options-to-target-defaults",
"package": "@nx/jest",
"name": "move-options-to-target-defaults"
}, },
{ {
"cli": "nx", "cli": "nx",
"version": "16.4.0-beta.6", "version": "17.1.0-beta.5",
"requires": { "requires": {
"@angular-eslint/eslint-plugin-template": ">=16.0.0" "@angular/core": ">=17.0.0"
}, },
"description": "Remove the 'accessibility-' prefix from '@angular-eslint/eslint-plugin-template' rules.", "description": "Update the @angular/cli package version to ~17.0.0.",
"factory": "./src/migrations/update-16-4-0/rename-angular-eslint-accesibility-rules", "factory": "./src/migrations/update-17-1-0/update-angular-cli",
"package": "@nx/angular", "package": "@nx/angular",
"name": "rename-angular-eslint-accesibility-rules" "name": "update-angular-cli-version-17-0-0"
}, },
{ {
"cli": "nx", "cli": "nx",
"version": "16.4.0-beta.11", "version": "17.1.0-beta.5",
"requires": { "requires": {
"@angular/core": ">=16.1.0" "@angular/core": ">=17.0.0"
}, },
"description": "Update the @angular/cli package version to ~16.1.0.", "description": "Rename 'browserTarget' to 'buildTarget'.",
"factory": "./src/migrations/update-16-4-0/update-angular-cli", "factory": "./src/migrations/update-17-1-0/browser-target-to-build-target",
"package": "@nx/angular", "package": "@nx/angular",
"name": "update-angular-cli-version-16-1-0" "name": "rename-browser-target-to-build-target"
}, },
{ {
"cli": "nx", "cli": "nx",
"version": "16.6.0-beta.0", "version": "17.1.0-beta.5",
"description": "Explicitly set 'updateBuildableProjectDepsInPackageJson' to 'true' in targets that rely on that value as the default.", "requires": {
"factory": "./src/migrations/update-16-6-0/explicitly-set-projects-to-update-buildable-deps", "@angular/core": ">=17.0.0"
},
"description": "Replace usages of '@nguniversal/builders' with '@angular-devkit/build-angular'.",
"factory": "./src/migrations/update-17-1-0/replace-nguniversal-builders",
"package": "@nx/angular", "package": "@nx/angular",
"name": "explicitly-set-projects-to-update-buildable-deps" "name": "replace-nguniversal-builders"
}, },
{ {
"cli": "nx", "cli": "nx",
"version": "16.7.0-beta.6", "version": "17.1.0-beta.5",
"requires": { "requires": {
"@angular/core": ">=16.2.0" "@angular/core": ">=17.0.0"
}, },
"description": "Update the @angular/cli package version to ~16.2.0.", "description": "Replace usages of '@nguniversal/' packages with '@angular/ssr'.",
"factory": "./src/migrations/update-16-7-0/update-angular-cli", "factory": "./src/migrations/update-17-1-0/replace-nguniversal-engines",
"package": "@nx/angular", "package": "@nx/angular",
"name": "update-angular-cli-version-16-2-0" "name": "replace-nguniversal-engines"
}, },
{ {
"cli": "nx", "cli": "nx",
"version": "16.4.0-beta.10", "version": "17.1.0-beta.5",
"description": "Remove tsconfig.e2e.json and add settings to project tsconfig.json. tsConfigs executor option is now deprecated. The project level tsconfig.json file should be used instead.", "requires": {
"implementation": "./src/migrations/update-16-4-0/tsconfig-sourcemaps", "@angular/core": ">=17.0.0"
"package": "@nx/cypress", },
"name": "update-16-3-0-remove-old-tsconfigs" "description": "Replace the deep imports from 'zone.js/dist/zone' and 'zone.js/dist/zone-testing' with 'zone.js' and 'zone.js/testing'.",
}, "factory": "./src/migrations/update-17-1-0/update-zone-js-deep-import",
{ "package": "@nx/angular",
"cli": "nx", "name": "update-zone-js-deep-import"
"version": "16.8.0-beta.4",
"description": "Update to Cypress v13. Most noteable change is video recording is off by default. This migration will only update if the workspace is already on Cypress v12. https://docs.cypress.io/guides/references/migration-guide#Migrating-to-Cypress-130",
"implementation": "./src/migrations/update-16-8-0/cypress-13",
"package": "@nx/cypress",
"name": "update-16-8-0-cypress-13"
}, },
{ {
"cli": "nx", "version": "17.0.0",
"version": "16.5.0-beta.2", "description": "Angular v17 introduces a new control flow syntax that uses the @ and } characters. This migration replaces the existing usages with their corresponding HTML entities.",
"description": "Add test-setup.ts to ignored files in production input", "factory": "./migrations/block-template-entities/bundle",
"implementation": "./src/migrations/update-16-5-0/add-test-setup-to-inputs-ignore", "package": "@angular/core",
"package": "@nx/jest", "name": "block-template-entities"
"name": "add-test-setup-to-inputs-ignore"
}, },
{ {
"cli": "nx", "version": "17.0.0",
"version": "16.6.0-beta.0", "description": "CompilerOption.useJit and CompilerOption.missingTranslation are unused under Ivy. This migration removes their usage",
"description": "Explicitly set 'updateBuildableProjectDepsInPackageJson' to 'true' in targets that rely on that value as the default.", "factory": "./migrations/compiler-options/bundle",
"factory": "./src/migrations/update-16-6-0/explicitly-set-projects-to-update-buildable-deps", "package": "@angular/core",
"package": "@nx/js", "name": "migration-v17-compiler-options"
"name": "explicitly-set-projects-to-update-buildable-deps"
}, },
{ {
"cli": "nx", "version": "17.0.0",
"version": "16.8.2-beta.0", "description": "Updates `TransferState`, `makeStateKey`, `StateKey` imports from `@angular/platform-browser` to `@angular/core`.",
"description": "Remove invalid options (strict, noInterop) for ES6 type modules.", "factory": "./migrations/transfer-state/bundle",
"factory": "./src/migrations/update-16-8-2/update-swcrc", "package": "@angular/core",
"package": "@nx/js", "name": "migration-transfer-state"
"name": "16-8-2-update-swcrc"
} }
] ]
} }

38
npm/ng-packs/nx.json

@ -1,17 +1,7 @@
{ {
"npmScope": "abp",
"affected": { "affected": {
"defaultBase": "dev" "defaultBase": "dev"
}, },
"tasksRunnerOptions": {
"default": {
"runner": "nx/tasks-runners/default",
"options": {
"cacheableOperations": ["build", "lint", "test", "e2e"],
"parallel": 3
}
}
},
"workspaceLayout": { "workspaceLayout": {
"libsDir": "packages", "libsDir": "packages",
"appsDir": "" "appsDir": ""
@ -51,16 +41,29 @@
"targetDefaults": { "targetDefaults": {
"build": { "build": {
"dependsOn": ["^build"], "dependsOn": ["^build"],
"inputs": ["production", "^production"] "inputs": ["production", "^production"],
"cache": true
}, },
"e2e": { "e2e": {
"inputs": ["default", "^production"] "inputs": ["default", "^production"],
}, "cache": true
"test": {
"inputs": ["default", "^production", "{workspaceRoot}/jest.preset.js"]
}, },
"lint": { "lint": {
"inputs": ["default", "{workspaceRoot}/.eslintrc.json"] "inputs": ["default", "{workspaceRoot}/.eslintrc.json"],
"cache": true
},
"@nx/jest:jest": {
"inputs": ["default", "^production", "{workspaceRoot}/jest.preset.js"],
"cache": true,
"options": {
"passWithNoTests": true
},
"configurations": {
"ci": {
"ci": true,
"codeCoverage": true
}
}
} }
}, },
"namedInputs": { "namedInputs": {
@ -73,5 +76,6 @@
"!{projectRoot}/jest.config.[jt]s", "!{projectRoot}/jest.config.[jt]s",
"!{projectRoot}/.eslintrc.json" "!{projectRoot}/.eslintrc.json"
] ]
} },
"parallel": 3
} }

93
npm/ng-packs/package.json

@ -44,48 +44,47 @@
}, },
"private": true, "private": true,
"devDependencies": { "devDependencies": {
"@abp/ng.theme.lepton-x": "~2.4.1", "@abp/ng.theme.lepton-x": "~2.4.0",
"@abp/utils": "~7.4.1", "@abp/utils": "~7.4.0",
"@angular-devkit/build-angular": "~16.2.0", "@angular-devkit/build-angular": "~17.0.0",
"@angular-devkit/core": "~16.2.0", "@angular-devkit/core": "~17.0.0",
"@angular-devkit/schematics": "~16.2.0", "@angular-devkit/schematics": "~17.0.0",
"@angular-devkit/schematics-cli": "~16.2.0", "@angular-devkit/schematics-cli": "~17.0.0",
"@angular-eslint/eslint-plugin": "~16.2.0", "@angular-eslint/eslint-plugin": "~17.0.0",
"@angular-eslint/eslint-plugin-template": "~16.2.0", "@angular-eslint/eslint-plugin-template": "~17.0.0",
"@angular-eslint/template-parser": "~16.2.0", "@angular-eslint/template-parser": "~17.0.0",
"@angular/animations": "~16.2.0", "@angular/animations": "~17.0.0",
"@angular/cli": "~16.2.0", "@angular/cli": "~17.0.0",
"@angular/common": "~16.2.0", "@angular/common": "~17.0.0",
"@angular/compiler": "~16.2.0", "@angular/compiler": "~17.0.0",
"@angular/compiler-cli": "~16.2.0", "@angular/compiler-cli": "~17.0.0",
"@angular/core": "~16.2.0", "@angular/core": "~17.0.0",
"@angular/forms": "~16.2.0", "@angular/forms": "~17.0.0",
"@angular/language-service": "~16.2.0", "@angular/language-service": "~17.0.0",
"@angular/localize": "~16.2.0", "@angular/localize": "~17.0.0",
"@angular/platform-browser": "~16.2.0", "@angular/platform-browser": "~17.0.0",
"@angular/platform-browser-dynamic": "~16.2.0", "@angular/platform-browser-dynamic": "~17.0.0",
"@angular/router": "~16.2.0", "@angular/router": "~17.0.0",
"@fortawesome/fontawesome-free": "^5.0.0", "@fortawesome/fontawesome-free": "^6.0.0",
"@ng-bootstrap/ng-bootstrap": "^15.0.0", "@ng-bootstrap/ng-bootstrap": "^15.0.0",
"@ngneat/spectator": "^10.0.0", "@ngneat/spectator": "^15.0.0",
"@ngx-validate/core": "^0.2.0", "@ngx-validate/core": "^0.2.0",
"@nx/angular": "16.9.0", "@nx/angular": "~17.1.0",
"@nx/cypress": "16.9.0", "@nx/cypress": "~17.1.0",
"@nx/eslint-plugin": "16.9.0", "@nx/eslint-plugin": "~17.1.0",
"@nx/jest": "16.9.0", "@nx/jest": "~17.1.0",
"@nx/js": "16.9.0", "@nx/js": "~17.1.0",
"@nx/linter": "16.9.0", "@nx/workspace": "~17.1.0",
"@nx/workspace": "16.9.0",
"@popperjs/core": "~2.11.0", "@popperjs/core": "~2.11.0",
"@schematics/angular": "~16.2.0", "@schematics/angular": "17.0.0",
"@swc-node/register": "~1.4.0", "@swc-node/register": "1.6.8",
"@swc/cli": "~0.1.0", "@swc/cli": "~0.1.0",
"@swc/core": "1.3.94", "@swc/core": "1.3.94",
"@swimlane/ngx-datatable": "^20.0.0", "@swimlane/ngx-datatable": "^20.0.0",
"@types/jest": "29.4.4", "@types/jest": "29.4.4",
"@types/node": "20.2.5", "@types/node": "20.2.5",
"@typescript-eslint/eslint-plugin": "5.62.0", "@typescript-eslint/eslint-plugin": "6.9.1",
"@typescript-eslint/parser": "5.62.0", "@typescript-eslint/parser": "6.9.1",
"angular-oauth2-oidc": "^15.0.0", "angular-oauth2-oidc": "^15.0.0",
"bootstrap": "^5.0.0", "bootstrap": "^5.0.0",
"bootstrap-icons": "^1.0.0", "bootstrap-icons": "^1.0.0",
@ -93,23 +92,22 @@
"cypress": "^7.0.0", "cypress": "^7.0.0",
"dotenv": "10.0.0", "dotenv": "10.0.0",
"eslint": "8.46.0", "eslint": "8.46.0",
"eslint-config-prettier": "8.1.0", "eslint-config-prettier": "9.0.0",
"eslint-plugin-cypress": "2.15.1",
"got": "^11.0.0",
"eslint-plugin-cypress": "^2.10.3", "eslint-plugin-cypress": "^2.10.3",
"jest": "^29.0.0", "got": "^11.0.0",
"jest": "^29.0.0",
"jest-canvas-mock": "^2.0.0", "jest-canvas-mock": "^2.0.0",
"jest-environment-jsdom": "^29.0.0", "jest-environment-jsdom": "^29.0.0",
"jest-preset-angular": "13.1.0", "jest-preset-angular": "13.1.3",
"jsonc-eslint-parser": "^2.0.0", "jsonc-eslint-parser": "^2.0.0",
"jsonc-parser": "^2.0.0", "jsonc-parser": "^2.0.0",
"just-clone": "^6.0.0", "just-clone": "^6.0.0",
"just-compare": "^2.0.0", "just-compare": "^2.0.0",
"lerna": "^4.0.0", "lerna": "^4.0.0",
"lint-staged": "^13.0.0", "lint-staged": "^13.0.0",
"ng-packagr": "~16.2.0", "ng-packagr": "17.0.0",
"ng-zorro-antd": "^16.0.0", "ng-zorro-antd": "^15.0.0",
"nx": "16.9.0", "nx": "~17.1.0",
"perfect-scrollbar": "^1.0.0", "perfect-scrollbar": "^1.0.0",
"postcss": "^8.0.0", "postcss": "^8.0.0",
"postcss-import": "14.1.0", "postcss-import": "14.1.0",
@ -124,11 +122,12 @@
"ts-toolbelt": "6.15.4", "ts-toolbelt": "6.15.4",
"tslib": "^2.0.0", "tslib": "^2.0.0",
"tslint": "~6.1.0", "tslint": "~6.1.0",
"typescript": "5.1.6", "typescript": "~5.2.0",
"zone.js": "~0.13.0", "zone.js": "0.14.2",
"@nx/devkit": "16.9.0", "@nx/devkit": "~17.1.0",
"@nx/plugin": "16.9.0", "@nx/plugin": "~17.1.0",
"@swc/helpers": "0.5.3" "@swc/helpers": "0.5.3",
"@nx/eslint": "~17.1.0"
}, },
"lint-staged": { "lint-staged": {
"**/*.{js,jsx,ts,tsx,html,css,scss}": [ "**/*.{js,jsx,ts,tsx,html,css,scss}": [

5
npm/ng-packs/packages/account-core/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/account-core"], "outputs": ["{workspaceRoot}/coverage/packages/account-core"],
"options": { "options": {
"jestConfig": "packages/account-core/jest.config.ts", "jestConfig": "packages/account-core/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": [ "lintFilePatterns": [
"packages/account-core/src/**/*.ts", "packages/account-core/src/**/*.ts",

5
npm/ng-packs/packages/account/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/account"], "outputs": ["{workspaceRoot}/coverage/packages/account"],
"options": { "options": {
"jestConfig": "packages/account/jest.config.ts", "jestConfig": "packages/account/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": ["packages/account/src/**/*.ts", "packages/account/src/**/*.html"] "lintFilePatterns": ["packages/account/src/**/*.ts", "packages/account/src/**/*.html"]
}, },

7
npm/ng-packs/packages/components/extensible/src/lib/components/date-time-picker/extensible-date-time-picker.component.ts

@ -7,19 +7,24 @@ import {
SkipSelf, SkipSelf,
ViewChild, ViewChild,
} from '@angular/core'; } from '@angular/core';
import { ControlContainer } from '@angular/forms'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms';
import { import {
NgbDateAdapter, NgbDateAdapter,
NgbDatepickerModule,
NgbInputDatepicker, NgbInputDatepicker,
NgbTimeAdapter, NgbTimeAdapter,
NgbTimepicker, NgbTimepicker,
NgbTimepickerModule,
} from '@ng-bootstrap/ng-bootstrap'; } from '@ng-bootstrap/ng-bootstrap';
import { FormProp } from '../../models/form-props'; import { FormProp } from '../../models/form-props';
import { selfFactory } from '../../utils/factory.util'; import { selfFactory } from '../../utils/factory.util';
import { DateTimeAdapter } from '@abp/ng.theme.shared'; import { DateTimeAdapter } from '@abp/ng.theme.shared';
import { CommonModule } from '@angular/common';
@Component({ @Component({
exportAs: 'abpExtensibleDateTimePicker', exportAs: 'abpExtensibleDateTimePicker',
standalone: true,
imports: [CommonModule, NgbDatepickerModule, ReactiveFormsModule, NgbTimepickerModule],
selector: 'abp-extensible-date-time-picker', selector: 'abp-extensible-date-time-picker',
template: ` template: `
<input <input

2
npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.html

@ -124,7 +124,7 @@
<ng-template ngSwitchCase="dateTime"> <ng-template ngSwitchCase="dateTime">
<ng-template [ngTemplateOutlet]="label"></ng-template> <ng-template [ngTemplateOutlet]="label"></ng-template>
<abp-extensible-date-time-picker [prop]="prop" [meridian]="meridian" /> <abp-extensible-date-time-picker [prop]="prop" [meridian]="meridian$ | async" />
</ng-template> </ng-template>
<ng-template ngSwitchCase="textarea"> <ng-template ngSwitchCase="textarea">

133
npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts

@ -1,11 +1,12 @@
import { EXTENSIONS_FORM_PROP, EXTENSIONS_FORM_PROP_DATA } from './../../tokens/extensions.token'; import { EXTENSIONS_FORM_PROP, EXTENSIONS_FORM_PROP_DATA } from './../../tokens/extensions.token';
import { ABP, AbpValidators, ConfigStateService, TrackByService } from '@abp/ng.core'; import { ABP, CoreModule, TrackByService } from '@abp/ng.core';
import { import {
AfterViewInit, AfterViewInit,
ChangeDetectionStrategy, ChangeDetectionStrategy,
ChangeDetectorRef, ChangeDetectorRef,
Component, Component,
ElementRef, ElementRef,
inject,
Injector, Injector,
Input, Input,
OnChanges, OnChanges,
@ -17,26 +18,53 @@ import {
import { import {
ControlContainer, ControlContainer,
FormGroupDirective, FormGroupDirective,
UntypedFormGroup, ReactiveFormsModule,
ValidatorFn, ValidatorFn,
Validators,
} from '@angular/forms'; } from '@angular/forms';
import { NgbDateAdapter, NgbTimeAdapter } from '@ng-bootstrap/ng-bootstrap'; import {
NgbDateAdapter,
NgbDatepickerModule,
NgbTimeAdapter,
NgbTimepickerModule,
NgbTypeaheadModule,
} from '@ng-bootstrap/ng-bootstrap';
import { Observable, of } from 'rxjs'; import { Observable, of } from 'rxjs';
import { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators'; import { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';
import { DateAdapter, TimeAdapter } from '@abp/ng.theme.shared'; import {
DateAdapter,
DisabledDirective,
PasswordComponent,
TimeAdapter,
} from '@abp/ng.theme.shared';
import { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties'; import { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';
import { ePropType } from '../../enums/props.enum';
import { FormProp } from '../../models/form-props'; import { FormProp } from '../../models/form-props';
import { PropData } from '../../models/props'; import { PropData } from '../../models/props';
import { selfFactory } from '../../utils/factory.util'; import { selfFactory } from '../../utils/factory.util';
import { addTypeaheadTextSuffix } from '../../utils/typeahead.util'; import { addTypeaheadTextSuffix } from '../../utils/typeahead.util';
import { eThemeSharedComponents } from "../../enums/components"; import { eThemeSharedComponents } from '../../enums/components';
import { ExtensibleDateTimePickerComponent } from '../date-time-picker/extensible-date-time-picker.component';
import { NgxValidateCoreModule } from '@ngx-validate/core';
import { ExtensibleFormPropService } from '../../services/extensible-form-prop.service';
import {CreateInjectorPipe} from "../../pipes/create-injector.pipe";
@Component({ @Component({
selector: 'abp-extensible-form-prop', selector: 'abp-extensible-form-prop',
templateUrl: './extensible-form-prop.component.html', templateUrl: './extensible-form-prop.component.html',
standalone: true,
imports: [
CoreModule,
ExtensibleDateTimePickerComponent,
NgbDatepickerModule,
NgbTimepickerModule,
ReactiveFormsModule,
DisabledDirective,
NgxValidateCoreModule,
NgbTypeaheadModule,
PasswordComponent,
CreateInjectorPipe
],
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
providers: [ExtensibleFormPropService],
viewProviders: [ viewProviders: [
{ {
provide: ControlContainer, provide: ControlContainer,
@ -48,32 +76,27 @@ import { eThemeSharedComponents } from "../../enums/components";
], ],
}) })
export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
@Input() data!: PropData; protected service = inject(ExtensibleFormPropService);
public readonly cdRef = inject(ChangeDetectorRef);
public readonly track = inject(TrackByService);
#groupDirective = inject(FormGroupDirective);
private injector = inject(Injector);
private readonly form = this.#groupDirective.form;
@Input() data!: PropData;
@Input() prop!: FormProp; @Input() prop!: FormProp;
@Input() first?: boolean; @Input() first?: boolean;
@ViewChild('field') private fieldRef!: ElementRef<HTMLElement>; @ViewChild('field') private fieldRef!: ElementRef<HTMLElement>;
public injectorForCustomComponent?: Injector; injectorForCustomComponent?: Injector;
asterisk = ''; asterisk = '';
containerClassName = 'mb-2'; containerClassName = 'mb-2';
options$: Observable<ABP.Option<any>[]> = of([]); options$: Observable<ABP.Option<any>[]> = of([]);
validators: ValidatorFn[] = []; validators: ValidatorFn[] = [];
readonly!: boolean; readonly!: boolean;
typeaheadModel: any; typeaheadModel: any;
passwordKey = eThemeSharedComponents.PasswordComponent; passwordKey = eThemeSharedComponents.PasswordComponent;
private readonly form: UntypedFormGroup;
disabledFn = (data: PropData) => false; disabledFn = (data: PropData) => false;
get disabled() { get disabled() {
@ -100,27 +123,13 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
typeaheadFormatter = (option: ABP.Option<any>) => option.key; typeaheadFormatter = (option: ABP.Option<any>) => option.key;
get meridian() { meridian$ = this.service.meridian$;
return (
this.configState.getDeep('localization.currentCulture.dateTimeFormat.shortTimePattern') || ''
).includes('tt');
}
get isInvalid() { get isInvalid() {
const control = this.form.get(this.prop.name); const control = this.form.get(this.prop.name);
return control?.touched && control.invalid; return control?.touched && control.invalid;
} }
constructor(
public readonly cdRef: ChangeDetectorRef,
public readonly track: TrackByService,
protected configState: ConfigStateService,
groupDirective: FormGroupDirective,
private injector: Injector,
) {
this.form = groupDirective.form;
}
private getTypeaheadControls() { private getTypeaheadControls() {
const { name } = this.prop; const { name } = this.prop;
const extraPropName = `${EXTRA_PROPERTIES_KEY}.${name}`; const extraPropName = `${EXTRA_PROPERTIES_KEY}.${name}`;
@ -132,7 +141,7 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
} }
private setAsterisk() { private setAsterisk() {
this.asterisk = this.validators.some(isRequired) ? '*' : ''; this.asterisk = this.service.calcAsterisks(this.validators);
} }
ngAfterViewInit() { ngAfterViewInit() {
@ -143,51 +152,11 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
} }
getComponent(prop: FormProp): string { getComponent(prop: FormProp): string {
if (prop.template) { return this.service.getComponent(prop);
return 'template';
}
switch (prop.type) {
case ePropType.Boolean:
return 'checkbox';
case ePropType.Date:
return 'date';
case ePropType.DateTime:
return 'dateTime';
case ePropType.Hidden:
return 'hidden';
case ePropType.MultiSelect:
return 'multiselect';
case ePropType.Text:
return 'textarea';
case ePropType.Time:
return 'time';
case ePropType.Typeahead:
return 'typeahead';
case ePropType.PasswordInputGroup:
return 'passwordinputgroup';
default:
return prop.options ? 'select' : 'input';
}
} }
getType(prop: FormProp): string { getType(prop: FormProp): string {
switch (prop.type) { return this.service.getType(prop);
case ePropType.Date:
case ePropType.String:
return 'text';
case ePropType.Boolean:
return 'checkbox';
case ePropType.Number:
return 'number';
case ePropType.Email:
return 'email';
case ePropType.Password:
return 'password';
case ePropType.PasswordInputGroup:
return 'passwordinputgroup';
default:
return 'hidden';
}
} }
ngOnChanges({ prop, data }: SimpleChanges) { ngOnChanges({ prop, data }: SimpleChanges) {
@ -229,11 +198,3 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
this.typeaheadModel = { key: keyControl.value, value: valueControl.value }; this.typeaheadModel = { key: keyControl.value, value: valueControl.value };
} }
} }
function isRequired(validator: ValidatorFn) {
return (
validator === Validators.required ||
validator === AbpValidators.required ||
validator.name === 'required'
);
}

123
npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.ts

@ -1,73 +1,76 @@
import { TrackByService } from '@abp/ng.core'; import {TrackByService} from '@abp/ng.core';
import { import {
ChangeDetectionStrategy, ChangeDetectionStrategy,
ChangeDetectorRef, ChangeDetectorRef,
Component, Component, inject,
Inject, Input,
Input, Optional,
Optional, QueryList,
QueryList, SkipSelf,
SkipSelf, ViewChildren,
ViewChildren,
} from '@angular/core'; } from '@angular/core';
import { ControlContainer, UntypedFormGroup } from '@angular/forms'; import {ControlContainer, ReactiveFormsModule, UntypedFormGroup} from '@angular/forms';
import { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties'; import {EXTRA_PROPERTIES_KEY} from '../../constants/extra-properties';
import { FormPropList, GroupedFormPropList } from '../../models/form-props'; import {FormPropList, GroupedFormPropList} from '../../models/form-props';
import { ExtensionsService } from '../../services/extensions.service'; import {ExtensionsService} from '../../services/extensions.service';
import { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token'; import {EXTENSIONS_IDENTIFIER} from '../../tokens/extensions.token';
import { selfFactory } from '../../utils/factory.util'; import {selfFactory} from '../../utils/factory.util';
import { ExtensibleFormPropComponent } from './extensible-form-prop.component'; import {ExtensibleFormPropComponent} from './extensible-form-prop.component';
import {CommonModule} from "@angular/common";
import {PropDataDirective} from "../../directives/prop-data.directive";
@Component({ @Component({
exportAs: 'abpExtensibleForm', exportAs: 'abpExtensibleForm',
selector: 'abp-extensible-form', selector: 'abp-extensible-form',
templateUrl: './extensible-form.component.html', templateUrl: './extensible-form.component.html',
changeDetection: ChangeDetectionStrategy.OnPush, standalone:true,
viewProviders: [ imports:[CommonModule, PropDataDirective,ReactiveFormsModule,ExtensibleFormPropComponent],
{ changeDetection: ChangeDetectionStrategy.OnPush,
provide: ControlContainer, viewProviders: [
useFactory: selfFactory, {
deps: [[new Optional(), new SkipSelf(), ControlContainer]], provide: ControlContainer,
}, useFactory: selfFactory,
], deps: [[new Optional(), new SkipSelf(), ControlContainer]],
},
],
}) })
export class ExtensibleFormComponent<R = any> { export class ExtensibleFormComponent<R = any> {
@ViewChildren(ExtensibleFormPropComponent)
formProps!: QueryList<ExtensibleFormPropComponent>;
@Input() @ViewChildren(ExtensibleFormPropComponent)
set selectedRecord(record: R) { formProps!: QueryList<ExtensibleFormPropComponent>;
const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit';
const propList = this.extensions[`${type}FormProps`].get(this.identifier).props;
this.groupedPropList = this.createGroupedList(propList);
this.record = record;
}
extraPropertiesKey = EXTRA_PROPERTIES_KEY; @Input()
groupedPropList!: GroupedFormPropList; set selectedRecord(record: R) {
record!: R; const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit';
const propList = this.extensions[`${type}FormProps`].get(this.identifier).props;
this.groupedPropList = this.createGroupedList(propList);
this.record = record;
}
createGroupedList(propList: FormPropList<R>) { extraPropertiesKey = EXTRA_PROPERTIES_KEY;
const groupedFormPropList = new GroupedFormPropList(); groupedPropList!: GroupedFormPropList;
propList.forEach(item => { record!: R;
groupedFormPropList.addItem(item.value);
});
return groupedFormPropList;
}
get form(): UntypedFormGroup { public readonly cdRef = inject(ChangeDetectorRef)
return (this.container ? this.container.control : { controls: {} }) as UntypedFormGroup; public readonly track = inject(TrackByService)
} private container = inject(ControlContainer)
private extensions = inject(ExtensionsService);
private identifier = inject(EXTENSIONS_IDENTIFIER)
get extraProperties(): UntypedFormGroup { createGroupedList(propList: FormPropList<R>) {
return (this.form.controls.extraProperties || { controls: {} }) as UntypedFormGroup; const groupedFormPropList = new GroupedFormPropList();
} propList.forEach(item => {
groupedFormPropList.addItem(item.value);
});
return groupedFormPropList;
}
get form(): UntypedFormGroup {
return (this.container ? this.container.control : {controls: {}}) as UntypedFormGroup;
}
get extraProperties(): UntypedFormGroup {
return (this.form.controls.extraProperties || {controls: {}}) as UntypedFormGroup;
}
constructor(
public readonly cdRef: ChangeDetectorRef,
public readonly track: TrackByService,
private container: ControlContainer,
private extensions: ExtensionsService,
@Inject(EXTENSIONS_IDENTIFIER) private identifier: string,
) {}
} }

51
npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts

@ -1,17 +1,19 @@
import { import {
ABP, ABP,
ConfigStateService, ConfigStateService,
CoreModule,
getShortDateFormat, getShortDateFormat,
getShortDateShortTimeFormat, getShortDateShortTimeFormat,
getShortTimeFormat, getShortTimeFormat,
ListService, ListService,
PermissionService, PermissionService,
} from '@abp/ng.core'; } from '@abp/ng.core';
import { formatDate } from '@angular/common'; import { CommonModule, formatDate } from '@angular/common';
import { import {
ChangeDetectionStrategy, ChangeDetectionStrategy,
Component, Component,
EventEmitter, EventEmitter,
inject,
Inject, Inject,
Injector, Injector,
Input, Input,
@ -31,16 +33,28 @@ import { PropData } from '../../models/props';
import { ExtensionsService } from '../../services/extensions.service'; import { ExtensionsService } from '../../services/extensions.service';
import { import {
ENTITY_PROP_TYPE_CLASSES, ENTITY_PROP_TYPE_CLASSES,
EntityPropTypeClass,
EXTENSIONS_IDENTIFIER, EXTENSIONS_IDENTIFIER,
PROP_DATA_STREAM, PROP_DATA_STREAM,
} from '../../tokens/extensions.token'; } from '../../tokens/extensions.token';
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
import { GridActionsComponent } from '../grid-actions/grid-actions.component';
import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
import { NgxDatatableDefaultDirective, NgxDatatableListDirective } from '@abp/ng.theme.shared';
const DEFAULT_ACTIONS_COLUMN_WIDTH = 150; const DEFAULT_ACTIONS_COLUMN_WIDTH = 150;
@Component({ @Component({
exportAs: 'abpExtensibleTable', exportAs: 'abpExtensibleTable',
selector: 'abp-extensible-table', selector: 'abp-extensible-table',
standalone: true,
imports: [
CoreModule,
NgxDatatableModule,
GridActionsComponent,
NgbTooltip,
NgxDatatableDefaultDirective,
NgxDatatableListDirective,
],
templateUrl: './extensible-table.component.html', templateUrl: './extensible-table.component.html',
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
}) })
@ -50,6 +64,7 @@ export class ExtensibleTableComponent<R = any> implements OnChanges {
set actionsText(value: string) { set actionsText(value: string) {
this._actionsText = value; this._actionsText = value;
} }
get actionsText(): string { get actionsText(): string {
return this._actionsText ?? (this.actionList.length > 1 ? 'AbpUi::Actions' : ''); return this._actionsText ?? (this.actionList.length > 1 ? 'AbpUi::Actions' : '');
} }
@ -57,19 +72,17 @@ export class ExtensibleTableComponent<R = any> implements OnChanges {
@Input() data!: R[]; @Input() data!: R[];
@Input() list!: ListService; @Input() list!: ListService;
@Input() recordsTotal!: number; @Input() recordsTotal!: number;
@Input() set actionsColumnWidth(width: number) { @Input() set actionsColumnWidth(width: number) {
this.setColumnWidths(width ? Number(width) : undefined); this.setColumnWidths(width ? Number(width) : undefined);
} }
@Input() actionsTemplate?: TemplateRef<any>; @Input() actionsTemplate?: TemplateRef<any>;
@Output() tableActivate = new EventEmitter(); @Output() tableActivate = new EventEmitter();
getInjected: typeof this.injector.get
hasAtLeastOnePermittedAction: boolean; hasAtLeastOnePermittedAction: boolean;
entityPropTypeClasses: EntityPropTypeClass;
readonly columnWidths!: number[]; readonly columnWidths!: number[];
readonly propList: EntityPropList<R>; readonly propList: EntityPropList<R>;
@ -78,20 +91,20 @@ export class ExtensibleTableComponent<R = any> implements OnChanges {
readonly trackByFn: TrackByFunction<EntityProp<R>> = (_, item) => item.name; readonly trackByFn: TrackByFunction<EntityProp<R>> = (_, item) => item.name;
constructor( locale = inject(LOCALE_ID);
@Inject(LOCALE_ID) private locale: string, private config = inject(ConfigStateService);
private config: ConfigStateService, entityPropTypeClasses = inject(ENTITY_PROP_TYPE_CLASSES);
private injector: Injector, #injector = inject(Injector);
) { getInjected = this.#injector.get.bind(this.#injector);
this.entityPropTypeClasses = injector.get(ENTITY_PROP_TYPE_CLASSES);
this.getInjected = injector.get.bind(injector); constructor() {
const extensions = injector.get(ExtensionsService); const extensions = this.#injector.get(ExtensionsService);
const name = injector.get(EXTENSIONS_IDENTIFIER); const name = this.#injector.get(EXTENSIONS_IDENTIFIER);
this.propList = extensions.entityProps.get(name).props; this.propList = extensions.entityProps.get(name).props;
this.actionList = extensions['entityActions'].get(name) this.actionList = extensions['entityActions'].get(name)
.actions as unknown as EntityActionList<R>; .actions as unknown as EntityActionList<R>;
const permissionService = injector.get(PermissionService); const permissionService = this.#injector.get(PermissionService);
this.hasAtLeastOnePermittedAction = this.hasAtLeastOnePermittedAction =
permissionService.filterItemsByPolicy( permissionService.filterItemsByPolicy(
this.actionList.toArray().map(action => ({ requiredPolicy: action.permission })), this.actionList.toArray().map(action => ({ requiredPolicy: action.permission })),
@ -149,7 +162,7 @@ export class ExtensibleTableComponent<R = any> implements OnChanges {
if (!data?.currentValue) return; if (!data?.currentValue) return;
if (data.currentValue.length < 1) { if (data.currentValue.length < 1) {
this.list.totalCount = this.recordsTotal this.list.totalCount = this.recordsTotal;
} }
this.data = data.currentValue.map((record: any, index: number) => { this.data = data.currentValue.map((record: any, index: number) => {
@ -170,7 +183,7 @@ export class ExtensibleTableComponent<R = any> implements OnChanges {
useValue: value, useValue: value,
}, },
], ],
parent: this.injector, parent: this.#injector,
}); });
record[propKey].component = prop.value.component; record[propKey].component = prop.value.component;
} }

5
npm/ng-packs/packages/components/extensible/src/lib/components/grid-actions/grid-actions.component.ts

@ -8,9 +8,14 @@ import {
import { EntityAction, EntityActionList } from '../../models/entity-actions'; import { EntityAction, EntityActionList } from '../../models/entity-actions';
import { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token'; import { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';
import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component'; import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
import { CoreModule } from '@abp/ng.core';
import {EllipsisDirective} from "@abp/ng.theme.shared";
@Component({ @Component({
exportAs: 'abpGridActions', exportAs: 'abpGridActions',
standalone: true,
imports: [ CoreModule, NgbDropdownModule, EllipsisDirective],
selector: 'abp-grid-actions', selector: 'abp-grid-actions',
templateUrl: './grid-actions.component.html', templateUrl: './grid-actions.component.html',
providers: [ providers: [

5
npm/ng-packs/packages/components/extensible/src/lib/components/page-toolbar/page-toolbar.component.ts

@ -8,10 +8,14 @@ import {
} from '../../models/toolbar-actions'; } from '../../models/toolbar-actions';
import { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token'; import { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';
import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component'; import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';
import { CreateInjectorPipe } from '../../pipes/create-injector.pipe';
import { CoreModule } from '@abp/ng.core';
@Component({ @Component({
exportAs: 'abpPageToolbar', exportAs: 'abpPageToolbar',
selector: 'abp-page-toolbar', selector: 'abp-page-toolbar',
standalone: true,
imports: [ CoreModule, CreateInjectorPipe],
templateUrl: './page-toolbar.component.html', templateUrl: './page-toolbar.component.html',
providers: [ providers: [
{ {
@ -31,6 +35,7 @@ export class PageToolbarComponent<R = any>
readonly trackByFn: TrackByFunction<ToolbarComponent<R>> = (_, item) => readonly trackByFn: TrackByFunction<ToolbarComponent<R>> = (_, item) =>
item.action || item.component; item.action || item.component;
constructor(public readonly injector: Injector) { constructor(public readonly injector: Injector) {
super(injector); super(injector);
} }

1
npm/ng-packs/packages/components/extensible/src/lib/directives/prop-data.directive.ts

@ -13,6 +13,7 @@ import { PropData, PropList } from '../models/props';
@Directive({ @Directive({
exportAs: 'abpPropData', exportAs: 'abpPropData',
selector: '[abpPropData]', selector: '[abpPropData]',
standalone: true,
}) })
export class PropDataDirective<L extends PropList<any>> export class PropDataDirective<L extends PropList<any>>
extends PropData<InferredData<L>> extends PropData<InferredData<L>>

35
npm/ng-packs/packages/components/extensible/src/lib/extensible.module.ts

@ -15,23 +15,25 @@ import {
ExtensibleTableComponent, ExtensibleTableComponent,
GridActionsComponent, GridActionsComponent,
PageToolbarComponent, PageToolbarComponent,
ExtensibleDateTimePickerComponent ExtensibleDateTimePickerComponent,
} from './components'; } from './components';
import { PropDataDirective } from './directives/prop-data.directive'; import { PropDataDirective } from './directives/prop-data.directive';
import { CreateInjectorPipe } from './pipes/create-injector.pipe'; import { CreateInjectorPipe } from './pipes/create-injector.pipe';
import { DisabledDirective } from '@abp/ng.theme.shared'; import { DisabledDirective } from '@abp/ng.theme.shared';
const importWithExport = [
DisabledDirective,
ExtensibleDateTimePickerComponent,
ExtensibleFormPropComponent,
GridActionsComponent,
PropDataDirective,
PageToolbarComponent,
CreateInjectorPipe,
ExtensibleFormComponent,
ExtensibleTableComponent,
];
@NgModule({ @NgModule({
declarations: [ declarations: [],
ExtensibleDateTimePickerComponent,
PageToolbarComponent,
GridActionsComponent,
ExtensibleFormPropComponent,
ExtensibleFormComponent,
ExtensibleTableComponent,
PropDataDirective,
CreateInjectorPipe,
],
imports: [ imports: [
CoreModule, CoreModule,
ThemeSharedModule, ThemeSharedModule,
@ -41,15 +43,8 @@ import { DisabledDirective } from '@abp/ng.theme.shared';
NgbTimepickerModule, NgbTimepickerModule,
NgbTypeaheadModule, NgbTypeaheadModule,
NgbTooltipModule, NgbTooltipModule,
DisabledDirective, ...importWithExport,
],
exports: [
PageToolbarComponent,
GridActionsComponent,
ExtensibleFormComponent,
ExtensibleTableComponent,
PropDataDirective,
CreateInjectorPipe,
], ],
exports: [...importWithExport],
}) })
export class ExtensibleModule {} export class ExtensibleModule {}

1
npm/ng-packs/packages/components/extensible/src/lib/pipes/create-injector.pipe.ts

@ -12,6 +12,7 @@ import { EXTENSIONS_ACTION_CALLBACK, EXTENSIONS_ACTION_DATA } from '../tokens/ex
@Pipe({ @Pipe({
name: 'createInjector', name: 'createInjector',
standalone: true,
}) })
export class CreateInjectorPipe<R> implements PipeTransform { export class CreateInjectorPipe<R> implements PipeTransform {
public transform( public transform(

77
npm/ng-packs/packages/components/extensible/src/lib/services/extensible-form-prop.service.ts

@ -0,0 +1,77 @@
import { inject, Injectable } from '@angular/core';
import { ValidatorFn, Validators } from '@angular/forms';
import { AbpValidators, ConfigStateService } from '@abp/ng.core';
import { map } from 'rxjs/operators';
import { FormProp } from '../models/form-props';
import { ePropType } from '../enums/props.enum';
@Injectable()
export class ExtensibleFormPropService {
readonly #configStateService = inject(ConfigStateService);
meridian$ = this.#configStateService
.getDeep$('localization.currentCulture.dateTimeFormat.shortTimePattern')
.pipe(map((shortTimePattern: string | undefined) => (shortTimePattern || '').includes('tt')));
isRequired(validator: ValidatorFn) {
return (
validator === Validators.required ||
validator === AbpValidators.required ||
validator.name === 'required'
);
}
getComponent(prop: FormProp) {
if (prop.template) {
return 'template';
}
switch (prop.type) {
case ePropType.Boolean:
return 'checkbox';
case ePropType.Date:
return 'date';
case ePropType.DateTime:
return 'dateTime';
case ePropType.Hidden:
return 'hidden';
case ePropType.MultiSelect:
return 'multiselect';
case ePropType.Text:
return 'textarea';
case ePropType.Time:
return 'time';
case ePropType.Typeahead:
return 'typeahead';
case ePropType.PasswordInputGroup:
return 'passwordinputgroup';
default:
return prop.options ? 'select' : 'input';
}
}
getType(prop: FormProp) {
switch (prop.type) {
case ePropType.Date:
case ePropType.String:
return 'text';
case ePropType.Boolean:
return 'checkbox';
case ePropType.Number:
return 'number';
case ePropType.Email:
return 'email';
case ePropType.Password:
return 'password';
case ePropType.PasswordInputGroup:
return 'passwordinputgroup';
default:
return 'hidden';
}
}
calcAsterisks(validators: ValidatorFn[]) {
if (!validators) return '';
const required = validators.find(v => this.isRequired(v));
return required ? '*' : '';
}
}

5
npm/ng-packs/packages/components/page/src/page.module.ts

@ -1,6 +1,5 @@
import { CoreModule } from '@abp/ng.core'; import { CoreModule } from '@abp/ng.core';
import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { PagePartDirective } from './page-part.directive'; import { PagePartDirective } from './page-part.directive';
import { import {
@ -9,7 +8,7 @@ import {
PageToolbarContainerComponent, PageToolbarContainerComponent,
} from './page-parts.component'; } from './page-parts.component';
import { PageComponent } from './page.component'; import { PageComponent } from './page.component';
import {ExtensibleModule} from "@abp/ng.components/extensible"; import {PageToolbarComponent} from "@abp/ng.components/extensible";
const exportedDeclarations = [ const exportedDeclarations = [
PageComponent, PageComponent,
@ -21,7 +20,7 @@ const exportedDeclarations = [
@NgModule({ @NgModule({
declarations: [...exportedDeclarations], declarations: [...exportedDeclarations],
imports: [CommonModule, CoreModule, ThemeSharedModule, ExtensibleModule], imports: [CoreModule, ThemeSharedModule, PageToolbarComponent],
exports: [...exportedDeclarations], exports: [...exportedDeclarations],
}) })
export class PageModule {} export class PageModule {}

5
npm/ng-packs/packages/components/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/components"], "outputs": ["{workspaceRoot}/coverage/packages/components"],
"options": { "options": {
"jestConfig": "packages/components/jest.config.ts", "jestConfig": "packages/components/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": [ "lintFilePatterns": [
"packages/components/src/**/*.ts", "packages/components/src/**/*.ts",

5
npm/ng-packs/packages/core/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/core"], "outputs": ["{workspaceRoot}/coverage/packages/core"],
"options": { "options": {
"jestConfig": "packages/core/jest.config.ts", "jestConfig": "packages/core/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": ["packages/core/src/**/*.ts", "packages/core/src/**/*.html"] "lintFilePatterns": ["packages/core/src/**/*.ts", "packages/core/src/**/*.html"]
}, },

8
npm/ng-packs/packages/core/src/lib/abstracts/ng-model.component.ts

@ -1,11 +1,11 @@
import { ChangeDetectorRef, Component, Injector, Input } from '@angular/core'; import { ChangeDetectorRef, Component, inject, Input } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms'; import { ControlValueAccessor } from '@angular/forms';
// Not an abstract class on purpose. Do not change! // Not an abstract class on purpose. Do not change!
@Component({ template: '' }) @Component({ template: '' })
export class AbstractNgModelComponent<T = any, U = T> implements ControlValueAccessor { export class AbstractNgModelComponent<T = any, U = T> implements ControlValueAccessor {
protected _value!: T; protected _value!: T;
protected cdRef: ChangeDetectorRef; protected cdRef = inject(ChangeDetectorRef);
onChange?: (value: T) => void; onChange?: (value: T) => void;
onTouched?: () => void; onTouched?: () => void;
@ -39,10 +39,6 @@ export class AbstractNgModelComponent<T = any, U = T> implements ControlValueAcc
return this._value; return this._value;
} }
constructor(public injector: Injector) {
this.cdRef = injector.get(ChangeDetectorRef);
}
notifyValueChange(): void { notifyValueChange(): void {
if (this.onChange) { if (this.onChange) {
this.onChange(this.value); this.onChange(this.value);

5
npm/ng-packs/packages/feature-management/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/feature-management"], "outputs": ["{workspaceRoot}/coverage/packages/feature-management"],
"options": { "options": {
"jestConfig": "packages/feature-management/jest.config.ts", "jestConfig": "packages/feature-management/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": [ "lintFilePatterns": [
"packages/feature-management/src/**/*.ts", "packages/feature-management/src/**/*.ts",

11
npm/ng-packs/packages/generators/project.json

@ -41,7 +41,7 @@
"dependsOn": ["build"] "dependsOn": ["build"]
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"], "outputs": ["{options.outputFile}"],
"options": { "options": {
"lintFilePatterns": [ "lintFilePatterns": [
@ -55,14 +55,7 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"], "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": { "options": {
"jestConfig": "packages/generators/jest.config.ts", "jestConfig": "packages/generators/jest.config.ts"
"passWithNoTests": true
},
"configurations": {
"ci": {
"ci": true,
"codeCoverage": true
}
} }
} }
}, },

5
npm/ng-packs/packages/identity/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/identity"], "outputs": ["{workspaceRoot}/coverage/packages/identity"],
"options": { "options": {
"jestConfig": "packages/identity/jest.config.ts", "jestConfig": "packages/identity/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": ["packages/identity/src/**/*.ts", "packages/identity/src/**/*.html"] "lintFilePatterns": ["packages/identity/src/**/*.ts", "packages/identity/src/**/*.html"]
}, },

5
npm/ng-packs/packages/oauth/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"], "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": { "options": {
"jestConfig": "packages/oauth/jest.config.ts", "jestConfig": "packages/oauth/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": ["packages/oauth/**/*.ts", "packages/oauth/**/*.html"] "lintFilePatterns": ["packages/oauth/**/*.ts", "packages/oauth/**/*.html"]
} }

5
npm/ng-packs/packages/permission-management/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/permission-management"], "outputs": ["{workspaceRoot}/coverage/packages/permission-management"],
"options": { "options": {
"jestConfig": "packages/permission-management/jest.config.ts", "jestConfig": "packages/permission-management/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": [ "lintFilePatterns": [
"packages/permission-management/src/**/*.ts", "packages/permission-management/src/**/*.ts",

5
npm/ng-packs/packages/schematics/project.json

@ -9,12 +9,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/schematics"], "outputs": ["{workspaceRoot}/coverage/packages/schematics"],
"options": { "options": {
"jestConfig": "packages/schematics/jest.config.ts", "jestConfig": "packages/schematics/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": ["packages/schematics/src/**/*.ts", "packages/schematics/src/**/*.html"] "lintFilePatterns": ["packages/schematics/src/**/*.ts", "packages/schematics/src/**/*.html"]
}, },

5
npm/ng-packs/packages/setting-management/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/setting-management"], "outputs": ["{workspaceRoot}/coverage/packages/setting-management"],
"options": { "options": {
"jestConfig": "packages/setting-management/jest.config.ts", "jestConfig": "packages/setting-management/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": [ "lintFilePatterns": [
"packages/setting-management/src/**/*.ts", "packages/setting-management/src/**/*.ts",

5
npm/ng-packs/packages/tenant-management/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/tenant-management"], "outputs": ["{workspaceRoot}/coverage/packages/tenant-management"],
"options": { "options": {
"jestConfig": "packages/tenant-management/jest.config.ts", "jestConfig": "packages/tenant-management/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": [ "lintFilePatterns": [
"packages/tenant-management/src/**/*.ts", "packages/tenant-management/src/**/*.ts",

5
npm/ng-packs/packages/theme-basic/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/theme-basic"], "outputs": ["{workspaceRoot}/coverage/packages/theme-basic"],
"options": { "options": {
"jestConfig": "packages/theme-basic/jest.config.ts", "jestConfig": "packages/theme-basic/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": [ "lintFilePatterns": [
"packages/theme-basic/src/**/*.ts", "packages/theme-basic/src/**/*.ts",

5
npm/ng-packs/packages/theme-shared/project.json

@ -25,12 +25,11 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/packages/theme-shared"], "outputs": ["{workspaceRoot}/coverage/packages/theme-shared"],
"options": { "options": {
"jestConfig": "packages/theme-shared/jest.config.ts", "jestConfig": "packages/theme-shared/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {
"executor": "@nx/linter:eslint", "executor": "@nx/eslint:lint",
"options": { "options": {
"lintFilePatterns": [ "lintFilePatterns": [
"packages/theme-shared/src/**/*.ts", "packages/theme-shared/src/**/*.ts",

4
npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts

@ -43,8 +43,4 @@ export class FormCheckboxComponent extends AbstractNgModelComponent {
@Input() checkboxReadonly = false; @Input() checkboxReadonly = false;
@Output() checkboxBlur = new EventEmitter<void>(); @Output() checkboxBlur = new EventEmitter<void>();
@Output() checkboxFocus = new EventEmitter<void>(); @Output() checkboxFocus = new EventEmitter<void>();
constructor(injector: Injector) {
super(injector);
}
} }

4
npm/ng-packs/packages/theme-shared/src/lib/components/form-input/form-input.component.ts

@ -45,8 +45,4 @@ export class FormInputComponent extends AbstractNgModelComponent {
@Input() inputClass = 'form-control'; @Input() inputClass = 'form-control';
@Output() formBlur = new EventEmitter<void>(); @Output() formBlur = new EventEmitter<void>();
@Output() formFocus = new EventEmitter<void>(); @Output() formFocus = new EventEmitter<void>();
constructor(injector: Injector) {
super(injector);
}
} }

11
npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts

@ -1,9 +1,12 @@
import { Component, forwardRef, Injector, Input } from '@angular/core'; import { Component, forwardRef, Input } from '@angular/core';
import { AbstractNgModelComponent } from '@abp/ng.core'; import { AbstractNgModelComponent } from '@abp/ng.core';
import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
import { CommonModule } from '@angular/common';
@Component({ @Component({
selector: 'abp-password', selector: 'abp-password',
standalone: true,
imports: [CommonModule, FormsModule],
templateUrl: `./password.component.html`, templateUrl: `./password.component.html`,
providers: [ providers: [
{ {
@ -18,10 +21,6 @@ export class PasswordComponent extends AbstractNgModelComponent {
@Input() formControlName!: string; @Input() formControlName!: string;
fieldTextType?: boolean; fieldTextType?: boolean;
constructor(injector: Injector) {
super(injector);
}
toggleFieldTextType() { toggleFieldTextType() {
this.fieldTextType = !this.fieldTextType; this.fieldTextType = !this.fieldTextType;
} }

7
npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts

@ -10,6 +10,7 @@ import {
@Directive({ @Directive({
selector: '[abpEllipsis]', selector: '[abpEllipsis]',
standalone:true
}) })
export class EllipsisDirective implements AfterViewInit { export class EllipsisDirective implements AfterViewInit {
@Input('abpEllipsis') @Input('abpEllipsis')
@ -44,9 +45,3 @@ export class EllipsisDirective implements AfterViewInit {
this.cdRef.detectChanges(); this.cdRef.detectChanges();
} }
} }
@NgModule({
exports: [EllipsisDirective],
declarations: [EllipsisDirective],
})
export class EllipsisModule {}

1
npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-default.directive.ts

@ -7,6 +7,7 @@ import { debounceTime } from 'rxjs/operators';
@Directive({ @Directive({
// eslint-disable-next-line @angular-eslint/directive-selector // eslint-disable-next-line @angular-eslint/directive-selector
selector: 'ngx-datatable[default]', selector: 'ngx-datatable[default]',
standalone:true,
exportAs: 'ngxDatatableDefault', exportAs: 'ngxDatatableDefault',
}) })
export class NgxDatatableDefaultDirective implements AfterViewInit, OnDestroy { export class NgxDatatableDefaultDirective implements AfterViewInit, OnDestroy {

1
npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts

@ -21,6 +21,7 @@ import {
@Directive({ @Directive({
// eslint-disable-next-line @angular-eslint/directive-selector // eslint-disable-next-line @angular-eslint/directive-selector
selector: 'ngx-datatable[list]', selector: 'ngx-datatable[list]',
standalone: true,
exportAs: 'ngxDatatableList', exportAs: 'ngxDatatableList',
}) })
export class NgxDatatableListDirective implements OnChanges, OnDestroy, OnInit { export class NgxDatatableListDirective implements OnChanges, OnDestroy, OnInit {

11
npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts

@ -22,7 +22,7 @@ import { ModalComponent } from './components/modal/modal.component';
import { ToastContainerComponent } from './components/toast-container/toast-container.component'; import { ToastContainerComponent } from './components/toast-container/toast-container.component';
import { ToastComponent } from './components/toast/toast.component'; import { ToastComponent } from './components/toast/toast.component';
import { DEFAULT_VALIDATION_BLUEPRINTS } from './constants/validation'; import { DEFAULT_VALIDATION_BLUEPRINTS } from './constants/validation';
import { EllipsisModule } from './directives/ellipsis.directive'; import { EllipsisDirective } from './directives/ellipsis.directive';
import { LoadingDirective } from './directives/loading.directive'; import { LoadingDirective } from './directives/loading.directive';
import { NgxDatatableDefaultDirective } from './directives/ngx-datatable-default.directive'; import { NgxDatatableDefaultDirective } from './directives/ngx-datatable-default.directive';
import { NgxDatatableListDirective } from './directives/ngx-datatable-list.directive'; import { NgxDatatableListDirective } from './directives/ngx-datatable-list.directive';
@ -52,9 +52,6 @@ const declarationsWithExports = [
ModalComponent, ModalComponent,
ToastComponent, ToastComponent,
ToastContainerComponent, ToastContainerComponent,
PasswordComponent,
NgxDatatableDefaultDirective,
NgxDatatableListDirective,
LoadingDirective, LoadingDirective,
ModalCloseDirective, ModalCloseDirective,
AbpVisibleDirective, AbpVisibleDirective,
@ -68,14 +65,16 @@ const declarationsWithExports = [
NgxDatatableModule, NgxDatatableModule,
NgxValidateCoreModule, NgxValidateCoreModule,
NgbPaginationModule, NgbPaginationModule,
EllipsisModule, EllipsisDirective,
CardModule, CardModule,
PasswordComponent,
NgxDatatableDefaultDirective,
NgxDatatableListDirective,
DisabledDirective DisabledDirective
], ],
declarations: [...declarationsWithExports, HttpErrorWrapperComponent], declarations: [...declarationsWithExports, HttpErrorWrapperComponent],
exports: [ exports: [
NgxDatatableModule, NgxDatatableModule,
EllipsisModule,
NgxValidateCoreModule, NgxValidateCoreModule,
CardModule, CardModule,
DisabledDirective, DisabledDirective,

8
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj

@ -8,9 +8,9 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Blazorise.Bootstrap5" Version="1.3.1" /> <PackageReference Include="Blazorise.Bootstrap5" Version="1.3.2" />
<PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.1" /> <PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.2" />
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
</ItemGroup> </ItemGroup>
@ -82,7 +82,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20231026071039_Initial.Designer.cs

@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs

@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

10
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj

@ -8,9 +8,9 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Blazorise.Bootstrap5" Version="1.3.1" /> <PackageReference Include="Blazorise.Bootstrap5" Version="1.3.2" />
<PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.1" /> <PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.2" />
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
</ItemGroup> </ItemGroup>
@ -83,11 +83,11 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0-rc.2.*"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
<PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets> <PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets>
</PackageReference> </PackageReference>

8
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj

@ -9,10 +9,10 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Blazorise.Bootstrap5" Version="1.3.1" /> <PackageReference Include="Blazorise.Bootstrap5" Version="1.3.2" />
<PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.1" /> <PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.2" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

6
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj

@ -8,11 +8,11 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
</ItemGroup> </ItemGroup>
@ -78,7 +78,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/20231026071041_Initial.Designer.cs

@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/Migrations/MyProjectNameDbContextModelSnapshot.cs

@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

8
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj

@ -8,11 +8,11 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
</ItemGroup> </ItemGroup>
@ -79,11 +79,11 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0-rc.2.*"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
<PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets> <PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets>
</PackageReference> </PackageReference>

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared/MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared.csproj

@ -29,7 +29,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

4
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj

@ -8,7 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
</ItemGroup> </ItemGroup>
@ -74,7 +74,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20231026071035_Initial.Designer.cs

@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/MyProjectNameDbContextModelSnapshot.cs

@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Host.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

6
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj

@ -8,7 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
</ItemGroup> </ItemGroup>
@ -75,11 +75,11 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0-rc.2.*"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
<PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets> <PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets>
</PackageReference> </PackageReference>

4
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj

@ -8,7 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
</ItemGroup> </ItemGroup>
@ -77,7 +77,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20231026071042_Initial.Designer.cs

@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

2
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs

@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Mvc.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

6
templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj

@ -8,7 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
</ItemGroup> </ItemGroup>
@ -78,11 +78,11 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0-rc.2.*"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
<PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets> <PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets>
</PackageReference> </PackageReference>

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj

@ -39,9 +39,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0" />
<PackageReference Include="DistributedLock.Redis" Version="1.0.2" /> <PackageReference Include="DistributedLock.Redis" Version="1.0.2" />
</ItemGroup> </ItemGroup>

8
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj

@ -14,11 +14,11 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Blazorise.Bootstrap5" Version="1.3.1" /> <PackageReference Include="Blazorise.Bootstrap5" Version="1.3.2" />
<PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.1" /> <PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.2" />
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0" />
<PackageReference Include="DistributedLock.Redis" Version="1.0.2" /> <PackageReference Include="DistributedLock.Redis" Version="1.0.2" />
</ItemGroup> </ItemGroup>

6
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj

@ -14,9 +14,9 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Blazorise.Bootstrap5" Version="1.3.1" /> <PackageReference Include="Blazorise.Bootstrap5" Version="1.3.2" />
<PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.1" /> <PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.2" />
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
</ItemGroup> </ItemGroup>

8
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj

@ -12,10 +12,10 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Blazorise.Bootstrap5" Version="1.3.1" /> <PackageReference Include="Blazorise.Bootstrap5" Version="1.3.2" />
<PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.1" /> <PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.2" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

41
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/global.css

File diff suppressed because one or more lines are too long

40
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/global.js

File diff suppressed because one or more lines are too long

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/index.html

@ -8,7 +8,7 @@
<base href="/" /> <base href="/" />
<!--ABP:Styles--> <!--ABP:Styles-->
<link href="global.css?_v=638319460751615999" rel="stylesheet"/> <link href="global.css?_v=638356448434814647" rel="stylesheet"/>
<link href="main.css" rel="stylesheet"/> <link href="main.css" rel="stylesheet"/>
<!--/ABP:Styles--> <!--/ABP:Styles-->
<link href="MyCompanyName.MyProjectName.Blazor.styles.css" rel="stylesheet"/> <link href="MyCompanyName.MyProjectName.Blazor.styles.css" rel="stylesheet"/>
@ -29,7 +29,7 @@
</div> </div>
<!--ABP:Scripts--> <!--ABP:Scripts-->
<script src="global.js?_v=638319460753061114"></script> <script src="global.js?_v=638356448436539819"></script>
<!--/ABP:Scripts--> <!--/ABP:Scripts-->
<!-- <TEMPLATE-REMOVE IF-NOT='PWA'> --> <!-- <TEMPLATE-REMOVE IF-NOT='PWA'> -->

8
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" /> <Import Project="..\..\common.props" />
@ -18,11 +18,11 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.Extensions.Logging" Version="7.0.0" /> <PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.1" /> <PackageReference Include="Serilog.Sinks.Console" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj

@ -26,7 +26,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20231026070402_Initial.Designer.cs

@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs

@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj

@ -22,7 +22,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0-rc.2.*"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference> </PackageReference>

6
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj

@ -11,10 +11,10 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0" />
<PackageReference Include="DistributedLock.Redis" Version="1.0.2" /> <PackageReference Include="DistributedLock.Redis" Version="1.0.2" />
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy\Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj" /> <ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy\Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj" />
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" /> <ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj

@ -11,7 +11,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.MultiTenancy\Volo.Abp.AspNetCore.MultiTenancy.csproj" /> <ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.MultiTenancy\Volo.Abp.AspNetCore.MultiTenancy.csproj" />
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" /> <ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj

@ -17,9 +17,9 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="DistributedLock.Redis" Version="1.0.2" /> <PackageReference Include="DistributedLock.Redis" Version="1.0.2" />
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0" />
<PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="7.0.3" /> <PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="7.0.3" />
</ItemGroup> </ItemGroup>

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj

@ -39,7 +39,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
</ItemGroup> </ItemGroup>

4
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" /> <Import Project="..\..\common.props" />
@ -14,7 +14,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

4
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" /> <Import Project="..\..\common.props" />
@ -9,7 +9,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

4
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" /> <Import Project="..\..\common.props" />
@ -15,7 +15,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

4
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj

@ -22,8 +22,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.Http.Polly" Version="8.0.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

4
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" /> <Import Project="..\..\common.props" />
@ -14,7 +14,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="EphemeralMongo.Core" Version="1.1.3" /> <PackageReference Include="EphemeralMongo.Core" Version="1.1.3" />
<PackageReference Include="EphemeralMongo6.runtime.linux-x64" Version="1.1.3" Condition="$([MSBuild]::IsOSPlatform('Linux'))" /> <PackageReference Include="EphemeralMongo6.runtime.linux-x64" Version="1.1.3" Condition="$([MSBuild]::IsOSPlatform('Linux'))" />
<PackageReference Include="EphemeralMongo6.runtime.osx-x64" Version="1.1.3" Condition="$([MSBuild]::IsOSPlatform('OSX'))" /> <PackageReference Include="EphemeralMongo6.runtime.osx-x64" Version="1.1.3" Condition="$([MSBuild]::IsOSPlatform('OSX'))" />

10
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" /> <Import Project="..\..\common.props" />
@ -16,16 +16,16 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="NSubstitute" Version="5.1.0" /> <PackageReference Include="NSubstitute" Version="5.1.0" />
<PackageReference Include="NSubstitute.Analyzers.CSharp" Version="1.0.16"> <PackageReference Include="NSubstitute.Analyzers.CSharp" Version="1.0.16">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Shouldly" Version="4.2.1" /> <PackageReference Include="Shouldly" Version="4.2.1" />
<PackageReference Include="xunit" Version="2.5.1" /> <PackageReference Include="xunit" Version="2.6.1" />
<PackageReference Include="xunit.extensibility.execution" Version="2.5.1" /> <PackageReference Include="xunit.extensibility.execution" Version="2.6.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.1" /> <PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
</ItemGroup> </ItemGroup>
</Project> </Project>

6
templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" /> <Import Project="..\..\common.props" />
@ -14,8 +14,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="HtmlAgilityPack" Version="1.11.42" /> <PackageReference Include="HtmlAgilityPack" Version="1.11.54" />
<ProjectReference Include="..\MyCompanyName.MyProjectName.Application.Tests\MyCompanyName.MyProjectName.Application.Tests.csproj" /> <ProjectReference Include="..\MyCompanyName.MyProjectName.Application.Tests\MyCompanyName.MyProjectName.Application.Tests.csproj" />
<ProjectReference Include="..\..\src\MyCompanyName.MyProjectName.Web\MyCompanyName.MyProjectName.Web.csproj" /> <ProjectReference Include="..\..\src\MyCompanyName.MyProjectName.Web\MyCompanyName.MyProjectName.Web.csproj" />
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.TestBase\Volo.Abp.AspNetCore.TestBase.csproj" /> <ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.TestBase\Volo.Abp.AspNetCore.TestBase.csproj" />

10
templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" /> <Import Project="..\..\common.props" />
@ -13,11 +13,11 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="7.0.0" /> <PackageReference Include="Serilog.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="7.0.0" /> <PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.1" /> <PackageReference Include="Serilog.Sinks.Console" Version="5.0.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
</ItemGroup> </ItemGroup>

2
templates/maui/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj

@ -35,7 +35,7 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

2
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20231026071058_Initial.Designer.cs

@ -22,7 +22,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

2
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs

@ -19,7 +19,7 @@ namespace MyCompanyName.MyProjectName.Migrations
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
.HasAnnotation("ProductVersion", "8.0.0-rc.2.23480.1") .HasAnnotation("ProductVersion", "8.0.0.23480.1")
.HasAnnotation("Relational:MaxIdentifierLength", 128); .HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

6
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj

@ -11,10 +11,10 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" /> <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="8.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0-rc.2.*"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference> </PackageReference>

8
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj

@ -9,10 +9,10 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Blazorise.Bootstrap5" Version="1.3.1" /> <PackageReference Include="Blazorise.Bootstrap5" Version="1.3.2" />
<PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.1" /> <PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.3.2" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.0-rc.2.*" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

15
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/wwwroot/global.css

File diff suppressed because one or more lines are too long

2
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/wwwroot/global.js

File diff suppressed because one or more lines are too long

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save