Browse Source

Merge branch 'dev' into maliming/6385

pull/6417/head
maliming 6 years ago
parent
commit
7f66080913
  1. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json
  2. 2
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
  3. 4
      docs/en/Domain-Driven-Design-Implementation-Guide.md
  4. 158
      docs/en/docs-nav.json
  5. 32
      docs/zh-Hans/Authentication/Social-External-Logins.md
  6. 2
      docs/zh-Hans/CLI.md
  7. 6
      docs/zh-Hans/Data-Access.md
  8. 36
      docs/zh-Hans/Modules/Account.md
  9. 1
      docs/zh-Hans/Modules/Blogging.md
  10. 3
      docs/zh-Hans/Modules/Client-Simulation.md
  11. 3
      docs/zh-Hans/Modules/Cms-Kit.md
  12. 1
      docs/zh-Hans/Modules/Feature-Management.md
  13. 2
      docs/zh-Hans/Modules/Identity.md
  14. 1
      docs/zh-Hans/Modules/IdentityServer.md
  15. 22
      docs/zh-Hans/Modules/Index.md
  16. 1
      docs/zh-Hans/Modules/Users.md
  17. 456
      docs/zh-Hans/docs-nav.json
  18. 4
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs
  19. 21
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundleOptions.cs
  20. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundleTypeDefinition.cs
  21. 116
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundlerBase.cs
  22. 11
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundlingConsts.cs
  23. 106
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundlingService.cs
  24. 9
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/IBundler.cs
  25. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/IBundlingService.cs
  26. 23
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/PathHelper.cs
  27. 10
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/Scripts/IScriptBundler.cs
  28. 34
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/Scripts/ScriptBundler.cs
  29. 77
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/Styles/CssRelativePathAdjuster.cs
  30. 10
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/Styles/IStyleBundler.cs
  31. 37
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/Styles/StyleBundler.cs
  32. 44
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/BundleCommand.cs
  33. 49
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginCommand.cs
  34. 128
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SuiteCommand.cs
  35. 7
      framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs
  36. 4
      framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs
  37. 2
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json
  38. 224
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock
  39. 4
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json
  40. 260
      framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock
  41. 4
      modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs
  42. 13
      modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs
  43. 4
      modules/blogging/app/Volo.BloggingTestApp/package.json
  44. 332
      modules/blogging/app/Volo.BloggingTestApp/yarn.lock
  45. 2
      modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json
  46. 238
      modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
  47. 8
      modules/cms-kit/angular/package.json
  48. 4
      modules/cms-kit/angular/projects/cms-kit/package.json
  49. 2
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json
  50. 238
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
  51. 2
      modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json
  52. 238
      modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
  53. 2
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json
  54. 238
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
  55. 4
      modules/docs/app/VoloDocs.Web/package.json
  56. 298
      modules/docs/app/VoloDocs.Web/yarn.lock
  57. 1
      modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/EfCoreFeatureValueRepository.cs
  58. 1
      modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs
  59. 2
      modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EFCoreIdentitySecurityLogRepository.cs
  60. 3
      modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityLinkUserRepository.cs
  61. 3
      modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityRoleRepository.cs
  62. 6
      modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs
  63. 1
      modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreOrganizationUnitRepository.cs
  64. 3
      modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityLinkUserRepository.cs
  65. 6
      modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs
  66. 2
      modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySecurityLogRepository.cs
  67. 10
      modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs
  68. 1
      modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs
  69. 4
      modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiScopes/ApiScopeRepository.cs
  70. 1
      modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/EfCorePermissionGrantRepository.cs
  71. 1
      modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionGrantRepository.cs
  72. 1
      modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/EfCoreSettingRepository.cs
  73. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs
  74. 10
      modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo/Abp/Users/EntityFrameworkCore/EfCoreAbpUserRepositoryBase.cs
  75. 6
      modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs
  76. 2
      npm/lerna.json
  77. 2
      npm/ng-packs/lerna.version.json
  78. 20
      npm/ng-packs/package.json
  79. 4
      npm/ng-packs/packages/components/package.json
  80. 4
      npm/ng-packs/packages/core/package.json
  81. 4
      npm/ng-packs/packages/feature-management/package.json
  82. 6
      npm/ng-packs/packages/identity/package.json
  83. 4
      npm/ng-packs/packages/permission-management/package.json
  84. 2
      npm/ng-packs/packages/schematics/package.json
  85. 4
      npm/ng-packs/packages/setting-management/package.json
  86. 6
      npm/ng-packs/packages/tenant-management/package.json
  87. 4
      npm/ng-packs/packages/theme-basic/package.json
  88. 53
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html
  89. 94
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts
  90. 4
      npm/ng-packs/packages/theme-shared/extensions/src/lib/enums/props.enum.ts
  91. 4
      npm/ng-packs/packages/theme-shared/extensions/src/lib/models/props.ts
  92. 2
      npm/ng-packs/packages/theme-shared/extensions/src/lib/ui-extensions.module.ts
  93. 37
      npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/case.util.ts
  94. 24
      npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/state.util.ts
  95. 43
      npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/typeahead.util.ts
  96. 18
      npm/ng-packs/packages/theme-shared/extensions/src/tests/case.util.spec.ts
  97. 102
      npm/ng-packs/packages/theme-shared/extensions/src/tests/state.util.spec.ts
  98. 72
      npm/ng-packs/packages/theme-shared/extensions/src/tests/typeahead.util.spec.ts
  99. 6
      npm/ng-packs/packages/theme-shared/package.json
  100. 8
      npm/ng-packs/packages/theme-shared/src/lib/constants/styles.ts

2
abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json

@ -27,6 +27,8 @@
"Blog": "Blog",
"Commercial": "Commercial",
"MyAccount": "My account",
"Permission:License": "License",
"Permission:UserInfo": "Usere info",
"SeeDocuments": "See Documents",
"Samples": "Samples"
}

2
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json

@ -45,7 +45,7 @@
"CompleteArchitectureInfo": "Modern architecture to create maintainable software solutions.",
"DomainDrivenDesignBasedLayeringModelExplanation": "Helps you to implement a DDD based layered architecture and build a maintainable code base.",
"DomainDrivenDesignBasedLayeringModelExplanationCont": "Provides startup templates, abstractions, base classes, services, documentation and guides to help you to develop your application based on DDD patterns & principles.",
"MicroserviceCompatibleModelExplanation": "The core framework & pre-build modules are designed the microservice architecture in mind.",
"MicroserviceCompatibleModelExplanation": "The core framework & pre-build modules are designed with microservice architecture in mind.",
"MicroserviceCompatibleModelExplanationCont": "Provides infrastructure, integrations, samples and documentation to implement microservice solutions easier, while it doesn\u2019t bring additional complexity if you want a monolithic application.",
"ModularInfo": "ABP provides a module system that allows you to develop reusable application modules, tie into application lifecycle events, and express dependencies between core parts of your system.",
"PreBuiltModulesThemes": "Pre-Built Modules & Themes",

4
docs/en/Domain-Driven-Design-Implementation-Guide.md

@ -1971,8 +1971,8 @@ Application Services can directly work with repositories to query, create, updat
## Reference Books
If you are seriously interest in the Domain Driven Design and building large-scale enterprise systems, the following books are recommended as reference books;
If you are more interested in the Domain Driven Design and building large-scale enterprise systems, the following books are recommended as reference books;
* "*Domain Driven Design*" by Eric Evans
* "*Implementing Domain Driven Design*" by Vaughn Vernon
* "*Clean Architecture*" by Robert C. Martin
* "*Clean Architecture*" by Robert C. Martin

158
docs/en/docs-nav.json

@ -107,14 +107,6 @@
{
"text": "Fundamentals",
"items": [
{
"text": "Configuration",
"path": "Configuration.md"
},
{
"text": "Options",
"path": "Options.md"
},
{
"text": "Dependency Injection",
"path": "Dependency-Injection.md",
@ -126,12 +118,16 @@
]
},
{
"text": "Localization",
"path": "Localization.md"
"text": "Configuration",
"path": "Configuration.md"
},
{
"text": "Exception Handling",
"path": "Exception-Handling.md"
"text": "Options",
"path": "Options.md"
},
{
"text": "Authorization",
"path": "Authorization.md"
},
{
"text": "Validation",
@ -144,8 +140,8 @@
]
},
{
"text": "Authorization",
"path": "Authorization.md"
"text": "Localization",
"path": "Localization.md"
},
{
"text": "Caching",
@ -158,8 +154,8 @@
]
},
{
"text": "Logging",
"path": "Logging.md"
"text": "Exception Handling",
"path": "Exception-Handling.md"
},
{
"text": "Settings",
@ -172,12 +168,20 @@
{
"text": "Object Extensions",
"path": "Object-Extensions.md"
},
{
"text": "Logging",
"path": "Logging.md"
}
]
},
{
"text": "Infrastructure",
"items": [
{
"text": "Audit Logging",
"path": "Audit-Logging.md"
},
{
"text": "Background Jobs",
"path": "Background-Jobs.md",
@ -207,67 +211,62 @@
]
},
{
"text": "Event Bus",
"text": "BLOB Storing",
"items": [
{
"text": "Overall",
"path": "Event-Bus.md"
},
{
"text": "Local Event Bus",
"path": "Local-Event-Bus.md"
"text": "BLOB Storing System",
"path": "Blob-Storing.md"
},
{
"text": "Distributed Event Bus",
"path": "Distributed-Event-Bus.md",
"text": "Storage Providers",
"items": [
{
"text": "RabbitMQ Integration",
"path": "Distributed-Event-Bus-RabbitMQ-Integration.md"
"text": "File System Provider",
"path": "Blob-Storing-File-System.md"
},
{
"text": "Kafka Integration",
"path": "Distributed-Event-Bus-Kafka-Integration.md"
"text": "Database Provider",
"path": "Blob-Storing-Database.md"
},
{
"text": "Rebus Integration",
"path": "Distributed-Event-Bus-Rebus-Integration.md"
"text": "Azure Provider",
"path": "Blob-Storing-Azure.md"
},
{
"text": "Aliyun Provider",
"path": "Blob-Storing-Aliyun.md"
},
{
"text": "Minio Provider",
"path": "Blob-Storing-Minio.md"
},
{
"text": "AWS Provider",
"path": "Blob-Storing-Aws.md"
},
{
"text": "Create a Custom Provider",
"path": "Blob-Storing-Custom-Provider.md"
}
]
}
]
},
{
"text": "Data Seeding",
"path": "Data-Seeding.md"
},
{
"text": "Virtual File System",
"path": "Virtual-File-System.md"
},
{
"text": "CSRF/XSRF & Anti Forgery",
"path": "CSRF-Anti-Forgery.md"
},
{
"text": "Audit Logging",
"path": "Audit-Logging.md"
},
{
"text": "Features",
"path": "Features.md"
"text": "Current User",
"path": "CurrentUser.md"
},
{
"text": "Data Filtering",
"path": "Data-Filtering.md"
},
{
"text": "Current User",
"path": "CurrentUser.md"
},
{
"text": "Object to object mapping",
"path": "Object-To-Object-Mapping.md"
"text": "Data Seeding",
"path": "Data-Seeding.md"
},
{
"text": "Email Sending",
@ -283,58 +282,59 @@
]
},
{
"text": "BLOB Storing",
"text": "Event Bus",
"items": [
{
"text": "BLOB Storing System",
"path": "Blob-Storing.md"
"text": "Overall",
"path": "Event-Bus.md"
},
{
"text": "Storage Providers",
"text": "Local Event Bus",
"path": "Local-Event-Bus.md"
},
{
"text": "Distributed Event Bus",
"path": "Distributed-Event-Bus.md",
"items": [
{
"text": "File System Provider",
"path": "Blob-Storing-File-System.md"
},
{
"text": "Database Provider",
"path": "Blob-Storing-Database.md"
},
{
"text": "Azure Provider",
"path": "Blob-Storing-Azure.md"
},
{
"text": "Aliyun Provider",
"path": "Blob-Storing-Aliyun.md"
},
{
"text": "Minio Provider",
"path": "Blob-Storing-Minio.md"
"text": "RabbitMQ Integration",
"path": "Distributed-Event-Bus-RabbitMQ-Integration.md"
},
{
"text": "AWS Provider",
"path": "Blob-Storing-Aws.md"
"text": "Kafka Integration",
"path": "Distributed-Event-Bus-Kafka-Integration.md"
},
{
"text": "Create a Custom Provider",
"path": "Blob-Storing-Custom-Provider.md"
"text": "Rebus Integration",
"path": "Distributed-Event-Bus-Rebus-Integration.md"
}
]
}
]
},
{
"text": "Text Templating",
"path": "Text-Templating.md"
"text": "Features",
"path": "Features.md"
},
{
"text": "GUID Generation",
"path": "Guid-Generation.md"
},
{
"text": "Object to Object Mapping",
"path": "Object-To-Object-Mapping.md"
},
{
"text": "Text Templating",
"path": "Text-Templating.md"
},
{
"text": "Timing",
"path": "Timing.md"
},
{
"text": "Virtual File System",
"path": "Virtual-File-System.md"
}
]
},

32
docs/zh-Hans/Authentication/Social-External-Logins.md

@ -1,33 +1,3 @@
# 社交/外部登录
[帐户模块](../Modules/Account.md)已配置为开箱即用的处理社交或外部登录. 你可以按照ASP.NET Core文档向你的应用程序添加社交/外部登录提供程序.
## 示例: Facebook 认证
按照[ASP.NET Core Facebook集成文档](https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/social/facebook-logins)向你应用程序添加Facebook登录.
#### 添加NuGet包
添加[Microsoft.AspNetCore.Authentication.Facebook]包到你的项目. 基于你的架构,可能是 `.Web`,`.IdentityServer`(对于分层启动)或 `.Host` 项目.
#### 配置提供程序
在你模块的 `ConfigureServices` 方法中使用 `.AddFacebook(...)` 扩展方法来配置客户端:
````csharp
context.Services.AddAuthentication()
.AddFacebook(facebook =>
{
facebook.AppId = "...";
facebook.AppSecret = "...";
facebook.Scope.Add("email");
facebook.Scope.Add("public_profile");
});
````
> 最佳实践是使用 `appsettings.json` 或ASP.NET Core用户机密系统来存储你的凭据,而不是像这样硬编码值. 请参阅[微软](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins)文档了解如何使用用户机密.
## Angular UI
从v3.1开始,Angular UI使用授权码流程(作为最佳实践)通过重定向到MVC UI登录页面来对用户进行身份验证. 因此,即使你使用的是Angular UI,社交/外部登录集成也与上面说明的相同.并且可以开箱即用.
> 文档已经移动其他位置. 参阅[账户模块](../Modules/Account.md)文档.

2
docs/zh-Hans/CLI.md

@ -34,7 +34,7 @@ dotnet tool update -g Volo.Abp.Cli
* **`generate-proxy`**: 生成客户端代理以使用HTTP API端点.
* **`remove-proxy`**: 移除以前生成的客户端代理.
* **`switch-to-preview`**: 切换到ABP框架的最新预览版本。
* **`switch-to-preview`**: 切换解决方案所有ABP相关包为[夜间构建](Nightly-Builds.md)版本.
* **`switch-to-nightly`**: 切换解决方案所有ABP相关包为[夜间构建](Nightly-Builds.md)版本.
* **`switch-to-stable`**: 切换解决方案所有ABP相关包为最新的稳定版本.
* **`translate`**: 当源代码控制存储库中有多个JSON[本地化](Localization.md文件时,可简化翻译本地化文件的过程.
* **`login`**: 使用你在[abp.io](https://abp.io/)的用户名和密码在你的计算机上认证.

6
docs/zh-Hans/Data-Access.md

@ -8,4 +8,8 @@ ABP框架被设计为与数据库无关, 它通过[仓储](Repositories.md)和[
* [MongoDB](MongoDB.md)
* [Dapper](Dapper.md)
在以后的版本中可能会添加更多的提供程序.
## 另请参阅
* [连接字符串](Connection-Strings.md)
* [种子数据](Data-Seeding.md)
* [数据过滤](Data-Filtering.md)

36
docs/zh-Hans/Modules/Account.md

@ -0,0 +1,36 @@
# 账户模块
该模块提供必要的UI页面与组件使用户登录和注册到应用程序.
> 文档正在更新
## 社交/外部登录
### 示例: Facebook 认证
按照[ASP.NET Core Facebook集成文档](https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/social/facebook-logins)向你应用程序添加Facebook登录.
#### 添加NuGet包
添加[Microsoft.AspNetCore.Authentication.Facebook]包到你的项目. 基于你的架构,可能是 `.Web`,`.IdentityServer`(对于分层启动)或 `.Host` 项目.
#### 配置提供程序
在你模块的 `ConfigureServices` 方法中使用 `.AddFacebook(...)` 扩展方法来配置客户端:
````csharp
context.Services.AddAuthentication()
.AddFacebook(facebook =>
{
facebook.AppId = "...";
facebook.AppSecret = "...";
facebook.Scope.Add("email");
facebook.Scope.Add("public_profile");
});
````
> 最佳实践是使用 `appsettings.json` 或ASP.NET Core用户机密系统来存储你的凭据,而不是像这样硬编码值. 请参阅[微软](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins)文档了解如何使用用户机密.
### Angular UI
从v3.1开始,Angular UI使用授权码流程(作为最佳实践)通过重定向到MVC UI登录页面来对用户进行身份验证. 因此,即使你使用的是Angular UI,社交/外部登录集成也与上面说明的相同.并且可以开箱即用.

1
docs/zh-Hans/Modules/Blogging.md

@ -0,0 +1 @@
TODO...

3
docs/zh-Hans/Modules/Client-Simulation.md

@ -0,0 +1,3 @@
# Client Simulation Module
TODO

3
docs/zh-Hans/Modules/Cms-Kit.md

@ -0,0 +1,3 @@
# CMS Kit Module
TODO

1
docs/zh-Hans/Modules/Feature-Management.md

@ -0,0 +1 @@
TODO...

2
docs/zh-Hans/Modules/Identity.md

@ -2,7 +2,7 @@
身份模块基于Microsoft Identity库用于管理[组织单元](Organization-Units.md), 角色, 用户和他们的权限.
参阅 [源码](https://github.com/abpframework/abp/tree/dev/modules/identity). 文档很快会被完善.
> 参阅 [源码](https://github.com/abpframework/abp/tree/dev/modules/identity). 文档很快会被完善.
## Identity安全日志

1
docs/zh-Hans/Modules/IdentityServer.md

@ -0,0 +1 @@
TODO...

22
docs/zh-Hans/Modules/Index.md

@ -1,6 +1,6 @@
# 应用程序模块
ABP是一个 **模块化的应用程序框架** 由十多个 **nuget packages** 组成. 它提供了一个完整的基础设施来构建你自己的应用程序模块,这些模块包含实体,服务,数据库集成,API,UI组件等.
ABP是一个 **模块化的应用程序框架** 由十多个 **NuGet & NPM packages** 组成. 它提供了一个完整的基础设施来构建你自己的应用程序模块,这些模块包含实体,服务,数据库集成,API,UI组件等.
**有两种类型的模块.** 它们没有任何结构上的差异,只是按照功能和目地分类:
@ -9,20 +9,20 @@ ABP是一个 **模块化的应用程序框架** 由十多个 **nuget packages**
## 开源的应用程序模块
有一些由ABP社区开发和维护的 **开源免费** 的应用程序模块:
有一些由ABP框架开发和维护的 **开源免费** 的应用程序模块:
* **Account**: 提供账户管理UI,并允许用户登录/注册应用程序.
* [**Account**](Account.md): 提供账户管理UI,并允许用户登录/注册应用程序.
* [**Audit Logging**](Audit-Logging.md): 用于将审计日志持久化到数据库.
* **Background Jobs**: 用于在使用默认后台作业管理器时保存后台作业.
* **Blogging**: 用于创建精美的博客. ABP的[博客](https://blog.abp.io/) 就使用了此模块.
* [**Background Jobs**](Background-Jobs.md): 用于在使用默认后台作业管理器时保存后台作业.
* [**Blogging**](Blogging.md): 用于创建精美的博客. ABP的[博客](https://blog.abp.io/) 就使用了此模块.
* [**Docs**](Docs.md): 用于创建技术文档页面. ABP的[文档](https://abp.io/documents/) 就使用了此模块.
* **Feature Management**: 用于保存和管理功能.
* [**Feature Management**](Feature-Management.md): 用于保存和管理功能.
* [**Identity**](Identity.md): 基于Microsoft Identity管理组织单元,角色,用户和他们的权限.
* **Identity Server**: 集成了IdentityServer4.
* **Permission Management**: 用于保存权限.
* **Setting Management**: 用于保存设置.
* **Tenant Management**: 管理[多租户](../Multi-Tenancy.md)应用程序的租户.
* **Users**: 抽象用户, 因此其他模块可以依赖此模块而不是Identity模块.
* [**Identity Server**](IdentityServer.md): 集成了IdentityServer4.
* [**Permission Management**](Permission-Management.md): 用于保存权限.
* [**Setting Management**](Setting-Management.md): 用于保存设置.
* [**Tenant Management**](Tenant-Management.md): 管理[多租户](../Multi-Tenancy.md)应用程序的租户.
* [**Users**](Users.md): 抽象用户, 因此其他模块可以依赖此模块而不是Identity模块.
* [**Virtual File Explorer**](Virtual-File-Explorer.md): 提供简单的UI查看[虚拟文件系统](../Virtual-File-System.md)中的文件.
模块化文档正在编写中. 请参阅[这个仓库](https://github.com/abpframework/abp/tree/master/modules)获取所有模块的源代码.

1
docs/zh-Hans/Modules/Users.md

@ -0,0 +1 @@
TODO...

456
docs/zh-Hans/docs-nav.json

@ -21,9 +21,33 @@
}
]
},
{
"text": "启动模板",
"items": [
{
"text": "概述",
"path": "Startup-Templates/Index.md"
},
{
"text": "应用程序",
"path": "Startup-Templates/Application.md"
},
{
"text": "模块",
"path": "Startup-Templates/Module.md"
},
{
"text": "控制台",
"path": "Startup-Templates/Console.md"
},
{
"text": "WPF",
"path": "Startup-Templates/WPF.md"
}
]
},
{
"text": "教程",
"path": "Tutorials/Index.md",
"items": [
{
"text": "应用开发",
@ -41,29 +65,10 @@
"path": "Tutorials/Part-3.md"
}
]
}
]
},
{
"text": "指南",
"items": [
},
{
"text": "自定义应用模块",
"path": "Customizing-Application-Modules-Guide.md",
"items": [
{
"text": "扩展实体",
"path": "Customizing-Application-Modules-Extending-Entities.md"
},
{
"text": "重写服务",
"path": "Customizing-Application-Modules-Overriding-Services.md"
},
{
"text": "重写用户界面",
"path": "Customizing-Application-Modules-Overriding-User-Interface.md"
}
]
"text": "社区文章",
"path": "https://community.abp.io/articles"
},
{
"text": "从ASP.NET Boilerplate迁移",
@ -71,19 +76,6 @@
}
]
},
{
"text": "CLI",
"path": "CLI.md"
},
{
"text": "认证",
"items": [
{
"text": "社交/外部登录",
"path": "Authentication/Social-External-Logins.md"
}
]
},
{
"text": "基础知识",
"items": [
@ -105,10 +97,6 @@
}
]
},
{
"text": "虚拟文件系统",
"path": "Virtual-File-System.md"
},
{
"text": "本地化",
"path": "Localization.md"
@ -139,17 +127,13 @@
"text": "日志",
"path": "Logging.md"
},
{
"text": "审计日志",
"path": "Audit-Logging.md"
},
{
"text": "设置管理",
"path": "Settings.md"
},
{
"text": "数据过滤",
"path": "Data-Filtering.md"
"text": "连接字符串",
"path": "Connection-Strings.md"
},
{
"text": "对象扩展",
@ -158,39 +142,88 @@
]
},
{
"text": "事件总线",
"items": [
"text": "基础设施",
"items":[
{
"text": "概述",
"path": "Event-Bus.md"
},
{
"text": "本地 Event Bus",
"path": "Local-Event-Bus.md"
"text": "后台服务",
"items": [
{
"text": "后台作业",
"path": "Background-Jobs.md",
"items": [
{
"text": "Hangfire 集成",
"path": "Background-Jobs-Hangfire.md"
},
{
"text": "RabbitMQ 集成",
"path": "Background-Jobs-RabbitMq.md"
},
{
"text": "Quartz 集成",
"path": "Background-Jobs-Quartz.md"
}
]
},
{
"text": "后台工作者",
"path": "Background-Workers.md",
"items": [
{
"text": "Quartz 集成",
"path": "Background-Workers-Quartz.md"
}
]
}
]
},
{
"text": "分布式 Event Bus",
"path": "Distributed-Event-Bus.md",
"text": "事件总线",
"items": [
{
"text": "RabbitMQ 集成",
"path": "Distributed-Event-Bus-RabbitMQ-Integration.md"
"text": "概述",
"path": "Event-Bus.md"
},
{
"text": "Kafka 集成",
"path": "Distributed-Event-Bus-Kafka-Integration.md"
"text": "本地 Event Bus",
"path": "Local-Event-Bus.md"
},
{
"text": "Rebus 集成",
"path": "Distributed-Event-Bus-Rebus-Integration.md"
"text": "分布式 Event Bus",
"path": "Distributed-Event-Bus.md",
"items": [
{
"text": "RabbitMQ 集成",
"path": "Distributed-Event-Bus-RabbitMQ-Integration.md"
},
{
"text": "Kafka 集成",
"path": "Distributed-Event-Bus-Kafka-Integration.md"
},
{
"text": "Rebus 集成",
"path": "Distributed-Event-Bus-Rebus-Integration.md"
}
]
}
]
}
]
},
{
"text": "服务",
"items": [
},
{
"text": "种子数据",
"path": "Data-Seeding.md"
},
{
"text": "虚拟文件系统",
"path": "Virtual-File-System.md"
},
{
"text": "审计日志",
"path": "Audit-Logging.md"
},
{
"text": "数据过滤",
"path": "Data-Filtering.md"
},
{
"text": "当前用户",
"path": "CurrentUser.md"
@ -270,22 +303,41 @@
]
},
{
"text": "多租户",
"path": "Multi-Tenancy.md"
},
{
"text": "模块开发",
"items": [
{
"text": "基础",
"path": "Module-Development-Basics.md"
},
"text": "架构",
"items":[
{
"text": "模块插件"
},
{
"text": "最佳实践",
"path": "Best-Practices/Index.md"
"text": "模块化",
"items": [
{
"text": "基础",
"path": "Module-Development-Basics.md"
},
{
"text": "模块插件"
},
{
"text": "自定义应用模块",
"path": "Customizing-Application-Modules-Guide.md",
"items": [
{
"text": "扩展实体",
"path": "Customizing-Application-Modules-Extending-Entities.md"
},
{
"text": "重写服务",
"path": "Customizing-Application-Modules-Overriding-Services.md"
},
{
"text": "重写用户界面",
"path": "Customizing-Application-Modules-Overriding-User-Interface.md"
}
]
},
{
"text": "最佳实践",
"path": "Best-Practices/Index.md"
}
]
}
]
},
@ -335,6 +387,14 @@
"path": "Unit-Of-Work.md"
}
]
},
{
"text": "多租户",
"path": "Multi-Tenancy.md"
},
{
"text": "微服务架构",
"path": "Microservice-Architecture.md"
}
]
},
@ -516,58 +576,45 @@
"path": "Data-Access.md"
},
{
"text": "连接字符串",
"path": "Connection-Strings.md"
},
{
"text": "数据库提供程序",
"text": "Entity Framework Core",
"path": "Entity-Framework-Core.md",
"items": [
{
"text": "Entity Framework Core",
"path": "Entity-Framework-Core.md",
"items": [
"text": "数据库迁移",
"path": "Entity-Framework-Core-Migrations.md"
},
{
"text": "切换DMBS",
"path": "Entity-Framework-Core-Other-DBMS.md",
"items":[
{
"text": "数据库迁移",
"path": "Entity-Framework-Core-Migrations.md"
"text": "到MySql",
"path": "Entity-Framework-Core-MySQL.md"
},
{
"text": "切换DMBS",
"path": "Entity-Framework-Core-Other-DBMS.md",
"items":[
{
"text": "到MySql",
"path": "Entity-Framework-Core-MySQL.md"
},
{
"text": "到PostgreSQL",
"path": "Entity-Framework-Core-PostgreSQL.md"
},
{
"text": " Oracle",
"path": "Entity-Framework-Core-Oracle.md"
},
{
"text": "到SQLite",
"path": "Entity-Framework-Core-SQLite.md"
}
]
"text": "到PostgreSQL",
"path": "Entity-Framework-Core-PostgreSQL.md"
},
{
"text": " Oracle",
"path": "Entity-Framework-Core-Oracle.md"
},
{
"text": "到SQLite",
"path": "Entity-Framework-Core-SQLite.md"
}
]
},
{
"text": "MongoDB",
"path": "MongoDB.md"
},
{
"text": "Dapper",
"path": "Dapper.md"
}
]
},
{
"text": "种子数据",
"path": "Data-Seeding.md"
"text": "MongoDB",
"path": "MongoDB.md"
},
{
"text": "Dapper",
"path": "Dapper.md"
}
]
},
@ -581,111 +628,128 @@
]
},
{
"text": "后台服务",
"text": "示例",
"items": [
{
"text": "后台作业",
"path": "Background-Jobs.md",
"items": [
{
"text": "Hangfire 集成",
"path": "Background-Jobs-Hangfire.md"
},
{
"text": "RabbitMQ 集成",
"path": "Background-Jobs-RabbitMq.md"
},
{
"text": "Quartz 集成",
"path": "Background-Jobs-Quartz.md"
}
]
"text": "所有示例",
"path": "Samples/Index.md"
},
{
"text": "后台工作者",
"path": "Background-Workers.md",
"items": [
{
"text": "Quartz 集成",
"path": "Background-Workers-Quartz.md"
}
]
"text": "微服务示例",
"path": "Samples/Microservice-Demo.md"
}
]
},
},
{
"text": "启动模板",
"items": [
"text": "应用模块",
"items":[
{
"text": "概述",
"path": "Startup-Templates/Index.md"
"path": "Modules/Index.md"
},
{
"text": "应用程序",
"path": "Startup-Templates/Application.md"
"text": "账户",
"path": "Modules/Account.md"
},
{
"text": "模块",
"path": "Startup-Templates/Module.md"
"text": "审计日志",
"path": "Modules/Audit-Logging.md"
},
{
"text": "控制台",
"path": "Startup-Templates/Console.md"
"text": "后台作业",
"path": "Modules/Background-Jobs.md"
},
{
"text": "WPF",
"path": "Startup-Templates/WPF.md"
"text": "博客",
"path": "Modules/Blogging.md"
},
{
"text": "客户端模拟",
"path": "Modules/Client-Simulation.md"
},
{
"text": "CMS Kit",
"path": "Modules/Cms-Kit.md"
},
{
"text": "文档",
"path": "Modules/Docs.md"
},
{
"text": "功能管理",
"path": "Modules/Feature-Management.md"
},
{
"text": "Identity",
"path": "Modules/Identity.md"
},
{
"text": "IdentityServer",
"path": "Modules/IdentityServer.md"
},
{
"text": "权限管理",
"path": "Modules/Permission-Management.md"
},
{
"text": "设置管理",
"path": "Modules/Setting-Management.md"
},
{
"text": "租户管理",
"path": "Modules/Tenant-Management.md"
},
{
"text": "用户",
"path": "Modules/Users.md"
},
{
"text": "虚拟文件浏览器",
"path": "Modules/Virtual-File-Explorer.md"
}
]
},
{
"text": "示例",
"text": "发布信息",
"items": [
{
"text": "所有示例",
"path": "Samples/Index.md"
"text": "升级",
"path": "Upgrading.md"
},
{
"text": "微服务示例",
"path": "Samples/Microservice-Demo.md"
"text": "官方包",
"path": "https://abp.io/packages"
},
{
"text": "预览版本",
"path": "Previews.md"
},
{
"text": "每日构建",
"path": "Nightly-Builds.md"
},
{
"text": "路线图",
"path": "Road-Map.md"
}
]
},
{
"text": "应用模块",
"path": "Modules/Index.md"
},
{
"text": "微服务架构",
"path": "Microservice-Architecture.md"
},
{
"text": "预览版本",
"path": "Previews.md"
},
{
"text": "每日构建",
"path": "Nightly-Builds.md"
},
{
"text": "路线图",
"path": "Road-Map.md"
},
{
"text": "升级",
"path": "Upgrading.md"
"text": "参考",
"items": [
{
"text": "CLI",
"path": "CLI.md"
},
{
"text": "API文档",
"path": "{ApiDocumentationUrl}"
}
]
},
{
"text": "贡献指南",
"path": "Contribution/Index.md"
},
{
"text": "API文档",
"path": "{ApiDocumentationUrl}"
},
{
"text": "官方包",
"path": "https://abp.io/packages"
}
]
}

4
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs

@ -3,6 +3,7 @@ using Volo.Abp.Cli.Commands;
using Volo.Abp.Domain;
using Volo.Abp.IdentityModel;
using Volo.Abp.Json;
using Volo.Abp.Minify;
using Volo.Abp.Modularity;
namespace Volo.Abp.Cli
@ -10,7 +11,8 @@ namespace Volo.Abp.Cli
[DependsOn(
typeof(AbpDddDomainModule),
typeof(AbpJsonModule),
typeof(AbpIdentityModelModule)
typeof(AbpIdentityModelModule),
typeof(AbpMinifyModule)
)]
public class AbpCliCoreModule : AbpModule
{

21
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundleOptions.cs

@ -0,0 +1,21 @@
using JetBrains.Annotations;
namespace Volo.Abp.Cli.Bundling
{
public class BundleOptions
{
[NotNull]
public string Directory { get; set; }
[NotNull]
public string BundleName { get; set; }
[NotNull]
public string FrameworkVersion { get; set; }
[NotNull]
public string ProjectFileName { get; set; }
public bool Minify { get; set; }
}
}

2
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundleTypeDefinition.cs

@ -6,6 +6,6 @@ namespace Volo.Abp.Cli.Bundling
{
public int Level { get; set; }
public Type BundleContributerType { get; set; }
public Type BundleContributorType { get; set; }
}
}

116
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundlerBase.cs

@ -0,0 +1,116 @@
using Microsoft.Extensions.Logging;
using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml;
using Volo.Abp.Bundling;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Minify;
using Volo.Abp.Minify.NUglify;
namespace Volo.Abp.Cli.Bundling
{
public abstract class BundlerBase : IBundler, ITransientDependency
{
private static string[] _minFileSuffixes = { "min", "prod" };
protected IMinifier Minifier { get; }
public ILogger<BundlerBase> Logger { get; set; }
public abstract string FileExtension { get; }
public abstract string GenerateDefinition(string bundleFilePath);
protected BundlerBase(IMinifier minifier)
{
Minifier = minifier;
}
public string Bundle(BundleOptions options, BundleContext context)
{
var bundleFilePath = Path.Combine(PathHelper.GetWwwRootPath(options.Directory), $"{options.BundleName}{FileExtension}");
var bundledContent = BundleFiles(options, context);
File.WriteAllText(bundleFilePath, bundledContent);
return GenerateDefinition(bundleFilePath);
}
private bool IsMinFile(string fileName)
{
foreach (var suffix in _minFileSuffixes)
{
if (fileName.EndsWith($".{suffix}{FileExtension}", StringComparison.InvariantCultureIgnoreCase))
{
return true;
}
}
return false;
}
private string BundleFiles(BundleOptions options, BundleContext context)
{
var staticAssetsFilePath = Path.Combine(options.Directory, "bin", "Debug", options.FrameworkVersion, $"{options.ProjectFileName}.StaticWebAssets.xml");
if (!File.Exists(staticAssetsFilePath))
{
throw new BundlingException("Unable to find static web assets file. You need to build the project to generate static web assets file.");
}
var staticAssetsDefinitions = new XmlDocument();
staticAssetsDefinitions.Load(staticAssetsFilePath);
var builder = new StringBuilder();
foreach (var definition in context.BundleDefinitions)
{
string content;
if (definition.Source.StartsWith("_content"))
{
var pathFragments = definition.Source.Split('/').ToList();
var basePath = $"{pathFragments[0]}/{pathFragments[1]}";
var path = staticAssetsDefinitions.SelectSingleNode($"//ContentRoot[@BasePath='{basePath}']").Attributes["Path"].Value;
var absolutePath = definition.Source.Replace(basePath, path);
content = GetFileContent(absolutePath, options.Minify);
}
else if (definition.Source.StartsWith("_framework"))
{
var slashIndex = definition.Source.IndexOf('/');
var fileName = definition.Source.Substring(slashIndex + 1, definition.Source.Length - slashIndex - 1);
var filePath = Path.Combine(PathHelper.GetFrameworkFolderPath(options.Directory, options.FrameworkVersion), fileName);
content = GetFileContent(filePath, false);
}
else
{
var filePath = Path.Combine(PathHelper.GetWwwRootPath(options.Directory), definition.Source);
content = GetFileContent(filePath, options.Minify);
}
content = ProcessBeforeAddingToTheBundle(definition.Source, Path.Combine(options.Directory, "wwwroot"), content);
builder.AppendLine(content);
}
return builder.ToString();
}
private string GetFileContent(string filePath, bool minify)
{
var content = File.ReadAllText(filePath);
if (minify && !IsMinFile(filePath))
{
try
{
content = Minifier.Minify(content);
}
catch (NUglifyException ex)
{
Logger.LogWarning($"Unable to minify the file: {Path.GetFileName(filePath)}. Adding file to the bundle without minification.", ex);
}
}
return content;
}
protected virtual string ProcessBeforeAddingToTheBundle(string referencePath, string bundleDirectory, string fileContent)
{
return fileContent;
}
}
}

11
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundlingConsts.cs

@ -0,0 +1,11 @@
namespace Volo.Abp.Cli.Bundling
{
internal static class BundlingConsts
{
internal const string StylePlaceholderStart = "<!--ABP:Styles-->";
internal const string StylePlaceholderEnd = "<!--/ABP:Styles-->";
internal const string ScriptPlaceholderStart = "<!--ABP:Scripts-->";
internal const string ScriptPlaceholderEnd = "<!--/ABP:Scripts-->";
internal const string SupportedWebAssemblyProjectType = "Microsoft.NET.Sdk.BlazorWebAssembly";
}
}

106
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/BundlingService.cs

@ -1,4 +1,5 @@
using System;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@ -8,22 +9,25 @@ using System.Threading.Tasks;
using System.Xml;
using Volo.Abp.Bundling;
using Volo.Abp.Cli.Build;
using Volo.Abp.Cli.Bundling.Scripts;
using Volo.Abp.Cli.Bundling.Styles;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Minify.Scripts;
using Volo.Abp.Minify.Styles;
using Volo.Abp.Modularity;
namespace Volo.Abp.Cli.Bundling
{
public class BundlingService : IBundlingService, ITransientDependency
{
const string StylePlaceholderStart = "<!--ABP:Styles-->";
const string StylePlaceholderEnd = "<!--/ABP:Styles-->";
const string ScriptPlaceholderStart = "<!--ABP:Scripts-->";
const string ScriptPlaceholderEnd = "<!--/ABP:Scripts-->";
const string SupportedWebAssemblyProjectType = "Microsoft.NET.Sdk.BlazorWebAssembly";
public IDotNetProjectBuilder DotNetProjectBuilder { get; set; }
public IJavascriptMinifier JsMinifier { get; set; }
public ICssMinifier CssMinifier { get; set; }
public ILogger<BundlingService> Logger { get; set; }
public IScriptBundler ScriptBundler { get; set; }
public IStyleBundler StyleBundler { get; set; }
public async Task BundleAsync(string directory, bool forceBuild)
public async Task BundleAsync(string directory, bool forceBuild, bool bundle, bool minify, string bundleName)
{
var projectFiles = Directory.GetFiles(directory, "*.csproj");
if (!projectFiles.Any())
@ -44,17 +48,38 @@ namespace Volo.Abp.Cli.Bundling
}
var frameworkVersion = GetTargetFrameworkVersion(projectFilePath);
var assemblyFilePath = GetAssemblyFilePath(directory, frameworkVersion, Path.GetFileNameWithoutExtension(projectFilePath));
var projectName = Path.GetFileNameWithoutExtension(projectFilePath);
var assemblyFilePath = PathHelper.GetAssemblyFilePath(directory, frameworkVersion, projectName);
var startupModule = GetStartupModule(assemblyFilePath);
var bundleDefinitions = new List<BundleTypeDefinition>();
FindBundleContributersRecursively(startupModule, 0, bundleDefinitions);
FindBundleContributorsRecursively(startupModule, 0, bundleDefinitions);
bundleDefinitions = bundleDefinitions.OrderByDescending(t => t.Level).ToList();
var styleContext = GetStyleContext(bundleDefinitions);
var scriptContext = GetScriptContext(bundleDefinitions);
var styleDefinitions = GenerateStyleDefinitions(styleContext);
var scriptDefinitions = GenerateScriptDefinitions(scriptContext);
string styleDefinitions;
string scriptDefinitions;
if (bundle || minify)
{
var options = new BundleOptions
{
Directory = directory,
FrameworkVersion = frameworkVersion,
ProjectFileName = projectName,
BundleName = bundleName,
Minify = minify
};
styleDefinitions = StyleBundler.Bundle(options, styleContext);
scriptDefinitions = ScriptBundler.Bundle(options, scriptContext);
}
else
{
styleDefinitions = GenerateStyleDefinitions(styleContext);
scriptDefinitions = GenerateScriptDefinitions(scriptContext);
}
await UpdateDependenciesInHtmlFileAsync(directory, styleDefinitions, scriptDefinitions);
}
@ -65,8 +90,8 @@ namespace Volo.Abp.Cli.Bundling
foreach (var bundleDefinition in bundleDefinitions)
{
var contributer = CreateContributerInstance(bundleDefinition.BundleContributerType);
contributer.AddScripts(scriptContext);
var contributor = CreateContributorInstance(bundleDefinition.BundleContributorType);
contributor.AddScripts(scriptContext);
}
scriptContext.Add("_framework/blazor.webassembly.js");
@ -79,8 +104,8 @@ namespace Volo.Abp.Cli.Bundling
foreach (var bundleDefinition in bundleDefinitions)
{
var contributer = CreateContributerInstance(bundleDefinition.BundleContributerType);
contributer.AddStyles(styleContext);
var contributor = CreateContributorInstance(bundleDefinition.BundleContributorType);
contributor.AddStyles(styleContext);
}
return styleContext;
@ -88,7 +113,7 @@ namespace Volo.Abp.Cli.Bundling
private async Task UpdateDependenciesInHtmlFileAsync(string directory, string styleDefinitions, string scriptDefinitions)
{
var htmlFilePath = Path.Combine(directory, "wwwroot", "index.html");
var htmlFilePath = Path.Combine(PathHelper.GetWwwRootPath(directory), "index.html");
if (!File.Exists(htmlFilePath))
{
throw new BundlingException($"index.html file could not be found in the following path:{htmlFilePath}");
@ -102,8 +127,8 @@ namespace Volo.Abp.Cli.Bundling
content = await reader.ReadToEndAsync();
}
content = UpdatePlaceholders(content, StylePlaceholderStart, StylePlaceholderEnd, styleDefinitions);
content = UpdatePlaceholders(content, ScriptPlaceholderStart, ScriptPlaceholderEnd, scriptDefinitions);
content = UpdatePlaceholders(content, BundlingConsts.StylePlaceholderStart, BundlingConsts.StylePlaceholderEnd, styleDefinitions);
content = UpdatePlaceholders(content, BundlingConsts.ScriptPlaceholderStart, BundlingConsts.ScriptPlaceholderEnd, scriptDefinitions);
using (var writer = new StreamWriter(htmlFilePath, false, fileEncoding))
{
@ -124,7 +149,7 @@ namespace Volo.Abp.Cli.Bundling
{
var builder = new StringBuilder();
builder.AppendLine($"{StylePlaceholderStart}");
builder.AppendLine($"{BundlingConsts.StylePlaceholderStart}");
foreach (var style in context.BundleDefinitions)
{
@ -138,7 +163,7 @@ namespace Volo.Abp.Cli.Bundling
builder.AppendLine("/>");
}
builder.Append($" {StylePlaceholderEnd}");
builder.Append($" {BundlingConsts.StylePlaceholderEnd}");
return builder.ToString();
}
@ -146,7 +171,7 @@ namespace Volo.Abp.Cli.Bundling
private string GenerateScriptDefinitions(BundleContext context)
{
var builder = new StringBuilder();
builder.AppendLine($"{ScriptPlaceholderStart}");
builder.AppendLine($"{BundlingConsts.ScriptPlaceholderStart}");
foreach (var script in context.BundleDefinitions)
{
builder.Append($" <script src=\"{script.Source}\"");
@ -156,35 +181,35 @@ namespace Volo.Abp.Cli.Bundling
}
builder.AppendLine("></script>");
}
builder.Append($" {ScriptPlaceholderEnd}");
builder.Append($" {BundlingConsts.ScriptPlaceholderEnd}");
return builder.ToString();
}
private IBundleContributor CreateContributerInstance(Type bundleContributerType)
private IBundleContributor CreateContributorInstance(Type bundleContributorType)
{
return (IBundleContributor)Activator.CreateInstance(bundleContributerType);
return (IBundleContributor)Activator.CreateInstance(bundleContributorType);
}
private void FindBundleContributersRecursively(
private void FindBundleContributorsRecursively(
Type module,
int level,
List<BundleTypeDefinition> bundleDefinitions)
{
var bundleContributers = module.Assembly
var bundleContributors = module.Assembly
.GetTypes()
.Where(t => t.IsAssignableTo<IBundleContributor>())
.ToList();
if (bundleContributers.Count > 1)
if (bundleContributors.Count > 1)
{
throw new BundlingException($"Each project must contain only one class implementing {nameof(IBundleContributor)}");
}
if (bundleContributers.Any())
if (bundleContributors.Any())
{
var bundleContributer = bundleContributers[0];
var definition = bundleDefinitions.SingleOrDefault(t => t.BundleContributerType == bundleContributer);
var bundleContributor = bundleContributors[0];
var definition = bundleDefinitions.SingleOrDefault(t => t.BundleContributorType == bundleContributor);
if (definition != null)
{
if (definition.Level < level)
@ -197,7 +222,7 @@ namespace Volo.Abp.Cli.Bundling
bundleDefinitions.Add(new BundleTypeDefinition
{
Level = level,
BundleContributerType = bundleContributer
BundleContributorType = bundleContributor
});
}
}
@ -210,7 +235,7 @@ namespace Volo.Abp.Cli.Bundling
{
foreach (var dependedModuleType in descriptor.GetDependedTypes())
{
FindBundleContributersRecursively(dependedModuleType, level + 1, bundleDefinitions);
FindBundleContributorsRecursively(dependedModuleType, level + 1, bundleDefinitions);
}
}
}
@ -223,28 +248,17 @@ namespace Volo.Abp.Cli.Bundling
.SingleOrDefault(AbpModule.IsAbpModule);
}
private string GetFrameworkFolderPath(string projectDirectory, string frameworkVersion)
{
return Path.Combine(projectDirectory, "bin", "Debug", frameworkVersion, "wwwroot", "_framework"); ;
}
private string GetTargetFrameworkVersion(string projectFilePath)
{
var document = new XmlDocument();
document.Load(projectFilePath);
var sdk = document.DocumentElement.GetAttribute("Sdk");
if (sdk != SupportedWebAssemblyProjectType)
if (sdk != BundlingConsts.SupportedWebAssemblyProjectType)
{
throw new BundlingException($"Unsupported project type. Project type must be {SupportedWebAssemblyProjectType}.");
throw new BundlingException($"Unsupported project type. Project type must be {BundlingConsts.SupportedWebAssemblyProjectType}.");
}
return document.SelectSingleNode("//TargetFramework").InnerText;
}
private string GetAssemblyFilePath(string directory, string frameworkVersion, string projectFileName)
{
var outputDirectory = GetFrameworkFolderPath(directory, frameworkVersion);
return Path.Combine(outputDirectory, projectFileName + ".dll");
}
}
}

9
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/IBundler.cs

@ -0,0 +1,9 @@
using Volo.Abp.Bundling;
namespace Volo.Abp.Cli.Bundling
{
public interface IBundler
{
string Bundle(BundleOptions options, BundleContext context);
}
}

2
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/IBundlingService.cs

@ -4,6 +4,6 @@ namespace Volo.Abp.Cli.Bundling
{
public interface IBundlingService
{
Task BundleAsync(string directory, bool forceBuild);
Task BundleAsync(string directory, bool forceBuild, bool bundle, bool minify, string bundleName);
}
}

23
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/PathHelper.cs

@ -0,0 +1,23 @@
using System.IO;
namespace Volo.Abp.Cli.Bundling
{
internal static class PathHelper
{
internal static string GetFrameworkFolderPath(string projectDirectory, string frameworkVersion)
{
return Path.Combine(projectDirectory, "bin", "Debug", frameworkVersion, "wwwroot", "_framework"); ;
}
internal static string GetAssemblyFilePath(string directory, string frameworkVersion, string projectFileName)
{
var outputDirectory = GetFrameworkFolderPath(directory, frameworkVersion);
return Path.Combine(outputDirectory, projectFileName + ".dll");
}
internal static string GetWwwRootPath(string directory)
{
return Path.Combine(directory, "wwwroot");
}
}
}

10
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/Scripts/IScriptBundler.cs

@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Volo.Abp.Cli.Bundling.Scripts
{
public interface IScriptBundler : IBundler
{
}
}

34
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/Scripts/ScriptBundler.cs

@ -0,0 +1,34 @@
using System;
using System.IO;
using System.Text;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Minify.Scripts;
namespace Volo.Abp.Cli.Bundling.Scripts
{
public class ScriptBundler : BundlerBase, IScriptBundler, ITransientDependency
{
public override string FileExtension => ".js";
public ScriptBundler(IJavascriptMinifier minifier)
: base(minifier)
{
}
public override string GenerateDefinition(string bundleFilePath)
{
var lastModifiedTicks = File.GetLastWriteTime(bundleFilePath).Ticks;
var builder = new StringBuilder();
builder.AppendLine($"{BundlingConsts.ScriptPlaceholderStart}");
builder.AppendLine($" <script src=\"{Path.GetFileName(bundleFilePath)}?_v={lastModifiedTicks}\"></script>");
builder.Append($" {BundlingConsts.ScriptPlaceholderEnd}");
return builder.ToString();
}
protected override string ProcessBeforeAddingToTheBundle(string referencePath, string bundleDirectory, string fileContent)
{
return fileContent.EnsureEndsWith(';') + Environment.NewLine;
}
}
}

77
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/Styles/CssRelativePathAdjuster.cs

@ -0,0 +1,77 @@
using System;
using System.IO;
using System.Text.RegularExpressions;
namespace Volo.Abp.Cli.Bundling.Styles
{
internal static class CssRelativePathAdjuster
{
private static readonly Regex _rxUrl = new Regex(@"url\s*\(\s*([""']?)([^:)]+)\1\s*\)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
public static string Adjust(
string cssFileContents,
string absoluteInputFilePath,
string absoluteOutputPath)
{
var matches = _rxUrl.Matches(cssFileContents);
if (matches.Count <= 0)
{
return cssFileContents;
}
var cssDirectoryPath = Path.GetDirectoryName(absoluteInputFilePath);
foreach (Match match in matches)
{
string quoteDelimiter = match.Groups[1].Value; //url('') vs url("")
string relativePathToCss = match.Groups[2].Value;
// Ignore root relative references
if (relativePathToCss.StartsWith("/", StringComparison.Ordinal))
continue;
//prevent query string from causing error
var pathAndQuery = relativePathToCss.Split(new[] { '?' }, 2, StringSplitOptions.RemoveEmptyEntries);
var pathOnly = pathAndQuery[0];
var queryOnly = pathAndQuery.Length == 2 ? pathAndQuery[1] : string.Empty;
string absolutePath = GetAbsolutePath(cssDirectoryPath, pathOnly);
string serverRelativeUrl = MakeRelative(absoluteOutputPath, absolutePath);
if (!string.IsNullOrEmpty(queryOnly))
serverRelativeUrl += "?" + queryOnly;
string replace = string.Format("url({0}{1}{0})", quoteDelimiter, serverRelativeUrl);
cssFileContents = cssFileContents.Replace(match.Groups[0].Value, replace);
}
return cssFileContents;
}
private static string GetAbsolutePath(string cssFilePath, string pathOnly)
{
return Path.GetFullPath(Path.Combine(cssFilePath, pathOnly));
}
private static readonly string _protocol = "file:///";
private static string MakeRelative(string baseFile, string file)
{
if (string.IsNullOrEmpty(file))
return file;
Uri baseUri = new Uri(_protocol + baseFile, UriKind.RelativeOrAbsolute);
Uri fileUri = new Uri(_protocol + file, UriKind.RelativeOrAbsolute);
if (baseUri.IsAbsoluteUri)
{
return Uri.UnescapeDataString(baseUri.MakeRelativeUri(fileUri).ToString());
}
else
{
return baseUri.ToString();
}
}
}
}

10
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/Styles/IStyleBundler.cs

@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Volo.Abp.Cli.Bundling.Styles
{
public interface IStyleBundler : IBundler
{
}
}

37
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Bundling/Styles/StyleBundler.cs

@ -0,0 +1,37 @@
using System.IO;
using System.Text;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Minify.Styles;
namespace Volo.Abp.Cli.Bundling.Styles
{
public class StyleBundler : BundlerBase, IStyleBundler, ITransientDependency
{
public override string FileExtension => ".css";
public StyleBundler(ICssMinifier minifier)
: base(minifier)
{
}
public override string GenerateDefinition(string bundleFilePath)
{
var lastModifiedTicks = File.GetLastWriteTime(bundleFilePath).Ticks;
var builder = new StringBuilder();
builder.AppendLine($"{BundlingConsts.StylePlaceholderStart}");
builder.AppendLine($" <link href=\"{Path.GetFileName(bundleFilePath)}?_v={lastModifiedTicks}\" rel=\"stylesheet\"/>");
builder.Append($" {BundlingConsts.StylePlaceholderEnd}");
return builder.ToString();
}
protected override string ProcessBeforeAddingToTheBundle(string referencePath, string bundleDirectory, string fileContent)
{
return CssRelativePathAdjuster.Adjust(
fileContent,
referencePath,
bundleDirectory
);
}
}
}

44
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/BundleCommand.cs

@ -28,6 +28,26 @@ namespace Volo.Abp.Cli.Commands
var forceBuild = commandLineArgs.Options.ContainsKey(Options.ForceBuild.Short) ||
commandLineArgs.Options.ContainsKey(Options.ForceBuild.Long);
var bundle = commandLineArgs.Options.ContainsKey(Options.Bundle.Short) ||
commandLineArgs.Options.ContainsKey(Options.Bundle.Long);
var minify = commandLineArgs.Options.ContainsKey(Options.Minify.Short) ||
commandLineArgs.Options.ContainsKey(Options.Minify.Long);
var name = commandLineArgs.Options.GetOrNull(
Options.Name.Short,
Options.Name.Long
);
if ((minify || bundle) && name.IsNullOrEmpty())
{
throw new CliUsageException(
"Please specify a bundle name." +
Environment.NewLine + Environment.NewLine +
GetUsageInfo()
);
}
if (!Directory.Exists(workingDirectory))
{
throw new CliUsageException(
@ -39,7 +59,7 @@ namespace Volo.Abp.Cli.Commands
try
{
await BundlingService.BundleAsync(workingDirectory, forceBuild);
await BundlingService.BundleAsync(workingDirectory, forceBuild, bundle, minify, name);
}
catch (BundlingException ex)
{
@ -65,6 +85,10 @@ namespace Volo.Abp.Cli.Commands
sb.AppendLine("");
sb.AppendLine("-wd|--working-directory <directory-path> (default: empty)");
sb.AppendLine("-f | --force (default: false)");
sb.AppendLine("-f | --force (default: false)");
sb.AppendLine("-b | --bundle (default: false)");
sb.AppendLine("-m | --minify (default: false)");
sb.AppendLine("-n | --name (default: empty)");
sb.AppendLine("");
sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI");
@ -84,6 +108,24 @@ namespace Volo.Abp.Cli.Commands
public const string Short = "f";
public const string Long = "force";
}
public static class Bundle
{
public const string Short = "b";
public const string Long = "bundle";
}
public static class Minify
{
public const string Short = "m";
public const string Long = "minify";
}
public static class Name
{
public const string Short = "n";
public const string Long = "name";
}
}
}
}

49
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LoginCommand.cs

@ -2,11 +2,15 @@
using Microsoft.Extensions.Logging.Abstractions;
using System;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using Volo.Abp.Cli.Args;
using Volo.Abp.Cli.Auth;
using Volo.Abp.Cli.Http;
using Volo.Abp.Cli.ProjectBuilding;
using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Threading;
namespace Volo.Abp.Cli.Commands
{
@ -15,10 +19,16 @@ namespace Volo.Abp.Cli.Commands
public ILogger<LoginCommand> Logger { get; set; }
protected AuthService AuthService { get; }
public ICancellationTokenProvider CancellationTokenProvider { get; }
public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; }
public LoginCommand(AuthService authService)
public LoginCommand(AuthService authService,
ICancellationTokenProvider cancellationTokenProvider,
IRemoteServiceExceptionHandler remoteServiceExceptionHandler)
{
AuthService = authService;
CancellationTokenProvider = cancellationTokenProvider;
RemoteServiceExceptionHandler = remoteServiceExceptionHandler;
Logger = NullLogger<LoginCommand>.Instance;
}
@ -33,6 +43,14 @@ namespace Volo.Abp.Cli.Commands
);
}
var organization = commandLineArgs.Options.GetOrNull(Options.Organization.Short, Options.Organization.Long);
if (string.IsNullOrWhiteSpace(organization) && await CheckMultipleOrganizationsAsync(commandLineArgs.Target))
{
Logger.LogError($"You have multiple organizations, please specify your organization with `--organization` parameter.");
return;
}
var password = commandLineArgs.Options.GetOrNull(Options.Password.Short, Options.Password.Long);
if (password == null)
{
@ -51,12 +69,37 @@ namespace Volo.Abp.Cli.Commands
await AuthService.LoginAsync(
commandLineArgs.Target,
password,
commandLineArgs.Options.GetOrNull(Options.Organization.Short, Options.Organization.Long)
organization
);
Logger.LogInformation($"Successfully logged in as '{commandLineArgs.Target}'");
}
private async Task<bool> CheckMultipleOrganizationsAsync(string username)
{
var url = $"{CliUrls.WwwAbpIo}api/license/check-multiple-organizations?username={username}";
using (var client = new CliHttpClient())
{
var response = await client.GetHttpResponseMessageWithRetryAsync(
url,
CancellationTokenProvider.Token,
Logger);
if (!response.IsSuccessStatusCode)
{
throw new Exception($"ERROR: Remote server returns '{response.StatusCode}'");
}
await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response);
var responseContent = await response.Content.ReadAsStringAsync();
var result = JsonSerializer.Deserialize<bool>(responseContent);
return result;
}
}
public string GetUsageInfo()
{
var sb = new StringBuilder();
@ -96,4 +139,4 @@ namespace Volo.Abp.Cli.Commands
}
}
}
}
}

128
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SuiteCommand.cs

@ -31,7 +31,10 @@ namespace Volo.Abp.Cli.Commands
{
var operationType = NamespaceHelper.NormalizeNamespace(commandLineArgs.Target);
var preview = commandLineArgs.Options.ContainsKey(Options.Preview.Long);
var preview = commandLineArgs.Options.ContainsKey(Options.Preview.Short) ||
commandLineArgs.Options.ContainsKey(Options.Preview.Long);
var version = commandLineArgs.Options.GetOrNull(Options.Version.Short, Options.Version.Long);
switch (operationType)
{
@ -42,11 +45,11 @@ namespace Volo.Abp.Cli.Commands
break;
case "install":
await InstallSuiteAsync(preview);
await InstallSuiteAsync(version, preview);
break;
case "update":
await UpdateSuiteAsync(preview);
await UpdateSuiteAsync(version, preview);
break;
case "remove":
@ -70,7 +73,8 @@ namespace Volo.Abp.Cli.Commands
{
var dotnetToolList = CmdHelper.RunCmdAndGetOutput("dotnet tool list -g");
var suiteLine = dotnetToolList.Split(Environment.NewLine).FirstOrDefault(l => l.ToLower().StartsWith("volo.abp.suite "));
var suiteLine = dotnetToolList.Split(Environment.NewLine)
.FirstOrDefault(l => l.ToLower().StartsWith("volo.abp.suite "));
if (string.IsNullOrEmpty(suiteLine))
{
@ -80,9 +84,23 @@ namespace Volo.Abp.Cli.Commands
return suiteLine.Split(" ", StringSplitOptions.RemoveEmptyEntries)[1];
}
private async Task InstallSuiteAsync(bool preview = false)
private async Task InstallSuiteAsync(string version = null, bool preview = false)
{
Logger.LogInformation("Installing ABP Suite...");
var infoText = "Installing ABP Suite ";
if (version != null)
{
infoText += "v" + version + "... ";
}
else if (preview)
{
infoText += "latest preview version...";
}
else
{
infoText += "latest version...";
}
Logger.LogInformation(infoText);
var nugetIndexUrl = await _nuGetIndexUrlService.GetAsync();
@ -93,9 +111,25 @@ namespace Volo.Abp.Cli.Commands
try
{
var versionOption = await GetVersionOption(preview);
var versionOption = string.Empty;
if (preview)
{
var latestPreviewVersion = await GetLatestPreviewVersion();
if (latestPreviewVersion != null)
{
versionOption = $" --version {latestPreviewVersion}";
Logger.LogInformation("Latest preview version is " + latestPreviewVersion);
}
}
else if (version != null)
{
versionOption = $" --version {version}";
}
var result = CmdHelper.RunCmd($"dotnet tool install {SuitePackageName} {versionOption} --add-source {nugetIndexUrl} -g");
var result = CmdHelper.RunCmd(
$"dotnet tool install {SuitePackageName}{versionOption} --add-source {nugetIndexUrl} -g"
);
if (result == 0)
{
@ -117,25 +151,55 @@ namespace Volo.Abp.Cli.Commands
private void ShowSuiteManualInstallCommand()
{
Logger.LogInformation("You can also run the following command to install ABP Suite.");
Logger.LogInformation("dotnet tool install -g Volo.Abp.Suite");
Logger.LogInformation("dotnet tool install -g Volo.Abp.Suite --add-source https://nuget.abp.io/<your-private-key>/v3/index.json");
}
private async Task UpdateSuiteAsync(bool preview = false)
private async Task UpdateSuiteAsync(string version = null, bool preview = false)
{
Logger.LogInformation("Updating ABP Suite...");
var infoText = "Updating ABP Suite ";
if (version != null)
{
infoText += "to the " + version + "... ";
}
else if (preview)
{
infoText += "to the latest preview version...";
}
else
{
infoText += "...";
}
var nugetIndexUrl = await _nuGetIndexUrlService.GetAsync();
Logger.LogInformation(infoText);
var nugetIndexUrl = await _nuGetIndexUrlService.GetAsync();
if (nugetIndexUrl == null)
{
Logger.LogError("Cannot find your NuGet service URL!");
return;
}
try
{
var versionOption = await GetVersionOption(preview);
var versionOption = string.Empty;
var result = CmdHelper.RunCmd($"dotnet tool update {SuitePackageName} {versionOption} --add-source {nugetIndexUrl} -g");
if (preview)
{
var latestPreviewVersion = await GetLatestPreviewVersion();
if (latestPreviewVersion != null)
{
versionOption = $" --version {latestPreviewVersion}";
Logger.LogInformation("Latest preview version is " + latestPreviewVersion);
}
}
else if (version != null)
{
versionOption = $" --version {version}";
}
var result = CmdHelper.RunCmd(
$"dotnet tool update {SuitePackageName}{versionOption} --add-source {nugetIndexUrl} -g"
);
if (result != 0)
{
@ -149,29 +213,21 @@ namespace Volo.Abp.Cli.Commands
}
}
private async Task<string> GetVersionOption(bool preview)
private async Task<string> GetLatestPreviewVersion()
{
if (preview)
{
var latestVersion = await GetLatestSuiteVersionAsync(true);
if (latestVersion.IsPrerelease)
{
return $"--version {latestVersion.ToString()}";
}
}
var latestPreviewVersion = await _nuGetService
.GetLatestVersionOrNullAsync(
packageId: SuitePackageName,
includeReleaseCandidates: true
);
return "";
}
private async Task<SemanticVersion> GetLatestSuiteVersionAsync(bool preview)
{
return await _nuGetService.GetLatestVersionOrNullAsync(SuitePackageName, includeReleaseCandidates: preview);
return latestPreviewVersion.IsPrerelease ? latestPreviewVersion.ToString() : null;
}
private void ShowSuiteManualUpdateCommand()
{
Logger.LogError("You can also run the following command to update ABP Suite.");
Logger.LogError("dotnet tool update -g Volo.Abp.Suite");
Logger.LogError("dotnet tool update -g Volo.Abp.Suite --add-source https://nuget.abp.io/<your-private-key>/v3/index.json");
}
private static void RemoveSuite()
@ -185,7 +241,8 @@ namespace Volo.Abp.Cli.Commands
{
if (!GlobalToolHelper.IsGlobalToolInstalled("abp-suite"))
{
Logger.LogWarning("ABP Suite is not installed! To install it you can run the command: \"abp suite install\"");
Logger.LogWarning(
"ABP Suite is not installed! To install it you can run the command: \"abp suite install\"");
return;
}
}
@ -236,7 +293,14 @@ namespace Volo.Abp.Cli.Commands
public static class Preview
{
public const string Long = "preview";
public const string Short = "p";
}
public static class Version
{
public const string Long = "version";
public const string Short = "v";
}
}
}
}
}

7
framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs

@ -121,7 +121,12 @@ namespace Volo.Abp.Http.Client.DynamicProxying
return (T)(object)stringContent;
}
return JsonSerializer.Deserialize<T>(await responseContent.ReadAsStringAsync());
if (stringContent.IsNullOrWhiteSpace())
{
return default;
}
return JsonSerializer.Deserialize<T>(stringContent);
}
private async Task<HttpContent> MakeRequestAsync(IAbpMethodInvocation invocation)

4
framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs

@ -118,10 +118,10 @@ namespace Volo.Abp.Kafka
catch (ConsumeException ex)
{
Logger.LogException(ex, LogLevel.Warning);
AsyncHelper.RunSync(() => ExceptionNotifier.NotifyAsync(ex, logLevel: LogLevel.Warning));
await ExceptionNotifier.NotifyAsync(ex, logLevel: LogLevel.Warning);
}
}
});
}, TaskCreationOptions.LongRunning);
}
protected virtual async Task HandleIncomingMessage(ConsumeResult<string, byte[]> consumeResult)

2
framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json

@ -3,7 +3,7 @@
"name": "asp.net",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.shared": "^4.0.0-rc.4",
"@abp/aspnetcore.mvc.ui.theme.shared": "^4.0.0-rc.5",
"highlight.js": "^9.13.1"
},
"devDependencies": {}

224
framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock

@ -2,30 +2,30 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.shared@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.4.tgz#2a2f8ee63bbadf74c03770e9f43da8b012ee9596"
integrity sha512-rVdZMn3WX1r/LRMl7l8l4MWnKmfE6EgHJO9t07AaryM2UelpQ2OTEcHaMM1SnpzWXJ5NGTaG23fxIUSlTXr3hg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.4"
"@abp/bootstrap" "~4.0.0-rc.4"
"@abp/bootstrap-datepicker" "~4.0.0-rc.4"
"@abp/datatables.net-bs4" "~4.0.0-rc.4"
"@abp/font-awesome" "~4.0.0-rc.4"
"@abp/jquery-form" "~4.0.0-rc.4"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.4"
"@abp/lodash" "~4.0.0-rc.4"
"@abp/luxon" "~4.0.0-rc.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.4"
"@abp/select2" "~4.0.0-rc.4"
"@abp/sweetalert" "~4.0.0-rc.4"
"@abp/timeago" "~4.0.0-rc.4"
"@abp/toastr" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.4.tgz#2f965478aec984cefc9fd1fe947c70c154bea384"
integrity sha512-SLVcpmigKkG+Zt6SzjKiSNob6jncDAKjNHUp4auJZos0uKTp2cWV1u9JmkpKEIGivnwu3JSigjsIEAlbU841CA==
"@abp/aspnetcore.mvc.ui.theme.shared@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.5.tgz#ca73a54b7f328e7429ac639ce17526b72eab5581"
integrity sha512-GPc82OOz+MpSnTl46Wgeg53NYPI46jdy4/muragF6JR+3zBEo8tYe0jHP8T+LGtyGXdYoJ9Sx9274fRyxxh65Q==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.5"
"@abp/bootstrap" "~4.0.0-rc.5"
"@abp/bootstrap-datepicker" "~4.0.0-rc.5"
"@abp/datatables.net-bs4" "~4.0.0-rc.5"
"@abp/font-awesome" "~4.0.0-rc.5"
"@abp/jquery-form" "~4.0.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.5"
"@abp/lodash" "~4.0.0-rc.5"
"@abp/luxon" "~4.0.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.5"
"@abp/select2" "~4.0.0-rc.5"
"@abp/sweetalert" "~4.0.0-rc.5"
"@abp/timeago" "~4.0.0-rc.5"
"@abp/toastr" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.5.tgz#fa0dbc0b2f0a2c7777cdeb7613ec61307e6edd96"
integrity sha512-zEHA08snWGVL2Lm4ijpj/CnY1JxIg1ark3fxNsaKraVciVWbh5jmnBL8LCdKZFWZqEGCeWxrEnpt8OGIV+nhdg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -36,145 +36,145 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.4.tgz#4e8c25ec32d792a5bb47ca98f8ab67143da6d3f3"
integrity sha512-4KTOiqHGr9obUFgP1+9o18VASWsxeAlKWrLlCwDX9ojjtk7LCdLSEtcW+M04LLMywfi74V/NU5NIOHliuVqvVw==
"@abp/bootstrap-datepicker@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.5.tgz#38d665ba63dc9a0bb5fb8bfad50e7cac2fcdb8bf"
integrity sha512-nh+yJRn+CsnLd2VQelYcQbS49zP1LDSvczZrlCZUtiyAv400cBa1mC8tITxDnpAEBlICWb5s4Sg7kJXjyePsmw==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.4.tgz#ba4b9cc3cd7fececbb9a4117a2cc8b2400cfc056"
integrity sha512-NyWi1w4Q33aDNVOCQszGhdQlJJuwoxcA6LkC0TeY3vQBqtOkcz3YyB1id0lTYoHJnp92+K9+uwW0p1V5GgpF5Q==
"@abp/bootstrap@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.5.tgz#c49675030b2bde53a8b30249f38d85d4ae0aff49"
integrity sha512-eXJS1Eq2WyB9qKhyW/+9PUzZU5YNKe9q2Mt2nISwb0NmFepGiLkoygGQXtTe7yvyVdqrb6XM5pZHxdM0tRkYRQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.4.tgz#44b0fb73ee95fcae704b0967a4da20169932cd1d"
integrity sha512-eaY2gE2fWpbtSyUNm+3UAn5rHe4r9uyMm+BKzeoFzuq7XEfOioNGKPTadyi+fmlgaQ9mVT/Rhf3cHDDm4kVNug==
"@abp/core@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.5.tgz#3500839195c24f1275c55801037b02fd749516f7"
integrity sha512-Ubbej59+9z4FQWWCUSO3LphTmT8ZJQ/53cFcMOMIX/uoluli8IORBeAetTw4UDqG2rA70a5YKpyz17pG36D1kA==
dependencies:
"@abp/utils" "^4.0.0-rc.4"
"@abp/utils" "^4.0.0-rc.5"
"@abp/datatables.net-bs4@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.4.tgz#cbc962d0d0d68f2e1a92020db5788f3b65955864"
integrity sha512-YNCtbr901uOjmJPN+J/4QA5xpfWbg/g7nkmPiEjB1vINYmFpeT6iWbMme0uQdVNdqeJ+miPvHsSDqF0xowOlOw==
"@abp/datatables.net-bs4@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.5.tgz#00a9db6cd73bd1f6e5adaebe3add0f3192ed9b1d"
integrity sha512-Xvvm7j2UVgJfQRIPJ121vYH7upao22nqcFAxmeBFZ41Vgmt2gDkbXfvPHIAw06M0C2Gpym9shO+Sg4556xCubQ==
dependencies:
"@abp/datatables.net" "~4.0.0-rc.4"
"@abp/datatables.net" "~4.0.0-rc.5"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.4.tgz#f071b3d9d20c447d99f9e413bbfffc85b40c4db4"
integrity sha512-ML/Osb+SJYoSImDaB2+rhJa339yUnw4V1F1o9u25JhPIHnXctj8E2dM4jWKBcnzFMEjRtAtZUi3nvrwXemEeIQ==
"@abp/datatables.net@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.5.tgz#ca581ca5b76a95702086b04da3f50b00b7da7973"
integrity sha512-xm7JQ/B9Opng1zai+cAILD6pl2Xlp54NMkfz7Y6U4DEYhzUAOT1idOVUhlCMtdE6RxVVqZGVozQZt7SZFZVImw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.4.tgz#dc52c5e18920f76d1574835540d592c5e4ab1605"
integrity sha512-mRPgiDbwqFrV7/GuYmmHKMufcwrA5GymZg0HqVMk2iVvrUbQaHlW1UJuwvtk4rcUnT+J7oEJGGNmK9Q4n3ya5A==
"@abp/font-awesome@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.5.tgz#59a0516eb3c2d6f43a0a19a60f7c31fef4d421f4"
integrity sha512-VsmpC04epanCyZC6DVrDJz8FcupdU8/PpV9gnr7YvTk+VZQrq/zY9C21GWPDGKmBPavUlG4QMrX1oeUvu+9FoA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.4.tgz#d2a37a206341727854ac57fdda05ff32d4aa2799"
integrity sha512-BykInqeMENj2krNaMpHnvQ/cqdzSMfTryegL/ItAqjVnZu7LoIHqO89eVpcLS/SwLaOx0j8JPsh1mQgSvQt0WQ==
"@abp/jquery-form@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.5.tgz#91b90f4cb45bce584e33a74cc4366297fc4d4d40"
integrity sha512-5XrRF1xQMpZnAHYGDdpkLnYaAiKtWsmmHJ3aLxtg1QHnTuSKbasEtsOMVTqazkpiGcZsURcHNa4B/JUSK/KuBg==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.4.tgz#705f5cf0f1d24c31d36fe4aa74fd39d2476c3f5f"
integrity sha512-oHm4w1Kr7gnsz87a51wtA6sKYCalCou5S9tDVnabYbHQssZg0s5tUo1NS1OyJw10bXu4Azo2fhdZf4JVotD6Qw==
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.5.tgz#f6c3320c9362bc70120dbdcce02cda814ec7c243"
integrity sha512-ftBxpeMLeRlaabPzU0wjDd4qvfgX38XtELnGjdQmTQ3P5lmAjhSTk1Fe8eIfGSINUAwYJyCjUlyYIMVi+kx9Tg==
dependencies:
"@abp/jquery-validation" "~4.0.0-rc.4"
"@abp/jquery-validation" "~4.0.0-rc.5"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.4.tgz#525551c2014d9bde6e41d0a15539d9413ca5e352"
integrity sha512-pUCbr0XRw4DjXqyj/TYhsnHxqV9VWdQ08gBPqDuCuP4Pxwo615ylM/x31a1V2Oh4bteGe56DJmtMnOaU5YGrKg==
"@abp/jquery-validation@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.5.tgz#eb02731039b5befebf3666cb6cc1a7b54d5e9057"
integrity sha512-5LWBi+8Otch8SUCJA7DyKX7gD2Vy2aCODyPO5Y037lx7iUk/xHkhRnPDOVIGiS8fzyZx+fLNhJ6Lbfk9P+I5XA==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-validation "^1.19.2"
"@abp/jquery@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.4.tgz#2c34cdd36d34f16877375d5137c05e03b5057da3"
integrity sha512-HLE1KDIvWf+I+x8n/cF8cfOVcCG3XngnzE/5viNjJM2gERMK5j3U0BjTiq7Ar5AIIFvLgWdwdGsG4ioYOuhSZw==
"@abp/jquery@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.5.tgz#244fbe71bb85abc1f54bfca269d9b0bfdf50469f"
integrity sha512-xt2gV3ZIMpyTFls2a58TTXEbhFxQGb7JacRojp5/+MyGL/SoQbOGENU3aK/fHRYD3VRUkhlKFGT6Ijv3LX83/A==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
jquery "~3.5.1"
"@abp/lodash@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.4.tgz#1afedb9431ab9918384d559f3c5fc71a73bd33fb"
integrity sha512-3HTD1JT3Y5DTPRODxiEXSIAarNNe45d4GrwkDVf9+cpaVdcqY5odO0bROcrcTAS7DmqE7WtOdXMubbTnfJXt1g==
"@abp/lodash@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.5.tgz#f38dd3021d2b9877cf38fe812531968b7e607838"
integrity sha512-xdJ3WjqBz+C1gxrq1GcA66D1wrKn3QJ9/culTvEDr/eLpHjimnNjMmhAQqVxbaGk6qD6Q8Fswr8gtwqpPSe6eA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
lodash "^4.17.15"
"@abp/luxon@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.4.tgz#f16088e7493580440d0c6698c59b1b94d64c3e1a"
integrity sha512-I+5YtNiXPm1xse7IykOxtZbkDQgVj7lm0f0bfSkuxO2Dl25D7d0tb/81p/tQ6m+9QvKjXoCzaxVeKfgkMUANMw==
"@abp/luxon@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.5.tgz#9448a48b6b3bf0446b421c2642188b9f11848572"
integrity sha512-S/lkCt/ou0Lv7KG3/XEAHx2S2YaDcEszyhnRBVCYSNqOUr0a56J+2MqKL5OFrOTNCfkPHDkaJVlSIXBEXokXFA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.4.tgz#6f5725f025b1b012c674ec5c3d4fc48f9cf31a9a"
integrity sha512-ZdyhMjYIQ9gmOXo5HXQ0n18NZmyVf+Ci5X0hA+phY+RXyX3n5q8Ic7ikufI4t5wWL/ZbU1IPGShJP0A1v6bgSA==
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.5.tgz#87acd20de26e071bb38ec26fa4cd18026ca11464"
integrity sha512-QOp8R/LDabMhjapSjaArBEZUEslhOOGYIGfFm8CCrSeWGWJR8TFa68PIjhmUpNM5l8nlvC3MDMkQ/TnOaXgR4g==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.4.tgz#191b02f0d40adc535b90d5f2ae2e9eaa57cf21d4"
integrity sha512-kSs/I5fUBNQeUELn3+pNpLB4JuEroAWeKT7z/1NMexAzYq/QB4RErn5pZZdjGGMvJ5sfbrKcgtjF4nwZzHTzGg==
"@abp/select2@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.5.tgz#a7cc1e2e1985693f673c8214ac7db21d79dee4b8"
integrity sha512-ZNwT8u0CPDrCO4y5kCWd2EGhihwc+R6aBxx8tzL0AUAuHYRVA68T49Exyd1Fa+jESRjoVn18hys6HnTCUzZkWQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
select2 "^4.0.13"
"@abp/sweetalert@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.4.tgz#cc5d8dcf43d9fcea64c5589c71771d172d4c1f7d"
integrity sha512-cgatSuHU0OXqtoBK9cgLJUArcVAP7J1ljYIfPeZFQsZdt/W/i9B+SY4vpOEsEa2sI3OkoA60F0mQ12ykIWr4Xg==
"@abp/sweetalert@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.5.tgz#e360ed98fc242348eb881e0031e4bf921bd1065b"
integrity sha512-dCmKYbmUBvsh95VjOeAxBsEgDQSTYswbAOXfTe/1nTf7ABVxUouKY++TYjK9xOgrmUx2fXC/kpImiAKI/xsLEg==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
sweetalert "^2.1.2"
"@abp/timeago@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.4.tgz#11cbbfa3b726e3704a1d59f593fb4d67a0776c3c"
integrity sha512-L38znHtBSShXOPs2MgyrZCzZwIBfqBKuTpdVZqbHTcw1LkPQ2OyFoYNfaDjJnHALOEeFhnbhX9+YDBIruAcynQ==
"@abp/timeago@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.5.tgz#f0dd1e85249dc737e8cfedba072677dd6727d16c"
integrity sha512-Nqq9Ok7odlp+ptmCDsdcz1/j68n6gZN8+jBHZt18hU4ox4awruDbSguK7Pn2qu8Vt5zfGtit0+nqKamlq+dr6A==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
timeago "^1.6.7"
"@abp/toastr@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.4.tgz#b9446add88f2b438edea0667e571861129acac64"
integrity sha512-+IxxxJsxI3DjBjduidfwxYkhRiAvdosY/AzyddkXu8h3D3bc37ec4P71piAe8AAcqwQoC6D4+vIH4BWoVgq48A==
"@abp/toastr@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.5.tgz#7f39a71fca5665cbcf46f02a7df6030ddb0114c7"
integrity sha512-jS01uP0MZb4OWfBTH1UEXlTPYMjK5WqorE8WZ6Am+jKzwfHudCDFmjFfSX5PV2/Ia3CP9NU8mwygXLmtsHZbHw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
toastr "^2.1.4"
"@abp/utils@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.4.tgz#99573069c7dac8751e3124e60511a11a169df565"
integrity sha512-z1l6A07+rSgf7fzI/UTlZv1cJBiIUa0kpEvhcChe7mwlHB7oQ3SlGjZX37kzOqWcOusfMOANPuVulkZLSCOB/w==
"@abp/utils@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.5.tgz#45b55d6bbf69ad2a052bc2635c039d2cc4aac401"
integrity sha512-pRYUSh30VT4702lfnQCswIwLVqNC6ZFsmydXngwZASJEJVKj30XitSlixnKhocvozG/87H0sYVzvwmUyJiHHQw==
dependencies:
just-compare "^1.3.0"

4
framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json

@ -3,8 +3,8 @@
"name": "asp.net",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.4",
"@abp/prismjs": "^4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.5",
"@abp/prismjs": "^4.0.0-rc.5"
},
"devDependencies": {}
}

260
framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.4.tgz#20faab45d70981f8a7bb064a91967c64cbc37d39"
integrity sha512-0GTyUURfT/vw9ICEgW2J8TBnBCpvLK9PXuouXrCAx19AvG10Uq2RC7oO7uM7xqN2NspDFkrmdeA1O+2IX7RaPQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.4.tgz#2a2f8ee63bbadf74c03770e9f43da8b012ee9596"
integrity sha512-rVdZMn3WX1r/LRMl7l8l4MWnKmfE6EgHJO9t07AaryM2UelpQ2OTEcHaMM1SnpzWXJ5NGTaG23fxIUSlTXr3hg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.4"
"@abp/bootstrap" "~4.0.0-rc.4"
"@abp/bootstrap-datepicker" "~4.0.0-rc.4"
"@abp/datatables.net-bs4" "~4.0.0-rc.4"
"@abp/font-awesome" "~4.0.0-rc.4"
"@abp/jquery-form" "~4.0.0-rc.4"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.4"
"@abp/lodash" "~4.0.0-rc.4"
"@abp/luxon" "~4.0.0-rc.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.4"
"@abp/select2" "~4.0.0-rc.4"
"@abp/sweetalert" "~4.0.0-rc.4"
"@abp/timeago" "~4.0.0-rc.4"
"@abp/toastr" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.4.tgz#2f965478aec984cefc9fd1fe947c70c154bea384"
integrity sha512-SLVcpmigKkG+Zt6SzjKiSNob6jncDAKjNHUp4auJZos0uKTp2cWV1u9JmkpKEIGivnwu3JSigjsIEAlbU841CA==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.5.tgz#f57744513c443dd96b64a11376b67fabb0df821d"
integrity sha512-6P9nwq1RvAVtRl5NQq+R5QQIGflSbZMFdQTje4r7hDjhKlGLPQUBgWrYRP0TXkIbxz/fhBC9/Mg7lg3bmSH+uQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.5.tgz#ca73a54b7f328e7429ac639ce17526b72eab5581"
integrity sha512-GPc82OOz+MpSnTl46Wgeg53NYPI46jdy4/muragF6JR+3zBEo8tYe0jHP8T+LGtyGXdYoJ9Sx9274fRyxxh65Q==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.5"
"@abp/bootstrap" "~4.0.0-rc.5"
"@abp/bootstrap-datepicker" "~4.0.0-rc.5"
"@abp/datatables.net-bs4" "~4.0.0-rc.5"
"@abp/font-awesome" "~4.0.0-rc.5"
"@abp/jquery-form" "~4.0.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.5"
"@abp/lodash" "~4.0.0-rc.5"
"@abp/luxon" "~4.0.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.5"
"@abp/select2" "~4.0.0-rc.5"
"@abp/sweetalert" "~4.0.0-rc.5"
"@abp/timeago" "~4.0.0-rc.5"
"@abp/toastr" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.5.tgz#fa0dbc0b2f0a2c7777cdeb7613ec61307e6edd96"
integrity sha512-zEHA08snWGVL2Lm4ijpj/CnY1JxIg1ark3fxNsaKraVciVWbh5jmnBL8LCdKZFWZqEGCeWxrEnpt8OGIV+nhdg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,162 +43,162 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.4.tgz#4e8c25ec32d792a5bb47ca98f8ab67143da6d3f3"
integrity sha512-4KTOiqHGr9obUFgP1+9o18VASWsxeAlKWrLlCwDX9ojjtk7LCdLSEtcW+M04LLMywfi74V/NU5NIOHliuVqvVw==
"@abp/bootstrap-datepicker@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.5.tgz#38d665ba63dc9a0bb5fb8bfad50e7cac2fcdb8bf"
integrity sha512-nh+yJRn+CsnLd2VQelYcQbS49zP1LDSvczZrlCZUtiyAv400cBa1mC8tITxDnpAEBlICWb5s4Sg7kJXjyePsmw==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.4.tgz#ba4b9cc3cd7fececbb9a4117a2cc8b2400cfc056"
integrity sha512-NyWi1w4Q33aDNVOCQszGhdQlJJuwoxcA6LkC0TeY3vQBqtOkcz3YyB1id0lTYoHJnp92+K9+uwW0p1V5GgpF5Q==
"@abp/bootstrap@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.5.tgz#c49675030b2bde53a8b30249f38d85d4ae0aff49"
integrity sha512-eXJS1Eq2WyB9qKhyW/+9PUzZU5YNKe9q2Mt2nISwb0NmFepGiLkoygGQXtTe7yvyVdqrb6XM5pZHxdM0tRkYRQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/clipboard@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.0.0-rc.4.tgz#177b636b55f8ae77968f7ca4bfca451f396fac7e"
integrity sha512-lRmc2lt+BP0M34f4848bDOIkwhHNVlUJk0/6jChwoSxGdiBOwvzRJKl7aFS/gnbU8I3RtI7i1+scvjGdb3kdLw==
"@abp/clipboard@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.0.0-rc.5.tgz#66a62e7cd1cec2c4e94d606c9caa3290db7056f8"
integrity sha512-aGcNyWnYzpik8r2sElPuf4h+Bd3HFJscmP8fAbw43t877CqrXxKCt62cAjUM5aeF5fVvMIuw+/wPSmSY29Yy+Q==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
clipboard "^2.0.6"
"@abp/core@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.4.tgz#44b0fb73ee95fcae704b0967a4da20169932cd1d"
integrity sha512-eaY2gE2fWpbtSyUNm+3UAn5rHe4r9uyMm+BKzeoFzuq7XEfOioNGKPTadyi+fmlgaQ9mVT/Rhf3cHDDm4kVNug==
"@abp/core@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.5.tgz#3500839195c24f1275c55801037b02fd749516f7"
integrity sha512-Ubbej59+9z4FQWWCUSO3LphTmT8ZJQ/53cFcMOMIX/uoluli8IORBeAetTw4UDqG2rA70a5YKpyz17pG36D1kA==
dependencies:
"@abp/utils" "^4.0.0-rc.4"
"@abp/utils" "^4.0.0-rc.5"
"@abp/datatables.net-bs4@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.4.tgz#cbc962d0d0d68f2e1a92020db5788f3b65955864"
integrity sha512-YNCtbr901uOjmJPN+J/4QA5xpfWbg/g7nkmPiEjB1vINYmFpeT6iWbMme0uQdVNdqeJ+miPvHsSDqF0xowOlOw==
"@abp/datatables.net-bs4@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.5.tgz#00a9db6cd73bd1f6e5adaebe3add0f3192ed9b1d"
integrity sha512-Xvvm7j2UVgJfQRIPJ121vYH7upao22nqcFAxmeBFZ41Vgmt2gDkbXfvPHIAw06M0C2Gpym9shO+Sg4556xCubQ==
dependencies:
"@abp/datatables.net" "~4.0.0-rc.4"
"@abp/datatables.net" "~4.0.0-rc.5"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.4.tgz#f071b3d9d20c447d99f9e413bbfffc85b40c4db4"
integrity sha512-ML/Osb+SJYoSImDaB2+rhJa339yUnw4V1F1o9u25JhPIHnXctj8E2dM4jWKBcnzFMEjRtAtZUi3nvrwXemEeIQ==
"@abp/datatables.net@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.5.tgz#ca581ca5b76a95702086b04da3f50b00b7da7973"
integrity sha512-xm7JQ/B9Opng1zai+cAILD6pl2Xlp54NMkfz7Y6U4DEYhzUAOT1idOVUhlCMtdE6RxVVqZGVozQZt7SZFZVImw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.4.tgz#dc52c5e18920f76d1574835540d592c5e4ab1605"
integrity sha512-mRPgiDbwqFrV7/GuYmmHKMufcwrA5GymZg0HqVMk2iVvrUbQaHlW1UJuwvtk4rcUnT+J7oEJGGNmK9Q4n3ya5A==
"@abp/font-awesome@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.5.tgz#59a0516eb3c2d6f43a0a19a60f7c31fef4d421f4"
integrity sha512-VsmpC04epanCyZC6DVrDJz8FcupdU8/PpV9gnr7YvTk+VZQrq/zY9C21GWPDGKmBPavUlG4QMrX1oeUvu+9FoA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.4.tgz#d2a37a206341727854ac57fdda05ff32d4aa2799"
integrity sha512-BykInqeMENj2krNaMpHnvQ/cqdzSMfTryegL/ItAqjVnZu7LoIHqO89eVpcLS/SwLaOx0j8JPsh1mQgSvQt0WQ==
"@abp/jquery-form@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.5.tgz#91b90f4cb45bce584e33a74cc4366297fc4d4d40"
integrity sha512-5XrRF1xQMpZnAHYGDdpkLnYaAiKtWsmmHJ3aLxtg1QHnTuSKbasEtsOMVTqazkpiGcZsURcHNa4B/JUSK/KuBg==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.4.tgz#705f5cf0f1d24c31d36fe4aa74fd39d2476c3f5f"
integrity sha512-oHm4w1Kr7gnsz87a51wtA6sKYCalCou5S9tDVnabYbHQssZg0s5tUo1NS1OyJw10bXu4Azo2fhdZf4JVotD6Qw==
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.5.tgz#f6c3320c9362bc70120dbdcce02cda814ec7c243"
integrity sha512-ftBxpeMLeRlaabPzU0wjDd4qvfgX38XtELnGjdQmTQ3P5lmAjhSTk1Fe8eIfGSINUAwYJyCjUlyYIMVi+kx9Tg==
dependencies:
"@abp/jquery-validation" "~4.0.0-rc.4"
"@abp/jquery-validation" "~4.0.0-rc.5"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.4.tgz#525551c2014d9bde6e41d0a15539d9413ca5e352"
integrity sha512-pUCbr0XRw4DjXqyj/TYhsnHxqV9VWdQ08gBPqDuCuP4Pxwo615ylM/x31a1V2Oh4bteGe56DJmtMnOaU5YGrKg==
"@abp/jquery-validation@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.5.tgz#eb02731039b5befebf3666cb6cc1a7b54d5e9057"
integrity sha512-5LWBi+8Otch8SUCJA7DyKX7gD2Vy2aCODyPO5Y037lx7iUk/xHkhRnPDOVIGiS8fzyZx+fLNhJ6Lbfk9P+I5XA==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-validation "^1.19.2"
"@abp/jquery@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.4.tgz#2c34cdd36d34f16877375d5137c05e03b5057da3"
integrity sha512-HLE1KDIvWf+I+x8n/cF8cfOVcCG3XngnzE/5viNjJM2gERMK5j3U0BjTiq7Ar5AIIFvLgWdwdGsG4ioYOuhSZw==
"@abp/jquery@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.5.tgz#244fbe71bb85abc1f54bfca269d9b0bfdf50469f"
integrity sha512-xt2gV3ZIMpyTFls2a58TTXEbhFxQGb7JacRojp5/+MyGL/SoQbOGENU3aK/fHRYD3VRUkhlKFGT6Ijv3LX83/A==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
jquery "~3.5.1"
"@abp/lodash@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.4.tgz#1afedb9431ab9918384d559f3c5fc71a73bd33fb"
integrity sha512-3HTD1JT3Y5DTPRODxiEXSIAarNNe45d4GrwkDVf9+cpaVdcqY5odO0bROcrcTAS7DmqE7WtOdXMubbTnfJXt1g==
"@abp/lodash@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.5.tgz#f38dd3021d2b9877cf38fe812531968b7e607838"
integrity sha512-xdJ3WjqBz+C1gxrq1GcA66D1wrKn3QJ9/culTvEDr/eLpHjimnNjMmhAQqVxbaGk6qD6Q8Fswr8gtwqpPSe6eA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
lodash "^4.17.15"
"@abp/luxon@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.4.tgz#f16088e7493580440d0c6698c59b1b94d64c3e1a"
integrity sha512-I+5YtNiXPm1xse7IykOxtZbkDQgVj7lm0f0bfSkuxO2Dl25D7d0tb/81p/tQ6m+9QvKjXoCzaxVeKfgkMUANMw==
"@abp/luxon@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.5.tgz#9448a48b6b3bf0446b421c2642188b9f11848572"
integrity sha512-S/lkCt/ou0Lv7KG3/XEAHx2S2YaDcEszyhnRBVCYSNqOUr0a56J+2MqKL5OFrOTNCfkPHDkaJVlSIXBEXokXFA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.4.tgz#6f5725f025b1b012c674ec5c3d4fc48f9cf31a9a"
integrity sha512-ZdyhMjYIQ9gmOXo5HXQ0n18NZmyVf+Ci5X0hA+phY+RXyX3n5q8Ic7ikufI4t5wWL/ZbU1IPGShJP0A1v6bgSA==
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.5.tgz#87acd20de26e071bb38ec26fa4cd18026ca11464"
integrity sha512-QOp8R/LDabMhjapSjaArBEZUEslhOOGYIGfFm8CCrSeWGWJR8TFa68PIjhmUpNM5l8nlvC3MDMkQ/TnOaXgR4g==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/prismjs@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.0.0-rc.4.tgz#0918cf8759540b4590d2f82a7ace4dbc059098cb"
integrity sha512-yhUEqrRGTVWB2gXgbBGb5y6pvqXJBdPKSnHlG0bYxoqzzFqrPLOo1c1r/MB6eaAesU7kBHk8MUlApw6JCqBs5A==
"@abp/prismjs@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.0.0-rc.5.tgz#febe1f5bc1ce4234e681c7dd76e5274c23c636ed"
integrity sha512-h7lhlk1dKhhL75jc6YBKb+w24tbMi2QMAsGnexcxfgUU043a9VFZzzU6lg3najH+dQzcVl5/qh5w9KoC7EYMGA==
dependencies:
"@abp/clipboard" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.4"
"@abp/clipboard" "~4.0.0-rc.5"
"@abp/core" "~4.0.0-rc.5"
prismjs "^1.20.0"
"@abp/select2@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.4.tgz#191b02f0d40adc535b90d5f2ae2e9eaa57cf21d4"
integrity sha512-kSs/I5fUBNQeUELn3+pNpLB4JuEroAWeKT7z/1NMexAzYq/QB4RErn5pZZdjGGMvJ5sfbrKcgtjF4nwZzHTzGg==
"@abp/select2@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.5.tgz#a7cc1e2e1985693f673c8214ac7db21d79dee4b8"
integrity sha512-ZNwT8u0CPDrCO4y5kCWd2EGhihwc+R6aBxx8tzL0AUAuHYRVA68T49Exyd1Fa+jESRjoVn18hys6HnTCUzZkWQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
select2 "^4.0.13"
"@abp/sweetalert@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.4.tgz#cc5d8dcf43d9fcea64c5589c71771d172d4c1f7d"
integrity sha512-cgatSuHU0OXqtoBK9cgLJUArcVAP7J1ljYIfPeZFQsZdt/W/i9B+SY4vpOEsEa2sI3OkoA60F0mQ12ykIWr4Xg==
"@abp/sweetalert@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.5.tgz#e360ed98fc242348eb881e0031e4bf921bd1065b"
integrity sha512-dCmKYbmUBvsh95VjOeAxBsEgDQSTYswbAOXfTe/1nTf7ABVxUouKY++TYjK9xOgrmUx2fXC/kpImiAKI/xsLEg==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
sweetalert "^2.1.2"
"@abp/timeago@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.4.tgz#11cbbfa3b726e3704a1d59f593fb4d67a0776c3c"
integrity sha512-L38znHtBSShXOPs2MgyrZCzZwIBfqBKuTpdVZqbHTcw1LkPQ2OyFoYNfaDjJnHALOEeFhnbhX9+YDBIruAcynQ==
"@abp/timeago@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.5.tgz#f0dd1e85249dc737e8cfedba072677dd6727d16c"
integrity sha512-Nqq9Ok7odlp+ptmCDsdcz1/j68n6gZN8+jBHZt18hU4ox4awruDbSguK7Pn2qu8Vt5zfGtit0+nqKamlq+dr6A==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
timeago "^1.6.7"
"@abp/toastr@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.4.tgz#b9446add88f2b438edea0667e571861129acac64"
integrity sha512-+IxxxJsxI3DjBjduidfwxYkhRiAvdosY/AzyddkXu8h3D3bc37ec4P71piAe8AAcqwQoC6D4+vIH4BWoVgq48A==
"@abp/toastr@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.5.tgz#7f39a71fca5665cbcf46f02a7df6030ddb0114c7"
integrity sha512-jS01uP0MZb4OWfBTH1UEXlTPYMjK5WqorE8WZ6Am+jKzwfHudCDFmjFfSX5PV2/Ia3CP9NU8mwygXLmtsHZbHw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
toastr "^2.1.4"
"@abp/utils@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.4.tgz#99573069c7dac8751e3124e60511a11a169df565"
integrity sha512-z1l6A07+rSgf7fzI/UTlZv1cJBiIUa0kpEvhcChe7mwlHB7oQ3SlGjZX37kzOqWcOusfMOANPuVulkZLSCOB/w==
"@abp/utils@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.5.tgz#45b55d6bbf69ad2a052bc2635c039d2cc4aac401"
integrity sha512-pRYUSh30VT4702lfnQCswIwLVqNC6ZFsmydXngwZASJEJVKj30XitSlixnKhocvozG/87H0sYVzvwmUyJiHHQw==
dependencies:
just-compare "^1.3.0"

4
modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs

@ -136,7 +136,7 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore
return result.ToDictionary(element => element.Day.ClearTime(), element => element.avgExecutionTime);
}
public override IQueryable<AuditLog> WithDetails()
{
return GetQueryable().IncludeDetails();
@ -147,8 +147,8 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore
var entityChange = await DbContext.Set<EntityChange>()
.AsNoTracking()
.IncludeDetails()
.OrderBy(x => x.Id)
.Where(x => x.Id == entityChangeId)
.OrderBy(x => x.Id)
.FirstOrDefaultAsync();
if (entityChange == null)

13
modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo/Abp/AuditLogging/MongoDB/MongoAuditLogRepository.cs

@ -24,7 +24,7 @@ namespace Volo.Abp.AuditLogging.MongoDB
public virtual async Task<List<AuditLog>> GetListAsync(
string sorting = null,
int maxResultCount = 50,
int maxResultCount = 50,
int skipCount = 0,
DateTime? startTime = null,
DateTime? endTime = null,
@ -145,9 +145,10 @@ namespace Volo.Abp.AuditLogging.MongoDB
{
var entityChange = (await GetMongoQueryable()
.Where(x => x.EntityChanges.Any(y => y.Id == entityChangeId))
.OrderBy(x => x.Id)
.FirstAsync()).EntityChanges.FirstOrDefault(x => x.Id == entityChangeId);
if (entityChange == null)
{
throw new EntityNotFoundException(typeof(EntityChange));
@ -174,7 +175,7 @@ namespace Volo.Abp.AuditLogging.MongoDB
var auditLogs = await query.As<IMongoQueryable<EntityChange>>()
.PageBy<EntityChange, IMongoQueryable<EntityChange>>(skipCount, maxResultCount)
.ToListAsync(GetCancellationToken(cancellationToken));
return auditLogs.AsQueryable().OrderBy(sorting ?? "changeTime desc").ToList();
}
@ -188,7 +189,7 @@ namespace Volo.Abp.AuditLogging.MongoDB
CancellationToken cancellationToken = default)
{
var query = GetEntityChangeListQuery(auditLogId, startTime, endTime, changeType, entityId, entityTypeFullName);
var count = await query.As<IMongoQueryable<EntityChange>>().LongCountAsync(GetCancellationToken(cancellationToken));
return count;
@ -216,7 +217,7 @@ namespace Volo.Abp.AuditLogging.MongoDB
.ToListAsync();
var entityChanges = auditLogs.SelectMany(x => x.EntityChanges).ToList();
entityChanges.RemoveAll(x => x.EntityId != entityId || x.EntityTypeFullName != entityTypeFullName);
return entityChanges.Select(x => new EntityChangeWithUsername()

4
modules/blogging/app/Volo.BloggingTestApp/package.json

@ -3,7 +3,7 @@
"name": "volo.blogtestapp",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.4",
"@abp/blogging": "^4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.5",
"@abp/blogging": "^4.0.0-rc.5"
}
}

332
modules/blogging/app/Volo.BloggingTestApp/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.4.tgz#20faab45d70981f8a7bb064a91967c64cbc37d39"
integrity sha512-0GTyUURfT/vw9ICEgW2J8TBnBCpvLK9PXuouXrCAx19AvG10Uq2RC7oO7uM7xqN2NspDFkrmdeA1O+2IX7RaPQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.4.tgz#2a2f8ee63bbadf74c03770e9f43da8b012ee9596"
integrity sha512-rVdZMn3WX1r/LRMl7l8l4MWnKmfE6EgHJO9t07AaryM2UelpQ2OTEcHaMM1SnpzWXJ5NGTaG23fxIUSlTXr3hg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.4"
"@abp/bootstrap" "~4.0.0-rc.4"
"@abp/bootstrap-datepicker" "~4.0.0-rc.4"
"@abp/datatables.net-bs4" "~4.0.0-rc.4"
"@abp/font-awesome" "~4.0.0-rc.4"
"@abp/jquery-form" "~4.0.0-rc.4"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.4"
"@abp/lodash" "~4.0.0-rc.4"
"@abp/luxon" "~4.0.0-rc.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.4"
"@abp/select2" "~4.0.0-rc.4"
"@abp/sweetalert" "~4.0.0-rc.4"
"@abp/timeago" "~4.0.0-rc.4"
"@abp/toastr" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.4.tgz#2f965478aec984cefc9fd1fe947c70c154bea384"
integrity sha512-SLVcpmigKkG+Zt6SzjKiSNob6jncDAKjNHUp4auJZos0uKTp2cWV1u9JmkpKEIGivnwu3JSigjsIEAlbU841CA==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.5.tgz#f57744513c443dd96b64a11376b67fabb0df821d"
integrity sha512-6P9nwq1RvAVtRl5NQq+R5QQIGflSbZMFdQTje4r7hDjhKlGLPQUBgWrYRP0TXkIbxz/fhBC9/Mg7lg3bmSH+uQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.5.tgz#ca73a54b7f328e7429ac639ce17526b72eab5581"
integrity sha512-GPc82OOz+MpSnTl46Wgeg53NYPI46jdy4/muragF6JR+3zBEo8tYe0jHP8T+LGtyGXdYoJ9Sx9274fRyxxh65Q==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.5"
"@abp/bootstrap" "~4.0.0-rc.5"
"@abp/bootstrap-datepicker" "~4.0.0-rc.5"
"@abp/datatables.net-bs4" "~4.0.0-rc.5"
"@abp/font-awesome" "~4.0.0-rc.5"
"@abp/jquery-form" "~4.0.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.5"
"@abp/lodash" "~4.0.0-rc.5"
"@abp/luxon" "~4.0.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.5"
"@abp/select2" "~4.0.0-rc.5"
"@abp/sweetalert" "~4.0.0-rc.5"
"@abp/timeago" "~4.0.0-rc.5"
"@abp/toastr" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.5.tgz#fa0dbc0b2f0a2c7777cdeb7613ec61307e6edd96"
integrity sha512-zEHA08snWGVL2Lm4ijpj/CnY1JxIg1ark3fxNsaKraVciVWbh5jmnBL8LCdKZFWZqEGCeWxrEnpt8OGIV+nhdg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,214 +43,214 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/blogging@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.0.0-rc.4.tgz#027cd11ff3410c3120136cbf51820a3fd288f996"
integrity sha512-KNIp6IbBIaaU7kAX3pVxHiKTg1+2mg+eYugQtRFWs/aSv+r5vwpHdeIb7Ho0qTujc8Q6vmBKVIlYlmJK4FItlw==
"@abp/blogging@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-4.0.0-rc.5.tgz#fb24809905eed5078387b3e7594f71f8ccaf46a9"
integrity sha512-jMxzCBjFAe/n9LgszgNkyCYLtYnLtXtuRMoJ78KH7xXOwpamXucuuG5PM0q4q9it72oMsMUrZ/vrdbgNLNL0ng==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.4"
"@abp/owl.carousel" "~4.0.0-rc.4"
"@abp/prismjs" "~4.0.0-rc.4"
"@abp/tui-editor" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.5"
"@abp/owl.carousel" "~4.0.0-rc.5"
"@abp/prismjs" "~4.0.0-rc.5"
"@abp/tui-editor" "~4.0.0-rc.5"
"@abp/bootstrap-datepicker@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.4.tgz#4e8c25ec32d792a5bb47ca98f8ab67143da6d3f3"
integrity sha512-4KTOiqHGr9obUFgP1+9o18VASWsxeAlKWrLlCwDX9ojjtk7LCdLSEtcW+M04LLMywfi74V/NU5NIOHliuVqvVw==
"@abp/bootstrap-datepicker@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.5.tgz#38d665ba63dc9a0bb5fb8bfad50e7cac2fcdb8bf"
integrity sha512-nh+yJRn+CsnLd2VQelYcQbS49zP1LDSvczZrlCZUtiyAv400cBa1mC8tITxDnpAEBlICWb5s4Sg7kJXjyePsmw==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.4.tgz#ba4b9cc3cd7fececbb9a4117a2cc8b2400cfc056"
integrity sha512-NyWi1w4Q33aDNVOCQszGhdQlJJuwoxcA6LkC0TeY3vQBqtOkcz3YyB1id0lTYoHJnp92+K9+uwW0p1V5GgpF5Q==
"@abp/bootstrap@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.5.tgz#c49675030b2bde53a8b30249f38d85d4ae0aff49"
integrity sha512-eXJS1Eq2WyB9qKhyW/+9PUzZU5YNKe9q2Mt2nISwb0NmFepGiLkoygGQXtTe7yvyVdqrb6XM5pZHxdM0tRkYRQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/clipboard@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.0.0-rc.4.tgz#177b636b55f8ae77968f7ca4bfca451f396fac7e"
integrity sha512-lRmc2lt+BP0M34f4848bDOIkwhHNVlUJk0/6jChwoSxGdiBOwvzRJKl7aFS/gnbU8I3RtI7i1+scvjGdb3kdLw==
"@abp/clipboard@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.0.0-rc.5.tgz#66a62e7cd1cec2c4e94d606c9caa3290db7056f8"
integrity sha512-aGcNyWnYzpik8r2sElPuf4h+Bd3HFJscmP8fAbw43t877CqrXxKCt62cAjUM5aeF5fVvMIuw+/wPSmSY29Yy+Q==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
clipboard "^2.0.6"
"@abp/codemirror@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.0.0-rc.4.tgz#7a980db684a65f24935b7d93444c672472067332"
integrity sha512-isDkIVBzNKh6MieLb7njgLWAdtEZxEyZkcCrWtZldxVOpDeX1VGUoTPlMC7Plw4T/kIDS24PTlETfYOIa5ZO0A==
"@abp/codemirror@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-4.0.0-rc.5.tgz#026c526d5cc3921c8a174eebd11ea84d27e06ab4"
integrity sha512-gz6C6MAKfCYz01VJr265xFjmkMBXZnzAD4odqwBZxLgN0tHy2Ex30ViU5GhG+4EcAxaEmWJjOxgMokWCk+E0UQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
codemirror "^5.54.0"
"@abp/core@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.4.tgz#44b0fb73ee95fcae704b0967a4da20169932cd1d"
integrity sha512-eaY2gE2fWpbtSyUNm+3UAn5rHe4r9uyMm+BKzeoFzuq7XEfOioNGKPTadyi+fmlgaQ9mVT/Rhf3cHDDm4kVNug==
"@abp/core@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.5.tgz#3500839195c24f1275c55801037b02fd749516f7"
integrity sha512-Ubbej59+9z4FQWWCUSO3LphTmT8ZJQ/53cFcMOMIX/uoluli8IORBeAetTw4UDqG2rA70a5YKpyz17pG36D1kA==
dependencies:
"@abp/utils" "^4.0.0-rc.4"
"@abp/utils" "^4.0.0-rc.5"
"@abp/datatables.net-bs4@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.4.tgz#cbc962d0d0d68f2e1a92020db5788f3b65955864"
integrity sha512-YNCtbr901uOjmJPN+J/4QA5xpfWbg/g7nkmPiEjB1vINYmFpeT6iWbMme0uQdVNdqeJ+miPvHsSDqF0xowOlOw==
"@abp/datatables.net-bs4@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.5.tgz#00a9db6cd73bd1f6e5adaebe3add0f3192ed9b1d"
integrity sha512-Xvvm7j2UVgJfQRIPJ121vYH7upao22nqcFAxmeBFZ41Vgmt2gDkbXfvPHIAw06M0C2Gpym9shO+Sg4556xCubQ==
dependencies:
"@abp/datatables.net" "~4.0.0-rc.4"
"@abp/datatables.net" "~4.0.0-rc.5"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.4.tgz#f071b3d9d20c447d99f9e413bbfffc85b40c4db4"
integrity sha512-ML/Osb+SJYoSImDaB2+rhJa339yUnw4V1F1o9u25JhPIHnXctj8E2dM4jWKBcnzFMEjRtAtZUi3nvrwXemEeIQ==
"@abp/datatables.net@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.5.tgz#ca581ca5b76a95702086b04da3f50b00b7da7973"
integrity sha512-xm7JQ/B9Opng1zai+cAILD6pl2Xlp54NMkfz7Y6U4DEYhzUAOT1idOVUhlCMtdE6RxVVqZGVozQZt7SZFZVImw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.4.tgz#dc52c5e18920f76d1574835540d592c5e4ab1605"
integrity sha512-mRPgiDbwqFrV7/GuYmmHKMufcwrA5GymZg0HqVMk2iVvrUbQaHlW1UJuwvtk4rcUnT+J7oEJGGNmK9Q4n3ya5A==
"@abp/font-awesome@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.5.tgz#59a0516eb3c2d6f43a0a19a60f7c31fef4d421f4"
integrity sha512-VsmpC04epanCyZC6DVrDJz8FcupdU8/PpV9gnr7YvTk+VZQrq/zY9C21GWPDGKmBPavUlG4QMrX1oeUvu+9FoA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/highlight.js@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.0.0-rc.4.tgz#d1f082095d39eea5da6b6113ae02d02faa7b17a0"
integrity sha512-ZAHHE97dm6zL3ZCOZLHgsjF5XNsbZFbygpY5olz3feyPsXHQLemQYc/ICyGKWdQ3wg1JcYAeh0BNlNm3NHhsww==
"@abp/highlight.js@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-4.0.0-rc.5.tgz#30957d40f58d7254e43231ecfb89b11f0eaf85cb"
integrity sha512-6pLhzYChzyNc8x3QGSBJcz6EbBFVG4AddcJQAEvp/BmnkfVwb8av++Y3I1a3Pc/6GhSuKhy5QCnFoQQzrtHXwA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
"@abp/jquery-form@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.4.tgz#d2a37a206341727854ac57fdda05ff32d4aa2799"
integrity sha512-BykInqeMENj2krNaMpHnvQ/cqdzSMfTryegL/ItAqjVnZu7LoIHqO89eVpcLS/SwLaOx0j8JPsh1mQgSvQt0WQ==
"@abp/jquery-form@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.5.tgz#91b90f4cb45bce584e33a74cc4366297fc4d4d40"
integrity sha512-5XrRF1xQMpZnAHYGDdpkLnYaAiKtWsmmHJ3aLxtg1QHnTuSKbasEtsOMVTqazkpiGcZsURcHNa4B/JUSK/KuBg==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.4.tgz#705f5cf0f1d24c31d36fe4aa74fd39d2476c3f5f"
integrity sha512-oHm4w1Kr7gnsz87a51wtA6sKYCalCou5S9tDVnabYbHQssZg0s5tUo1NS1OyJw10bXu4Azo2fhdZf4JVotD6Qw==
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.5.tgz#f6c3320c9362bc70120dbdcce02cda814ec7c243"
integrity sha512-ftBxpeMLeRlaabPzU0wjDd4qvfgX38XtELnGjdQmTQ3P5lmAjhSTk1Fe8eIfGSINUAwYJyCjUlyYIMVi+kx9Tg==
dependencies:
"@abp/jquery-validation" "~4.0.0-rc.4"
"@abp/jquery-validation" "~4.0.0-rc.5"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.4.tgz#525551c2014d9bde6e41d0a15539d9413ca5e352"
integrity sha512-pUCbr0XRw4DjXqyj/TYhsnHxqV9VWdQ08gBPqDuCuP4Pxwo615ylM/x31a1V2Oh4bteGe56DJmtMnOaU5YGrKg==
"@abp/jquery-validation@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.5.tgz#eb02731039b5befebf3666cb6cc1a7b54d5e9057"
integrity sha512-5LWBi+8Otch8SUCJA7DyKX7gD2Vy2aCODyPO5Y037lx7iUk/xHkhRnPDOVIGiS8fzyZx+fLNhJ6Lbfk9P+I5XA==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-validation "^1.19.2"
"@abp/jquery@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.4.tgz#2c34cdd36d34f16877375d5137c05e03b5057da3"
integrity sha512-HLE1KDIvWf+I+x8n/cF8cfOVcCG3XngnzE/5viNjJM2gERMK5j3U0BjTiq7Ar5AIIFvLgWdwdGsG4ioYOuhSZw==
"@abp/jquery@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.5.tgz#244fbe71bb85abc1f54bfca269d9b0bfdf50469f"
integrity sha512-xt2gV3ZIMpyTFls2a58TTXEbhFxQGb7JacRojp5/+MyGL/SoQbOGENU3aK/fHRYD3VRUkhlKFGT6Ijv3LX83/A==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
jquery "~3.5.1"
"@abp/lodash@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.4.tgz#1afedb9431ab9918384d559f3c5fc71a73bd33fb"
integrity sha512-3HTD1JT3Y5DTPRODxiEXSIAarNNe45d4GrwkDVf9+cpaVdcqY5odO0bROcrcTAS7DmqE7WtOdXMubbTnfJXt1g==
"@abp/lodash@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.5.tgz#f38dd3021d2b9877cf38fe812531968b7e607838"
integrity sha512-xdJ3WjqBz+C1gxrq1GcA66D1wrKn3QJ9/culTvEDr/eLpHjimnNjMmhAQqVxbaGk6qD6Q8Fswr8gtwqpPSe6eA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
lodash "^4.17.15"
"@abp/luxon@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.4.tgz#f16088e7493580440d0c6698c59b1b94d64c3e1a"
integrity sha512-I+5YtNiXPm1xse7IykOxtZbkDQgVj7lm0f0bfSkuxO2Dl25D7d0tb/81p/tQ6m+9QvKjXoCzaxVeKfgkMUANMw==
"@abp/luxon@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.5.tgz#9448a48b6b3bf0446b421c2642188b9f11848572"
integrity sha512-S/lkCt/ou0Lv7KG3/XEAHx2S2YaDcEszyhnRBVCYSNqOUr0a56J+2MqKL5OFrOTNCfkPHDkaJVlSIXBEXokXFA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.4.tgz#6f5725f025b1b012c674ec5c3d4fc48f9cf31a9a"
integrity sha512-ZdyhMjYIQ9gmOXo5HXQ0n18NZmyVf+Ci5X0hA+phY+RXyX3n5q8Ic7ikufI4t5wWL/ZbU1IPGShJP0A1v6bgSA==
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.5.tgz#87acd20de26e071bb38ec26fa4cd18026ca11464"
integrity sha512-QOp8R/LDabMhjapSjaArBEZUEslhOOGYIGfFm8CCrSeWGWJR8TFa68PIjhmUpNM5l8nlvC3MDMkQ/TnOaXgR4g==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/markdown-it@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.0.0-rc.4.tgz#ea75922ddc22b960b215209c269170a4268d9d6a"
integrity sha512-rxSFHYCNZQmxsxUqcws7kWTESyyaKgvD89zOh3nllVQ8fc/BfyHJwQr9y4/tRcSplucCriVMp3Db4C/maeIDzA==
"@abp/markdown-it@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-4.0.0-rc.5.tgz#dbc5aeaea6912604b9edf06569eefe04d84b61ba"
integrity sha512-IsqvtDjx0RxZFjtlzPb7Z2mpi+Cq2qpEBPuZPYR9yJbGshzco0j+GdM0Kd+ezeBAHQ40zyrL7Q0cAuT9zORN+A==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
markdown-it "^11.0.0"
"@abp/owl.carousel@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.0.0-rc.4.tgz#3cba314ffa87ae623dfdf8a0c6b2e45d7f6efdfc"
integrity sha512-a0OFn7hq+a/Pl776rZu1vk/bg2A0e9cUfNlJ4hBtWgrYIELvMaYYF9DE39m3U4DyOBdd8ptN3X1EKqwi8UkBHA==
"@abp/owl.carousel@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-4.0.0-rc.5.tgz#6669fd0671f276e629ac0ddcada76bd1661ef57b"
integrity sha512-3xG+JGygdQ2L30yqvzJSv53FGlj6jS5pjEb3shypo95NvcxZ5PrySVBG25wY7Q5IMo7+vZcBqf3/ffVBusAeCw==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
owl.carousel "^2.3.4"
"@abp/prismjs@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.0.0-rc.4.tgz#0918cf8759540b4590d2f82a7ace4dbc059098cb"
integrity sha512-yhUEqrRGTVWB2gXgbBGb5y6pvqXJBdPKSnHlG0bYxoqzzFqrPLOo1c1r/MB6eaAesU7kBHk8MUlApw6JCqBs5A==
"@abp/prismjs@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.0.0-rc.5.tgz#febe1f5bc1ce4234e681c7dd76e5274c23c636ed"
integrity sha512-h7lhlk1dKhhL75jc6YBKb+w24tbMi2QMAsGnexcxfgUU043a9VFZzzU6lg3najH+dQzcVl5/qh5w9KoC7EYMGA==
dependencies:
"@abp/clipboard" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.4"
"@abp/clipboard" "~4.0.0-rc.5"
"@abp/core" "~4.0.0-rc.5"
prismjs "^1.20.0"
"@abp/select2@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.4.tgz#191b02f0d40adc535b90d5f2ae2e9eaa57cf21d4"
integrity sha512-kSs/I5fUBNQeUELn3+pNpLB4JuEroAWeKT7z/1NMexAzYq/QB4RErn5pZZdjGGMvJ5sfbrKcgtjF4nwZzHTzGg==
"@abp/select2@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.5.tgz#a7cc1e2e1985693f673c8214ac7db21d79dee4b8"
integrity sha512-ZNwT8u0CPDrCO4y5kCWd2EGhihwc+R6aBxx8tzL0AUAuHYRVA68T49Exyd1Fa+jESRjoVn18hys6HnTCUzZkWQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
select2 "^4.0.13"
"@abp/sweetalert@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.4.tgz#cc5d8dcf43d9fcea64c5589c71771d172d4c1f7d"
integrity sha512-cgatSuHU0OXqtoBK9cgLJUArcVAP7J1ljYIfPeZFQsZdt/W/i9B+SY4vpOEsEa2sI3OkoA60F0mQ12ykIWr4Xg==
"@abp/sweetalert@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.5.tgz#e360ed98fc242348eb881e0031e4bf921bd1065b"
integrity sha512-dCmKYbmUBvsh95VjOeAxBsEgDQSTYswbAOXfTe/1nTf7ABVxUouKY++TYjK9xOgrmUx2fXC/kpImiAKI/xsLEg==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
sweetalert "^2.1.2"
"@abp/timeago@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.4.tgz#11cbbfa3b726e3704a1d59f593fb4d67a0776c3c"
integrity sha512-L38znHtBSShXOPs2MgyrZCzZwIBfqBKuTpdVZqbHTcw1LkPQ2OyFoYNfaDjJnHALOEeFhnbhX9+YDBIruAcynQ==
"@abp/timeago@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.5.tgz#f0dd1e85249dc737e8cfedba072677dd6727d16c"
integrity sha512-Nqq9Ok7odlp+ptmCDsdcz1/j68n6gZN8+jBHZt18hU4ox4awruDbSguK7Pn2qu8Vt5zfGtit0+nqKamlq+dr6A==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
timeago "^1.6.7"
"@abp/toastr@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.4.tgz#b9446add88f2b438edea0667e571861129acac64"
integrity sha512-+IxxxJsxI3DjBjduidfwxYkhRiAvdosY/AzyddkXu8h3D3bc37ec4P71piAe8AAcqwQoC6D4+vIH4BWoVgq48A==
"@abp/toastr@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.5.tgz#7f39a71fca5665cbcf46f02a7df6030ddb0114c7"
integrity sha512-jS01uP0MZb4OWfBTH1UEXlTPYMjK5WqorE8WZ6Am+jKzwfHudCDFmjFfSX5PV2/Ia3CP9NU8mwygXLmtsHZbHw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
toastr "^2.1.4"
"@abp/tui-editor@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.0.0-rc.4.tgz#189d71f2c0d98b27be7345ee36ebfe4099f030d6"
integrity sha512-KT1rG00LleL1yb5kdIclhJphym/g4ccKvLauLoDFkLh8c7TKTKHSSiiaKFXFou4gk0naxreeHxKESyuM332qkg==
"@abp/tui-editor@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-4.0.0-rc.5.tgz#769101cc903826b8104c63d8371126289caf3e4f"
integrity sha512-oqn8EjMWSoyYFJX5wgFKz3SNV2+CaUSIBqy/c59ETFKx2azwTuuM2BwGM4l0seapEGoW8P/a4OyNrwruKLGYsA==
dependencies:
"@abp/codemirror" "~4.0.0-rc.4"
"@abp/highlight.js" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.4"
"@abp/markdown-it" "~4.0.0-rc.4"
"@abp/codemirror" "~4.0.0-rc.5"
"@abp/highlight.js" "~4.0.0-rc.5"
"@abp/jquery" "~4.0.0-rc.5"
"@abp/markdown-it" "~4.0.0-rc.5"
tui-editor "^1.4.10"
"@abp/utils@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.4.tgz#99573069c7dac8751e3124e60511a11a169df565"
integrity sha512-z1l6A07+rSgf7fzI/UTlZv1cJBiIUa0kpEvhcChe7mwlHB7oQ3SlGjZX37kzOqWcOusfMOANPuVulkZLSCOB/w==
"@abp/utils@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.5.tgz#45b55d6bbf69ad2a052bc2635c039d2cc4aac401"
integrity sha512-pRYUSh30VT4702lfnQCswIwLVqNC6ZFsmydXngwZASJEJVKj30XitSlixnKhocvozG/87H0sYVzvwmUyJiHHQw==
dependencies:
just-compare "^1.3.0"

2
modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json

@ -3,6 +3,6 @@
"name": "client-simulation-web",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.5"
}
}

238
modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.4.tgz#20faab45d70981f8a7bb064a91967c64cbc37d39"
integrity sha512-0GTyUURfT/vw9ICEgW2J8TBnBCpvLK9PXuouXrCAx19AvG10Uq2RC7oO7uM7xqN2NspDFkrmdeA1O+2IX7RaPQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.4.tgz#2a2f8ee63bbadf74c03770e9f43da8b012ee9596"
integrity sha512-rVdZMn3WX1r/LRMl7l8l4MWnKmfE6EgHJO9t07AaryM2UelpQ2OTEcHaMM1SnpzWXJ5NGTaG23fxIUSlTXr3hg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.4"
"@abp/bootstrap" "~4.0.0-rc.4"
"@abp/bootstrap-datepicker" "~4.0.0-rc.4"
"@abp/datatables.net-bs4" "~4.0.0-rc.4"
"@abp/font-awesome" "~4.0.0-rc.4"
"@abp/jquery-form" "~4.0.0-rc.4"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.4"
"@abp/lodash" "~4.0.0-rc.4"
"@abp/luxon" "~4.0.0-rc.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.4"
"@abp/select2" "~4.0.0-rc.4"
"@abp/sweetalert" "~4.0.0-rc.4"
"@abp/timeago" "~4.0.0-rc.4"
"@abp/toastr" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.4.tgz#2f965478aec984cefc9fd1fe947c70c154bea384"
integrity sha512-SLVcpmigKkG+Zt6SzjKiSNob6jncDAKjNHUp4auJZos0uKTp2cWV1u9JmkpKEIGivnwu3JSigjsIEAlbU841CA==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.5.tgz#f57744513c443dd96b64a11376b67fabb0df821d"
integrity sha512-6P9nwq1RvAVtRl5NQq+R5QQIGflSbZMFdQTje4r7hDjhKlGLPQUBgWrYRP0TXkIbxz/fhBC9/Mg7lg3bmSH+uQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.5.tgz#ca73a54b7f328e7429ac639ce17526b72eab5581"
integrity sha512-GPc82OOz+MpSnTl46Wgeg53NYPI46jdy4/muragF6JR+3zBEo8tYe0jHP8T+LGtyGXdYoJ9Sx9274fRyxxh65Q==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.5"
"@abp/bootstrap" "~4.0.0-rc.5"
"@abp/bootstrap-datepicker" "~4.0.0-rc.5"
"@abp/datatables.net-bs4" "~4.0.0-rc.5"
"@abp/font-awesome" "~4.0.0-rc.5"
"@abp/jquery-form" "~4.0.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.5"
"@abp/lodash" "~4.0.0-rc.5"
"@abp/luxon" "~4.0.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.5"
"@abp/select2" "~4.0.0-rc.5"
"@abp/sweetalert" "~4.0.0-rc.5"
"@abp/timeago" "~4.0.0-rc.5"
"@abp/toastr" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.5.tgz#fa0dbc0b2f0a2c7777cdeb7613ec61307e6edd96"
integrity sha512-zEHA08snWGVL2Lm4ijpj/CnY1JxIg1ark3fxNsaKraVciVWbh5jmnBL8LCdKZFWZqEGCeWxrEnpt8OGIV+nhdg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,145 +43,145 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.4.tgz#4e8c25ec32d792a5bb47ca98f8ab67143da6d3f3"
integrity sha512-4KTOiqHGr9obUFgP1+9o18VASWsxeAlKWrLlCwDX9ojjtk7LCdLSEtcW+M04LLMywfi74V/NU5NIOHliuVqvVw==
"@abp/bootstrap-datepicker@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.5.tgz#38d665ba63dc9a0bb5fb8bfad50e7cac2fcdb8bf"
integrity sha512-nh+yJRn+CsnLd2VQelYcQbS49zP1LDSvczZrlCZUtiyAv400cBa1mC8tITxDnpAEBlICWb5s4Sg7kJXjyePsmw==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.4.tgz#ba4b9cc3cd7fececbb9a4117a2cc8b2400cfc056"
integrity sha512-NyWi1w4Q33aDNVOCQszGhdQlJJuwoxcA6LkC0TeY3vQBqtOkcz3YyB1id0lTYoHJnp92+K9+uwW0p1V5GgpF5Q==
"@abp/bootstrap@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.5.tgz#c49675030b2bde53a8b30249f38d85d4ae0aff49"
integrity sha512-eXJS1Eq2WyB9qKhyW/+9PUzZU5YNKe9q2Mt2nISwb0NmFepGiLkoygGQXtTe7yvyVdqrb6XM5pZHxdM0tRkYRQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.4.tgz#44b0fb73ee95fcae704b0967a4da20169932cd1d"
integrity sha512-eaY2gE2fWpbtSyUNm+3UAn5rHe4r9uyMm+BKzeoFzuq7XEfOioNGKPTadyi+fmlgaQ9mVT/Rhf3cHDDm4kVNug==
"@abp/core@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.5.tgz#3500839195c24f1275c55801037b02fd749516f7"
integrity sha512-Ubbej59+9z4FQWWCUSO3LphTmT8ZJQ/53cFcMOMIX/uoluli8IORBeAetTw4UDqG2rA70a5YKpyz17pG36D1kA==
dependencies:
"@abp/utils" "^4.0.0-rc.4"
"@abp/utils" "^4.0.0-rc.5"
"@abp/datatables.net-bs4@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.4.tgz#cbc962d0d0d68f2e1a92020db5788f3b65955864"
integrity sha512-YNCtbr901uOjmJPN+J/4QA5xpfWbg/g7nkmPiEjB1vINYmFpeT6iWbMme0uQdVNdqeJ+miPvHsSDqF0xowOlOw==
"@abp/datatables.net-bs4@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.5.tgz#00a9db6cd73bd1f6e5adaebe3add0f3192ed9b1d"
integrity sha512-Xvvm7j2UVgJfQRIPJ121vYH7upao22nqcFAxmeBFZ41Vgmt2gDkbXfvPHIAw06M0C2Gpym9shO+Sg4556xCubQ==
dependencies:
"@abp/datatables.net" "~4.0.0-rc.4"
"@abp/datatables.net" "~4.0.0-rc.5"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.4.tgz#f071b3d9d20c447d99f9e413bbfffc85b40c4db4"
integrity sha512-ML/Osb+SJYoSImDaB2+rhJa339yUnw4V1F1o9u25JhPIHnXctj8E2dM4jWKBcnzFMEjRtAtZUi3nvrwXemEeIQ==
"@abp/datatables.net@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.5.tgz#ca581ca5b76a95702086b04da3f50b00b7da7973"
integrity sha512-xm7JQ/B9Opng1zai+cAILD6pl2Xlp54NMkfz7Y6U4DEYhzUAOT1idOVUhlCMtdE6RxVVqZGVozQZt7SZFZVImw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.4.tgz#dc52c5e18920f76d1574835540d592c5e4ab1605"
integrity sha512-mRPgiDbwqFrV7/GuYmmHKMufcwrA5GymZg0HqVMk2iVvrUbQaHlW1UJuwvtk4rcUnT+J7oEJGGNmK9Q4n3ya5A==
"@abp/font-awesome@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.5.tgz#59a0516eb3c2d6f43a0a19a60f7c31fef4d421f4"
integrity sha512-VsmpC04epanCyZC6DVrDJz8FcupdU8/PpV9gnr7YvTk+VZQrq/zY9C21GWPDGKmBPavUlG4QMrX1oeUvu+9FoA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.4.tgz#d2a37a206341727854ac57fdda05ff32d4aa2799"
integrity sha512-BykInqeMENj2krNaMpHnvQ/cqdzSMfTryegL/ItAqjVnZu7LoIHqO89eVpcLS/SwLaOx0j8JPsh1mQgSvQt0WQ==
"@abp/jquery-form@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.5.tgz#91b90f4cb45bce584e33a74cc4366297fc4d4d40"
integrity sha512-5XrRF1xQMpZnAHYGDdpkLnYaAiKtWsmmHJ3aLxtg1QHnTuSKbasEtsOMVTqazkpiGcZsURcHNa4B/JUSK/KuBg==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.4.tgz#705f5cf0f1d24c31d36fe4aa74fd39d2476c3f5f"
integrity sha512-oHm4w1Kr7gnsz87a51wtA6sKYCalCou5S9tDVnabYbHQssZg0s5tUo1NS1OyJw10bXu4Azo2fhdZf4JVotD6Qw==
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.5.tgz#f6c3320c9362bc70120dbdcce02cda814ec7c243"
integrity sha512-ftBxpeMLeRlaabPzU0wjDd4qvfgX38XtELnGjdQmTQ3P5lmAjhSTk1Fe8eIfGSINUAwYJyCjUlyYIMVi+kx9Tg==
dependencies:
"@abp/jquery-validation" "~4.0.0-rc.4"
"@abp/jquery-validation" "~4.0.0-rc.5"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.4.tgz#525551c2014d9bde6e41d0a15539d9413ca5e352"
integrity sha512-pUCbr0XRw4DjXqyj/TYhsnHxqV9VWdQ08gBPqDuCuP4Pxwo615ylM/x31a1V2Oh4bteGe56DJmtMnOaU5YGrKg==
"@abp/jquery-validation@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.5.tgz#eb02731039b5befebf3666cb6cc1a7b54d5e9057"
integrity sha512-5LWBi+8Otch8SUCJA7DyKX7gD2Vy2aCODyPO5Y037lx7iUk/xHkhRnPDOVIGiS8fzyZx+fLNhJ6Lbfk9P+I5XA==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-validation "^1.19.2"
"@abp/jquery@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.4.tgz#2c34cdd36d34f16877375d5137c05e03b5057da3"
integrity sha512-HLE1KDIvWf+I+x8n/cF8cfOVcCG3XngnzE/5viNjJM2gERMK5j3U0BjTiq7Ar5AIIFvLgWdwdGsG4ioYOuhSZw==
"@abp/jquery@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.5.tgz#244fbe71bb85abc1f54bfca269d9b0bfdf50469f"
integrity sha512-xt2gV3ZIMpyTFls2a58TTXEbhFxQGb7JacRojp5/+MyGL/SoQbOGENU3aK/fHRYD3VRUkhlKFGT6Ijv3LX83/A==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
jquery "~3.5.1"
"@abp/lodash@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.4.tgz#1afedb9431ab9918384d559f3c5fc71a73bd33fb"
integrity sha512-3HTD1JT3Y5DTPRODxiEXSIAarNNe45d4GrwkDVf9+cpaVdcqY5odO0bROcrcTAS7DmqE7WtOdXMubbTnfJXt1g==
"@abp/lodash@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.5.tgz#f38dd3021d2b9877cf38fe812531968b7e607838"
integrity sha512-xdJ3WjqBz+C1gxrq1GcA66D1wrKn3QJ9/culTvEDr/eLpHjimnNjMmhAQqVxbaGk6qD6Q8Fswr8gtwqpPSe6eA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
lodash "^4.17.15"
"@abp/luxon@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.4.tgz#f16088e7493580440d0c6698c59b1b94d64c3e1a"
integrity sha512-I+5YtNiXPm1xse7IykOxtZbkDQgVj7lm0f0bfSkuxO2Dl25D7d0tb/81p/tQ6m+9QvKjXoCzaxVeKfgkMUANMw==
"@abp/luxon@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.5.tgz#9448a48b6b3bf0446b421c2642188b9f11848572"
integrity sha512-S/lkCt/ou0Lv7KG3/XEAHx2S2YaDcEszyhnRBVCYSNqOUr0a56J+2MqKL5OFrOTNCfkPHDkaJVlSIXBEXokXFA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.4.tgz#6f5725f025b1b012c674ec5c3d4fc48f9cf31a9a"
integrity sha512-ZdyhMjYIQ9gmOXo5HXQ0n18NZmyVf+Ci5X0hA+phY+RXyX3n5q8Ic7ikufI4t5wWL/ZbU1IPGShJP0A1v6bgSA==
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.5.tgz#87acd20de26e071bb38ec26fa4cd18026ca11464"
integrity sha512-QOp8R/LDabMhjapSjaArBEZUEslhOOGYIGfFm8CCrSeWGWJR8TFa68PIjhmUpNM5l8nlvC3MDMkQ/TnOaXgR4g==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.4.tgz#191b02f0d40adc535b90d5f2ae2e9eaa57cf21d4"
integrity sha512-kSs/I5fUBNQeUELn3+pNpLB4JuEroAWeKT7z/1NMexAzYq/QB4RErn5pZZdjGGMvJ5sfbrKcgtjF4nwZzHTzGg==
"@abp/select2@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.5.tgz#a7cc1e2e1985693f673c8214ac7db21d79dee4b8"
integrity sha512-ZNwT8u0CPDrCO4y5kCWd2EGhihwc+R6aBxx8tzL0AUAuHYRVA68T49Exyd1Fa+jESRjoVn18hys6HnTCUzZkWQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
select2 "^4.0.13"
"@abp/sweetalert@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.4.tgz#cc5d8dcf43d9fcea64c5589c71771d172d4c1f7d"
integrity sha512-cgatSuHU0OXqtoBK9cgLJUArcVAP7J1ljYIfPeZFQsZdt/W/i9B+SY4vpOEsEa2sI3OkoA60F0mQ12ykIWr4Xg==
"@abp/sweetalert@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.5.tgz#e360ed98fc242348eb881e0031e4bf921bd1065b"
integrity sha512-dCmKYbmUBvsh95VjOeAxBsEgDQSTYswbAOXfTe/1nTf7ABVxUouKY++TYjK9xOgrmUx2fXC/kpImiAKI/xsLEg==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
sweetalert "^2.1.2"
"@abp/timeago@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.4.tgz#11cbbfa3b726e3704a1d59f593fb4d67a0776c3c"
integrity sha512-L38znHtBSShXOPs2MgyrZCzZwIBfqBKuTpdVZqbHTcw1LkPQ2OyFoYNfaDjJnHALOEeFhnbhX9+YDBIruAcynQ==
"@abp/timeago@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.5.tgz#f0dd1e85249dc737e8cfedba072677dd6727d16c"
integrity sha512-Nqq9Ok7odlp+ptmCDsdcz1/j68n6gZN8+jBHZt18hU4ox4awruDbSguK7Pn2qu8Vt5zfGtit0+nqKamlq+dr6A==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
timeago "^1.6.7"
"@abp/toastr@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.4.tgz#b9446add88f2b438edea0667e571861129acac64"
integrity sha512-+IxxxJsxI3DjBjduidfwxYkhRiAvdosY/AzyddkXu8h3D3bc37ec4P71piAe8AAcqwQoC6D4+vIH4BWoVgq48A==
"@abp/toastr@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.5.tgz#7f39a71fca5665cbcf46f02a7df6030ddb0114c7"
integrity sha512-jS01uP0MZb4OWfBTH1UEXlTPYMjK5WqorE8WZ6Am+jKzwfHudCDFmjFfSX5PV2/Ia3CP9NU8mwygXLmtsHZbHw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
toastr "^2.1.4"
"@abp/utils@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.4.tgz#99573069c7dac8751e3124e60511a11a169df565"
integrity sha512-z1l6A07+rSgf7fzI/UTlZv1cJBiIUa0kpEvhcChe7mwlHB7oQ3SlGjZX37kzOqWcOusfMOANPuVulkZLSCOB/w==
"@abp/utils@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.5.tgz#45b55d6bbf69ad2a052bc2635c039d2cc4aac401"
integrity sha512-pRYUSh30VT4702lfnQCswIwLVqNC6ZFsmydXngwZASJEJVKj30XitSlixnKhocvozG/87H0sYVzvwmUyJiHHQw==
dependencies:
just-compare "^1.3.0"

8
modules/cms-kit/angular/package.json

@ -16,10 +16,10 @@
"private": true,
"dependencies": {
"@abp/ng.account": "~3.3.1",
"@abp/ng.identity": "~4.0.0-rc.4",
"@abp/ng.setting-management": "~4.0.0-rc.4",
"@abp/ng.tenant-management": "~4.0.0-rc.4",
"@abp/ng.theme.basic": "~4.0.0-rc.4",
"@abp/ng.identity": "~4.0.0-rc.5",
"@abp/ng.setting-management": "~4.0.0-rc.5",
"@abp/ng.tenant-management": "~4.0.0-rc.5",
"@abp/ng.theme.basic": "~4.0.0-rc.5",
"@angular/animations": "~10.0.0",
"@angular/common": "~10.0.0",
"@angular/compiler": "~10.0.0",

4
modules/cms-kit/angular/projects/cms-kit/package.json

@ -4,8 +4,8 @@
"peerDependencies": {
"@angular/common": "^9.1.11",
"@angular/core": "^9.1.11",
"@abp/ng.core": ">=4.0.0-rc.4",
"@abp/ng.theme.shared": ">=4.0.0-rc.4"
"@abp/ng.core": ">=4.0.0-rc.5",
"@abp/ng.theme.shared": ">=4.0.0-rc.5"
},
"dependencies": {
"tslib": "^2.0.0"

2
modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json

@ -3,6 +3,6 @@
"name": "my-app-identityserver",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.5"
}
}

238
modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.4.tgz#20faab45d70981f8a7bb064a91967c64cbc37d39"
integrity sha512-0GTyUURfT/vw9ICEgW2J8TBnBCpvLK9PXuouXrCAx19AvG10Uq2RC7oO7uM7xqN2NspDFkrmdeA1O+2IX7RaPQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.4.tgz#2a2f8ee63bbadf74c03770e9f43da8b012ee9596"
integrity sha512-rVdZMn3WX1r/LRMl7l8l4MWnKmfE6EgHJO9t07AaryM2UelpQ2OTEcHaMM1SnpzWXJ5NGTaG23fxIUSlTXr3hg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.4"
"@abp/bootstrap" "~4.0.0-rc.4"
"@abp/bootstrap-datepicker" "~4.0.0-rc.4"
"@abp/datatables.net-bs4" "~4.0.0-rc.4"
"@abp/font-awesome" "~4.0.0-rc.4"
"@abp/jquery-form" "~4.0.0-rc.4"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.4"
"@abp/lodash" "~4.0.0-rc.4"
"@abp/luxon" "~4.0.0-rc.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.4"
"@abp/select2" "~4.0.0-rc.4"
"@abp/sweetalert" "~4.0.0-rc.4"
"@abp/timeago" "~4.0.0-rc.4"
"@abp/toastr" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.4.tgz#2f965478aec984cefc9fd1fe947c70c154bea384"
integrity sha512-SLVcpmigKkG+Zt6SzjKiSNob6jncDAKjNHUp4auJZos0uKTp2cWV1u9JmkpKEIGivnwu3JSigjsIEAlbU841CA==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.5.tgz#f57744513c443dd96b64a11376b67fabb0df821d"
integrity sha512-6P9nwq1RvAVtRl5NQq+R5QQIGflSbZMFdQTje4r7hDjhKlGLPQUBgWrYRP0TXkIbxz/fhBC9/Mg7lg3bmSH+uQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.5.tgz#ca73a54b7f328e7429ac639ce17526b72eab5581"
integrity sha512-GPc82OOz+MpSnTl46Wgeg53NYPI46jdy4/muragF6JR+3zBEo8tYe0jHP8T+LGtyGXdYoJ9Sx9274fRyxxh65Q==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.5"
"@abp/bootstrap" "~4.0.0-rc.5"
"@abp/bootstrap-datepicker" "~4.0.0-rc.5"
"@abp/datatables.net-bs4" "~4.0.0-rc.5"
"@abp/font-awesome" "~4.0.0-rc.5"
"@abp/jquery-form" "~4.0.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.5"
"@abp/lodash" "~4.0.0-rc.5"
"@abp/luxon" "~4.0.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.5"
"@abp/select2" "~4.0.0-rc.5"
"@abp/sweetalert" "~4.0.0-rc.5"
"@abp/timeago" "~4.0.0-rc.5"
"@abp/toastr" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.5.tgz#fa0dbc0b2f0a2c7777cdeb7613ec61307e6edd96"
integrity sha512-zEHA08snWGVL2Lm4ijpj/CnY1JxIg1ark3fxNsaKraVciVWbh5jmnBL8LCdKZFWZqEGCeWxrEnpt8OGIV+nhdg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,145 +43,145 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.4.tgz#4e8c25ec32d792a5bb47ca98f8ab67143da6d3f3"
integrity sha512-4KTOiqHGr9obUFgP1+9o18VASWsxeAlKWrLlCwDX9ojjtk7LCdLSEtcW+M04LLMywfi74V/NU5NIOHliuVqvVw==
"@abp/bootstrap-datepicker@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.5.tgz#38d665ba63dc9a0bb5fb8bfad50e7cac2fcdb8bf"
integrity sha512-nh+yJRn+CsnLd2VQelYcQbS49zP1LDSvczZrlCZUtiyAv400cBa1mC8tITxDnpAEBlICWb5s4Sg7kJXjyePsmw==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.4.tgz#ba4b9cc3cd7fececbb9a4117a2cc8b2400cfc056"
integrity sha512-NyWi1w4Q33aDNVOCQszGhdQlJJuwoxcA6LkC0TeY3vQBqtOkcz3YyB1id0lTYoHJnp92+K9+uwW0p1V5GgpF5Q==
"@abp/bootstrap@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.5.tgz#c49675030b2bde53a8b30249f38d85d4ae0aff49"
integrity sha512-eXJS1Eq2WyB9qKhyW/+9PUzZU5YNKe9q2Mt2nISwb0NmFepGiLkoygGQXtTe7yvyVdqrb6XM5pZHxdM0tRkYRQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.4.tgz#44b0fb73ee95fcae704b0967a4da20169932cd1d"
integrity sha512-eaY2gE2fWpbtSyUNm+3UAn5rHe4r9uyMm+BKzeoFzuq7XEfOioNGKPTadyi+fmlgaQ9mVT/Rhf3cHDDm4kVNug==
"@abp/core@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.5.tgz#3500839195c24f1275c55801037b02fd749516f7"
integrity sha512-Ubbej59+9z4FQWWCUSO3LphTmT8ZJQ/53cFcMOMIX/uoluli8IORBeAetTw4UDqG2rA70a5YKpyz17pG36D1kA==
dependencies:
"@abp/utils" "^4.0.0-rc.4"
"@abp/utils" "^4.0.0-rc.5"
"@abp/datatables.net-bs4@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.4.tgz#cbc962d0d0d68f2e1a92020db5788f3b65955864"
integrity sha512-YNCtbr901uOjmJPN+J/4QA5xpfWbg/g7nkmPiEjB1vINYmFpeT6iWbMme0uQdVNdqeJ+miPvHsSDqF0xowOlOw==
"@abp/datatables.net-bs4@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.5.tgz#00a9db6cd73bd1f6e5adaebe3add0f3192ed9b1d"
integrity sha512-Xvvm7j2UVgJfQRIPJ121vYH7upao22nqcFAxmeBFZ41Vgmt2gDkbXfvPHIAw06M0C2Gpym9shO+Sg4556xCubQ==
dependencies:
"@abp/datatables.net" "~4.0.0-rc.4"
"@abp/datatables.net" "~4.0.0-rc.5"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.4.tgz#f071b3d9d20c447d99f9e413bbfffc85b40c4db4"
integrity sha512-ML/Osb+SJYoSImDaB2+rhJa339yUnw4V1F1o9u25JhPIHnXctj8E2dM4jWKBcnzFMEjRtAtZUi3nvrwXemEeIQ==
"@abp/datatables.net@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.5.tgz#ca581ca5b76a95702086b04da3f50b00b7da7973"
integrity sha512-xm7JQ/B9Opng1zai+cAILD6pl2Xlp54NMkfz7Y6U4DEYhzUAOT1idOVUhlCMtdE6RxVVqZGVozQZt7SZFZVImw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.4.tgz#dc52c5e18920f76d1574835540d592c5e4ab1605"
integrity sha512-mRPgiDbwqFrV7/GuYmmHKMufcwrA5GymZg0HqVMk2iVvrUbQaHlW1UJuwvtk4rcUnT+J7oEJGGNmK9Q4n3ya5A==
"@abp/font-awesome@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.5.tgz#59a0516eb3c2d6f43a0a19a60f7c31fef4d421f4"
integrity sha512-VsmpC04epanCyZC6DVrDJz8FcupdU8/PpV9gnr7YvTk+VZQrq/zY9C21GWPDGKmBPavUlG4QMrX1oeUvu+9FoA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.4.tgz#d2a37a206341727854ac57fdda05ff32d4aa2799"
integrity sha512-BykInqeMENj2krNaMpHnvQ/cqdzSMfTryegL/ItAqjVnZu7LoIHqO89eVpcLS/SwLaOx0j8JPsh1mQgSvQt0WQ==
"@abp/jquery-form@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.5.tgz#91b90f4cb45bce584e33a74cc4366297fc4d4d40"
integrity sha512-5XrRF1xQMpZnAHYGDdpkLnYaAiKtWsmmHJ3aLxtg1QHnTuSKbasEtsOMVTqazkpiGcZsURcHNa4B/JUSK/KuBg==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.4.tgz#705f5cf0f1d24c31d36fe4aa74fd39d2476c3f5f"
integrity sha512-oHm4w1Kr7gnsz87a51wtA6sKYCalCou5S9tDVnabYbHQssZg0s5tUo1NS1OyJw10bXu4Azo2fhdZf4JVotD6Qw==
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.5.tgz#f6c3320c9362bc70120dbdcce02cda814ec7c243"
integrity sha512-ftBxpeMLeRlaabPzU0wjDd4qvfgX38XtELnGjdQmTQ3P5lmAjhSTk1Fe8eIfGSINUAwYJyCjUlyYIMVi+kx9Tg==
dependencies:
"@abp/jquery-validation" "~4.0.0-rc.4"
"@abp/jquery-validation" "~4.0.0-rc.5"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.4.tgz#525551c2014d9bde6e41d0a15539d9413ca5e352"
integrity sha512-pUCbr0XRw4DjXqyj/TYhsnHxqV9VWdQ08gBPqDuCuP4Pxwo615ylM/x31a1V2Oh4bteGe56DJmtMnOaU5YGrKg==
"@abp/jquery-validation@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.5.tgz#eb02731039b5befebf3666cb6cc1a7b54d5e9057"
integrity sha512-5LWBi+8Otch8SUCJA7DyKX7gD2Vy2aCODyPO5Y037lx7iUk/xHkhRnPDOVIGiS8fzyZx+fLNhJ6Lbfk9P+I5XA==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-validation "^1.19.2"
"@abp/jquery@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.4.tgz#2c34cdd36d34f16877375d5137c05e03b5057da3"
integrity sha512-HLE1KDIvWf+I+x8n/cF8cfOVcCG3XngnzE/5viNjJM2gERMK5j3U0BjTiq7Ar5AIIFvLgWdwdGsG4ioYOuhSZw==
"@abp/jquery@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.5.tgz#244fbe71bb85abc1f54bfca269d9b0bfdf50469f"
integrity sha512-xt2gV3ZIMpyTFls2a58TTXEbhFxQGb7JacRojp5/+MyGL/SoQbOGENU3aK/fHRYD3VRUkhlKFGT6Ijv3LX83/A==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
jquery "~3.5.1"
"@abp/lodash@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.4.tgz#1afedb9431ab9918384d559f3c5fc71a73bd33fb"
integrity sha512-3HTD1JT3Y5DTPRODxiEXSIAarNNe45d4GrwkDVf9+cpaVdcqY5odO0bROcrcTAS7DmqE7WtOdXMubbTnfJXt1g==
"@abp/lodash@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.5.tgz#f38dd3021d2b9877cf38fe812531968b7e607838"
integrity sha512-xdJ3WjqBz+C1gxrq1GcA66D1wrKn3QJ9/culTvEDr/eLpHjimnNjMmhAQqVxbaGk6qD6Q8Fswr8gtwqpPSe6eA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
lodash "^4.17.15"
"@abp/luxon@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.4.tgz#f16088e7493580440d0c6698c59b1b94d64c3e1a"
integrity sha512-I+5YtNiXPm1xse7IykOxtZbkDQgVj7lm0f0bfSkuxO2Dl25D7d0tb/81p/tQ6m+9QvKjXoCzaxVeKfgkMUANMw==
"@abp/luxon@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.5.tgz#9448a48b6b3bf0446b421c2642188b9f11848572"
integrity sha512-S/lkCt/ou0Lv7KG3/XEAHx2S2YaDcEszyhnRBVCYSNqOUr0a56J+2MqKL5OFrOTNCfkPHDkaJVlSIXBEXokXFA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.4.tgz#6f5725f025b1b012c674ec5c3d4fc48f9cf31a9a"
integrity sha512-ZdyhMjYIQ9gmOXo5HXQ0n18NZmyVf+Ci5X0hA+phY+RXyX3n5q8Ic7ikufI4t5wWL/ZbU1IPGShJP0A1v6bgSA==
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.5.tgz#87acd20de26e071bb38ec26fa4cd18026ca11464"
integrity sha512-QOp8R/LDabMhjapSjaArBEZUEslhOOGYIGfFm8CCrSeWGWJR8TFa68PIjhmUpNM5l8nlvC3MDMkQ/TnOaXgR4g==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.4.tgz#191b02f0d40adc535b90d5f2ae2e9eaa57cf21d4"
integrity sha512-kSs/I5fUBNQeUELn3+pNpLB4JuEroAWeKT7z/1NMexAzYq/QB4RErn5pZZdjGGMvJ5sfbrKcgtjF4nwZzHTzGg==
"@abp/select2@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.5.tgz#a7cc1e2e1985693f673c8214ac7db21d79dee4b8"
integrity sha512-ZNwT8u0CPDrCO4y5kCWd2EGhihwc+R6aBxx8tzL0AUAuHYRVA68T49Exyd1Fa+jESRjoVn18hys6HnTCUzZkWQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
select2 "^4.0.13"
"@abp/sweetalert@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.4.tgz#cc5d8dcf43d9fcea64c5589c71771d172d4c1f7d"
integrity sha512-cgatSuHU0OXqtoBK9cgLJUArcVAP7J1ljYIfPeZFQsZdt/W/i9B+SY4vpOEsEa2sI3OkoA60F0mQ12ykIWr4Xg==
"@abp/sweetalert@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.5.tgz#e360ed98fc242348eb881e0031e4bf921bd1065b"
integrity sha512-dCmKYbmUBvsh95VjOeAxBsEgDQSTYswbAOXfTe/1nTf7ABVxUouKY++TYjK9xOgrmUx2fXC/kpImiAKI/xsLEg==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
sweetalert "^2.1.2"
"@abp/timeago@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.4.tgz#11cbbfa3b726e3704a1d59f593fb4d67a0776c3c"
integrity sha512-L38znHtBSShXOPs2MgyrZCzZwIBfqBKuTpdVZqbHTcw1LkPQ2OyFoYNfaDjJnHALOEeFhnbhX9+YDBIruAcynQ==
"@abp/timeago@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.5.tgz#f0dd1e85249dc737e8cfedba072677dd6727d16c"
integrity sha512-Nqq9Ok7odlp+ptmCDsdcz1/j68n6gZN8+jBHZt18hU4ox4awruDbSguK7Pn2qu8Vt5zfGtit0+nqKamlq+dr6A==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
timeago "^1.6.7"
"@abp/toastr@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.4.tgz#b9446add88f2b438edea0667e571861129acac64"
integrity sha512-+IxxxJsxI3DjBjduidfwxYkhRiAvdosY/AzyddkXu8h3D3bc37ec4P71piAe8AAcqwQoC6D4+vIH4BWoVgq48A==
"@abp/toastr@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.5.tgz#7f39a71fca5665cbcf46f02a7df6030ddb0114c7"
integrity sha512-jS01uP0MZb4OWfBTH1UEXlTPYMjK5WqorE8WZ6Am+jKzwfHudCDFmjFfSX5PV2/Ia3CP9NU8mwygXLmtsHZbHw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
toastr "^2.1.4"
"@abp/utils@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.4.tgz#99573069c7dac8751e3124e60511a11a169df565"
integrity sha512-z1l6A07+rSgf7fzI/UTlZv1cJBiIUa0kpEvhcChe7mwlHB7oQ3SlGjZX37kzOqWcOusfMOANPuVulkZLSCOB/w==
"@abp/utils@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.5.tgz#45b55d6bbf69ad2a052bc2635c039d2cc4aac401"
integrity sha512-pRYUSh30VT4702lfnQCswIwLVqNC6ZFsmydXngwZASJEJVKj30XitSlixnKhocvozG/87H0sYVzvwmUyJiHHQw==
dependencies:
just-compare "^1.3.0"

2
modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json

@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.5"
}
}

238
modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.4.tgz#20faab45d70981f8a7bb064a91967c64cbc37d39"
integrity sha512-0GTyUURfT/vw9ICEgW2J8TBnBCpvLK9PXuouXrCAx19AvG10Uq2RC7oO7uM7xqN2NspDFkrmdeA1O+2IX7RaPQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.4.tgz#2a2f8ee63bbadf74c03770e9f43da8b012ee9596"
integrity sha512-rVdZMn3WX1r/LRMl7l8l4MWnKmfE6EgHJO9t07AaryM2UelpQ2OTEcHaMM1SnpzWXJ5NGTaG23fxIUSlTXr3hg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.4"
"@abp/bootstrap" "~4.0.0-rc.4"
"@abp/bootstrap-datepicker" "~4.0.0-rc.4"
"@abp/datatables.net-bs4" "~4.0.0-rc.4"
"@abp/font-awesome" "~4.0.0-rc.4"
"@abp/jquery-form" "~4.0.0-rc.4"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.4"
"@abp/lodash" "~4.0.0-rc.4"
"@abp/luxon" "~4.0.0-rc.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.4"
"@abp/select2" "~4.0.0-rc.4"
"@abp/sweetalert" "~4.0.0-rc.4"
"@abp/timeago" "~4.0.0-rc.4"
"@abp/toastr" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.4.tgz#2f965478aec984cefc9fd1fe947c70c154bea384"
integrity sha512-SLVcpmigKkG+Zt6SzjKiSNob6jncDAKjNHUp4auJZos0uKTp2cWV1u9JmkpKEIGivnwu3JSigjsIEAlbU841CA==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.5.tgz#f57744513c443dd96b64a11376b67fabb0df821d"
integrity sha512-6P9nwq1RvAVtRl5NQq+R5QQIGflSbZMFdQTje4r7hDjhKlGLPQUBgWrYRP0TXkIbxz/fhBC9/Mg7lg3bmSH+uQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.5.tgz#ca73a54b7f328e7429ac639ce17526b72eab5581"
integrity sha512-GPc82OOz+MpSnTl46Wgeg53NYPI46jdy4/muragF6JR+3zBEo8tYe0jHP8T+LGtyGXdYoJ9Sx9274fRyxxh65Q==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.5"
"@abp/bootstrap" "~4.0.0-rc.5"
"@abp/bootstrap-datepicker" "~4.0.0-rc.5"
"@abp/datatables.net-bs4" "~4.0.0-rc.5"
"@abp/font-awesome" "~4.0.0-rc.5"
"@abp/jquery-form" "~4.0.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.5"
"@abp/lodash" "~4.0.0-rc.5"
"@abp/luxon" "~4.0.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.5"
"@abp/select2" "~4.0.0-rc.5"
"@abp/sweetalert" "~4.0.0-rc.5"
"@abp/timeago" "~4.0.0-rc.5"
"@abp/toastr" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.5.tgz#fa0dbc0b2f0a2c7777cdeb7613ec61307e6edd96"
integrity sha512-zEHA08snWGVL2Lm4ijpj/CnY1JxIg1ark3fxNsaKraVciVWbh5jmnBL8LCdKZFWZqEGCeWxrEnpt8OGIV+nhdg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,145 +43,145 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.4.tgz#4e8c25ec32d792a5bb47ca98f8ab67143da6d3f3"
integrity sha512-4KTOiqHGr9obUFgP1+9o18VASWsxeAlKWrLlCwDX9ojjtk7LCdLSEtcW+M04LLMywfi74V/NU5NIOHliuVqvVw==
"@abp/bootstrap-datepicker@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.5.tgz#38d665ba63dc9a0bb5fb8bfad50e7cac2fcdb8bf"
integrity sha512-nh+yJRn+CsnLd2VQelYcQbS49zP1LDSvczZrlCZUtiyAv400cBa1mC8tITxDnpAEBlICWb5s4Sg7kJXjyePsmw==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.4.tgz#ba4b9cc3cd7fececbb9a4117a2cc8b2400cfc056"
integrity sha512-NyWi1w4Q33aDNVOCQszGhdQlJJuwoxcA6LkC0TeY3vQBqtOkcz3YyB1id0lTYoHJnp92+K9+uwW0p1V5GgpF5Q==
"@abp/bootstrap@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.5.tgz#c49675030b2bde53a8b30249f38d85d4ae0aff49"
integrity sha512-eXJS1Eq2WyB9qKhyW/+9PUzZU5YNKe9q2Mt2nISwb0NmFepGiLkoygGQXtTe7yvyVdqrb6XM5pZHxdM0tRkYRQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.4.tgz#44b0fb73ee95fcae704b0967a4da20169932cd1d"
integrity sha512-eaY2gE2fWpbtSyUNm+3UAn5rHe4r9uyMm+BKzeoFzuq7XEfOioNGKPTadyi+fmlgaQ9mVT/Rhf3cHDDm4kVNug==
"@abp/core@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.5.tgz#3500839195c24f1275c55801037b02fd749516f7"
integrity sha512-Ubbej59+9z4FQWWCUSO3LphTmT8ZJQ/53cFcMOMIX/uoluli8IORBeAetTw4UDqG2rA70a5YKpyz17pG36D1kA==
dependencies:
"@abp/utils" "^4.0.0-rc.4"
"@abp/utils" "^4.0.0-rc.5"
"@abp/datatables.net-bs4@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.4.tgz#cbc962d0d0d68f2e1a92020db5788f3b65955864"
integrity sha512-YNCtbr901uOjmJPN+J/4QA5xpfWbg/g7nkmPiEjB1vINYmFpeT6iWbMme0uQdVNdqeJ+miPvHsSDqF0xowOlOw==
"@abp/datatables.net-bs4@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.5.tgz#00a9db6cd73bd1f6e5adaebe3add0f3192ed9b1d"
integrity sha512-Xvvm7j2UVgJfQRIPJ121vYH7upao22nqcFAxmeBFZ41Vgmt2gDkbXfvPHIAw06M0C2Gpym9shO+Sg4556xCubQ==
dependencies:
"@abp/datatables.net" "~4.0.0-rc.4"
"@abp/datatables.net" "~4.0.0-rc.5"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.4.tgz#f071b3d9d20c447d99f9e413bbfffc85b40c4db4"
integrity sha512-ML/Osb+SJYoSImDaB2+rhJa339yUnw4V1F1o9u25JhPIHnXctj8E2dM4jWKBcnzFMEjRtAtZUi3nvrwXemEeIQ==
"@abp/datatables.net@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.5.tgz#ca581ca5b76a95702086b04da3f50b00b7da7973"
integrity sha512-xm7JQ/B9Opng1zai+cAILD6pl2Xlp54NMkfz7Y6U4DEYhzUAOT1idOVUhlCMtdE6RxVVqZGVozQZt7SZFZVImw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.4.tgz#dc52c5e18920f76d1574835540d592c5e4ab1605"
integrity sha512-mRPgiDbwqFrV7/GuYmmHKMufcwrA5GymZg0HqVMk2iVvrUbQaHlW1UJuwvtk4rcUnT+J7oEJGGNmK9Q4n3ya5A==
"@abp/font-awesome@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.5.tgz#59a0516eb3c2d6f43a0a19a60f7c31fef4d421f4"
integrity sha512-VsmpC04epanCyZC6DVrDJz8FcupdU8/PpV9gnr7YvTk+VZQrq/zY9C21GWPDGKmBPavUlG4QMrX1oeUvu+9FoA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.4.tgz#d2a37a206341727854ac57fdda05ff32d4aa2799"
integrity sha512-BykInqeMENj2krNaMpHnvQ/cqdzSMfTryegL/ItAqjVnZu7LoIHqO89eVpcLS/SwLaOx0j8JPsh1mQgSvQt0WQ==
"@abp/jquery-form@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.5.tgz#91b90f4cb45bce584e33a74cc4366297fc4d4d40"
integrity sha512-5XrRF1xQMpZnAHYGDdpkLnYaAiKtWsmmHJ3aLxtg1QHnTuSKbasEtsOMVTqazkpiGcZsURcHNa4B/JUSK/KuBg==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.4.tgz#705f5cf0f1d24c31d36fe4aa74fd39d2476c3f5f"
integrity sha512-oHm4w1Kr7gnsz87a51wtA6sKYCalCou5S9tDVnabYbHQssZg0s5tUo1NS1OyJw10bXu4Azo2fhdZf4JVotD6Qw==
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.5.tgz#f6c3320c9362bc70120dbdcce02cda814ec7c243"
integrity sha512-ftBxpeMLeRlaabPzU0wjDd4qvfgX38XtELnGjdQmTQ3P5lmAjhSTk1Fe8eIfGSINUAwYJyCjUlyYIMVi+kx9Tg==
dependencies:
"@abp/jquery-validation" "~4.0.0-rc.4"
"@abp/jquery-validation" "~4.0.0-rc.5"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.4.tgz#525551c2014d9bde6e41d0a15539d9413ca5e352"
integrity sha512-pUCbr0XRw4DjXqyj/TYhsnHxqV9VWdQ08gBPqDuCuP4Pxwo615ylM/x31a1V2Oh4bteGe56DJmtMnOaU5YGrKg==
"@abp/jquery-validation@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.5.tgz#eb02731039b5befebf3666cb6cc1a7b54d5e9057"
integrity sha512-5LWBi+8Otch8SUCJA7DyKX7gD2Vy2aCODyPO5Y037lx7iUk/xHkhRnPDOVIGiS8fzyZx+fLNhJ6Lbfk9P+I5XA==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-validation "^1.19.2"
"@abp/jquery@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.4.tgz#2c34cdd36d34f16877375d5137c05e03b5057da3"
integrity sha512-HLE1KDIvWf+I+x8n/cF8cfOVcCG3XngnzE/5viNjJM2gERMK5j3U0BjTiq7Ar5AIIFvLgWdwdGsG4ioYOuhSZw==
"@abp/jquery@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.5.tgz#244fbe71bb85abc1f54bfca269d9b0bfdf50469f"
integrity sha512-xt2gV3ZIMpyTFls2a58TTXEbhFxQGb7JacRojp5/+MyGL/SoQbOGENU3aK/fHRYD3VRUkhlKFGT6Ijv3LX83/A==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
jquery "~3.5.1"
"@abp/lodash@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.4.tgz#1afedb9431ab9918384d559f3c5fc71a73bd33fb"
integrity sha512-3HTD1JT3Y5DTPRODxiEXSIAarNNe45d4GrwkDVf9+cpaVdcqY5odO0bROcrcTAS7DmqE7WtOdXMubbTnfJXt1g==
"@abp/lodash@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.5.tgz#f38dd3021d2b9877cf38fe812531968b7e607838"
integrity sha512-xdJ3WjqBz+C1gxrq1GcA66D1wrKn3QJ9/culTvEDr/eLpHjimnNjMmhAQqVxbaGk6qD6Q8Fswr8gtwqpPSe6eA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
lodash "^4.17.15"
"@abp/luxon@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.4.tgz#f16088e7493580440d0c6698c59b1b94d64c3e1a"
integrity sha512-I+5YtNiXPm1xse7IykOxtZbkDQgVj7lm0f0bfSkuxO2Dl25D7d0tb/81p/tQ6m+9QvKjXoCzaxVeKfgkMUANMw==
"@abp/luxon@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.5.tgz#9448a48b6b3bf0446b421c2642188b9f11848572"
integrity sha512-S/lkCt/ou0Lv7KG3/XEAHx2S2YaDcEszyhnRBVCYSNqOUr0a56J+2MqKL5OFrOTNCfkPHDkaJVlSIXBEXokXFA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.4.tgz#6f5725f025b1b012c674ec5c3d4fc48f9cf31a9a"
integrity sha512-ZdyhMjYIQ9gmOXo5HXQ0n18NZmyVf+Ci5X0hA+phY+RXyX3n5q8Ic7ikufI4t5wWL/ZbU1IPGShJP0A1v6bgSA==
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.5.tgz#87acd20de26e071bb38ec26fa4cd18026ca11464"
integrity sha512-QOp8R/LDabMhjapSjaArBEZUEslhOOGYIGfFm8CCrSeWGWJR8TFa68PIjhmUpNM5l8nlvC3MDMkQ/TnOaXgR4g==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.4.tgz#191b02f0d40adc535b90d5f2ae2e9eaa57cf21d4"
integrity sha512-kSs/I5fUBNQeUELn3+pNpLB4JuEroAWeKT7z/1NMexAzYq/QB4RErn5pZZdjGGMvJ5sfbrKcgtjF4nwZzHTzGg==
"@abp/select2@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.5.tgz#a7cc1e2e1985693f673c8214ac7db21d79dee4b8"
integrity sha512-ZNwT8u0CPDrCO4y5kCWd2EGhihwc+R6aBxx8tzL0AUAuHYRVA68T49Exyd1Fa+jESRjoVn18hys6HnTCUzZkWQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
select2 "^4.0.13"
"@abp/sweetalert@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.4.tgz#cc5d8dcf43d9fcea64c5589c71771d172d4c1f7d"
integrity sha512-cgatSuHU0OXqtoBK9cgLJUArcVAP7J1ljYIfPeZFQsZdt/W/i9B+SY4vpOEsEa2sI3OkoA60F0mQ12ykIWr4Xg==
"@abp/sweetalert@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.5.tgz#e360ed98fc242348eb881e0031e4bf921bd1065b"
integrity sha512-dCmKYbmUBvsh95VjOeAxBsEgDQSTYswbAOXfTe/1nTf7ABVxUouKY++TYjK9xOgrmUx2fXC/kpImiAKI/xsLEg==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
sweetalert "^2.1.2"
"@abp/timeago@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.4.tgz#11cbbfa3b726e3704a1d59f593fb4d67a0776c3c"
integrity sha512-L38znHtBSShXOPs2MgyrZCzZwIBfqBKuTpdVZqbHTcw1LkPQ2OyFoYNfaDjJnHALOEeFhnbhX9+YDBIruAcynQ==
"@abp/timeago@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.5.tgz#f0dd1e85249dc737e8cfedba072677dd6727d16c"
integrity sha512-Nqq9Ok7odlp+ptmCDsdcz1/j68n6gZN8+jBHZt18hU4ox4awruDbSguK7Pn2qu8Vt5zfGtit0+nqKamlq+dr6A==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
timeago "^1.6.7"
"@abp/toastr@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.4.tgz#b9446add88f2b438edea0667e571861129acac64"
integrity sha512-+IxxxJsxI3DjBjduidfwxYkhRiAvdosY/AzyddkXu8h3D3bc37ec4P71piAe8AAcqwQoC6D4+vIH4BWoVgq48A==
"@abp/toastr@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.5.tgz#7f39a71fca5665cbcf46f02a7df6030ddb0114c7"
integrity sha512-jS01uP0MZb4OWfBTH1UEXlTPYMjK5WqorE8WZ6Am+jKzwfHudCDFmjFfSX5PV2/Ia3CP9NU8mwygXLmtsHZbHw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
toastr "^2.1.4"
"@abp/utils@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.4.tgz#99573069c7dac8751e3124e60511a11a169df565"
integrity sha512-z1l6A07+rSgf7fzI/UTlZv1cJBiIUa0kpEvhcChe7mwlHB7oQ3SlGjZX37kzOqWcOusfMOANPuVulkZLSCOB/w==
"@abp/utils@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.5.tgz#45b55d6bbf69ad2a052bc2635c039d2cc4aac401"
integrity sha512-pRYUSh30VT4702lfnQCswIwLVqNC6ZFsmydXngwZASJEJVKj30XitSlixnKhocvozG/87H0sYVzvwmUyJiHHQw==
dependencies:
just-compare "^1.3.0"

2
modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json

@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.5"
}
}

238
modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.4.tgz#20faab45d70981f8a7bb064a91967c64cbc37d39"
integrity sha512-0GTyUURfT/vw9ICEgW2J8TBnBCpvLK9PXuouXrCAx19AvG10Uq2RC7oO7uM7xqN2NspDFkrmdeA1O+2IX7RaPQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.4.tgz#2a2f8ee63bbadf74c03770e9f43da8b012ee9596"
integrity sha512-rVdZMn3WX1r/LRMl7l8l4MWnKmfE6EgHJO9t07AaryM2UelpQ2OTEcHaMM1SnpzWXJ5NGTaG23fxIUSlTXr3hg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.4"
"@abp/bootstrap" "~4.0.0-rc.4"
"@abp/bootstrap-datepicker" "~4.0.0-rc.4"
"@abp/datatables.net-bs4" "~4.0.0-rc.4"
"@abp/font-awesome" "~4.0.0-rc.4"
"@abp/jquery-form" "~4.0.0-rc.4"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.4"
"@abp/lodash" "~4.0.0-rc.4"
"@abp/luxon" "~4.0.0-rc.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.4"
"@abp/select2" "~4.0.0-rc.4"
"@abp/sweetalert" "~4.0.0-rc.4"
"@abp/timeago" "~4.0.0-rc.4"
"@abp/toastr" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.4.tgz#2f965478aec984cefc9fd1fe947c70c154bea384"
integrity sha512-SLVcpmigKkG+Zt6SzjKiSNob6jncDAKjNHUp4auJZos0uKTp2cWV1u9JmkpKEIGivnwu3JSigjsIEAlbU841CA==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.5.tgz#f57744513c443dd96b64a11376b67fabb0df821d"
integrity sha512-6P9nwq1RvAVtRl5NQq+R5QQIGflSbZMFdQTje4r7hDjhKlGLPQUBgWrYRP0TXkIbxz/fhBC9/Mg7lg3bmSH+uQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.5.tgz#ca73a54b7f328e7429ac639ce17526b72eab5581"
integrity sha512-GPc82OOz+MpSnTl46Wgeg53NYPI46jdy4/muragF6JR+3zBEo8tYe0jHP8T+LGtyGXdYoJ9Sx9274fRyxxh65Q==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.5"
"@abp/bootstrap" "~4.0.0-rc.5"
"@abp/bootstrap-datepicker" "~4.0.0-rc.5"
"@abp/datatables.net-bs4" "~4.0.0-rc.5"
"@abp/font-awesome" "~4.0.0-rc.5"
"@abp/jquery-form" "~4.0.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.5"
"@abp/lodash" "~4.0.0-rc.5"
"@abp/luxon" "~4.0.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.5"
"@abp/select2" "~4.0.0-rc.5"
"@abp/sweetalert" "~4.0.0-rc.5"
"@abp/timeago" "~4.0.0-rc.5"
"@abp/toastr" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.5.tgz#fa0dbc0b2f0a2c7777cdeb7613ec61307e6edd96"
integrity sha512-zEHA08snWGVL2Lm4ijpj/CnY1JxIg1ark3fxNsaKraVciVWbh5jmnBL8LCdKZFWZqEGCeWxrEnpt8OGIV+nhdg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -43,145 +43,145 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.4.tgz#4e8c25ec32d792a5bb47ca98f8ab67143da6d3f3"
integrity sha512-4KTOiqHGr9obUFgP1+9o18VASWsxeAlKWrLlCwDX9ojjtk7LCdLSEtcW+M04LLMywfi74V/NU5NIOHliuVqvVw==
"@abp/bootstrap-datepicker@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.5.tgz#38d665ba63dc9a0bb5fb8bfad50e7cac2fcdb8bf"
integrity sha512-nh+yJRn+CsnLd2VQelYcQbS49zP1LDSvczZrlCZUtiyAv400cBa1mC8tITxDnpAEBlICWb5s4Sg7kJXjyePsmw==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.4.tgz#ba4b9cc3cd7fececbb9a4117a2cc8b2400cfc056"
integrity sha512-NyWi1w4Q33aDNVOCQszGhdQlJJuwoxcA6LkC0TeY3vQBqtOkcz3YyB1id0lTYoHJnp92+K9+uwW0p1V5GgpF5Q==
"@abp/bootstrap@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.5.tgz#c49675030b2bde53a8b30249f38d85d4ae0aff49"
integrity sha512-eXJS1Eq2WyB9qKhyW/+9PUzZU5YNKe9q2Mt2nISwb0NmFepGiLkoygGQXtTe7yvyVdqrb6XM5pZHxdM0tRkYRQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/core@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.4.tgz#44b0fb73ee95fcae704b0967a4da20169932cd1d"
integrity sha512-eaY2gE2fWpbtSyUNm+3UAn5rHe4r9uyMm+BKzeoFzuq7XEfOioNGKPTadyi+fmlgaQ9mVT/Rhf3cHDDm4kVNug==
"@abp/core@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.5.tgz#3500839195c24f1275c55801037b02fd749516f7"
integrity sha512-Ubbej59+9z4FQWWCUSO3LphTmT8ZJQ/53cFcMOMIX/uoluli8IORBeAetTw4UDqG2rA70a5YKpyz17pG36D1kA==
dependencies:
"@abp/utils" "^4.0.0-rc.4"
"@abp/utils" "^4.0.0-rc.5"
"@abp/datatables.net-bs4@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.4.tgz#cbc962d0d0d68f2e1a92020db5788f3b65955864"
integrity sha512-YNCtbr901uOjmJPN+J/4QA5xpfWbg/g7nkmPiEjB1vINYmFpeT6iWbMme0uQdVNdqeJ+miPvHsSDqF0xowOlOw==
"@abp/datatables.net-bs4@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.5.tgz#00a9db6cd73bd1f6e5adaebe3add0f3192ed9b1d"
integrity sha512-Xvvm7j2UVgJfQRIPJ121vYH7upao22nqcFAxmeBFZ41Vgmt2gDkbXfvPHIAw06M0C2Gpym9shO+Sg4556xCubQ==
dependencies:
"@abp/datatables.net" "~4.0.0-rc.4"
"@abp/datatables.net" "~4.0.0-rc.5"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.4.tgz#f071b3d9d20c447d99f9e413bbfffc85b40c4db4"
integrity sha512-ML/Osb+SJYoSImDaB2+rhJa339yUnw4V1F1o9u25JhPIHnXctj8E2dM4jWKBcnzFMEjRtAtZUi3nvrwXemEeIQ==
"@abp/datatables.net@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.5.tgz#ca581ca5b76a95702086b04da3f50b00b7da7973"
integrity sha512-xm7JQ/B9Opng1zai+cAILD6pl2Xlp54NMkfz7Y6U4DEYhzUAOT1idOVUhlCMtdE6RxVVqZGVozQZt7SZFZVImw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
datatables.net "^1.10.21"
"@abp/font-awesome@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.4.tgz#dc52c5e18920f76d1574835540d592c5e4ab1605"
integrity sha512-mRPgiDbwqFrV7/GuYmmHKMufcwrA5GymZg0HqVMk2iVvrUbQaHlW1UJuwvtk4rcUnT+J7oEJGGNmK9Q4n3ya5A==
"@abp/font-awesome@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.5.tgz#59a0516eb3c2d6f43a0a19a60f7c31fef4d421f4"
integrity sha512-VsmpC04epanCyZC6DVrDJz8FcupdU8/PpV9gnr7YvTk+VZQrq/zY9C21GWPDGKmBPavUlG4QMrX1oeUvu+9FoA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.4.tgz#d2a37a206341727854ac57fdda05ff32d4aa2799"
integrity sha512-BykInqeMENj2krNaMpHnvQ/cqdzSMfTryegL/ItAqjVnZu7LoIHqO89eVpcLS/SwLaOx0j8JPsh1mQgSvQt0WQ==
"@abp/jquery-form@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.5.tgz#91b90f4cb45bce584e33a74cc4366297fc4d4d40"
integrity sha512-5XrRF1xQMpZnAHYGDdpkLnYaAiKtWsmmHJ3aLxtg1QHnTuSKbasEtsOMVTqazkpiGcZsURcHNa4B/JUSK/KuBg==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.4.tgz#705f5cf0f1d24c31d36fe4aa74fd39d2476c3f5f"
integrity sha512-oHm4w1Kr7gnsz87a51wtA6sKYCalCou5S9tDVnabYbHQssZg0s5tUo1NS1OyJw10bXu4Azo2fhdZf4JVotD6Qw==
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.5.tgz#f6c3320c9362bc70120dbdcce02cda814ec7c243"
integrity sha512-ftBxpeMLeRlaabPzU0wjDd4qvfgX38XtELnGjdQmTQ3P5lmAjhSTk1Fe8eIfGSINUAwYJyCjUlyYIMVi+kx9Tg==
dependencies:
"@abp/jquery-validation" "~4.0.0-rc.4"
"@abp/jquery-validation" "~4.0.0-rc.5"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.4.tgz#525551c2014d9bde6e41d0a15539d9413ca5e352"
integrity sha512-pUCbr0XRw4DjXqyj/TYhsnHxqV9VWdQ08gBPqDuCuP4Pxwo615ylM/x31a1V2Oh4bteGe56DJmtMnOaU5YGrKg==
"@abp/jquery-validation@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.5.tgz#eb02731039b5befebf3666cb6cc1a7b54d5e9057"
integrity sha512-5LWBi+8Otch8SUCJA7DyKX7gD2Vy2aCODyPO5Y037lx7iUk/xHkhRnPDOVIGiS8fzyZx+fLNhJ6Lbfk9P+I5XA==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-validation "^1.19.2"
"@abp/jquery@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.4.tgz#2c34cdd36d34f16877375d5137c05e03b5057da3"
integrity sha512-HLE1KDIvWf+I+x8n/cF8cfOVcCG3XngnzE/5viNjJM2gERMK5j3U0BjTiq7Ar5AIIFvLgWdwdGsG4ioYOuhSZw==
"@abp/jquery@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.5.tgz#244fbe71bb85abc1f54bfca269d9b0bfdf50469f"
integrity sha512-xt2gV3ZIMpyTFls2a58TTXEbhFxQGb7JacRojp5/+MyGL/SoQbOGENU3aK/fHRYD3VRUkhlKFGT6Ijv3LX83/A==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
jquery "~3.5.1"
"@abp/lodash@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.4.tgz#1afedb9431ab9918384d559f3c5fc71a73bd33fb"
integrity sha512-3HTD1JT3Y5DTPRODxiEXSIAarNNe45d4GrwkDVf9+cpaVdcqY5odO0bROcrcTAS7DmqE7WtOdXMubbTnfJXt1g==
"@abp/lodash@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.5.tgz#f38dd3021d2b9877cf38fe812531968b7e607838"
integrity sha512-xdJ3WjqBz+C1gxrq1GcA66D1wrKn3QJ9/culTvEDr/eLpHjimnNjMmhAQqVxbaGk6qD6Q8Fswr8gtwqpPSe6eA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
lodash "^4.17.15"
"@abp/luxon@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.4.tgz#f16088e7493580440d0c6698c59b1b94d64c3e1a"
integrity sha512-I+5YtNiXPm1xse7IykOxtZbkDQgVj7lm0f0bfSkuxO2Dl25D7d0tb/81p/tQ6m+9QvKjXoCzaxVeKfgkMUANMw==
"@abp/luxon@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.5.tgz#9448a48b6b3bf0446b421c2642188b9f11848572"
integrity sha512-S/lkCt/ou0Lv7KG3/XEAHx2S2YaDcEszyhnRBVCYSNqOUr0a56J+2MqKL5OFrOTNCfkPHDkaJVlSIXBEXokXFA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.4.tgz#6f5725f025b1b012c674ec5c3d4fc48f9cf31a9a"
integrity sha512-ZdyhMjYIQ9gmOXo5HXQ0n18NZmyVf+Ci5X0hA+phY+RXyX3n5q8Ic7ikufI4t5wWL/ZbU1IPGShJP0A1v6bgSA==
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.5.tgz#87acd20de26e071bb38ec26fa4cd18026ca11464"
integrity sha512-QOp8R/LDabMhjapSjaArBEZUEslhOOGYIGfFm8CCrSeWGWJR8TFa68PIjhmUpNM5l8nlvC3MDMkQ/TnOaXgR4g==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.4.tgz#191b02f0d40adc535b90d5f2ae2e9eaa57cf21d4"
integrity sha512-kSs/I5fUBNQeUELn3+pNpLB4JuEroAWeKT7z/1NMexAzYq/QB4RErn5pZZdjGGMvJ5sfbrKcgtjF4nwZzHTzGg==
"@abp/select2@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.5.tgz#a7cc1e2e1985693f673c8214ac7db21d79dee4b8"
integrity sha512-ZNwT8u0CPDrCO4y5kCWd2EGhihwc+R6aBxx8tzL0AUAuHYRVA68T49Exyd1Fa+jESRjoVn18hys6HnTCUzZkWQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
select2 "^4.0.13"
"@abp/sweetalert@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.4.tgz#cc5d8dcf43d9fcea64c5589c71771d172d4c1f7d"
integrity sha512-cgatSuHU0OXqtoBK9cgLJUArcVAP7J1ljYIfPeZFQsZdt/W/i9B+SY4vpOEsEa2sI3OkoA60F0mQ12ykIWr4Xg==
"@abp/sweetalert@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.5.tgz#e360ed98fc242348eb881e0031e4bf921bd1065b"
integrity sha512-dCmKYbmUBvsh95VjOeAxBsEgDQSTYswbAOXfTe/1nTf7ABVxUouKY++TYjK9xOgrmUx2fXC/kpImiAKI/xsLEg==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
sweetalert "^2.1.2"
"@abp/timeago@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.4.tgz#11cbbfa3b726e3704a1d59f593fb4d67a0776c3c"
integrity sha512-L38znHtBSShXOPs2MgyrZCzZwIBfqBKuTpdVZqbHTcw1LkPQ2OyFoYNfaDjJnHALOEeFhnbhX9+YDBIruAcynQ==
"@abp/timeago@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.5.tgz#f0dd1e85249dc737e8cfedba072677dd6727d16c"
integrity sha512-Nqq9Ok7odlp+ptmCDsdcz1/j68n6gZN8+jBHZt18hU4ox4awruDbSguK7Pn2qu8Vt5zfGtit0+nqKamlq+dr6A==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
timeago "^1.6.7"
"@abp/toastr@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.4.tgz#b9446add88f2b438edea0667e571861129acac64"
integrity sha512-+IxxxJsxI3DjBjduidfwxYkhRiAvdosY/AzyddkXu8h3D3bc37ec4P71piAe8AAcqwQoC6D4+vIH4BWoVgq48A==
"@abp/toastr@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.5.tgz#7f39a71fca5665cbcf46f02a7df6030ddb0114c7"
integrity sha512-jS01uP0MZb4OWfBTH1UEXlTPYMjK5WqorE8WZ6Am+jKzwfHudCDFmjFfSX5PV2/Ia3CP9NU8mwygXLmtsHZbHw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
toastr "^2.1.4"
"@abp/utils@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.4.tgz#99573069c7dac8751e3124e60511a11a169df565"
integrity sha512-z1l6A07+rSgf7fzI/UTlZv1cJBiIUa0kpEvhcChe7mwlHB7oQ3SlGjZX37kzOqWcOusfMOANPuVulkZLSCOB/w==
"@abp/utils@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.5.tgz#45b55d6bbf69ad2a052bc2635c039d2cc4aac401"
integrity sha512-pRYUSh30VT4702lfnQCswIwLVqNC6ZFsmydXngwZASJEJVKj30XitSlixnKhocvozG/87H0sYVzvwmUyJiHHQw==
dependencies:
just-compare "^1.3.0"

4
modules/docs/app/VoloDocs.Web/package.json

@ -3,7 +3,7 @@
"name": "volo.docstestapp",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.4",
"@abp/docs": "^4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.basic": "^4.0.0-rc.5",
"@abp/docs": "^4.0.0-rc.5"
}
}

298
modules/docs/app/VoloDocs.Web/yarn.lock

@ -2,45 +2,45 @@
# yarn lockfile v1
"@abp/anchor-js@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-4.0.0-rc.4.tgz#b250fbfffd1e227e85520b1b8e091cf98d9386a3"
integrity sha512-m+YG3HvEpUc1h3JRN9SPKhDTbxiBReBHKqlbEaDkLl+GPVR3UuJ3a58I7P9lLfMFYvs8ARUFnZzim9OQwbzKxg==
"@abp/anchor-js@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-4.0.0-rc.5.tgz#6670766a69863275322017044cc84cb84b7aae87"
integrity sha512-kr+67S1l+RndksFPmaISXeSabymaGi0Wgr0vSHLcfHX2ja9bs+YTHqmahzo1H3K0IYQRcEf7NchGayMKRaPbuA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
anchor-js "^4.2.2"
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.4.tgz#20faab45d70981f8a7bb064a91967c64cbc37d39"
integrity sha512-0GTyUURfT/vw9ICEgW2J8TBnBCpvLK9PXuouXrCAx19AvG10Uq2RC7oO7uM7xqN2NspDFkrmdeA1O+2IX7RaPQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.4.tgz#2a2f8ee63bbadf74c03770e9f43da8b012ee9596"
integrity sha512-rVdZMn3WX1r/LRMl7l8l4MWnKmfE6EgHJO9t07AaryM2UelpQ2OTEcHaMM1SnpzWXJ5NGTaG23fxIUSlTXr3hg==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.4"
"@abp/bootstrap" "~4.0.0-rc.4"
"@abp/bootstrap-datepicker" "~4.0.0-rc.4"
"@abp/datatables.net-bs4" "~4.0.0-rc.4"
"@abp/font-awesome" "~4.0.0-rc.4"
"@abp/jquery-form" "~4.0.0-rc.4"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.4"
"@abp/lodash" "~4.0.0-rc.4"
"@abp/luxon" "~4.0.0-rc.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.4"
"@abp/select2" "~4.0.0-rc.4"
"@abp/sweetalert" "~4.0.0-rc.4"
"@abp/timeago" "~4.0.0-rc.4"
"@abp/toastr" "~4.0.0-rc.4"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.4.tgz#2f965478aec984cefc9fd1fe947c70c154bea384"
integrity sha512-SLVcpmigKkG+Zt6SzjKiSNob6jncDAKjNHUp4auJZos0uKTp2cWV1u9JmkpKEIGivnwu3JSigjsIEAlbU841CA==
"@abp/aspnetcore.mvc.ui.theme.basic@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.0.0-rc.5.tgz#f57744513c443dd96b64a11376b67fabb0df821d"
integrity sha512-6P9nwq1RvAVtRl5NQq+R5QQIGflSbZMFdQTje4r7hDjhKlGLPQUBgWrYRP0TXkIbxz/fhBC9/Mg7lg3bmSH+uQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.0.0-rc.5.tgz#ca73a54b7f328e7429ac639ce17526b72eab5581"
integrity sha512-GPc82OOz+MpSnTl46Wgeg53NYPI46jdy4/muragF6JR+3zBEo8tYe0jHP8T+LGtyGXdYoJ9Sx9274fRyxxh65Q==
dependencies:
"@abp/aspnetcore.mvc.ui" "~4.0.0-rc.5"
"@abp/bootstrap" "~4.0.0-rc.5"
"@abp/bootstrap-datepicker" "~4.0.0-rc.5"
"@abp/datatables.net-bs4" "~4.0.0-rc.5"
"@abp/font-awesome" "~4.0.0-rc.5"
"@abp/jquery-form" "~4.0.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~4.0.0-rc.5"
"@abp/lodash" "~4.0.0-rc.5"
"@abp/luxon" "~4.0.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.5"
"@abp/select2" "~4.0.0-rc.5"
"@abp/sweetalert" "~4.0.0-rc.5"
"@abp/timeago" "~4.0.0-rc.5"
"@abp/toastr" "~4.0.0-rc.5"
"@abp/aspnetcore.mvc.ui@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.0.0-rc.5.tgz#fa0dbc0b2f0a2c7777cdeb7613ec61307e6edd96"
integrity sha512-zEHA08snWGVL2Lm4ijpj/CnY1JxIg1ark3fxNsaKraVciVWbh5jmnBL8LCdKZFWZqEGCeWxrEnpt8OGIV+nhdg==
dependencies:
ansi-colors "^4.1.1"
extend-object "^1.0.0"
@ -51,181 +51,181 @@
micromatch "^4.0.2"
path "^0.12.7"
"@abp/bootstrap-datepicker@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.4.tgz#4e8c25ec32d792a5bb47ca98f8ab67143da6d3f3"
integrity sha512-4KTOiqHGr9obUFgP1+9o18VASWsxeAlKWrLlCwDX9ojjtk7LCdLSEtcW+M04LLMywfi74V/NU5NIOHliuVqvVw==
"@abp/bootstrap-datepicker@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.0.0-rc.5.tgz#38d665ba63dc9a0bb5fb8bfad50e7cac2fcdb8bf"
integrity sha512-nh+yJRn+CsnLd2VQelYcQbS49zP1LDSvczZrlCZUtiyAv400cBa1mC8tITxDnpAEBlICWb5s4Sg7kJXjyePsmw==
dependencies:
bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.4.tgz#ba4b9cc3cd7fececbb9a4117a2cc8b2400cfc056"
integrity sha512-NyWi1w4Q33aDNVOCQszGhdQlJJuwoxcA6LkC0TeY3vQBqtOkcz3YyB1id0lTYoHJnp92+K9+uwW0p1V5GgpF5Q==
"@abp/bootstrap@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.0.0-rc.5.tgz#c49675030b2bde53a8b30249f38d85d4ae0aff49"
integrity sha512-eXJS1Eq2WyB9qKhyW/+9PUzZU5YNKe9q2Mt2nISwb0NmFepGiLkoygGQXtTe7yvyVdqrb6XM5pZHxdM0tRkYRQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
bootstrap "^4.5.0"
bootstrap-v4-rtl "4.4.1-2"
"@abp/clipboard@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.0.0-rc.4.tgz#177b636b55f8ae77968f7ca4bfca451f396fac7e"
integrity sha512-lRmc2lt+BP0M34f4848bDOIkwhHNVlUJk0/6jChwoSxGdiBOwvzRJKl7aFS/gnbU8I3RtI7i1+scvjGdb3kdLw==
"@abp/clipboard@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-4.0.0-rc.5.tgz#66a62e7cd1cec2c4e94d606c9caa3290db7056f8"
integrity sha512-aGcNyWnYzpik8r2sElPuf4h+Bd3HFJscmP8fAbw43t877CqrXxKCt62cAjUM5aeF5fVvMIuw+/wPSmSY29Yy+Q==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
clipboard "^2.0.6"
"@abp/core@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.4.tgz#44b0fb73ee95fcae704b0967a4da20169932cd1d"
integrity sha512-eaY2gE2fWpbtSyUNm+3UAn5rHe4r9uyMm+BKzeoFzuq7XEfOioNGKPTadyi+fmlgaQ9mVT/Rhf3cHDDm4kVNug==
"@abp/core@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.0.0-rc.5.tgz#3500839195c24f1275c55801037b02fd749516f7"
integrity sha512-Ubbej59+9z4FQWWCUSO3LphTmT8ZJQ/53cFcMOMIX/uoluli8IORBeAetTw4UDqG2rA70a5YKpyz17pG36D1kA==
dependencies:
"@abp/utils" "^4.0.0-rc.4"
"@abp/utils" "^4.0.0-rc.5"
"@abp/datatables.net-bs4@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.4.tgz#cbc962d0d0d68f2e1a92020db5788f3b65955864"
integrity sha512-YNCtbr901uOjmJPN+J/4QA5xpfWbg/g7nkmPiEjB1vINYmFpeT6iWbMme0uQdVNdqeJ+miPvHsSDqF0xowOlOw==
"@abp/datatables.net-bs4@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.0.0-rc.5.tgz#00a9db6cd73bd1f6e5adaebe3add0f3192ed9b1d"
integrity sha512-Xvvm7j2UVgJfQRIPJ121vYH7upao22nqcFAxmeBFZ41Vgmt2gDkbXfvPHIAw06M0C2Gpym9shO+Sg4556xCubQ==
dependencies:
"@abp/datatables.net" "~4.0.0-rc.4"
"@abp/datatables.net" "~4.0.0-rc.5"
datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.4.tgz#f071b3d9d20c447d99f9e413bbfffc85b40c4db4"
integrity sha512-ML/Osb+SJYoSImDaB2+rhJa339yUnw4V1F1o9u25JhPIHnXctj8E2dM4jWKBcnzFMEjRtAtZUi3nvrwXemEeIQ==
"@abp/datatables.net@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.0.0-rc.5.tgz#ca581ca5b76a95702086b04da3f50b00b7da7973"
integrity sha512-xm7JQ/B9Opng1zai+cAILD6pl2Xlp54NMkfz7Y6U4DEYhzUAOT1idOVUhlCMtdE6RxVVqZGVozQZt7SZFZVImw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
datatables.net "^1.10.21"
"@abp/docs@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-4.0.0-rc.4.tgz#05f7c8734a986fc6df49541517e416fa2206ceaa"
integrity sha512-ImSTgCIpYitInf00WW6cZW88/EzwZAzqRTmWs7tr1TXQr0v4SOM68+UEna3wx/M9TMqia70ZPbyZu82bnI8OeA==
"@abp/docs@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-4.0.0-rc.5.tgz#7012ee97d8e0f74ae29187b724c841d476d9d1bd"
integrity sha512-8K9MbzdNuyW1IM2M8FvNiGwt1NShGlCiHyptajEYaMOgumtApuDn51OajjCBzahGehpumhMTK1gf4AwSKJogTg==
dependencies:
"@abp/anchor-js" "~4.0.0-rc.4"
"@abp/clipboard" "~4.0.0-rc.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.4"
"@abp/popper.js" "~4.0.0-rc.4"
"@abp/prismjs" "~4.0.0-rc.4"
"@abp/anchor-js" "~4.0.0-rc.5"
"@abp/clipboard" "~4.0.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~4.0.0-rc.5"
"@abp/popper.js" "~4.0.0-rc.5"
"@abp/prismjs" "~4.0.0-rc.5"
"@abp/font-awesome@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.4.tgz#dc52c5e18920f76d1574835540d592c5e4ab1605"
integrity sha512-mRPgiDbwqFrV7/GuYmmHKMufcwrA5GymZg0HqVMk2iVvrUbQaHlW1UJuwvtk4rcUnT+J7oEJGGNmK9Q4n3ya5A==
"@abp/font-awesome@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.0.0-rc.5.tgz#59a0516eb3c2d6f43a0a19a60f7c31fef4d421f4"
integrity sha512-VsmpC04epanCyZC6DVrDJz8FcupdU8/PpV9gnr7YvTk+VZQrq/zY9C21GWPDGKmBPavUlG4QMrX1oeUvu+9FoA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
"@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.4.tgz#d2a37a206341727854ac57fdda05ff32d4aa2799"
integrity sha512-BykInqeMENj2krNaMpHnvQ/cqdzSMfTryegL/ItAqjVnZu7LoIHqO89eVpcLS/SwLaOx0j8JPsh1mQgSvQt0WQ==
"@abp/jquery-form@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.0.0-rc.5.tgz#91b90f4cb45bce584e33a74cc4366297fc4d4d40"
integrity sha512-5XrRF1xQMpZnAHYGDdpkLnYaAiKtWsmmHJ3aLxtg1QHnTuSKbasEtsOMVTqazkpiGcZsURcHNa4B/JUSK/KuBg==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.4.tgz#705f5cf0f1d24c31d36fe4aa74fd39d2476c3f5f"
integrity sha512-oHm4w1Kr7gnsz87a51wtA6sKYCalCou5S9tDVnabYbHQssZg0s5tUo1NS1OyJw10bXu4Azo2fhdZf4JVotD6Qw==
"@abp/jquery-validation-unobtrusive@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0-rc.5.tgz#f6c3320c9362bc70120dbdcce02cda814ec7c243"
integrity sha512-ftBxpeMLeRlaabPzU0wjDd4qvfgX38XtELnGjdQmTQ3P5lmAjhSTk1Fe8eIfGSINUAwYJyCjUlyYIMVi+kx9Tg==
dependencies:
"@abp/jquery-validation" "~4.0.0-rc.4"
"@abp/jquery-validation" "~4.0.0-rc.5"
jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.4.tgz#525551c2014d9bde6e41d0a15539d9413ca5e352"
integrity sha512-pUCbr0XRw4DjXqyj/TYhsnHxqV9VWdQ08gBPqDuCuP4Pxwo615ylM/x31a1V2Oh4bteGe56DJmtMnOaU5YGrKg==
"@abp/jquery-validation@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.0.0-rc.5.tgz#eb02731039b5befebf3666cb6cc1a7b54d5e9057"
integrity sha512-5LWBi+8Otch8SUCJA7DyKX7gD2Vy2aCODyPO5Y037lx7iUk/xHkhRnPDOVIGiS8fzyZx+fLNhJ6Lbfk9P+I5XA==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
jquery-validation "^1.19.2"
"@abp/jquery@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.4.tgz#2c34cdd36d34f16877375d5137c05e03b5057da3"
integrity sha512-HLE1KDIvWf+I+x8n/cF8cfOVcCG3XngnzE/5viNjJM2gERMK5j3U0BjTiq7Ar5AIIFvLgWdwdGsG4ioYOuhSZw==
"@abp/jquery@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.0.0-rc.5.tgz#244fbe71bb85abc1f54bfca269d9b0bfdf50469f"
integrity sha512-xt2gV3ZIMpyTFls2a58TTXEbhFxQGb7JacRojp5/+MyGL/SoQbOGENU3aK/fHRYD3VRUkhlKFGT6Ijv3LX83/A==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
jquery "~3.5.1"
"@abp/lodash@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.4.tgz#1afedb9431ab9918384d559f3c5fc71a73bd33fb"
integrity sha512-3HTD1JT3Y5DTPRODxiEXSIAarNNe45d4GrwkDVf9+cpaVdcqY5odO0bROcrcTAS7DmqE7WtOdXMubbTnfJXt1g==
"@abp/lodash@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.0.0-rc.5.tgz#f38dd3021d2b9877cf38fe812531968b7e607838"
integrity sha512-xdJ3WjqBz+C1gxrq1GcA66D1wrKn3QJ9/culTvEDr/eLpHjimnNjMmhAQqVxbaGk6qD6Q8Fswr8gtwqpPSe6eA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
lodash "^4.17.15"
"@abp/luxon@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.4.tgz#f16088e7493580440d0c6698c59b1b94d64c3e1a"
integrity sha512-I+5YtNiXPm1xse7IykOxtZbkDQgVj7lm0f0bfSkuxO2Dl25D7d0tb/81p/tQ6m+9QvKjXoCzaxVeKfgkMUANMw==
"@abp/luxon@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.0.0-rc.5.tgz#9448a48b6b3bf0446b421c2642188b9f11848572"
integrity sha512-S/lkCt/ou0Lv7KG3/XEAHx2S2YaDcEszyhnRBVCYSNqOUr0a56J+2MqKL5OFrOTNCfkPHDkaJVlSIXBEXokXFA==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.4.tgz#6f5725f025b1b012c674ec5c3d4fc48f9cf31a9a"
integrity sha512-ZdyhMjYIQ9gmOXo5HXQ0n18NZmyVf+Ci5X0hA+phY+RXyX3n5q8Ic7ikufI4t5wWL/ZbU1IPGShJP0A1v6bgSA==
"@abp/malihu-custom-scrollbar-plugin@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.0.0-rc.5.tgz#87acd20de26e071bb38ec26fa4cd18026ca11464"
integrity sha512-QOp8R/LDabMhjapSjaArBEZUEslhOOGYIGfFm8CCrSeWGWJR8TFa68PIjhmUpNM5l8nlvC3MDMkQ/TnOaXgR4g==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/popper.js@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-4.0.0-rc.4.tgz#75d870882b9f91779cf864d606cfda2ae8ae1974"
integrity sha512-9ieGun0zTuEQxg18i+ji20RiMxAmNQ6E9gfU/zYYnOiXqvTNA8Kc4TQ4qtetic9iya8sW4jkAm2qDM1G4zmwvg==
"@abp/popper.js@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-4.0.0-rc.5.tgz#f589ca18c5e5cc6b1a93ba75a4b42f215aa56527"
integrity sha512-bbBtopaLeqU6MEfDfiCMi2xsppMA4LYnZSIpwuAM5hJ0ql9fVGIFCXR5gqH0BpHw5TZ53kl9cbPugSV40fls2g==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
popper.js "^1.16.0"
"@abp/prismjs@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.0.0-rc.4.tgz#0918cf8759540b4590d2f82a7ace4dbc059098cb"
integrity sha512-yhUEqrRGTVWB2gXgbBGb5y6pvqXJBdPKSnHlG0bYxoqzzFqrPLOo1c1r/MB6eaAesU7kBHk8MUlApw6JCqBs5A==
"@abp/prismjs@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-4.0.0-rc.5.tgz#febe1f5bc1ce4234e681c7dd76e5274c23c636ed"
integrity sha512-h7lhlk1dKhhL75jc6YBKb+w24tbMi2QMAsGnexcxfgUU043a9VFZzzU6lg3najH+dQzcVl5/qh5w9KoC7EYMGA==
dependencies:
"@abp/clipboard" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.4"
"@abp/clipboard" "~4.0.0-rc.5"
"@abp/core" "~4.0.0-rc.5"
prismjs "^1.20.0"
"@abp/select2@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.4.tgz#191b02f0d40adc535b90d5f2ae2e9eaa57cf21d4"
integrity sha512-kSs/I5fUBNQeUELn3+pNpLB4JuEroAWeKT7z/1NMexAzYq/QB4RErn5pZZdjGGMvJ5sfbrKcgtjF4nwZzHTzGg==
"@abp/select2@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.0.0-rc.5.tgz#a7cc1e2e1985693f673c8214ac7db21d79dee4b8"
integrity sha512-ZNwT8u0CPDrCO4y5kCWd2EGhihwc+R6aBxx8tzL0AUAuHYRVA68T49Exyd1Fa+jESRjoVn18hys6HnTCUzZkWQ==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
select2 "^4.0.13"
"@abp/sweetalert@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.4.tgz#cc5d8dcf43d9fcea64c5589c71771d172d4c1f7d"
integrity sha512-cgatSuHU0OXqtoBK9cgLJUArcVAP7J1ljYIfPeZFQsZdt/W/i9B+SY4vpOEsEa2sI3OkoA60F0mQ12ykIWr4Xg==
"@abp/sweetalert@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.0.0-rc.5.tgz#e360ed98fc242348eb881e0031e4bf921bd1065b"
integrity sha512-dCmKYbmUBvsh95VjOeAxBsEgDQSTYswbAOXfTe/1nTf7ABVxUouKY++TYjK9xOgrmUx2fXC/kpImiAKI/xsLEg==
dependencies:
"@abp/core" "~4.0.0-rc.4"
"@abp/core" "~4.0.0-rc.5"
sweetalert "^2.1.2"
"@abp/timeago@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.4.tgz#11cbbfa3b726e3704a1d59f593fb4d67a0776c3c"
integrity sha512-L38znHtBSShXOPs2MgyrZCzZwIBfqBKuTpdVZqbHTcw1LkPQ2OyFoYNfaDjJnHALOEeFhnbhX9+YDBIruAcynQ==
"@abp/timeago@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.0.0-rc.5.tgz#f0dd1e85249dc737e8cfedba072677dd6727d16c"
integrity sha512-Nqq9Ok7odlp+ptmCDsdcz1/j68n6gZN8+jBHZt18hU4ox4awruDbSguK7Pn2qu8Vt5zfGtit0+nqKamlq+dr6A==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
timeago "^1.6.7"
"@abp/toastr@~4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.4.tgz#b9446add88f2b438edea0667e571861129acac64"
integrity sha512-+IxxxJsxI3DjBjduidfwxYkhRiAvdosY/AzyddkXu8h3D3bc37ec4P71piAe8AAcqwQoC6D4+vIH4BWoVgq48A==
"@abp/toastr@~4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.0.0-rc.5.tgz#7f39a71fca5665cbcf46f02a7df6030ddb0114c7"
integrity sha512-jS01uP0MZb4OWfBTH1UEXlTPYMjK5WqorE8WZ6Am+jKzwfHudCDFmjFfSX5PV2/Ia3CP9NU8mwygXLmtsHZbHw==
dependencies:
"@abp/jquery" "~4.0.0-rc.4"
"@abp/jquery" "~4.0.0-rc.5"
toastr "^2.1.4"
"@abp/utils@^4.0.0-rc.4":
version "4.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.4.tgz#99573069c7dac8751e3124e60511a11a169df565"
integrity sha512-z1l6A07+rSgf7fzI/UTlZv1cJBiIUa0kpEvhcChe7mwlHB7oQ3SlGjZX37kzOqWcOusfMOANPuVulkZLSCOB/w==
"@abp/utils@^4.0.0-rc.5":
version "4.0.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.0.0-rc.5.tgz#45b55d6bbf69ad2a052bc2635c039d2cc4aac401"
integrity sha512-pRYUSh30VT4702lfnQCswIwLVqNC6ZFsmydXngwZASJEJVKj30XitSlixnKhocvozG/87H0sYVzvwmUyJiHHQw==
dependencies:
just-compare "^1.3.0"

1
modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/EfCoreFeatureValueRepository.cs

@ -18,6 +18,7 @@ namespace Volo.Abp.FeatureManagement.EntityFrameworkCore
public virtual async Task<FeatureValue> FindAsync(string name, string providerName, string providerKey)
{
return await DbSet
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(
s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey
);

1
modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs

@ -19,6 +19,7 @@ namespace Volo.Abp.FeatureManagement.MongoDB
public virtual async Task<FeatureValue> FindAsync(string name, string providerName, string providerKey)
{
return await GetMongoQueryable()
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey);
}

2
modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EFCoreIdentitySecurityLogRepository.cs

@ -80,7 +80,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore
public async Task<IdentitySecurityLog> GetByUserIdAsync(Guid id, Guid userId, bool includeDetails = false, CancellationToken cancellationToken = default)
{
return await DbSet.FirstOrDefaultAsync(x => x.Id == id && x.UserId == userId, GetCancellationToken(cancellationToken));
return await DbSet.OrderBy(x => x.Id).FirstOrDefaultAsync(x => x.Id == id && x.UserId == userId, GetCancellationToken(cancellationToken));
}
protected virtual IQueryable<IdentitySecurityLog> GetListQuery(

3
modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityLinkUserRepository.cs

@ -20,7 +20,8 @@ namespace Volo.Abp.Identity.EntityFrameworkCore
public async Task<IdentityLinkUser> FindAsync(IdentityLinkUserInfo sourceLinkUserInfo, IdentityLinkUserInfo targetLinkUserInfo, CancellationToken cancellationToken = default)
{
return await DbSet.FirstOrDefaultAsync(x =>
return await DbSet
.OrderBy(x => x.Id).FirstOrDefaultAsync(x =>
x.SourceUserId == sourceLinkUserInfo.UserId && x.SourceTenantId == sourceLinkUserInfo.TenantId &&
x.TargetUserId == targetLinkUserInfo.UserId && x.TargetTenantId == targetLinkUserInfo.TenantId ||
x.TargetUserId == sourceLinkUserInfo.UserId && x.TargetTenantId == sourceLinkUserInfo.TenantId &&

3
modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityRoleRepository.cs

@ -24,6 +24,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore
{
return await DbSet
.IncludeDetails(includeDetails)
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(r => r.NormalizedName == normalizedRoleName, GetCancellationToken(cancellationToken));
}
@ -76,4 +77,4 @@ namespace Volo.Abp.Identity.EntityFrameworkCore
return GetQueryable().IncludeDetails();
}
}
}
}

6
modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs

@ -26,7 +26,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore
{
return await DbSet
.IncludeDetails(includeDetails)
.OrderBy(x => x.NormalizedUserName)
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(
u => u.NormalizedUserName == normalizedUserName,
GetCancellationToken(cancellationToken)
@ -80,6 +80,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore
return await DbSet
.IncludeDetails(includeDetails)
.Where(u => u.Logins.Any(login => login.LoginProvider == loginProvider && login.ProviderKey == providerKey))
.OrderBy(x=>x.Id)
.FirstOrDefaultAsync(GetCancellationToken(cancellationToken));
}
@ -90,7 +91,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore
{
return await DbSet
.IncludeDetails(includeDetails)
.OrderBy(x => x.NormalizedEmail)
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(u => u.NormalizedEmail == normalizedEmail, GetCancellationToken(cancellationToken));
}
@ -112,6 +113,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore
{
var role = await DbContext.Roles
.Where(x => x.NormalizedName == normalizedRoleName)
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(GetCancellationToken(cancellationToken));
if (role == null)

1
modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreOrganizationUnitRepository.cs

@ -75,6 +75,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore
{
return await DbSet
.IncludeDetails(includeDetails)
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(
ou => ou.DisplayName == displayName,
GetCancellationToken(cancellationToken)

3
modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityLinkUserRepository.cs

@ -19,7 +19,8 @@ namespace Volo.Abp.Identity.MongoDB
public async Task<IdentityLinkUser> FindAsync(IdentityLinkUserInfo sourceLinkUserInfo, IdentityLinkUserInfo targetLinkUserInfo, CancellationToken cancellationToken = default)
{
return await GetMongoQueryable().FirstOrDefaultAsync(x =>
return await GetMongoQueryable()
.OrderBy(x => x.Id).FirstOrDefaultAsync(x =>
x.SourceUserId == sourceLinkUserInfo.UserId && x.SourceTenantId == sourceLinkUserInfo.TenantId &&
x.TargetUserId == targetLinkUserInfo.UserId && x.TargetTenantId == targetLinkUserInfo.TenantId ||
x.TargetUserId == sourceLinkUserInfo.UserId && x.TargetTenantId == sourceLinkUserInfo.TenantId &&

6
modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs

@ -23,7 +23,9 @@ namespace Volo.Abp.Identity.MongoDB
bool includeDetails = true,
CancellationToken cancellationToken = default)
{
return await GetMongoQueryable().FirstOrDefaultAsync(r => r.NormalizedName == normalizedRoleName, GetCancellationToken(cancellationToken));
return await GetMongoQueryable()
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(r => r.NormalizedName == normalizedRoleName, GetCancellationToken(cancellationToken));
}
public async Task<List<IdentityRole>> GetListAsync(
@ -72,4 +74,4 @@ namespace Volo.Abp.Identity.MongoDB
.LongCountAsync(GetCancellationToken(cancellationToken));
}
}
}
}

2
modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySecurityLogRepository.cs

@ -85,7 +85,7 @@ namespace Volo.Abp.Identity.MongoDB
public async Task<IdentitySecurityLog> GetByUserIdAsync(Guid id, Guid userId, bool includeDetails = false,
CancellationToken cancellationToken = default)
{
return await GetMongoQueryable().FirstOrDefaultAsync(x => x.Id == id && x.UserId == userId,
return await GetMongoQueryable().OrderBy(x => x.Id).FirstOrDefaultAsync(x => x.Id == id && x.UserId == userId,
GetCancellationToken(cancellationToken));
}

10
modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs

@ -25,6 +25,7 @@ namespace Volo.Abp.Identity.MongoDB
CancellationToken cancellationToken = default)
{
return await GetMongoQueryable()
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(
u => u.NormalizedUserName == normalizedUserName,
GetCancellationToken(cancellationToken)
@ -81,6 +82,7 @@ namespace Volo.Abp.Identity.MongoDB
{
return await GetMongoQueryable()
.Where(u => u.Logins.Any(login => login.LoginProvider == loginProvider && login.ProviderKey == providerKey))
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(GetCancellationToken(cancellationToken));
}
@ -89,7 +91,8 @@ namespace Volo.Abp.Identity.MongoDB
bool includeDetails = true,
CancellationToken cancellationToken = default)
{
return await GetMongoQueryable().FirstOrDefaultAsync(u => u.NormalizedEmail == normalizedEmail, GetCancellationToken(cancellationToken));
return await GetMongoQueryable()
.OrderBy(x => x.Id).FirstOrDefaultAsync(u => u.NormalizedEmail == normalizedEmail, GetCancellationToken(cancellationToken));
}
public virtual async Task<List<IdentityUser>> GetListByClaimAsync(
@ -107,7 +110,10 @@ namespace Volo.Abp.Identity.MongoDB
bool includeDetails = false,
CancellationToken cancellationToken = default)
{
var role = await DbContext.Roles.AsQueryable().Where(x => x.NormalizedName == normalizedRoleName).FirstOrDefaultAsync(GetCancellationToken(cancellationToken));
var role = await DbContext.Roles.AsQueryable()
.Where(x => x.NormalizedName == normalizedRoleName)
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(GetCancellationToken(cancellationToken));
if (role == null)
{

1
modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs

@ -76,6 +76,7 @@ namespace Volo.Abp.Identity.MongoDB
CancellationToken cancellationToken = default)
{
return await GetMongoQueryable()
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(
ou => ou.DisplayName == displayName,
GetCancellationToken(cancellationToken)

4
modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiScopes/ApiScopeRepository.cs

@ -20,7 +20,9 @@ namespace Volo.Abp.IdentityServer.ApiScopes
public async Task<ApiScope> GetByNameAsync(string scopeName, bool includeDetails = true, CancellationToken cancellationToken = default)
{
return await DbSet.FirstOrDefaultAsync(x => x.Name == scopeName, GetCancellationToken(cancellationToken));
return await DbSet
.OrderBy(x=>x.Id)
.FirstOrDefaultAsync(x => x.Name == scopeName, GetCancellationToken(cancellationToken));
}
public async Task<List<ApiScope>> GetListByNameAsync(string[] scopeNames, bool includeDetails = false,

1
modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/EfCorePermissionGrantRepository.cs

@ -25,6 +25,7 @@ namespace Volo.Abp.PermissionManagement.EntityFrameworkCore
CancellationToken cancellationToken = default)
{
return await DbSet
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(s =>
s.Name == name &&
s.ProviderName == providerName &&

1
modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionGrantRepository.cs

@ -25,6 +25,7 @@ namespace Volo.Abp.PermissionManagement.MongoDB
CancellationToken cancellationToken = default)
{
return await GetMongoQueryable()
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(s =>
s.Name == name &&
s.ProviderName == providerName &&

1
modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/EfCoreSettingRepository.cs

@ -18,6 +18,7 @@ namespace Volo.Abp.SettingManagement.EntityFrameworkCore
public virtual async Task<Setting> FindAsync(string name, string providerName, string providerKey)
{
return await DbSet
.OrderBy(x => x.Id)
.FirstOrDefaultAsync(
s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey
);

2
modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs

@ -19,7 +19,7 @@ namespace Volo.Abp.SettingManagement.MongoDB
public virtual async Task<Setting> FindAsync(string name, string providerName, string providerKey)
{
return await GetMongoQueryable().FirstOrDefaultAsync(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey);
return await GetMongoQueryable().OrderBy(x => x.Id).FirstOrDefaultAsync(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey);
}
public virtual async Task<List<Setting>> GetListAsync(string providerName, string providerKey)

10
modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo/Abp/Users/EntityFrameworkCore/EfCoreAbpUserRepositoryBase.cs

@ -22,7 +22,7 @@ namespace Volo.Abp.Users.EntityFrameworkCore
public async Task<TUser> FindByUserNameAsync(string userName, CancellationToken cancellationToken = default)
{
return await this.FirstOrDefaultAsync(u => u.UserName == userName, GetCancellationToken(cancellationToken));
return await this.OrderBy(x => x.Id).FirstOrDefaultAsync(u => u.UserName == userName, GetCancellationToken(cancellationToken));
}
public virtual async Task<List<TUser>> GetListAsync(IEnumerable<Guid> ids, CancellationToken cancellationToken = default)
@ -31,8 +31,8 @@ namespace Volo.Abp.Users.EntityFrameworkCore
}
public async Task<List<TUser>> SearchAsync(
string sorting = null,
int maxResultCount = int.MaxValue,
string sorting = null,
int maxResultCount = int.MaxValue,
int skipCount = 0,
string filter = null,
CancellationToken cancellationToken = default)
@ -52,7 +52,7 @@ namespace Volo.Abp.Users.EntityFrameworkCore
}
public async Task<long> GetCountAsync(
string filter = null,
string filter = null,
CancellationToken cancellationToken = default)
{
return await DbSet
@ -67,4 +67,4 @@ namespace Volo.Abp.Users.EntityFrameworkCore
.LongCountAsync(GetCancellationToken(cancellationToken));
}
}
}
}

6
modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs

@ -23,7 +23,7 @@ namespace Volo.Abp.Users.MongoDB
public virtual async Task<TUser> FindByUserNameAsync(string userName, CancellationToken cancellationToken = default)
{
return await GetMongoQueryable().FirstOrDefaultAsync(u => u.UserName == userName, GetCancellationToken(cancellationToken));
return await GetMongoQueryable().OrderBy(x => x.Id).FirstOrDefaultAsync(u => u.UserName == userName, GetCancellationToken(cancellationToken));
}
public virtual async Task<List<TUser>> GetListAsync(IEnumerable<Guid> ids, CancellationToken cancellationToken = default)
@ -32,7 +32,7 @@ namespace Volo.Abp.Users.MongoDB
}
public async Task<List<TUser>> SearchAsync(
string sorting = null,
string sorting = null,
int maxResultCount = int.MaxValue,
int skipCount = 0,
string filter = null,
@ -67,4 +67,4 @@ namespace Volo.Abp.Users.MongoDB
.LongCountAsync(GetCancellationToken(cancellationToken));
}
}
}
}

2
npm/lerna.json

@ -1,5 +1,5 @@
{
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"packages": [
"packs/*"
],

2
npm/ng-packs/lerna.version.json

@ -1,5 +1,5 @@
{
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"packages": [
"packages/*"
],

20
npm/ng-packs/package.json

@ -26,16 +26,16 @@
"postinstall": "npm run compile:ivy"
},
"devDependencies": {
"@abp/ng.core": "~4.0.0-rc.4",
"@abp/ng.feature-management": "~4.0.0-rc.4",
"@abp/ng.identity": "~4.0.0-rc.4",
"@abp/ng.permission-management": "~4.0.0-rc.4",
"@abp/ng.core": "~4.0.0-rc.5",
"@abp/ng.feature-management": "~4.0.0-rc.5",
"@abp/ng.identity": "~4.0.0-rc.5",
"@abp/ng.permission-management": "~4.0.0-rc.5",
"@abp/ng.schematics": "~3.3.1",
"@abp/ng.setting-management": "~4.0.0-rc.4",
"@abp/ng.tenant-management": "~4.0.0-rc.4",
"@abp/ng.theme.basic": "~4.0.0-rc.4",
"@abp/ng.theme.shared": "~4.0.0-rc.4",
"@abp/utils": "^4.0.0-rc.4",
"@abp/ng.setting-management": "~4.0.0-rc.5",
"@abp/ng.tenant-management": "~4.0.0-rc.5",
"@abp/ng.theme.basic": "~4.0.0-rc.5",
"@abp/ng.theme.shared": "~4.0.0-rc.5",
"@abp/utils": "^4.0.0-rc.5",
"@angular-builders/jest": "^10.0.0",
"@angular-devkit/build-angular": "~0.1100.0",
"@angular-devkit/build-ng-packagr": "~0.1001.2",
@ -56,7 +56,7 @@
"@ng-bootstrap/ng-bootstrap": "^7.0.0",
"@ngneat/inspector": "^1.0.0",
"@ngneat/spectator": "^5.13.0",
"@ngx-validate/core": "^0.0.12",
"@ngx-validate/core": "^0.0.13",
"@ngxs/devtools-plugin": "^3.7.0",
"@ngxs/logger-plugin": "^3.7.0",
"@ngxs/router-plugin": "^3.7.0",

4
npm/ng-packs/packages/components/package.json

@ -1,13 +1,13 @@
{
"name": "@abp/ng.components",
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"peerDependencies": {
"@abp/ng.core": ">=4.0.0-rc.4",
"@abp/ng.core": ">=4.0.0-rc.5",
"@ng-bootstrap/ng-bootstrap": ">=6.0.0"
},
"dependencies": {

4
npm/ng-packs/packages/core/package.json

@ -1,13 +1,13 @@
{
"name": "@abp/ng.core",
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/utils": "^4.0.0-rc.4",
"@abp/utils": "^4.0.0-rc.5",
"@angular/localize": "~10.0.10",
"@ngxs/router-plugin": "^3.7.0",
"@ngxs/store": "^3.7.0",

4
npm/ng-packs/packages/feature-management/package.json

@ -1,13 +1,13 @@
{
"name": "@abp/ng.feature-management",
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.theme.shared": "~4.0.0-rc.4",
"@abp/ng.theme.shared": "~4.0.0-rc.5",
"tslib": "^2.0.0"
},
"publishConfig": {

6
npm/ng-packs/packages/identity/package.json

@ -1,14 +1,14 @@
{
"name": "@abp/ng.identity",
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.permission-management": "~4.0.0-rc.4",
"@abp/ng.theme.shared": "~4.0.0-rc.4",
"@abp/ng.permission-management": "~4.0.0-rc.5",
"@abp/ng.theme.shared": "~4.0.0-rc.5",
"tslib": "^2.0.0"
},
"publishConfig": {

4
npm/ng-packs/packages/permission-management/package.json

@ -1,13 +1,13 @@
{
"name": "@abp/ng.permission-management",
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.theme.shared": "~4.0.0-rc.4",
"@abp/ng.theme.shared": "~4.0.0-rc.5",
"tslib": "^2.0.0"
},
"publishConfig": {

2
npm/ng-packs/packages/schematics/package.json

@ -1,6 +1,6 @@
{
"name": "@abp/ng.schematics",
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"description": "Schematics that works with ABP Backend",
"keywords": [
"schematics"

4
npm/ng-packs/packages/setting-management/package.json

@ -1,13 +1,13 @@
{
"name": "@abp/ng.setting-management",
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.theme.shared": "~4.0.0-rc.4",
"@abp/ng.theme.shared": "~4.0.0-rc.5",
"tslib": "^2.0.0"
},
"publishConfig": {

6
npm/ng-packs/packages/tenant-management/package.json

@ -1,14 +1,14 @@
{
"name": "@abp/ng.tenant-management",
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.feature-management": "~4.0.0-rc.4",
"@abp/ng.theme.shared": "~4.0.0-rc.4",
"@abp/ng.feature-management": "~4.0.0-rc.5",
"@abp/ng.theme.shared": "~4.0.0-rc.5",
"tslib": "^2.0.0"
},
"publishConfig": {

4
npm/ng-packs/packages/theme-basic/package.json

@ -1,13 +1,13 @@
{
"name": "@abp/ng.theme.basic",
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.theme.shared": "~4.0.0-rc.4",
"@abp/ng.theme.shared": "~4.0.0-rc.5",
"tslib": "^2.0.0"
},
"publishConfig": {

53
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html

@ -1,6 +1,6 @@
<div class="form-group" *abpPermission="prop.permission" [ngSwitch]="getComponent(prop)">
<ng-template ngSwitchCase="input">
<label [htmlFor]="prop.id">{{ prop.displayName | abpLocalization }} {{ asterisk }}</label>
<ng-template [ngTemplateOutlet]="label"></ng-template>
<input
[id]="prop.id"
[formControlName]="prop.name"
@ -12,6 +12,10 @@
/>
</ng-template>
<ng-template ngSwitchCase="hidden">
<input [formControlName]="prop.name" type="hidden" />
</ng-template>
<ng-template ngSwitchCase="checkbox">
<div class="custom-checkbox custom-control" validationTarget>
<input
@ -21,14 +25,15 @@
type="checkbox"
class="custom-control-input"
/>
<label [htmlFor]="prop.id" class="custom-control-label"
>{{ prop.displayName | abpLocalization }} {{ asterisk }}</label
>
<ng-template
[ngTemplateOutlet]="label"
[ngTemplateOutletContext]="{ $implicit: 'custom-control-label' }"
></ng-template>
</div>
</ng-template>
<ng-template ngSwitchCase="select">
<label [htmlFor]="prop.id">{{ prop.displayName | abpLocalization }} {{ asterisk }}</label>
<ng-template [ngTemplateOutlet]="label"></ng-template>
<select
[id]="prop.id"
[formControlName]="prop.name"
@ -45,7 +50,7 @@
</ng-template>
<ng-template ngSwitchCase="multiselect">
<label [htmlFor]="prop.id">{{ prop.displayName | abpLocalization }} {{ asterisk }}</label>
<ng-template [ngTemplateOutlet]="label"></ng-template>
<select
[id]="prop.id"
[formControlName]="prop.name"
@ -62,8 +67,30 @@
</select>
</ng-template>
<ng-template ngSwitchCase="typeahead">
<ng-template [ngTemplateOutlet]="label"></ng-template>
<div #typeahead class="position-relative" validationStyle validationTarget>
<input
[id]="prop.id"
[autocomplete]="prop.autocomplete"
[abpDisabled]="disabled"
[ngbTypeahead]="search"
[editable]="false"
[inputFormatter]="typeaheadFormatter"
[resultFormatter]="typeaheadFormatter"
[ngModelOptions]="{ standalone: true }"
[(ngModel)]="typeaheadModel"
(selectItem)="setTypeaheadValue($event.item)"
(blur)="setTypeaheadValue(typeaheadModel)"
[class.is-invalid]="typeahead.classList.contains('is-invalid')"
class="form-control"
/>
<input [formControlName]="prop.name" type="hidden" />
</div>
</ng-template>
<ng-template ngSwitchCase="date">
<label [htmlFor]="prop.id">{{ prop.displayName | abpLocalization }} {{ asterisk }}</label>
<ng-template [ngTemplateOutlet]="label"></ng-template>
<input
[id]="prop.id"
[formControlName]="prop.name"
@ -77,17 +104,17 @@
</ng-template>
<ng-template ngSwitchCase="time">
<label [htmlFor]="prop.id">{{ prop.displayName | abpLocalization }} {{ asterisk }}</label>
<ng-template [ngTemplateOutlet]="label"></ng-template>
<ngb-timepicker [formControlName]="prop.name"></ngb-timepicker>
</ng-template>
<ng-template ngSwitchCase="dateTime">
<label [htmlFor]="prop.id">{{ prop.displayName | abpLocalization }} {{ asterisk }}</label>
<ng-template [ngTemplateOutlet]="label"></ng-template>
<abp-date-time-picker [prop]="prop"></abp-date-time-picker>
</ng-template>
<ng-template ngSwitchCase="textarea">
<label [htmlFor]="prop.id">{{ prop.displayName | abpLocalization }} {{ asterisk }}</label>
<ng-template [ngTemplateOutlet]="label"></ng-template>
<textarea
[id]="prop.id"
[formControlName]="prop.name"
@ -97,3 +124,9 @@
></textarea>
</ng-template>
</div>
<ng-template #label let-classes>
<label [htmlFor]="prop.id" [ngClass]="classes"
>{{ prop.displayName | abpLocalization }} {{ asterisk }}</label
>
</ng-template>

94
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts

@ -4,16 +4,25 @@ import {
ChangeDetectorRef,
Component,
Input,
OnChanges,
Optional,
SimpleChanges,
SkipSelf,
OnChanges,
} from '@angular/core';
import { ControlContainer, Validators, ValidatorFn } from '@angular/forms';
import {
ControlContainer,
FormGroup,
FormGroupDirective,
ValidatorFn,
Validators,
} from '@angular/forms';
import { NgbDateAdapter, NgbTimeAdapter } from '@ng-bootstrap/ng-bootstrap';
import { Observable, of } from 'rxjs';
import { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';
import snq from 'snq';
import { DateAdapter } from '../../adapters/date.adapter';
import { TimeAdapter } from '../../adapters/time.adapter';
import { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';
import { ePropType } from '../../enums/props.enum';
import { FormProp } from '../../models/form-props';
import { PropData } from '../../models/props';
@ -38,6 +47,8 @@ export class ExtensibleFormPropComponent implements OnChanges {
@Input() prop: FormProp;
asterisk = '';
options$: Observable<ABP.Option<any>[]> = of([]);
validators: ValidatorFn[] = [];
@ -46,15 +57,59 @@ export class ExtensibleFormPropComponent implements OnChanges {
disabled: boolean;
constructor(public readonly cdRef: ChangeDetectorRef, public readonly track: TrackByService) {}
private readonly form: FormGroup;
typeaheadModel: any;
get asterisk(): string {
return this.validators.some(validator => validator === Validators.required) ? '*' : '';
setTypeaheadValue(selectedOption: ABP.Option<string>) {
this.typeaheadModel = selectedOption || { key: null, value: null };
const { key, value } = this.typeaheadModel;
const [keyControl, valueControl] = this.getTypeaheadControls();
keyControl.setValue(key);
valueControl.setValue(value);
valueControl.markAsDirty();
valueControl.markAsTouched();
}
getComponent(prop: FormProp): string {
if (prop.options && prop.type !== ePropType.MultiSelect) return 'select';
search = (text$: Observable<string>) =>
text$
? text$.pipe(
debounceTime(300),
distinctUntilChanged(),
switchMap(text => this.prop.options(this.data, text)),
)
: of([]);
typeaheadFormatter = (option: ABP.Option<any>) => option.key;
get isInvalid() {
const control = this.form.get(this.prop.name);
return control.touched && control.invalid;
}
constructor(
public readonly cdRef: ChangeDetectorRef,
public readonly track: TrackByService,
groupDirective: FormGroupDirective,
) {
this.form = groupDirective.form;
}
private getTypeaheadControls() {
const { name } = this.prop;
const textSuffix = '_Text';
const extraPropName = `${EXTRA_PROPERTIES_KEY}.${name}`;
const keyControl =
this.form.get(extraPropName + textSuffix) || this.form.get(name + textSuffix);
const valueControl = this.form.get(extraPropName) || this.form.get(name);
return [keyControl, valueControl];
}
private setAsterisk() {
this.asterisk = this.validators.some(v => v === Validators.required) ? '*' : '';
}
getComponent(prop: FormProp): string {
switch (prop.type) {
case ePropType.Boolean:
return 'checkbox';
@ -62,14 +117,18 @@ export class ExtensibleFormPropComponent implements OnChanges {
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.MultiSelect:
return 'multiselect';
case ePropType.Typeahead:
return 'typeahead';
default:
return 'input';
return prop.options ? 'select' : 'input';
}
}
@ -92,14 +151,19 @@ export class ExtensibleFormPropComponent implements OnChanges {
}
ngOnChanges({ prop }: SimpleChanges) {
const options = prop.currentValue.options;
const readonly = prop.currentValue.readonly;
const disabled = prop.currentValue.disabled;
const validators = prop.currentValue.validators;
const currentProp = snq<FormProp>(() => prop.currentValue);
const { options, readonly, disabled, validators } = currentProp || {};
if (options) this.options$ = options(this.data);
if (readonly) this.readonly = readonly(this.data);
if (disabled) this.disabled = disabled(this.data);
if (validators) this.validators = validators(this.data);
if (validators) {
this.validators = validators(this.data);
this.setAsterisk();
}
const [keyControl, valueControl] = this.getTypeaheadControls();
if (keyControl && valueControl)
this.typeaheadModel = { key: keyControl.value, value: valueControl.value };
}
}

4
npm/ng-packs/packages/theme-shared/extensions/src/lib/enums/props.enum.ts

@ -4,10 +4,12 @@ export const enum ePropType {
DateTime = 'dateTime',
Email = 'email',
Enum = 'enum',
Hidden = 'hidden',
MultiSelect = 'multiselect',
Number = 'number',
Password = 'password',
String = 'string',
Text = 'text',
Time = 'time',
MultiSelect = 'multiselect',
Typeahead = 'typeahead',
}

4
npm/ng-packs/packages/theme-shared/extensions/src/lib/models/props.ts

@ -39,8 +39,8 @@ export abstract class Prop<R = any> {
}
}
export type PropCallback<T, R = any> = (data?: Omit<PropData<T>, 'data'>) => R;
export type PropPredicate<T> = (data?: Omit<PropData<T>, 'data'>) => boolean;
export type PropCallback<T, R = any> = (data?: Omit<PropData<T>, 'data'>, auxData?: any) => R;
export type PropPredicate<T> = (data?: Omit<PropData<T>, 'data'>, auxData?: any) => boolean;
export abstract class PropsFactory<C extends Props<any>> {
protected abstract _ctor: Type<C>;

2
npm/ng-packs/packages/theme-shared/extensions/src/lib/ui-extensions.module.ts

@ -5,6 +5,7 @@ import {
NgbDatepickerModule,
NgbDropdownModule,
NgbTimepickerModule,
NgbTypeaheadModule,
} from '@ng-bootstrap/ng-bootstrap';
import { NgxValidateCoreModule } from '@ngx-validate/core';
import { DateTimePickerComponent } from './components/date-time-picker/date-time-picker.component';
@ -43,6 +44,7 @@ import { PropDataDirective } from './directives/prop-data.directive';
NgbDatepickerModule,
NgbDropdownModule,
NgbTimepickerModule,
NgbTypeaheadModule,
],
})
export class UiExtensionsModule {}

37
npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/case.util.ts

@ -0,0 +1,37 @@
// https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Utilities/StringUtils.cs#L155
export function jsonNetCamelCase(str: string) {
if (!str || !isUpperCase(str[0])) return str;
const chars = str.split('');
const { length } = chars;
for (let i = 0; i < length; i++) {
if (i === 1 && !isUpperCase(chars[i])) break;
const hasNext = i + 1 < length;
if (i > 0 && hasNext && !isUpperCase(chars[i + 1])) {
if (isSeparator(chars[i + 1])) {
chars[i] = toLowerCase(chars[i]);
}
break;
}
chars[i] = toLowerCase(chars[i]);
}
return chars.join('');
}
function isSeparator(str = '') {
return /[\s\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]+/.test(str);
}
function isUpperCase(str = '') {
return /[A-Z]+/.test(str);
}
function toLowerCase(str = '') {
return str.toLowerCase();
}

24
npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/state.util.ts

@ -1,4 +1,9 @@
import { ABP, ApplicationLocalizationConfigurationDto, ConfigStateService } from '@abp/ng.core';
import {
ABP,
ApplicationLocalizationConfigurationDto,
ConfigStateService,
ExtensionPropertyUiLookupDto,
} from '@abp/ng.core';
import { Observable, pipe, zip } from 'rxjs';
import { filter, map, switchMap, take } from 'rxjs/operators';
import { ePropType } from '../enums/props.enum';
@ -6,9 +11,11 @@ import { EntityProp, EntityPropList } from '../models/entity-props';
import { FormProp, FormPropList } from '../models/form-props';
import { ObjectExtensions } from '../models/object-extensions';
import { PropCallback } from '../models/props';
import { jsonNetCamelCase } from './case.util';
import { createEnum, createEnumOptions, createEnumValueResolver } from './enum.util';
import { createDisplayNameLocalizationPipeKeyGenerator } from './localization.util';
import { createExtraPropertyValueResolver } from './props.util';
import { createTypeaheadOptions, getTypeaheadType } from './typeahead.util';
import { getValidatorsFromProperty } from './validation.util';
function selectObjectExtensions(
@ -115,7 +122,9 @@ function createPropertiesToContributorsMapper<T = any>(
Object.keys(properties).forEach((name: string) => {
const property = properties[name];
const type = getTypeFromProperty(property);
const propName = jsonNetCamelCase(name);
const lookup = property.ui.lookup || ({} as ExtensionPropertyUiLookupDto);
const type = getTypeaheadType(lookup, name) || getTypeFromProperty(property);
const displayName = generateDisplayName(property.displayName, { name, resource });
if (property.ui.onTable.isVisible) {
@ -123,12 +132,12 @@ function createPropertiesToContributorsMapper<T = any>(
const columnWidth = type === ePropType.Boolean ? 150 : 250;
const valueResolver =
type === ePropType.Enum
? createEnumValueResolver(property.type, enums[property.type], name)
: createExtraPropertyValueResolver<T>(name);
? createEnumValueResolver(property.type, enums[property.type], propName)
: createExtraPropertyValueResolver<T>(propName);
const entityProp = new EntityProp<T>({
type,
name,
name: propName,
displayName,
sortable,
columnWidth,
@ -147,11 +156,12 @@ function createPropertiesToContributorsMapper<T = any>(
const defaultValue = property.defaultValue;
const validators = () => getValidatorsFromProperty(property);
let options: PropCallback<any, Observable<ABP.Option<any>[]>>;
if (type === ePropType.Enum) options = createEnumOptions(name, enums[property.type]);
if (type === ePropType.Enum) options = createEnumOptions(propName, enums[property.type]);
else if (type === ePropType.Typeahead) options = createTypeaheadOptions(lookup);
const formProp = new FormProp({
type,
name,
name: propName,
displayName,
options,
defaultValue,

43
npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/typeahead.util.ts

@ -0,0 +1,43 @@
import { ABP, ExtensionPropertyUiLookupDto, RestService } from '@abp/ng.core';
import { Observable, of } from 'rxjs';
import { map } from 'rxjs/operators';
import { ePropType } from '../enums/props.enum';
import { PropCallback } from '../models/props';
export function createTypeaheadOptions(
lookup: ExtensionPropertyUiLookupDto,
): PropCallback<any, Observable<ABP.Option<any>[]>> {
return (data, searchText) =>
searchText
? data
.getInjected(RestService)
.request(
{
method: 'GET',
url: lookup.url,
params: {
[lookup.filterParamName]: searchText,
},
},
{ apiName: 'Default' },
)
.pipe(
map(response => {
const list = response[lookup.resultListPropertyName];
const mapToOption = (item: any) => ({
key: item[lookup.displayPropertyName],
value: item[lookup.valuePropertyName],
});
return list.map(mapToOption);
}),
)
: of([]);
}
export function getTypeaheadType(lookup: ExtensionPropertyUiLookupDto, name: string) {
return Boolean(lookup.url)
? ePropType.Typeahead
: name.endsWith('_Text')
? ePropType.Hidden
: undefined;
}

18
npm/ng-packs/packages/theme-shared/extensions/src/tests/case.util.spec.ts

@ -0,0 +1,18 @@
import { jsonNetCamelCase } from '../lib/utils/case.util';
describe('Case Utils', () => {
describe('#jsonNetCamelCase', () => {
test.each`
input | output
${'Primary'} | ${'primary'}
${'PrimaryRole'} | ${'primaryRole'}
${'Primary Role'} | ${'primary Role'}
${'PrimaryRole_Text'} | ${'primaryRole_Text'}
${'ISBN'} | ${'isbn'}
${''} | ${''}
${'iMDB'} | ${'iMDB'}
`('should return $output when input is $input', ({ input, output }) => {
expect(jsonNetCamelCase(input)).toBe(output);
});
});
});

102
npm/ng-packs/packages/theme-shared/extensions/src/tests/state.util.spec.ts

@ -50,24 +50,29 @@ describe('State Utils', () => {
const propList = new EntityPropList();
contributors.prop.Role.forEach(callback => callback(propList));
expect(propList.length).toBe(3);
expect(propList.head.value.name).toBe('Title');
expect(propList.head.next.value.name).toBe('IsHero');
expect(propList.head.next.next.value.name).toBe('MyEnum');
expect(propList.length).toBe(4);
expect(propList.head.value.name).toBe('title');
expect(propList.head.next.value.name).toBe('isHero');
expect(propList.head.next.next.value.name).toBe('myEnum');
expect(propList.head.next.next.next.value.name).toBe('foo_Text');
const createFormList = new FormPropList();
contributors.createForm.Role.forEach(callback => callback(createFormList));
expect(createFormList.length).toBe(2);
expect(createFormList.head.value.name).toBe('Title');
expect(createFormList.head.next.value.name).toBe('MyEnum');
expect(createFormList.length).toBe(4);
expect(createFormList.head.value.name).toBe('title');
expect(createFormList.head.next.value.name).toBe('myEnum');
expect(createFormList.head.next.next.value.name).toBe('foo');
expect(createFormList.head.next.next.next.value.name).toBe('foo_Text');
const editFormList = new FormPropList();
contributors.editForm.Role.forEach(callback => callback(editFormList));
expect(editFormList.length).toBe(2);
expect(editFormList.head.value.name).toBe('Title');
expect(editFormList.head.next.value.name).toBe('IsHero');
expect(editFormList.length).toBe(4);
expect(editFormList.head.value.name).toBe('title');
expect(editFormList.head.next.value.name).toBe('isHero');
expect(editFormList.head.next.next.value.name).toBe('foo');
expect(editFormList.head.next.next.next.value.name).toBe('foo_Text');
});
});
});
@ -275,6 +280,83 @@ function createMockEntities(): Record<string, ObjectExtensions.EntityExtensionDt
configuration: {},
defaultValue: 2,
},
Foo: {
type: 'System.String',
typeSimple: ePropType.String,
displayName: null,
api: {
onGet: {
isAvailable: false,
},
onCreate: {
isAvailable: true,
},
onUpdate: {
isAvailable: true,
},
},
ui: {
onTable: {
isVisible: false,
},
onCreateForm: {
isVisible: true,
},
onEditForm: {
isVisible: true,
},
lookup: {
url: '/api/identity/roles',
resultListPropertyName: 'items',
displayPropertyName: 'text',
valuePropertyName: 'id',
filterParamName: 'filter',
},
},
attributes: [],
configuration: {},
defaultValue: null,
},
Foo_Text: {
type: 'System.String',
typeSimple: ePropType.String,
displayName: {
name: 'Foo',
resource: '_',
},
api: {
onGet: {
isAvailable: true,
},
onCreate: {
isAvailable: true,
},
onUpdate: {
isAvailable: true,
},
},
ui: {
onTable: {
isVisible: true,
},
onCreateForm: {
isVisible: true,
},
onEditForm: {
isVisible: true,
},
lookup: {
url: null,
resultListPropertyName: 'items',
displayPropertyName: 'text',
valuePropertyName: 'id',
filterParamName: 'filter',
},
},
attributes: [],
configuration: {},
defaultValue: null,
},
},
configuration: {},
},

72
npm/ng-packs/packages/theme-shared/extensions/src/tests/typeahead.util.spec.ts

@ -0,0 +1,72 @@
import { ExtensionPropertyUiLookupDto } from '@abp/ng.core';
import { of } from 'rxjs';
import { createTypeaheadOptions } from '../lib/utils/typeahead.util';
const lookup: ExtensionPropertyUiLookupDto = {
url: 'url',
resultListPropertyName: 'list',
displayPropertyName: 'text',
valuePropertyName: 'id',
filterParamName: 'filter',
};
describe('Typeahead Utils', () => {
describe('#createTypeaheadOptions', () => {
it('should return observable empty array when search text does not exist', async () => {
const list = await createTypeaheadOptions(null)(null, null).toPromise();
expect(list).toEqual([]);
});
it('should call request method of RestService with lookup url, filter param and search text', async () => {
const data = createData([]);
const service = data.getInjected();
await createTypeaheadOptions(lookup)(data, 'x').toPromise();
expect(service.request).toHaveBeenCalledTimes(1);
expect(service.request).toHaveBeenCalledWith(
{
method: 'GET',
url: 'url',
params: {
filter: 'x',
},
},
{ apiName: 'Default' },
);
});
it('should return options based on given lookup data', async () => {
const data = createData([
{
text: 'foo',
id: 'bar',
},
{
text: 'baz',
id: 'qux',
},
]);
const options = await createTypeaheadOptions(lookup)(data, 'x').toPromise();
expect(options).toEqual([
{
key: 'foo',
value: 'bar',
},
{
key: 'baz',
value: 'qux',
},
]);
});
});
});
function createData(list: { text: string; id: string }[]): any {
const service = { request: jest.fn(() => of({ list })) };
return {
getInjected: () => service,
index: 0,
record: null,
};
}

6
npm/ng-packs/packages/theme-shared/package.json

@ -1,16 +1,16 @@
{
"name": "@abp/ng.theme.shared",
"version": "4.0.0-rc.4",
"version": "4.0.0-rc.5",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.core": "~4.0.0-rc.4",
"@abp/ng.core": "~4.0.0-rc.5",
"@fortawesome/fontawesome-free": "^5.14.0",
"@ng-bootstrap/ng-bootstrap": "^7.0.0",
"@ngx-validate/core": "^0.0.12",
"@ngx-validate/core": "^0.0.13",
"@swimlane/ngx-datatable": "^17.1.0",
"bootstrap": "^4.5.0",
"chart.js": "^2.9.3",

8
npm/ng-packs/packages/theme-shared/src/lib/constants/styles.ts

@ -2,6 +2,11 @@ export default `
.is-invalid .form-control {
border-color: #dc3545;
border-style: solid !important;
padding-right: calc(1.5em + .75rem);
background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e);
background-repeat: no-repeat;
background-position: right calc(.375em + .1875rem) center;
background-size: calc(.75em + .375rem) calc(.75em + .375rem);
}
.is-invalid .invalid-feedback,
@ -144,6 +149,9 @@ export default `
.ngx-datatable.material {
box-shadow: none;
}
ngb-typeahead-window {
width: 100%;
}
@keyframes fadeInTop {
from {

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

Loading…
Cancel
Save