Browse Source

Merge branch 'dev' into dgn/4330

pull/20688/head
oykuermann 2 years ago
parent
commit
b2293d973c
  1. 94
      .github/ISSUE_TEMPLATE/03_studio.yml
  2. 0
      .github/ISSUE_TEMPLATE/04_article_request.yml
  3. 0
      .github/ISSUE_TEMPLATE/05_performance_issue.md
  4. 0
      .github/ISSUE_TEMPLATE/06_blank_issue.md
  5. 3
      Directory.Packages.props
  6. 3
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en-GB.json
  7. 9
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
  8. 32
      docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/Post.md
  9. BIN
      docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/coupled-tenants.png
  10. BIN
      docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/questions.png
  11. BIN
      docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/security-gdpr-db-retention.png
  12. BIN
      docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/shared-entity.png
  13. BIN
      docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/tenancy-schema.png
  14. BIN
      docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/user-multiple-membership.png
  15. 12
      docs/en/docs-nav.json
  16. 4
      docs/en/framework/api-development/index.md
  17. 69
      docs/en/framework/infrastructure/background-jobs/hangfire.md
  18. 70
      docs/en/framework/infrastructure/blob-storing/google.md
  19. 1
      docs/en/framework/infrastructure/blob-storing/index.md
  20. 2
      docs/en/get-started/microservice.md
  21. 7
      docs/en/release-info/migration-guides/abp-8-2.md
  22. 129
      docs/en/release-info/road-map.md
  23. 6
      docs/en/solution-templates/microservice/adding-new-api-gateways.md
  24. 6
      docs/en/solution-templates/microservice/adding-new-applications.md
  25. 365
      docs/en/solution-templates/microservice/adding-new-microservices.md
  26. BIN
      docs/en/solution-templates/microservice/images/folder-structure.png
  27. 6
      docs/en/studio/overview.md
  28. 91
      docs/en/studio/release-notes.md
  29. 14
      framework/Volo.Abp.sln
  30. 9
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs
  31. 24
      framework/src/Volo.Abp.BlobStoring.Google/Volo.Abp.BlobStoring.Google.csproj
  32. 9
      framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleModule.cs
  33. 21
      framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/DefaultGoogleBlobNameCalculator.cs
  34. 24
      framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobContainerConfigurationExtensions.cs
  35. 120
      framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobNamingNormalizer.cs
  36. 161
      framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProvider.cs
  37. 79
      framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProviderConfiguration.cs
  38. 12
      framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProviderConfigurationNames.cs
  39. 6
      framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/IGoogleBlobNameCalculator.cs
  40. 12
      framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs
  41. 16
      framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json
  42. 19
      framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo.Abp.BlobStoring.Google.Tests.csproj
  43. 19
      framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleTestBase.cs
  44. 90
      framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleTestModule.cs
  45. 94
      framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/DefaultGoogleBlobNamingNormalizerProvider_Tests.cs
  46. 13
      framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/GoogleBlobContainer_Tests.cs
  47. 56
      framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/GoogleBlobNameCalculator_Tests.cs
  48. 22
      framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Domain/ExtraProperties_Tests.cs
  49. 4
      framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/City.cs
  50. 3
      framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ConcurrencyStamp_Tests.cs
  51. 2
      latest-versions.json
  52. 6
      modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json
  53. 276
      modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock
  54. 4
      modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json
  55. 280
      modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock
  56. 4
      modules/blogging/app/Volo.BloggingTestApp/package.json
  57. 318
      modules/blogging/app/Volo.BloggingTestApp/yarn.lock
  58. 2
      modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs
  59. 2
      modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json
  60. 258
      modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
  61. 10
      modules/cms-kit/angular/package.json
  62. 4
      modules/cms-kit/angular/projects/cms-kit/package.json
  63. 2
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json
  64. 258
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
  65. 2
      modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json
  66. 258
      modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
  67. 4
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json
  68. 404
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
  69. 4
      modules/docs/app/VoloDocs.Web/package.json
  70. 318
      modules/docs/app/VoloDocs.Web/yarn.lock
  71. 2
      modules/openiddict/app/OpenIddict.Demo.Server/package.json
  72. 20
      modules/openiddict/app/angular/package.json
  73. 7
      modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Microsoft/Extensions/DependencyInjection/OpenIddictServerBuilderExtensions.cs
  74. 2
      modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json
  75. 258
      modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock
  76. 4
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json
  77. 292
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock
  78. 2
      npm/lerna.json
  79. 4
      npm/ng-packs/package.json
  80. 6
      npm/ng-packs/packages/account-core/package.json
  81. 6
      npm/ng-packs/packages/account/package.json
  82. 6
      npm/ng-packs/packages/components/package.json
  83. 4
      npm/ng-packs/packages/core/package.json
  84. 16
      npm/ng-packs/packages/core/src/lib/utils/generator-utils.ts
  85. 4
      npm/ng-packs/packages/feature-management/package.json
  86. 2
      npm/ng-packs/packages/generators/package.json
  87. 8
      npm/ng-packs/packages/identity/package.json
  88. 6
      npm/ng-packs/packages/oauth/package.json
  89. 4
      npm/ng-packs/packages/permission-management/package.json
  90. 112
      npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts
  91. 2
      npm/ng-packs/packages/schematics/package.json
  92. 5
      npm/ng-packs/packages/schematics/src/commands/change-theme/style-map.ts
  93. 6
      npm/ng-packs/packages/setting-management/package.json
  94. 6
      npm/ng-packs/packages/tenant-management/package.json
  95. 6
      npm/ng-packs/packages/theme-basic/package.json
  96. 8
      npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.html
  97. 4
      npm/ng-packs/packages/theme-shared/package.json
  98. 4
      npm/packs/anchor-js/package.json
  99. 4
      npm/packs/aspnetcore.components.server.basictheme/package.json
  100. 6
      npm/packs/aspnetcore.components.server.theming/package.json

94
.github/ISSUE_TEMPLATE/03_studio.yml

@ -0,0 +1,94 @@
name: 🤠 ABP Studio
description: Create a report to help us improve the ABP Studio
labels: [studio]
body:
- type: markdown
attributes:
value: |
We welcome bug reports! This template will help us gather the information we need to start the triage process.
Please keep in mind that the GitHub issue tracker is not intended as a general support forum, but for reporting **non-security** bugs and feature requests.
If you believe you have an issue that affects the SECURITY of the platform, please do NOT create an issue and instead email your issue details to info@abp.io.
For other types of questions, consider using [StackOverflow](https://stackoverflow.com/questions/tagged/abp).
- type: checkboxes
id: searched
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered or feature request ([abp/issues](https://github.com/abpframework/abp/issues?q=is%3Aopen+is%3Aissue+label%3Astudio)).
options:
- label: I have searched the existing issues
required: true
- type: textarea
id: background
attributes:
label: Description
description: Please share a clear and concise description of the problem.
placeholder: Description
validations:
required: true
- type: markdown
attributes:
value: |
## Setup
Please provide more information on your ABP Studio setup.
- type: input
id: version
attributes:
label: Version
description: Which version of ABP Studio are you using?
placeholder: Version
validations:
required: true
- type: dropdown
id: Operation-System
attributes:
label: Operation System
description: What is the operation system of the computer?
options:
- Windows (Default)
- Linux
- macOS
- Others
validations:
required: true
- type: textarea
id: solution-config
attributes:
label: Solution Configuration
description: |
If there is an open solution, what are the configurations of the solution?
🧐 Hint: You can see all the information about your solution from the configuration window, which opens when you right-click on the [solution](https://abp.io/docs/latest/studio/solution-explorer#solution) and click on the `Solution Configuration` button.
placeholder: |
- **Template**: app
- **Created ABP Studio Version**: 0.7.9
- **Tiered**: No
- **UI Framework**: mvc
- **Theme**: leptonx
- **Theme Style**: system
- **Database Provider**: ef
- **Database Management System**: sqlserver
- **Separate Tenant Schema**: No
- **Mobile Framework**: none
- **Public Website**: No
- **Optional Modules**:
* GDPR
* TextTemplateManagement
* LanguageManagement
* AuditLogging
* SaaS
* OpenIddictAdmin
validations:
required: false
- type: markdown
attributes:
value: |
---
- type: textarea
id: other-info
attributes:
label: Other information
description: |
If you have an idea where the problem might lie, let us know that here. Please include any pointers to code, relevant changes, or related issues you know of.
placeholder: Other information
validations:
required: false

0
.github/ISSUE_TEMPLATE/03_article_request.yml → .github/ISSUE_TEMPLATE/04_article_request.yml

0
.github/ISSUE_TEMPLATE/04_performance_issue.md → .github/ISSUE_TEMPLATE/05_performance_issue.md

0
.github/ISSUE_TEMPLATE/05_blank_issue.md → .github/ISSUE_TEMPLATE/06_blank_issue.md

3
Directory.Packages.props

@ -6,7 +6,7 @@
<PackageVersion Include="AlibabaCloud.SDK.Dysmsapi20170525" Version="2.0.24" />
<PackageVersion Include="aliyun-net-sdk-sts" Version="3.1.2" />
<PackageVersion Include="Aliyun.OSS.SDK.NetCore" Version="2.13.0" />
<PackageVersion Include="AsyncKeyedLock" Version="7.0.0" />
<PackageVersion Include="AsyncKeyedLock" Version="7.0.1" />
<PackageVersion Include="Autofac" Version="8.0.0" />
<PackageVersion Include="Autofac.Extensions.DependencyInjection" Version="9.0.0" />
<PackageVersion Include="Autofac.Extras.DynamicProxy" Version="7.1.0" />
@ -38,6 +38,7 @@
<PackageVersion Include="EphemeralMongo6.runtime.osx-x64" Version="1.1.3" />
<PackageVersion Include="EphemeralMongo6.runtime.win-x64" Version="1.1.3" />
<PackageVersion Include="FluentValidation" Version="11.8.0" />
<PackageVersion Include="Google.Cloud.Storage.V1" Version="4.10.0" />
<PackageVersion Include="Hangfire.AspNetCore" Version="1.8.14" />
<PackageVersion Include="Hangfire.SqlServer" Version="1.8.14" />
<PackageVersion Include="HtmlSanitizer" Version="8.0.746" />

3
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en-GB.json

@ -153,6 +153,9 @@
"AndMore": "and more...",
"Code": "Code",
"Result": "Result",
"CommercialSupport": "Commercial Suport",
"GithubIssues": "GitHub Issues",
"TechnicalSupport": "Technical Support",
"SeeTheDocumentForMoreInformation": "See the <a href=\"{1}\">{0} document</a> for more information",
"IndexPageHeroSection": "<span class=\"first-line shine\"><strong>open source</strong></span><span class=\"second-line text-uppercase\">Web Application<br />Framework </span><span class=\"third-line shine2\"><strong>for asp.net core</strong></span>",
"UiFramework": "UI Framework",

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

@ -109,6 +109,9 @@
"EmailSMSAbstractionsWithTemplatingSupport": "Email & SMS Abstractions with Templating Support",
"Localization": "Localization",
"SettingManagement": "Setting Management",
"CommercialSupport": "Commercial Suport",
"GithubIssues": "GitHub Issues",
"TechnicalSupport": "Technical Support",
"ExtensionMethods": "Extension Methods",
"ExtensionMethodsHelpers": "Extension Methods & Helpers",
"AspectOrientedProgramming": "Aspect Oriented Programming",
@ -569,6 +572,11 @@
"CreatePostTitleInfo": "Title of the post to be shown on the post list.",
"CreatePostSummaryInfo": "A short summary of the post to be shown on the post list. Maximum length: <b>{0}</b>",
"CreatePostCoverInfo": "For creating an effective post, add a cover photo. Upload 16:9 aspect ratio pictures for the best view.<br/> Maximum file size: <b>1MB.</b>",
"CreatePostCoverInfo_Title": "<strong>Add a cover image to your post.</strong>",
"CreatePostCoverInfo1": "<i class='bi bi-dot'></i> Accepted file types : <strong>JPEG, JPG, PNG</strong>",
"CreatePostCoverInfo2": "<i class='bi bi-dot'></i> Max file size : <strong>1 MB</strong>",
"CreatePostCoverInfo3": "<i class='bi bi-dot'></i> Image proportion : <strong>16:9</strong>",
"CreatePostCoverInfo4": "<i class='bi bi-dot'></i> <a href='https://abp.io/assets/example-post-image.png'> Download a sample cover image </a>",
"ThisExtensionIsNotAllowed": "This extension is not allowed.",
"TheFileIsTooLarge": "The file is too large.",
"GoToThePost": "Go to the Post",
@ -1440,6 +1448,7 @@
"MAUI": "MAUI",
"HowItWorks_Page_Title": "How it Works?",
"HowItWorks_Page_Description": "Understand how ABP Framework works with detailed documentation, including guides and best practices.",
"HowItWorks_Description_Title": "What’s possible with ASP.NET Core, easier with ABP!",
"HowItWorks_Description1": "ABP extends the .NET platform. So, anything you can do with a plain .NET solution is already possible with ABP. That makes it easy to get started with a low learning curve.",
"HowItWorks_Description2": "Once you start learning and using ABP features, developing your software will be much more enjoyable than ever.",
"HowItWorks_Description3": "This page basically explains how you use the ABP Platform as a .NET developer.",

32
docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/Post.md

@ -25,16 +25,10 @@ It’s an architectural approach to building SaaS solutions. In this model, the
**Developing a multi-tenant application is harder** compared to non-multi-tenant applications. You add `TenandId` to all your shared entities. And each time you make a query, you need to filter by `TenantId`. There is an increased risk of security breaches if one tenant's data is compromised. Multi-tenancy can limit the extent of customization available to each tenant since they all operate on the same core infrastructure. Also, in a microservice environment, things get two times more complicated. So you should carefully consider if you need multi-tenancy or not. Sometimes, I got questions like;
> Our customer has branches in different cities, so should I make this application a multi-tenant?
Or ;
> Our university has different faculties; should I make each faculty a different tenant?
![Questions](questions.png)
**No! These are not multi-tenant applications.** It just needs a simple filtering by your different branches/faculties/departments/holding sub-companies/ groups or whatever hierarchy is…
You are confusing "grouping" with "resource sharing".
**You are confusing "grouping" with "resource sharing".**
---
@ -46,7 +40,7 @@ Ask yourself the following questions if you cannot decide whether your app needs
1. Can a user be shared among other tenants?
2. Any tenant needs to see other tenant's data?
3. Does your application still work if you physically move one of the tenants physically?
3. Does your application break when you physically move one of the tenants?
4. Do your customers need higher security and better GDPR enforcement?
5. Do you need cumulative queries over your tenants?
@ -60,30 +54,32 @@ Let's answer these questions;
If you need to *share a user among other tenants, or in other words, users can be members of different tenants,* then **your application is definitely not multi-tenant**! Multi-tenancy means a tenant’s data is always isolated, even if it’s logically separated. **You cannot share a user among your tenants.** The reason is simple: In the future, if you move a tenant to on-premise, then your application will break!
![user-multiple-membership](user-multiple-membership.png)
##### **2. Does any tenant need to see other tenants' data?**
If your answer is **YES**, **then** **your application is not multi-tenant**. In multi-tenant apps, the tenant's data cannot be shared in any circumstances among the other tenants. Business decision-makers sometimes want to share some entities with other tenants. If there's this requirement, you shouldn't start a multi-tenant architecture. You can simply group these tenants manually. Again, reply to this question; **In the future, if I move a tenant physically to another environment, will my app still work properly?** In this case, it will not!
Let's say your app is *Amazon.com* and you have a product entity "iPhone 16 Pro Max" that you want to share with the sellers. This requirement violates the multi-tenant rule. While your *Amazon.com* is still SaaS, it shouldn't be multi-tenant.
![Shared entity](shared-entity.png)
On the other hand, if you serve several online shopping websites dedicated to different brands. Let's say Nike and Adidas want to have their own e-commerce websites. And your ***Amazon.com* provides these companies with their own subdomains: *nike.amazon.com* and *adidas.amazon.com***. In this architecture, these companies will have their own user, roles, settings. Also these companies will have their own branding like custom login screen, custom logo, different theme layouts, menu items, language options, payment gateways etc... Hence, **this is %100 multi-tenant.**
Let's say your app is *Amazon.com* and you have a product entity *iPhone* that you want to share with other sellers. This requirement violates the multi-tenant rule. While your *Amazon.com* is still SaaS, it shouldn't be multi-tenant.
On the other hand, if you serve several online shopping websites dedicated to different brands. Let's say Nike and Adidas want to have their own e-commerce websites. And your ***Amazon.com* provides these companies with their own subdomains: *nike.amazon.com* and *adidas.amazon.com***. In this architecture, these companies will have their own user, roles, settings. Also these companies will have their own branding like custom login screen, custom logo, different theme layouts, menu items, language options, payment gateways etc... Hence, **this is %100 multi-tenant.**
##### **3. Does your application still work if you physically move one of the tenants physically?**
If your answer is **YES**, you should **stop making it multi-tenant**. This means your tenants are tightly coupled with the application's infrastructure or database, and this requirement prevents you from making it multi-tenant because it disrupts the entire system when you take out a tenant.
##### **3. Does your application break when you physically move one of the tenants?**
If your answer is **YES**, you should **stop making it multi-tenant**. It is **not a multi-tenant app**! This means your tenants are tightly coupled with the application's infrastructure or database, and this requirement prevents you from making it multi-tenant because it disrupts the entire system when you take out a tenant.
![Coupled Tenants](coupled-tenants.png)
##### **4. Do your customers need higher security and better GDPR enforcement?**
If your answer is **YES**, you **should not make it multi-tenancy.** When a **hacker** gets into your server, he can **steal all your client data**. Also, if you have a security hole, **a tenant can gain access** to other tenants' data. Especially your tenants' data is being shared in the same database... On the other hand, some customers, for example, government agencies or banks, may be required to locate the database in their own geo-location and make it unreachable from the main application. In this case, you should go with a single-tenant architecture. Another difficulty is that some tenants may have **different data retention policies**, so you must implement different strategies for each tenant. In this case, you should also consider making it a single-tenant.
![Security GDPR Data Retention](security-gdpr-db-retention.png)
##### **5. Do you need cumulative queries over your tenants?**
@ -99,11 +95,11 @@ Do you need cumulative queries over your tenants? If your answer is YES, then yo
## Conclusion
- It's important to decide on the first day whether your application needs to be multi-tenant! To decide this, consider these topics;
- It's important to decide on the first day whether your application needs to be multi-tenant. To decide this, consider these topics;
- **Do my tenants really have a relationship with each other?** No, they have nothing to do in common; **OK, go with multi-tenancy**.
- **My tenants don't have a relationship** with each other, and the only thing they have in common is sharing my application. **If yes, go with multi-tenancy**.
- If **a tenant leaves the system, will the other tenants be affected** when I remove its data from the system? **If others are not affected, go with multi-tenancy**.
- **My tenants don't have a relationship** with each other, and the only thing they have in common is sharing my application. **OK, go with multi-tenancy**.
- **When a tenant leaves the system (by removing their data), the other tenants also stop working** This means that the tenants are coupled. **Do not do multi-tenancy!**

BIN
docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/coupled-tenants.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/questions.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/security-gdpr-db-retention.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/shared-entity.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/tenancy-schema.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 12 KiB

BIN
docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/user-multiple-membership.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

12
docs/en/docs-nav.json

@ -188,6 +188,10 @@
{
"text": "Version Compatibility",
"path": "studio/version-compatibility.md"
},
{
"text": "Release Notes",
"path": "studio/release-notes.md"
}
]
},
@ -442,6 +446,10 @@
"text": "AWS Provider",
"path": "framework/infrastructure/blob-storing/aws.md"
},
{
"text": "Google Cloud Storage Provider",
"path": "framework/infrastructure/blob-storing/google.md"
},
{
"text": "Create a Custom Provider",
"path": "framework/infrastructure/blob-storing/custom-provider.md"
@ -1814,7 +1822,7 @@
"text": "Samples",
"items": [
{
"text": "All Samples",
"text": "Overview",
"path": "samples"
},
{
@ -1927,4 +1935,4 @@
]
}
]
}
}

4
docs/en/framework/api-development/index.md

@ -2,10 +2,10 @@
The following documents explain the concepts, infrastructure and integrations to build HTTP APIs with ABP:
* [ABP Endpoints](./standard-apis/overview.md)
* [ABP Endpoints](./standard-apis)
* [API Versioning](./versioning.md)
* [Auto API Controllers](./auto-controllers.md)
* [Dynamic C# API Clients](./dynamic-csharp-clients.md)
* [Integration Services](./integration-services.md)
* [Static C# API Clients](./static-csharp-clients.md)
* [Swagger Integration](./swagger.md)
* [Swagger Integration](./swagger.md)

69
docs/en/framework/infrastructure/background-jobs/hangfire.md

@ -154,3 +154,72 @@ app.UseAbpHangfireDashboard("/hangfire", options =>
**Important**: `UseAbpHangfireDashboard` should be called after the authentication and authorization middlewares in your `Startup` class (probably at the last line). Otherwise,
authorization will always fail!
#### Dashboard Authorization In API Projects
If you use the hangfire dashboard in an API project that uses non-cookie authentication (like JWT Bearers), The `/hangfire` page can't authenticate the user.
In this case, you can add a cookies authorization scheme to authenticate the user. The best way to do this is to use the `Cookie` and `OpenIdConnect` authentication schemes. This requires creating a new OAuth2 client and adding the `ClientId`, and `ClientSecret` properties to the `AuthServer` section in the `appsettings.json` file.
The final code should look like below:
```csharp
private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration)
{
context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddAbpJwtBearer(options =>
{
options.Authority = configuration["AuthServer:Authority"];
options.RequireHttpsMetadata = configuration.GetValue<bool>("AuthServer:RequireHttpsMetadata");
options.Audience = "MyProjectName";
});
context.Services.AddAuthentication()
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
options.Authority = configuration["AuthServer:Authority"];
options.RequireHttpsMetadata = configuration.GetValue<bool>("AuthServer:RequireHttpsMetadata");
options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
options.ClientId = configuration["AuthServer:ClientId"];
options.ClientSecret = configuration["AuthServer:ClientSecret"];
options.UsePkce = true;
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.Scope.Add("roles");
options.Scope.Add("email");
options.Scope.Add("phone");
options.Scope.Add("MyProjectName");
});
}
```
```csharp
app.Use(async (httpContext, next) =>
{
if (httpContext.Request.Path.StartsWithSegments("/hangfire"))
{
var result = await httpContext.AuthenticateAsync("Cookies");
if (result.Succeeded)
{
httpContext.User = result.Principal;
await next(httpContext);
return;
}
await httpContext.ChallengeAsync("oidc");
}
else
{
await next(httpContext);
}
});
app.UseAbpHangfireDashboard("/hangfire", options =>
{
options.AsyncAuthorization = new[] {new AbpHangfireAuthorizationFilter()};
});
```

70
docs/en/framework/infrastructure/blob-storing/google.md

@ -0,0 +1,70 @@
# BLOB Storing Google Provider
BLOB Storing Google Provider can store BLOBs in [Google Cloud Storage](https://cloud.google.com/storage).
> Read the [BLOB Storing document](../blob-storing) to understand how to use the BLOB storing system. This document only covers how to configure containers to use a Google Cloud Storage as the storage provider.
## Installation
Use the ABP CLI to add [Volo.Abp.BlobStoring.Google](https://www.nuget.org/packages/Volo.Abp.BlobStoring.Google) NuGet package to your project:
* Install the [ABP CLI](../../../cli) if you haven't installed before.
* Open a command line (terminal) in the directory of the `.csproj` file you want to add the `Volo.Abp.BlobStoring.Google` package.
* Run `abp add-package Volo.Abp.BlobStoring.Google` command.
If you want to do it manually, install the [Volo.Abp.BlobStoring.Google](https://www.nuget.org/packages/Volo.Abp.BlobStoring.Google) NuGet package to your project and add `[DependsOn(typeof(AbpBlobStoringGoogleModule))]` to the [ABP module](../../architecture/modularity/basics.md) class inside your project.
## Configuration
Configuration is done in the `ConfigureServices` method of your [module](../../architecture/modularity/basics.md) class, as explained in the [BLOB Storing document](../blob-storing).
**Example: Configure to use the Google storage provider by default**
````csharp
Configure<AbpBlobStoringOptions>(options =>
{
options.Containers.ConfigureDefault(container =>
{
container.UseGoogle(google =>
{
google.ClientEmail = "your coogle client email";
google.ProjectId = "your coogle project id";
google.PrivateKey = "your coogle private key";
google.Scopes = "your coogle scopes";
google.ContainerName = "your coogle container name";
google.CreateContainerIfNotExists = true;
//google.UseApplicationDefaultCredentials = true; // If you want to use application default credentials
});
});
});
````
> See the [BLOB Storing document](../blob-storing) to learn how to configure this provider for a specific container.
### Options
* **ClientEmail** (string): The client email of the Google service account. You can create a service account and get the client email. Please refer to Google documentation: https://cloud.google.com/iam/docs/service-account-overview
* **ProjectId** (string): The project ID of the Google service account.
* **PrivateKey** (string): The private key of the Google service account. You can create a service account and get the private key. Please refer to Google documentation: https://cloud.google.com/iam/docs/keys-create-delete
* **Scopes** (string): The scopes of the Google service account.
* **UseApplicationDefaultCredentials** (bool): If `true`, it uses the application default credentials(ADC). Default value is `false`. Please refer to Google documentation: https://cloud.google.com/docs/authentication/provide-credentials-adc
* **ContainerName** (string): You can specify the container name in Google. If this is not specified, it uses the name of the BLOB container defined with the `BlobContainerName` attribute (see the [BLOB storing document](../blob-storing)). Please note that Google has some **rules for naming containers**. A container name must be a valid DNS name, conforming to the [following naming rules](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#container-names):
* Container names must start or end with a letter or number, and can contain only letters, numbers, and the dash (-) character.
* Every dash (-) character must be immediately preceded and followed by a letter or number; consecutive dashes are not permitted in container names.
* All letters in a container name must be **lowercase**.
* Container names must be from **3** through **63** characters long.
* **CreateContainerIfNotExists** (bool): Default value is `false`, If a container does not exist in Google, `GoogleBlobProvider` will try to create it.
## Google Blob Name Calculator
Google Blob Provider organizes BLOB name and implements some conventions. The full name of a BLOB is determined by the following rules by default:
* Appends `host` string if [current tenant](../../architecture/multi-tenancy) is `null` (or multi-tenancy is disabled for the container - see the [BLOB Storing document](../blob-storing) to learn how to disable multi-tenancy for a container).
* Appends `tenants/<tenant-id>` string if current tenant is not `null`.
* Appends the BLOB name.
## Other Services
* `GoogleBlobProvider` is the main service that implements the Google BLOB storage provider, if you want to override/replace it via [dependency injection](../../fundamentals/dependency-injection.md) (don't replace `IBlobProvider` interface, but replace `GoogleBlobProvider` class).
* `IGoogleBlobNameCalculator` is used to calculate the full BLOB name (that is explained above). It is implemented by the `DefaultGoogleBlobNameCalculator` by default.

1
docs/en/framework/infrastructure/blob-storing/index.md

@ -22,6 +22,7 @@ The ABP has already the following storage provider implementations:
* [Aliyun](./aliyun.md): Stores BLOBs on the [Aliyun Storage Service](https://help.aliyun.com/product/31815.html).
* [Minio](./minio.md): Stores BLOBs on the [MinIO Object storage](https://min.io/).
* [Aws](./aws.md): Stores BLOBs on the [Amazon Simple Storage Service](https://aws.amazon.com/s3/).
* [Google](./google.md): Stores BLOBs on the [Google Cloud Storage](https://cloud.google.com/storage).
More providers will be implemented by the time. You can [request](https://github.com/abpframework/abp/issues/new) it for your favorite provider or [create it yourself](./custom-provider.md) and [contribute](../../../contribution) to the ABP.

2
docs/en/get-started/microservice.md

@ -125,6 +125,8 @@ In the *Solution Runner* section (on the left side) you can see all the runnable
> All the leaf items in the *Solution Runner* is called as an *Application* as they are executable applications.
> For a faster start process, first start the *Docker-Dependencies*, then you can start all applications.
As shown in the figure above, the executable applications are grouped into folders like `apps`, `gateways`, `infrastructure`, and `services`. You can start/stop them all, a group (folder) of them, or one by one.
Before running the applications, it is good to be sure that all applications are built. To do that, right-click the root item in the *Solution Runner* and select *Build* -> *Build All* action.

7
docs/en/release-info/migration-guides/abp-8-2.md

@ -51,8 +51,13 @@ If the flag icon has been specified while defining the localization languages, t
In this version, ABP Framework provides a new UI option called **Blazor Full-Stack WebApp**. We have already created an introduction/migration guide for you to check it: [Migrating to Blazor Web App](abp-8-2-blazor-web-app.md)
> Please read the documentation carefully if you are considering migrating your existing **Blazor** project to **Blazor WebApp**.
## Angular UI
In this version, the Angular UI has been updated to use the Angular version 17.3.0 and Nx version to 19.0.0. See the PR for more information: [#19915](https://github.com/abpframework/abp/pull/19915/)
## Session Management Infrastructure
The **Session Management** feature allows you to prevent concurrent login and manage user sessions.
In this version, a new entity called `IdentitySession` has been added to the framework and you should create a new migration and apply it to your database.
In this version, a new entity called `IdentitySession` has been added to the framework and you should create a new migration and apply it to your database.

129
docs/en/release-info/road-map.md

@ -8,52 +8,115 @@ This document provides a road map, release schedule, and planned features for th
The next version will be 9.0 and planned to release the stable 9.0 version in November 2024. We will be mostly working on the following topics:
* Upgrading to .NET 9
* Introducing `Extension Property Policy` feature
* Handling localization resources in a microservice scenario
* ABP Suite: Show default template for customized templates for better sync.
* Microservice development tutorials
* Improvements on the existing features and provide more guides.
See the [9.0 milestone](https://github.com/abpframework/abp/milestone/104) for all the issues we've planned to work on.
* Framework
* Upgrading to .NET 9.0
* Google Cloud Storage BLOB Provider
* Better handling localization resources in a microservice scenario
* SSR support for the Angular UI
* Upgrading 3rd-party dependencies
* ABP Suite
* Multiple navigation properties to the same target entity
* Define navigation properties without target string property dependency
* Improvements one-to-many scenarios
* Access to default code generation templates for customized templates
* ABP Studio
* Blazor WebApp UI option for the new startup templates
* Execution order (dependency management) for Solution Runner
* Automate more details on new service creation for a microservice solution
* Support multiple concurrent Kubernetes deployment/integration scenarios
* Show the README file when you create a new solution or open an existing solution
* Improve ABP Suite code-generation possibilities for microservice solutions
* Improve the module installation experience
* Auto-install 3rd-party dependencies
* Better handle long log files
* Allow to directly create new solutions with ABP's RC (Release Candidate) versions
* Support Intel processors for Mac computers, support ARM chipset for Windows and support Linux OS
* Improve client proxy generation experience
* Application modules
* Account module: Support mixed social/local login scenarios
* UI/UX improvements on existing application modules
* New tutorials
* Modular monolith development
* Microservice development
## Backlog Items
The *Next Versions* section above shows the main focus of the planned versions. However, in each release, we add new features to the core framework and the [application modules](../modules).
Here is a list of major items in the backlog we are considering working on in the next versions.
The *Next Versions* section above shows the main focus of the planned versions. However, in each release, we add new features to the ABP platform.
### Framework
* [#86](https://github.com/abpframework/abp/issues/86) / GrapQL Integration
The ABP framework is [open source](https://github.com/abpframework/abp) and free for everyone. You can see its [public backlog](https://github.com/abpframework/abp/milestone/2). Here, are some of the important features you can expect from next versions:
* [#236](https://github.com/abpframework/abp/issues/236) / Resource based authorization system
* [#2882](https://github.com/abpframework/abp/issues/2882) / Providing a gRPC integration infrastructure (while it is [already possible](https://github.com/abpframework/abp-samples/tree/master/GrpcDemo) to create or consume gRPC endpoints for your application, we plan to create endpoints for the [standard application modules](../modules))
* [#2882](https://github.com/abpframework/abp/issues/2882) / Providing a gRPC integration infrastructure (while it is [already possible](https://github.com/abpframework/abp-samples/tree/master/GrpcDemo) to create or consume gRPC endpoints for your application, we plan to create endpoints for the [standard application modules](../modules/index.md))
* [#57](https://github.com/abpframework/abp/issues/57) / Built-in CQRS infrastructure
* [#58](https://github.com/abpframework/abp/issues/58) / Content localization system (multilingual entities)
* [#4223](https://github.com/abpframework/abp/issues/4223) / WebHook system
* [#162](https://github.com/abpframework/abp/issues/162) / Azure ElasticDB Integration for multitenancy
* [#2296](https://github.com/abpframework/abp/issues/2296) / Feature toggling infrastructure
* [#16342](https://github.com/abpframework/abp/issues/16342) / CMS Kit: Meta information for SEO
* [#16260](https://github.com/abpframework/abp/issues/16260) / GCP Blob Storage Provider
* [#15932](https://github.com/abpframework/abp/issues/15932) / Introduce ABP Diagnostics Module
* [#16756](https://github.com/abpframework/abp/issues/16756) / Blob Storing - Provider configuration UI
* [#16744](https://github.com/abpframework/abp/issues/16744) / State Management API
### Modules / Themes
* New styles, components and features for the LeptonX theme.
* Payment module: Invoice system.
* Dynamic dashboard system.
* User guiding module.
* gRPC integration and implementation for all the pre-built modules.
### Tooling
* ABP Suite: Extra Properties on CRUD Page generation
* ABP Suite: Allow to create PAGE instead of MODAL for CRUD page generation
* ABP Suite: Export child/detail entity records
* CMS Kit features, including spam protection, social media feeds, multi-language support, and so on.
You can always check the milestone planning and the prioritized backlog issues on [the GitHub repository](https://github.com/abpframework/abp/milestones) for a detailed road map. The backlog items are subject to change. We are adding new items and changing priorities based on the community feedbacks and goals of the project.
* [#17815](https://github.com/abpframework/abp/issues/17815) / Operation Rate Limiting
### Application Modules / UI Themes
ABP Platform provides many (free and commercial) [pre-built application modules](../modules/index.md) and modern [UI themes](../ui-themes/index.md). In every release, many enhancements and bugfixes are already done on the existing modules. In addition, here some of the planned features for next versions:
* LeptonX theme: New layouts, styles and components
* CMS Kit module: Meta information for SEO, media gallery, RSS feed, content versioning, social media streams
* Identity module: Idle session warning
* Payment module: Invoice system
* New module: User notification
* New module: Dynamic dashboard
* New module: User guiding
* New module: Keycloak integration
### ABP Studio
[ABP Studio](../studio/index.md) is a cross-platform desktop application for ABP and .NET developers to simplify and automate daily tasks of developers. It has a community (free) edition as well as commercial editions. It is released and versioned independently from the ABP platform and frequently released.
Here, are some of the important planned features for next ABP Studio versions:
* Theme builder for the LeptonX theme
* Analyze user solutions to explore entities, domain services, application services, pages and other fundamental objects.
* Add status bar to the built-in browser to easily see errors
* Swagger authentication support for the built-in browser
* Show related requests/events (traces) together in the solution runner panel
* Integrate common tool dashboards into ABP Studio (such a Garana, Redis, RabbitMQ, Kibana, etc)
* Built-in command terminal
* Automate all steps of new service creation for microservice solutions
* Container application type support for Solution Runner (to individually control docker dependencies)
* More options while creating new solutions
* Downloading samples in ABP studio
* Built-in ABP documentation experience
* Auto-execute terminal commands in markdown files
* Compare changed on the startup templates when a new ABP version is published
* Remove unused projects while downloading source code of an existing module
* Testing/hosting applications for module templates
* Easily explore all module and package dependencies of a large solution
* Built-in deployment options
* Rapid application development features
* ABP support integration
### ABP Suite
[ABP Suite](../suite/index.md) is a GUI application that is mainly used to generate CRUD style pages in your application. You define your entity and it can generate all the code from the database layer to the UI layer. The generated code is clean and a perfect starting point to implement your custom requirements on top of it.
Here, are some of the important planned features for next ABP Suite versions:
* Handle image properties for entities
* Allow to define extra properties for DTOs those are not a part of the entity
* Allow to create pages instead of modals for CRUD page generation
* View-only (detail view) modal/page for an entity
* Export child/detail entity records as a part of export operation for a main (master) entity
* Allow to accept attachments (files) for an entity
* Allow to add custom entity actions for an entity
* Allow to inherit from an existing entity class
* Custom form layouts on CRUD page generation
## Feature Requests

6
docs/en/solution-templates/microservice/adding-new-api-gateways.md

@ -155,12 +155,6 @@ We should configure the AuthServer for **CORS** and **RedirectAllowedUrls**.
}
```
### Add the New Gateway to the Solution Runner
We should add the new gateway to the solution runner [profile](../../studio/running-applications.md#profile) for running applications in the ABP Studio. You can follow the steps explained in the [Solution Runner](../../studio/running-applications.md#c-application) document to add the new gateway to the solution runner profile. Afterwards, you can start the new gateway by selecting it in the solution runner.
![public-gateway-solution-runner](images/public-gateway-solution-runner.png)
## Creating Helm Chart for the New Gateway
If you want to deploy the new gateway to Kubernetes, you should create a Helm chart for the new application.

6
docs/en/solution-templates/microservice/adding-new-applications.md

@ -120,12 +120,6 @@ Add the new application URL to the `appsettings.json` file in the `Identity` ser
}
```
### Add the New Application to the Solution Runner
We should add the new application to the solution runner [profile](../../studio/running-applications.md#profile) for running applications in the ABP Studio. You can follow the steps explained in the [Solution Runner](../../studio/running-applications.md#c-application) document to add the new application to the solution runner profile. Afterwards, you can start the new application by selecting it in the solution runner.
![web-public-solution-runner](images/web-public-solution-runner.png)
## Docker Configuration for Prometheus
If you want to monitor the new application with Prometheus when you debug the solution, you should add the new application to the `prometheus.yml` file in the `etc/docker/prometheus` folder. You can copy the configurations from the existing applications and modify them according to the new application. Below is an example of the `prometheus.yml` file for the `WebPublic` application.

365
docs/en/solution-templates/microservice/adding-new-microservices.md

@ -16,6 +16,8 @@ This document explains how to add new microservices to the microservice solution
Additionally, there is a folder named `_templates` in the root directory. This folder contains templates you can use to create new microservices, API gateways, and applications. These templates can be customized according to your needs.
![folder-structure](images/folder-structure.png)
## Adding a New Microservice
To add a new microservice to the solution, you can use the `service_nolayers` template. This template creates a new ASP.NET Core application with the necessary configurations and dependencies. Follow the steps below to add a new microservice:
@ -39,14 +41,12 @@ The new microservice is created and added to the solution. You can see the new m
### Configuring the appsettings.json
The new microservice is created with the necessary configurations and dependencies. We should configure several sections by modifying the `appsettings.json` file:
* Set the `Administration` & `AbpBlobStoring` connection strings.
* Set the correct `StringEncryption` key.
* Set the `CorsOrigins` to allow the web gateway to access the microservice.
* Set the `AuthServer` configurations to enable the microservice to authenticate and authorize users.
You can copy the configurations from the existing microservices and modify them according to the new microservice. Below is an example of the `appsettings.json` file for the `ProductService` microservice.
```json
```diff
{
"ConnectionStrings": {
"Administration": "Server=localhost,1434; User Id=sa; Password=myPassw@rd; Database=Bookstore_Administration; TrustServerCertificate=true",
@ -54,15 +54,18 @@ You can copy the configurations from the existing microservices and modify them
"ProductService": "Server=localhost,1434; User Id=sa; Password=myPassw@rd; Database=Bookstore_ProductService; TrustServerCertificate=true"
},
"App": {
"CorsOrigins": "http://localhost:44333",
- "CorsOrigins": "http://localhost:webgateway_port",
+ "CorsOrigins": "http://localhost:44333",
"EnablePII": false
},
"Swagger": {
"IsEnabled": true
},
"AuthServer": {
"Authority": "http://localhost:44387",
"MetaAddress": "http://localhost:44387",
- "Authority": "http://localhost:authserver_port",
- "MetaAddress": "http://localhost:authserver_port",
+ "Authority": "http://localhost:44387",
+ "MetaAddress": "http://localhost:44387",
"RequireHttpsMetadata": "false",
"SwaggerClientId": "SwaggerTestUI",
"Audience": "ProductService"
@ -93,24 +96,24 @@ You can copy the configurations from the existing microservices and modify them
"Url": "http://localhost:9200"
},
"StringEncryption": {
"DefaultPassPhrase": "PDAWjbshpwlOwNB6"
"DefaultPassPhrase": "PDAWjbshpwlOwNB6"
}
}
```
### Configuring the OpenId Options
We should configure the OpenId options by modifying the `OpenIddictDataSeeder` in the `Identity` service. Below is an example of the `OpenIddictDataSeeder` options for the `ProductService` microservice.
We should configure the OpenId options by modifying the `OpenIddictDataSeeder` in the `Identity` service. Below is an example of the `OpenIddictDataSeeder` options for the `Product` microservice.
Create API scopes and add the required API scope for Swagger clients in the `CreateApiScopesAsync` and `CreateSwaggerClientsAsync` methods in the `OpenIddictDataSeeder` class.
```csharp
```diff
private async Task CreateApiScopesAsync()
{
await CreateScopesAsync("AuthServer");
await CreateScopesAsync("IdentityService");
await CreateScopesAsync("AdministrationService");
await CreateScopesAsync("ProductService"); // new service
+ await CreateScopesAsync("ProductService");
}
private async Task CreateSwaggerClientsAsync()
@ -120,21 +123,21 @@ private async Task CreateSwaggerClientsAsync()
"AuthServer",
"IdentityService",
"AdministrationService",
"ProductService" // new service
+ "ProductService"
});
}
```
Add the redirect URL for the new service in the `CreateSwaggerClientAsync` method.
```csharp
```diff
private async Task CreateSwaggerClientAsync(string clientId, string[] scopes)
{
...
...
...
var administrationServiceRootUrl = _configuration["OpenIddict:Resources:AdministrationService:RootUrl"]!.TrimEnd('/');
var productServiceServiceRootUrl = _configuration["OpenIddict:Resources:ProductService:RootUrl"]!.TrimEnd('/'); // new service
+ var productServiceRootUrl = _configuration["OpenIddict:Resources:ProductService:RootUrl"]!.TrimEnd('/');
await CreateOrUpdateApplicationAsync(
name: clientId,
@ -152,15 +155,15 @@ private async Task CreateSwaggerClientAsync(string clientId, string[] scopes)
$"{authServerRootUrl}/swagger/oauth2-redirect.html",
$"{identityServiceRootUrl}/swagger/oauth2-redirect.html",
$"{administrationServiceRootUrl}/swagger/oauth2-redirect.html",
$"{productServiceServiceRootUrl}/swagger/oauth2-redirect.html", // new service
+ $"{productServiceRootUrl}/swagger/oauth2-redirect.html"
}
);
}
```
Add the allowed scope for the web (front-end) application(s) in the `CreateClientsAsync` method. You might have different clients for different UI applications such as web, Angular, React, etc. Ensure you add the new service to the allowed scopes of these clients.
Add the allowed scope for the web (front-end) application(s) in the `CreateClientsAsync` method. You might have different clients for different UI applications such as web, Angular, React, etc. Ensure you add the new microservice to the allowed scopes of these clients.
```csharp
```diff
private async Task CreateClientsAsync()
{
var commonScopes = new List<string>
@ -192,7 +195,7 @@ private async Task CreateClientsAsync()
"SaasService",
"AuditLoggingService",
"AdministrationService",
"ProductService" // new service
+ "ProductService"
}).ToList(),
redirectUris: new List<string> { $"{webClientRootUrl}signin-oidc" },
postLogoutRedirectUris: new List<string>() { $"{webClientRootUrl}signout-callback-oidc" },
@ -202,110 +205,130 @@ private async Task CreateClientsAsync()
}
```
Add the new service URL to the `appsettings.json` file in the `Identity` service.
Add the new service URL to the `appsettings.json` file in the `Identity` microservice. In this example we're gonna edit the *Acme.Bookstore.IdentityService* project `appsettings.json` file.
```json
```diff
"OpenIddict": {
"Applications": {
...
},
"Resources": {
...
"ProductService": {
"RootUrl": "http://localhost:44350"
}
+ "ProductService": {
+ "RootUrl": "http://localhost:44350"
+ }
}
}
```
### Configuring the AuthServer
We should configure the AuthServer for **CORS** and **RedirectAllowedUrls**.
We should configure the *AuthServer* application `appsettings.json` file for the **CorsOrigins** and **RedirectAllowedUrls** sections.
```json
```diff
...
"App": {
"SelfUrl": "http://localhost:***",
"CorsOrigins": "...... ,http://localhost:44350",
- "CorsOrigins": "http://localhost:44358,..",
+ "CorsOrigins": "http://localhost:44358,..,http://localhost:44350",
"EnablePII": false,
"RedirectAllowedUrls": "...... ,http://localhost:44350"
}
- "RedirectAllowedUrls": "http://localhost:44358,..",
+ "RedirectAllowedUrls": "http://localhost:44358,..,http://localhost:44350"
},
...
```
### Configuring the API Gateway
We should configure the API Gateway to allow the web gateway to access the new microservice. First, we should add the **ProductService** sections to the `appsettings.json` file in the `WebGateway` project.
We should configure the API Gateway to access the new microservice. First, add the **Product** sections to the `appsettings.json` file in the `WebGateway` project. In this example we're gonna edit the *Acme.Bookstore.WebGateway* project `appsettings.json` file.
```json
```diff
"ReverseProxy": {
"Routes": {
...
"ProductService": {
"ClusterId": "ProductService",
"Match": {
"Path": "/api/productservice/{**catch-all}"
}
},
"ProductServiceSwagger": {
"ClusterId": "ProductService",
"Match": {
"Path": "/swagger-json/ProductService/swagger/v1/swagger.json"
},
"Transforms": [
{ "PathRemovePrefix": "/swagger-json/ProductService" }
]
}
+ "Product": {
+ "ClusterId": "Product",
+ "Match": {
+ "Path": "/api/product/{**catch-all}"
+ }
+ },
+ "ProductSwagger": {
+ "ClusterId": "Product",
+ "Match": {
+ "Path": "/swagger-json/Product/swagger/v1/swagger.json"
+ },
+ "Transforms": [
+ { "PathRemovePrefix": "/swagger-json/Product" }
+ ]
+ }
},
"Clusters": {
...
"ProductService": {
"Destinations": {
"ProductService": {
"Address": "http://localhost:44350/"
}
}
}
+ "Product": {
+ "Destinations": {
+ "Product": {
+ "Address": "http://localhost:44350/"
+ }
+ }
+ }
}
}
```
Afterwards, open the `ProjectNameWebGatewayModule` class in the `WebGateway` and add the `ProductService` to the `ConfigureSwaggerUI` method.
Afterwards, open the `ProjectNameWebGatewayModule` class in the `WebGateway` project and add the `ProductService` to the `ConfigureSwaggerUI` method. In this example we're gonna edit the `BookstoreWebGatewayModule` file.
```csharp
options.OAuthScopes(
"AdministrationService",
"AuthServer",
"IdentityService",
"ProductService" // new service
);
```diff
private static void ConfigureSwaggerUI(
IProxyConfig proxyConfig,
SwaggerUIOptions options,
IConfiguration configuration)
{
foreach (var cluster in proxyConfig.Clusters)
{
options.SwaggerEndpoint($"/swagger-json/{cluster.ClusterId}/swagger/v1/swagger.json", $"{cluster.ClusterId} API");
}
options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
options.OAuthScopes(
"AdministrationService",
"AuthServer",
...,
+ "ProductService"
);
}
```
### Configuring the UI Services
We should configure the UI application(s) to allow the new microservice to access through the web gateway. To do this, we should add the new service scope to the `ConfigureAuthentication` method in the `ProjectName...Module` class in the `Web` or `Blazor` application.
We should configure the UI application(s) to allow the new microservice to access through the web gateway. To do this, we should add the new microservice scope to the `ConfigureAuthentication` method in the `ProjectName...Module` class in the `Web` or `Blazor` application. In this example we're gonna edit the `BookstoreWebModule` file.
```csharp
context.Services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies", options =>
```diff
private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration)
{
options.ExpireTimeSpan = TimeSpan.FromDays(365);
})
.AddAbpOpenIdConnect("oidc", options =>
{
...
options.Scope.Add("AuthServer");
options.Scope.Add("IdentityService");
options.Scope.Add("AdministrationService");
options.Scope.Add("ProductService"); // new servie
});
context.Services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies", options =>
{
options.ExpireTimeSpan = TimeSpan.FromDays(365);
})
.AddAbpOpenIdConnect("oidc", options =>
{
...
options.Scope.Add("AuthServer");
options.Scope.Add("IdentityService");
options.Scope.Add("AdministrationService");
+ options.Scope.Add("ProductService");
});
...
}
```
Similarly, if you have an Angular application, you should add the new service scope to the `oAuthConfig` in `environment.ts`:
```typescript
```diff
const baseUrl = 'http://localhost:4200';
const oAuthConfig = {
@ -313,69 +336,83 @@ const oAuthConfig = {
redirectUri: baseUrl,
clientId: 'Angular',
responseType: 'code',
scope: 'openid profile email roles AuthServer IdentityService AdministrationService ProductService', // new service
- scope: 'openid profile email roles AuthServer IdentityService AdministrationService',
+ scope: 'openid profile email roles AuthServer IdentityService AdministrationService ProductService',
requireHttps: false
};
```
### Add the New Microservice to the Solution Runner
We should add the new microservice to the solution runner [profile](../../studio/running-applications.md#profile) for running applications in the ABP Studio. You can follow the steps explained in the [Solution Runner](../../studio/running-applications.md#c-application) document to add the new microservice to the solution runner profile. Afterwards, you can start the new microservice by selecting it in the solution runner.
![product-service-solution-runner](images/product-service-solution-runner.png)
## Docker Configuration for Prometheus
If you want to monitor the new microservice with Prometheus when you debug the solution, you should add the new microservice to the `prometheus.yml` file in the `etc/docker/prometheus` folder. You can copy the configurations from the existing microservices and modify them according to the new microservice. Below is an example of the `prometheus.yml` file for the `ProductService` microservice.
If you want to monitor the new microservice with Prometheus when you debug the solution, you should add the new microservice to the `prometheus.yml` file in the `etc/docker/prometheus` folder. You can copy the configurations from the existing microservices and modify them according to the new microservice. Below is an example of the `prometheus.yml` file for the `Product` microservice.
```yml
- job_name: 'product'
```diff
- job_name: 'authserver'
scheme: http
metrics_path: 'metrics'
static_configs:
- targets: ['host.docker.internal:44350']
- targets: ['host.docker.internal:44398']
...
+ - job_name: 'product'
+ scheme: http
+ metrics_path: 'metrics'
+ static_configs:
+ - targets: ['host.docker.internal:44350']
```
## Creating Helm Chart for the New Microservice
If you want to deploy the new microservice to Kubernetes, you should create a Helm chart for the new microservice.
First, we need to add the new microservice to the `build-all-images.ps1` script in the `etc/helm` folder. You can copy the configurations from the existing microservices and modify them according to the new microservice. Below is an example of the `build-all-images.ps1` script for the `ProductService` microservice.
First, we need to add the new microservice to the `build-all-images.ps1` script in the `etc/helm` folder. You can copy the configurations from the existing microservices and modify them according to the new microservice. Below is an example of the `build-all-images.ps1` script for the `Product` microservice.
```powershell
./build-image.ps1 -ProjectPath "../../services/product/Acme.Bookstore.ProductService/Acme.Bookstore.ProductService.csproj" -ImageName bookstore/productservice
```diff
...
./build-image.ps1 -ProjectPath "../../apps/auth-server/Acme.Bookstore.AuthServer/Acme.Bookstore.AuthServer.csproj" -ImageName bookstore/authserver
+ ./build-image.ps1 -ProjectPath "../../services/product/Acme.Bookstore.ProductService/Acme.Bookstore.ProductService.csproj" -ImageName bookstore/product
```
Then, we need to add the connection string to the `values.projectname-local.yaml` file in the `etc/helm/projectname` folder. Below is an example of the `values.bookstore-local.yaml` file for the `ProductService` microservice.
Then, we need to add the connection string to the `values.projectname-local.yaml` file in the `etc/helm/projectname` folder. Below is an example of the `values.bookstore-local.yaml` file for the `Product` microservice.
```yaml
```diff
global:
...
connectionStrings:
...
productService: "Server=[RELEASE_NAME]-sqlserver,1433; Database=Bookstore_ProductService; User Id=sa; Password=myPassw@rd; TrustServerCertificate=True"
+ product: "Server=[RELEASE_NAME]-sqlserver,1433; Database=Bookstore_ProductService; User Id=sa; Password=myPassw@rd; TrustServerCertificate=True"
```
Afterwards, we need to create a new Helm chart for the new microservice. You can copy the configurations from the existing microservices and modify them according to the new microservice. Below is an example of the `productservice` Helm chart for the `ProductService` microservice.
Afterwards, we need to create a new Helm chart for the new microservice. You can copy the configurations from the existing microservices and modify them according to the new microservice. Below is an example of the `product` Helm chart for the `Product` microservice.
Product microservice `values.yaml` file.
{%{
```yaml
# values.yaml
image:
repository: "bookstore/productservice"
repository: "bookstore/product"
tag: "latest"
pullPolicy: IfNotPresent
swagger:
isEnabled: "true"
```
}%}
Product microservice `Chart.yaml` file.
# Chart.yaml
{%{
```yaml
apiVersion: v2
name: productservice
name: product
version: 1.0.0
appVersion: "1.0"
description: Bookstore Product Service
```
}%}
# product.yaml
Product microservice `product.yaml` file.
{%{
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
@ -404,10 +441,15 @@ spec:
- name: "ConnectionStrings__AbpBlobStoring"
value: "{{ .Values.global.connectionStrings.blobStoring | replace "[RELEASE_NAME]" .Release.Name }}"
- name: "ConnectionStrings__ProductService"
value: "{{ .Values.global.connectionStrings.productService | replace "[RELEASE_NAME]" .Release.Name }}"
value: "{{ .Values.global.connectionStrings.product | replace "[RELEASE_NAME]" .Release.Name }}"
...
```
}%}
Product microservice `product-service.yaml` file.
# product-service.yaml
{%{
```yaml
apiVersion: v1
kind: Service
metadata:
@ -427,32 +469,113 @@ After creating the Helm chart, you can *Refresh Sub Charts* in the ABP Studio.
![kubernetes-refresh-sub-charts](images/kubernetes-refresh-sub-charts.png)
Then, update *Metadata* information right-click the *microservicename* [sub-chart](../../studio/kubernetes.md#subchart), select *Properties* it open *Chart Properties* window. You can edit in the *Metadata* tab.
Then, update *Metadata* information right-click the *microservicename* [sub-chart](../../studio/kubernetes.md#subchart), select *Properties* it open *Chart Properties* window. You should add the following keys in the *Metadata* tab.
![microservice-chart-properties](images/microservice-chart-properties-metadata.png)
- `projectPath`: The path to the microservice host application project. In the bookstore example, this value is `../../services/product/Acme.Bookstore.ProductService/Acme.Bookstore.ProductService.csproj`.
- `imageName`: When we build the Docker image, it uses this value as the Docker image name. We're going to use it in the Helm chart values.
- `projectType`: You can add a Helm chart for Angular and .NET projects, which is why we should explicitly specify the project type.
Add the *Kubernetes Services* in the *Chart Properties* -> *Kubernetes Services* tab.
![microservice-chart-properties-kubernetes-services](images/microservice-chart-properties-kubernetes-services.png)
> This value should be the same as the [solution runner application](./../../studio/running-applications.md#properties) *Kubernetes service* value. It's necessary for browsing because when we connect to the Kubernetes cluster, we should browse the Kubernetes services instead of using the Launch URL.
Last but not least, we need to configure the helm chart environments for identity, auth-server, and gateway applications.
Below is an example of the *Identity* microservice `identity.yaml` file.
{%{
```yaml
# identity.yaml
# Add this line to the "env:" section
- name: "OpenIddict__Resources__ProductService__RootUrl"
value: "http://{{ .Release.Name }}-productservice"
# authserver.yaml
# Concat the following lines for "App__CorsOrigins" section
- name: "App__CorsOrigins"
value: "...,http://{{ .Release.Name }}-administration,http://{{ .Release.Name }}-productservice"
# webapigateway.yaml
# Add this line to the "env:" section
- name: "ReverseProxy__Clusters__ProductService__Destinations__ProductService__Address"
value: "http://{{ .Release.Name }}-productservice"
```diff
apiVersion: apps/v1
kind: Deployment
metadata:
name: "{{ .Release.Name }}-{{ .Chart.Name }}"
spec:
selector:
matchLabels:
app: "{{ .Release.Name }}-{{ .Chart.Name }}"
template:
metadata:
labels:
app: "{{ .Release.Name }}-{{ .Chart.Name }}"
spec:
containers:
- image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
name: "{{ .Release.Name }}-{{ .Chart.Name }}"
ports:
- name: "http"
containerPort: 80
env:
...
+ - name: "OpenIddict__Resources__ProductService__RootUrl"
+ value: "http://{{ .Release.Name }}-product"
```
}%}
Below is an example of the *AuthServer* application `authserver.yaml` file.
{%{
```diff
apiVersion: apps/v1
kind: Deployment
metadata:
name: "{{ .Release.Name }}-{{ .Chart.Name }}"
spec:
selector:
matchLabels:
app: "{{ .Release.Name }}-{{ .Chart.Name }}"
template:
metadata:
labels:
app: "{{ .Release.Name }}-{{ .Chart.Name }}"
spec:
containers:
- image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
name: "{{ .Release.Name }}-{{ .Chart.Name }}"
ports:
- name: "http"
containerPort: 80
env:
...
- name: "App__CorsOrigins"
- value: "...,http://{{ .Release.Name }}-administration"
+ value: "...,http://{{ .Release.Name }}-administration,http://{{ .Release.Name }}-product"
```
}%}
Below is an example of the *WebApiGateway* application `webapigateway.yaml` file.
{%{
```diff
apiVersion: apps/v1
kind: Deployment
metadata:
name: "{{ .Release.Name }}-{{ .Chart.Name }}"
spec:
selector:
matchLabels:
app: "{{ .Release.Name }}-{{ .Chart.Name }}"
template:
metadata:
labels:
app: "{{ .Release.Name }}-{{ .Chart.Name }}"
spec:
containers:
- image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
name: "{{ .Release.Name }}-{{ .Chart.Name }}"
ports:
- name: "http"
containerPort: 80
env:
...
+ - name: "ReverseProxy__Clusters__Product__Destinations__Product__Address"
+ value: "http://{{ .Release.Name }}-product"
```
}%}
@ -465,11 +588,11 @@ You can customize the microservice template if needed. Add new configurations, d
After adding the new microservice to the solution, you can develop the UI for the new microservice. For .NET applications, you can add the microservice *Contracts* package to the UI application(s) to access the services provided by the new microservice. Afterwards, you can use the [generate-proxy](../../cli/index.md#generate-proxy) command to generate the proxy classes for the new microservice.
```bash
abp generate-proxy -t csharp -url http://localhost:44333/ -m productService --without-contracts
abp generate-proxy -t csharp -url http://localhost:44333/ -m product --without-contracts
```
Next, start creating *Pages* and *Components* for the new microservice in the UI application(s). Similarly, if you have an Angular application, you can use the [generate-proxy](../../cli/index.md#generate-proxy) command to generate the proxy classes for the new microservice and start developing the UI.
```bash
abp generate-proxy -t ng -url http://localhost:44333/ -m productService
abp generate-proxy -t ng -url http://localhost:44333/ -m product
```

BIN
docs/en/solution-templates/microservice/images/folder-structure.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

6
docs/en/studio/overview.md

@ -40,8 +40,9 @@ The top menu is the main menu bar in ABP Studio. It offers access to various fun
### Tools Menu
- **Options**
- **Theme:** Allows to change UI theme.
- **Extensions:** Opens the extension management window.
- **Theme:** Allows to change UI theme.
- **Global secrets**: Allows to add global secrets.
- **Global metadata**: Allows to add global metadata.
### Help Menu
@ -50,6 +51,7 @@ The top menu is the main menu bar in ABP Studio. It offers access to various fun
- **Community:** Opens the official [ABP Community](https://abp.io/community) website in your browser.
- **Support:** Opens the official [Support](https://abp.io/support/questions) website in your browser.
- **My Support Questions:** Opens the page on the official Support website in your browser showing the tickets you have opened.
- **Check for updates:** Checks for new version of ABP Studio.
- **About:** Opens the about window of ABP Studio where you can get more information about it.
## Welcome Screen

91
docs/en/studio/release-notes.md

@ -0,0 +1,91 @@
# ABP Studio Release Notes
This document contains **brief release notes** for each ABP Studio release. Release notes only include **major features** and **visible enhancements**. Therefore, they don't include all the development done in the related version.
## 0.7.9 (2024-08-29)
* Opened Readme.md file after module creation or opening a solution
* Refactor & made enhancements to microservice template
* Fixed some bugs that occur while creating a new module
* Synchronized new templates with the old templates
* Angular: Fixed logo problem in templates
## 0.7.8 (2024-08-23)
* Revised the new solution creation wizard and improved for UX
* Fixed bugs on the Blazor WebApp template
* Reduced logs count per application
## 0.7.7 (2024-08-14)
* Updated LeptonX logos in new templates
* ABP Suite: Opened modules with .sln path instead of directory (fixes some problems in Suite integration)
* Enhancements on Solution Runner
## 0.7.6 (2024-08-12)
* Removed redundant helm repo installation
* Made enhancements to the Welcome Page area
* Microservice Template: Enabled `DynamicPermissionStore` in AuthServer
* Added Blazor WebApp option for Application template
* Added **Solution Creation Info** action for identifying the solution
## 0.7.5 (2024-08-06)
* Fixed ABP Suite integration for macOS
* Fixed build errors after upgrading to ABP 8.2.1
* ABP Suite: Detected version inconsistencies and notified users to fix them automatically
## 0.7.4 (2024-07-31)
* Allowed creating open-source templates for active license owners
* Fixed basic theme problems in angular templates
* Handled docker related errors in solution runner
* Fixed versions of Chat Module packages
## 0.7.3 (2024-07-27)
* Added administrator mode indicator on the application title
* Made enhancements for aligning application title on macOS
## 0.7.2 (2024-07-26)
* Added `Blazor.Client` packages for alignment with new hosting logic
* Updated Microsoft packages to v8.0.4
* Revised application upgrade process
* Fixed profile photo problem in tiered projects
* Removed **LinkedAccounts** and **AuthorityDelegation** menu from templates
## 0.7.1 (2024-07-24)
* Fixed restart problem after installing extensions on macOS
* Provided a model for sharing the same Kubernetes cluster between developers
* Fixed the **Text Template Management** Module build problem in the app template
* Fixed login problem for the community edition
* Fixed all reported bugs & made enhancements
## 0.7.0 (2024-07-17)
* Added an option for building & starting C# applications directly
* Disabled redis on migrator when the solution is tiered
* Allowed Generating Static Proxies on ABP Studio UI
## 0.6.9 (2024-06-27)
* Allowed to open ABP Studio by clicking on a `*.abpsln` file
* Fixed solution runner multiple instance problem
* Allowed to install an NPM package to a package
## 0.6.8 (2024-06-13)
* Added free to pro upgrade option
* Fixed microservice template helm chart bugs
* Made enhancements to the new CLI
## 0.6.7 (2024-05-31)
* Added free option to app templates
* Made social login optional for the app template
* Added open-source (free) templates
* Started showing angular projects on the browser tab
* Introduced the Community Edition

14
framework/Volo.Abp.sln

@ -467,6 +467,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.RemoteServices.Tes
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Abstractions", "src\Volo.Abp.AspNetCore.Abstractions\Volo.Abp.AspNetCore.Abstractions.csproj", "{E1051CD0-9262-4869-832D-B951723F4DDE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BlobStoring.Google", "src\Volo.Abp.BlobStoring.Google\Volo.Abp.BlobStoring.Google.csproj", "{DEEB5200-BBF9-464D-9B7E-8FC035A27E94}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BlobStoring.Google.Tests", "test\Volo.Abp.BlobStoring.Google.Tests\Volo.Abp.BlobStoring.Google.Tests.csproj", "{40FB8907-9CF7-44D0-8B5F-538AC6DAF8B9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -1393,6 +1397,14 @@ Global
{E1051CD0-9262-4869-832D-B951723F4DDE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E1051CD0-9262-4869-832D-B951723F4DDE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E1051CD0-9262-4869-832D-B951723F4DDE}.Release|Any CPU.Build.0 = Release|Any CPU
{DEEB5200-BBF9-464D-9B7E-8FC035A27E94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DEEB5200-BBF9-464D-9B7E-8FC035A27E94}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DEEB5200-BBF9-464D-9B7E-8FC035A27E94}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DEEB5200-BBF9-464D-9B7E-8FC035A27E94}.Release|Any CPU.Build.0 = Release|Any CPU
{40FB8907-9CF7-44D0-8B5F-538AC6DAF8B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{40FB8907-9CF7-44D0-8B5F-538AC6DAF8B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{40FB8907-9CF7-44D0-8B5F-538AC6DAF8B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{40FB8907-9CF7-44D0-8B5F-538AC6DAF8B9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -1628,6 +1640,8 @@ Global
{DFAF8763-D1D6-4EB4-B459-20E31007FE2F} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{DACD4485-61BE-4DE5-ACAE-4FFABC122500} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{E1051CD0-9262-4869-832D-B951723F4DDE} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
{DEEB5200-BBF9-464D-9B7E-8FC035A27E94} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
{40FB8907-9CF7-44D0-8B5F-538AC6DAF8B9} = {447C8A77-E5F0-4538-8687-7383196D04EA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5}

9
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs

@ -74,7 +74,14 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency
var logger = httpContext.RequestServices.GetRequiredService<ILogger<AbpMvcLibsService>>();
try
{
var fileProvider = new PhysicalFileProvider(httpContext.RequestServices.GetRequiredService<IWebHostEnvironment>().WebRootPath);
var webHostEnvironment = httpContext.RequestServices.GetRequiredService<IWebHostEnvironment>();
if (webHostEnvironment.WebRootPath.IsNullOrWhiteSpace())
{
logger.LogWarning("The 'WebRootPath' is not set! The 'CheckLibs' feature is disabled!");
return Task.FromResult(true);
}
var fileProvider = new PhysicalFileProvider(webHostEnvironment.WebRootPath);
var libsFolder = fileProvider.GetDirectoryContents("/libs");
if (!libsFolder.Exists || !libsFolder.Any())
{

24
framework/src/Volo.Abp.BlobStoring.Google/Volo.Abp.BlobStoring.Google.csproj

@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\configureawait.props" />
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net8.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.BlobStoring.Google</AssemblyName>
<PackageId>Volo.Abp.BlobStoring.Google</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.Abp.BlobStoring\Volo.Abp.BlobStoring.csproj" />
<PackageReference Include="Google.Cloud.Storage.V1" />
</ItemGroup>
</Project>

9
framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleModule.cs

@ -0,0 +1,9 @@
using Volo.Abp.Modularity;
namespace Volo.Abp.BlobStoring.Google;
[DependsOn(typeof(AbpBlobStoringModule))]
public class AbpBlobStoringGoogleModule : AbpModule
{
}

21
framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/DefaultGoogleBlobNameCalculator.cs

@ -0,0 +1,21 @@
using Volo.Abp.DependencyInjection;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.BlobStoring.Google;
public class DefaultGoogleBlobNameCalculator : IGoogleBlobNameCalculator, ITransientDependency
{
protected ICurrentTenant CurrentTenant { get; }
public DefaultGoogleBlobNameCalculator(ICurrentTenant currentTenant)
{
CurrentTenant = currentTenant;
}
public virtual string Calculate(BlobProviderArgs args)
{
return CurrentTenant.Id == null
? $"host/{args.BlobName}"
: $"tenants/{CurrentTenant.Id.Value.ToString("D")}/{args.BlobName}";
}
}

24
framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobContainerConfigurationExtensions.cs

@ -0,0 +1,24 @@
using System;
namespace Volo.Abp.BlobStoring.Google;
public static class GoogleBlobContainerConfigurationExtensions
{
public static GoogleBlobProviderConfiguration GetGoogleConfiguration(
this BlobContainerConfiguration containerConfiguration)
{
return new GoogleBlobProviderConfiguration(containerConfiguration);
}
public static BlobContainerConfiguration UseGoogle(
this BlobContainerConfiguration containerConfiguration,
Action<GoogleBlobProviderConfiguration> googleConfigureAction)
{
containerConfiguration.ProviderType = typeof(GoogleBlobProvider);
containerConfiguration.NamingNormalizers.TryAdd<GoogleBlobNamingNormalizer>();
googleConfigureAction(new GoogleBlobProviderConfiguration(containerConfiguration));
return containerConfiguration;
}
}

120
framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobNamingNormalizer.cs

@ -0,0 +1,120 @@
using System.Globalization;
using System.Text.RegularExpressions;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Localization;
namespace Volo.Abp.BlobStoring.Google;
public class GoogleBlobNamingNormalizer : IBlobNamingNormalizer, ITransientDependency
{
/// <summary>
/// https://cloud.google.com/storage/docs/buckets#naming
/// </summary>
public string NormalizeContainerName(string containerName)
{
using (CultureHelper.Use(CultureInfo.InvariantCulture))
{
// All letters in a Bucket name must be lowercase.
containerName = containerName.ToLower();
// Bucket names must contain 3-63 characters. Names containing dots can contain up to 222 characters, but each dot-separated component can be no longer than 63 characters.
if(containerName.Contains("."))
{
if (containerName.Length > 222)
{
containerName = containerName.Substring(0, 222);
}
var parts = containerName.Split('.');
for (var i = 0; i < parts.Length; i++)
{
if (parts[i].Length > 63)
{
parts[i] = parts[i].Substring(0, 63);
}
}
containerName = string.Join(".", parts);
}
else if (containerName.Length > 63)
{
containerName = containerName.Substring(0, 63);
}
//Bucket names can only contain lowercase letters, numeric characters, dashes (-), underscores (_), and dots (.). Spaces are not allowed. Names containing dots require verification.
containerName = Regex.Replace(containerName, "[^a-z0-9-_.]", string.Empty);
//Be a syntactically valid DNS name (for example, bucket..example.com is not valid because it contains two dots in a row).
containerName = Regex.Replace(containerName, "[.]{2,}", ".");
//Bucket names cannot be represented as an IP address in dotted-decimal notation (for example, 192.168.5.4).
containerName = Regex.Replace(containerName, "^(?:(?:^|\\.)(?:2(?:5[0-5]|[0-4]\\d)|1?\\d?\\d)){4}$", string.Empty);
//Bucket names cannot begin with the "goog" prefix.
containerName = Regex.Replace(containerName, "^goog", string.Empty);
//Bucket names cannot contain "google" or close misspellings, such as "g00gle".
containerName = Regex.Replace(containerName, "google", string.Empty);
//Bucket names must start and end with a number or letter.
containerName = RemoveInvalidStartEndCharacters(containerName);
// Bucket names must be from 3 through 63 characters long. Names containing dots can contain up to 222 characters.
if (containerName.Length < 3)
{
var length = containerName.Length;
for (var i = 0; i < 3 - length; i++)
{
containerName += "0";
}
}
return containerName;
}
}
protected virtual string RemoveInvalidStartEndCharacters(string containerName)
{
if (string.IsNullOrWhiteSpace(containerName))
{
return containerName;
}
if (!char.IsLetterOrDigit(containerName[0]))
{
containerName = containerName.Substring(1);
return RemoveInvalidStartEndCharacters(containerName);
}
if (!char.IsLetterOrDigit(containerName[containerName.Length - 1]))
{
containerName = containerName.Substring(0, containerName.Length - 1);
return RemoveInvalidStartEndCharacters(containerName);
}
return containerName;
}
/// <summary>
/// https://cloud.google.com/storage/docs/objects#naming
/// </summary>
public string NormalizeBlobName(string blobName)
{
//Object names can contain any sequence of valid Unicode characters, of length 1-1024 bytes when UTF-8 encoded
if (blobName.Length > 1024)
{
blobName = blobName.Substring(0, 1024);
}
//Object names cannot contain Carriage Return or Line Feed characters.
blobName = Regex.Replace(blobName, "[\r\n]", string.Empty);
//Object names cannot start with .well-known/acme-challenge/.
blobName = Regex.Replace(blobName, "^\\.well-known/acme-challenge/", string.Empty);
//Objects cannot be named . or ...
blobName = Regex.Replace(blobName, "^\\.\\.?$", string.Empty);
return blobName;
}
}

161
framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProvider.cs

@ -0,0 +1,161 @@
using System;
using System.IO;
using System.Net;
using System.Threading.Tasks;
using Google;
using Google.Apis.Auth.OAuth2;
using Google.Cloud.Storage.V1;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.BlobStoring.Google;
public class GoogleBlobProvider : BlobProviderBase, ITransientDependency
{
protected IGoogleBlobNameCalculator GoogleBlobNameCalculator { get; }
protected IBlobNormalizeNamingService BlobNormalizeNamingService { get; }
public GoogleBlobProvider(IGoogleBlobNameCalculator googleBlobNameCalculator, IBlobNormalizeNamingService blobNormalizeNamingService)
{
GoogleBlobNameCalculator = googleBlobNameCalculator;
BlobNormalizeNamingService = blobNormalizeNamingService;
}
public async override Task SaveAsync(BlobProviderSaveArgs args)
{
var configuration = args.Configuration.GetGoogleConfiguration();
var storageClient = await GetStorageClientClientAsync(args);
var blobName = GoogleBlobNameCalculator.Calculate(args);
var containerName = GetContainerName(args);
if (await BlobExistsAsync(args, blobName) && !args.OverrideExisting)
{
throw new BlobAlreadyExistsException($"Saving BLOB '{args.BlobName}' does already exists in the container '{GetContainerName(args)}'! Set {nameof(args.OverrideExisting)} if it should be overwritten.");
}
if (configuration.CreateContainerIfNotExists)
{
await CreateContainerIfNotExists(args);
}
await storageClient.UploadObjectAsync(containerName, blobName, contentType: "application/octet-stream", args.BlobStream);
}
public async override Task<bool> DeleteAsync(BlobProviderDeleteArgs args)
{
var storageClient = await GetStorageClientClientAsync(args);
var blobName = GoogleBlobNameCalculator.Calculate(args);
var containerName = GetContainerName(args);
try
{
await storageClient.DeleteObjectAsync(containerName, blobName);
}
catch (GoogleApiException e) when (e.HttpStatusCode == HttpStatusCode.NotFound)
{
return true;
}
return true;
}
public async override Task<bool> ExistsAsync(BlobProviderExistsArgs args)
{
var blobName = GoogleBlobNameCalculator.Calculate(args);
return await BlobExistsAsync(args, blobName);
}
public async override Task<Stream?> GetOrNullAsync(BlobProviderGetArgs args)
{
var storageClient = await GetStorageClientClientAsync(args);
var blobName = GoogleBlobNameCalculator.Calculate(args);
var containerName = GetContainerName(args);
if(!await BlobExistsAsync(args, blobName))
{
return null;
}
var stream = new MemoryStream();
await storageClient.DownloadObjectAsync(containerName, blobName, stream);
stream.Seek(0, SeekOrigin.Begin);
return stream;
}
protected virtual string GetContainerName(BlobProviderArgs args)
{
var configuration = args.Configuration.GetGoogleConfiguration();
return configuration.ContainerName.IsNullOrWhiteSpace()
? args.ContainerName
: BlobNormalizeNamingService.NormalizeContainerName(args.Configuration, configuration.ContainerName!);
}
protected virtual async Task<bool> BlobExistsAsync(BlobProviderArgs args, string blobName)
{
var storageClient = await GetStorageClientClientAsync(args);
if(!await ContainerExistsAsync(args, storageClient))
{
return false;
}
try
{
await storageClient.GetObjectAsync(GetContainerName(args), blobName);
}
catch (GoogleApiException e) when (e.HttpStatusCode == HttpStatusCode.NotFound)
{
return false;
}
return true;
}
protected virtual async Task CreateContainerIfNotExists(BlobProviderArgs args)
{
var storageClient = await GetStorageClientClientAsync(args);
var configuration = args.Configuration.GetGoogleConfiguration();
if(await ContainerExistsAsync(args, storageClient))
{
return;
}
await storageClient.CreateBucketAsync(configuration.ProjectId, GetContainerName(args));
}
protected virtual async Task<bool> ContainerExistsAsync(BlobProviderArgs args, StorageClient client)
{
try
{
await client.GetBucketAsync(GetContainerName(args));
}
catch (GoogleApiException e) when (e.HttpStatusCode == HttpStatusCode.NotFound)
{
return false;
}
return true;
}
protected virtual async Task<StorageClient> GetStorageClientClientAsync(BlobProviderArgs args)
{
var configuration = args.Configuration.GetGoogleConfiguration();
if (configuration.UseApplicationDefaultCredentials)
{
return await StorageClient.CreateAsync();
}
var googleCredential = GoogleCredential.FromServiceAccountCredential(
new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(configuration.ClientEmail)
{
ProjectId = configuration.ProjectId,
Scopes = configuration.Scopes
}
.FromPrivateKey(configuration.PrivateKey)
));
return await StorageClient.CreateAsync(googleCredential);
}
}

79
framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProviderConfiguration.cs

@ -0,0 +1,79 @@
using System.Collections.Generic;
namespace Volo.Abp.BlobStoring.Google;
public class GoogleBlobProviderConfiguration
{
private readonly BlobContainerConfiguration _containerConfiguration;
public GoogleBlobProviderConfiguration(BlobContainerConfiguration containerConfiguration)
{
_containerConfiguration = containerConfiguration;
}
/// <summary>
/// Unique identifier for your project.
/// For more info see: https://cloud.google.com/resource-manager/docs/creating-managing-projects
/// </summary>
public string? ProjectId {
get => _containerConfiguration.GetConfigurationOrDefault<string>(GoogleBlobProviderConfigurationNames.ProjectId);
set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.ProjectId, value);
}
/// <summary>
/// Email address that generated by the Google Cloud.
/// </summary>
public string? ClientEmail {
get => _containerConfiguration.GetConfigurationOrDefault<string>(GoogleBlobProviderConfigurationNames.ClientEmail);
set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.ClientEmail, value);
}
/// <summary>
/// Private key that generated by Google Cloud.
/// Starts with '-----BEGIN PRIVATE KEY-----'
/// and ends with '-----END PRIVATE KEY-----'
/// </summary>
public string? PrivateKey {
get => _containerConfiguration.GetConfigurationOrDefault<string>(GoogleBlobProviderConfigurationNames.PrivateKey);
set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.PrivateKey, value);
}
/// <summary>
/// Available OAuth 2.0 scopes.
/// </summary>
public List<string>? Scopes {
get => _containerConfiguration.GetConfigurationOrDefault(GoogleBlobProviderConfigurationNames.Scopes, new List<string>());
set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.Scopes, value);
}
/// <summary>
/// Use the application default credentials. https://cloud.google.com/docs/authentication/provide-credentials-adc
/// Default value: false.
/// </summary>
public bool UseApplicationDefaultCredentials {
get => _containerConfiguration.GetConfigurationOrDefault(GoogleBlobProviderConfigurationNames.UseApplicationDefaultCredentials, false);
set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.UseApplicationDefaultCredentials, value);
}
/// <summary>
/// The name can only contain lowercase letters, numeric characters, dashes (-), underscores (_), and dots (.). Spaces are not allowed. Names containing dots require verification.
/// Must start and end with a number or letter.
/// Must contain 3-63 characters. Names containing dots can contain up to 222 characters, but each dot-separated component can be no longer than 63 characters.
/// Cannot be represented as an IP address in dotted-decimal notation (for example, 192.168.5.4).
/// Cannot begin with the "goog" prefix.
/// Cannot contain "google" or close misspellings, such as "g00gle".
/// If this parameter is not specified, the ContainerName of the <see cref="BlobProviderArgs"/> will be used.
/// </summary>
public string? ContainerName {
get => _containerConfiguration.GetConfigurationOrDefault<string>(GoogleBlobProviderConfigurationNames.ContainerName);
set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.ContainerName, value);
}
/// <summary>
/// Default value: false.
/// </summary>
public bool CreateContainerIfNotExists {
get => _containerConfiguration.GetConfigurationOrDefault(GoogleBlobProviderConfigurationNames.CreateContainerIfNotExists, false);
set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.CreateContainerIfNotExists, value);
}
}

12
framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProviderConfigurationNames.cs

@ -0,0 +1,12 @@
namespace Volo.Abp.BlobStoring.Google;
public static class GoogleBlobProviderConfigurationNames
{
public const string ProjectId = "Google.ProjectId";
public const string ClientEmail = "Google.ClientEmail";
public const string PrivateKey = "Google.PrivateKey";
public const string Scopes = "Google.Scopes";
public const string UseApplicationDefaultCredentials = "Google.ApplicationDefaultCredentials";
public const string ContainerName = "Google.ContainerName";
public const string CreateContainerIfNotExists = "Google.CreateContainerIfNotExists";
}

6
framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/IGoogleBlobNameCalculator.cs

@ -0,0 +1,6 @@
namespace Volo.Abp.BlobStoring.Google;
public interface IGoogleBlobNameCalculator
{
string Calculate(BlobProviderArgs args);
}

12
framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs

@ -614,7 +614,19 @@ public abstract class AbpDbContext<TDbContext> : DbContext, IAbpEfCoreDbContext,
return;
}
ExtraPropertyDictionary? originalExtraProperties = null;
if (entry.Entity is IHasExtraProperties)
{
originalExtraProperties = entry.OriginalValues.GetValue<ExtraPropertyDictionary>(nameof(IHasExtraProperties.ExtraProperties));
}
entry.Reload();
if (entry.Entity is IHasExtraProperties)
{
ObjectHelper.TrySetProperty(entry.Entity.As<IHasExtraProperties>(), x => x.ExtraProperties, () => originalExtraProperties);
}
ObjectHelper.TrySetProperty(entry.Entity.As<ISoftDelete>(), x => x.IsDeleted, () => true);
SetDeletionAuditProperties(entry);
}

16
framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json

@ -8,7 +8,7 @@
"The {0} field only accepts files with the following extensions: {1}": "El campo {0} sólo acepta ficheros con la siguientes extensiones: {1}",
"The field {0} must be a string or array type with a maximum length of '{1}'.": "El campo {0} debe ser de tipo cadena o lista con una longitud máxima de '{1}'.",
"The field {0} must be a string or array type with a minimum length of '{1}'.": "El campo {0} debe ser de tipo cadena o lista con una longitud máxima de '{1}'.",
"The {0} field is not a valid phone number.": "El campo no tiene un número de teléfono valido.",
"The {0} field is not a valid phone number.": "El campo {0} no tiene un número de teléfono valido.",
"The field {0} must be between {1} and {2}.": "El campo {0} debe estar entre {1} y {2}.",
"The field {0} must match the regular expression '{1}'.": "El campo {0} no coincide con el formato solicitado.",
"The {0} field is required.": "El campo {0} es requerido.",
@ -23,17 +23,17 @@
"ThisFieldIsNotValid.": "Este campo no es valido.",
"ThisFieldIsNotAValidEmailAddress.": "Este campo no es una dirección de e-mail valida.",
"ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "Este campo sólo acepta ficheros con las siguientes extensiones: {0}",
"ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "Este campo debe ser una cadena o lista con una longitud máxima de {1}.",
"ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Este campo debe ser una cadena o lista con una longitud mínima de {1}.",
"ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "Este campo debe ser una cadena o lista con una longitud máxima de {0}.",
"ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "Este campo debe ser una cadena o lista con una longitud mínima de {0}.",
"ThisFieldIsNotAValidPhoneNumber.": "Este campo no es un número de teléfono valido.",
"ThisFieldMustBeBetween{0}And{1}": "Este campo debe estar entre {0} y {1}.",
"ThisFieldMustBeGreaterThanOrEqual{0}": "Este campo debe ser mayor o igual a {0}.",
"ThisFieldMustBeLessOrEqual{0}": "Este campo debe ser menor o igual a {0}.",
"ThisFieldMustMatchTheRegularExpression{0}": "Este campo debe coincidir con la expresión regular '{0}'.",
"ThisFieldIsRequired.": "Este campo es requerido",
"ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Este campo debe ser una cadena con una longitud máxima de {1}.",
"ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Este campo debe ser una cadena con una longitud mínima de {2} y máxima de {1}.",
"ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "El campo {0} no es una URL (http, https o ftp) valida.",
"ThisFieldIsInvalid.": "Este en un campo no valido."
"ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "Este campo debe ser una cadena con una longitud máxima de {0}.",
"ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "Este campo debe ser una cadena con una longitud mínima de {1} y máxima de {0}.",
"ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "El campo no es una URL (http, https o ftp) valida.",
"ThisFieldIsInvalid.": "Este campo no es válido."
}
}
}

19
framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo.Abp.BlobStoring.Google.Tests.csproj

@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\common.test.props" />
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<RootNamespace />
<UserSecretsId>9f0d2c00-80c1-435b-bfab-2c39c8249091</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Volo.Abp.BlobStoring.Google\Volo.Abp.BlobStoring.Google.csproj" />
<ProjectReference Include="..\..\src\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />
<ProjectReference Include="..\AbpTestBase\AbpTestBase.csproj" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<ProjectReference Include="..\Volo.Abp.BlobStoring.Tests\Volo.Abp.BlobStoring.Tests.csproj" />
</ItemGroup>
</Project>

19
framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleTestBase.cs

@ -0,0 +1,19 @@
using Volo.Abp.Testing;
namespace Volo.Abp.BlobStoring.Google;
public class AbpBlobStoringGoogleTestCommonBase : AbpIntegratedTest<AbpBlobStoringGoogleTestCommonModule>
{
protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options)
{
options.UseAutofac();
}
}
public class AbpBlobStoringGoogleTestBase : AbpIntegratedTest<AbpBlobStoringGoogleTestModule>
{
protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options)
{
options.UseAutofac();
}
}

90
framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleTestModule.cs

@ -0,0 +1,90 @@
using System;
using System.Threading.Tasks;
using Google.Apis.Auth.OAuth2;
using Google.Cloud.Storage.V1;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity;
namespace Volo.Abp.BlobStoring.Google;
/// <summary>
/// This module will not try to connect to Google Cloud Storage.
/// </summary>
[DependsOn(
typeof(AbpBlobStoringGoogleModule),
typeof(AbpBlobStoringTestModule)
)]
public class AbpBlobStoringGoogleTestCommonModule : AbpModule
{
}
[DependsOn(
typeof(AbpBlobStoringGoogleTestCommonModule)
)]
public class AbpBlobStoringGoogleTestModule : AbpModule
{
private const string UserSecretsId = "9f0d2c00-80c1-435b-bfab-2c39c8249091";
private string _clientEmail;
private string _projectId;
private string _privateKey;
private readonly string _randomContainerName = "abp-test-container-" + Guid.NewGuid().ToString("N");
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.ReplaceConfiguration(ConfigurationHelper.BuildConfiguration(builderAction: builder =>
{
builder.AddUserSecrets(UserSecretsId);
}));
var configuration = context.Services.GetConfiguration();
_clientEmail = configuration["Google:ClientEmail"];
_projectId = configuration["Google:ProjectId"];
_privateKey = configuration["Google:PrivateKey"];
Configure<AbpBlobStoringOptions>(options =>
{
options.Containers.ConfigureAll((containerName, containerConfiguration) =>
{
containerConfiguration.UseGoogle(google =>
{
google.ClientEmail = _clientEmail;
google.ProjectId = _projectId;
google.PrivateKey = _privateKey;
google.ContainerName = _randomContainerName;
google.CreateContainerIfNotExists = true;
});
});
});
}
public override void OnApplicationShutdown(ApplicationShutdownContext context)
{
var googleCredential = GoogleCredential.FromServiceAccountCredential(
new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(_clientEmail)
{
ProjectId = _projectId
}
.FromPrivateKey(_privateKey)
));
var client = StorageClient.Create(googleCredential);
try
{
client.DeleteBucket(_randomContainerName, new DeleteBucketOptions
{
DeleteObjects = true
});
}
catch (Exception e)
{
// ignored
}
}
}

94
framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/DefaultGoogleBlobNamingNormalizerProvider_Tests.cs

@ -0,0 +1,94 @@
using Shouldly;
using Xunit;
namespace Volo.Abp.BlobStoring.Google;
public class DefaultGoogleBlobNamingNormalizerProvider_Tests: AbpBlobStoringGoogleTestCommonBase
{
private readonly IBlobNamingNormalizer _blobNamingNormalizer;
public DefaultGoogleBlobNamingNormalizerProvider_Tests()
{
_blobNamingNormalizer = GetRequiredService<IBlobNamingNormalizer>();
}
[Fact]
public void NormalizeContainerName_Lowercase()
{
var filename = "ThisIsMyContainerName";
filename = _blobNamingNormalizer.NormalizeContainerName(filename);
filename.ShouldBe("thisismycontainername");
}
[Fact]
public void NormalizeContainerName_Only_Letters_Numbers_Dash_Dots_Underscores()
{
var filename = ",./this-i,/s-my-c,/ont,/ai+*/=!@#$n^&*er.name+/";
filename = _blobNamingNormalizer.NormalizeContainerName(filename);
filename.ShouldBe("this-is-my-container.name");
}
[Fact]
public void NormalizeContainerName_Only_Start_With_Letters_Or_Numbers()
{
var filename = "-this.--is-.-.-my--_container---name-";
filename = _blobNamingNormalizer.NormalizeContainerName(filename);
filename.ShouldBe("this.--is-.-.-my--_container---name");
filename = ".this.--is-.-.-my--container---name0._";
filename = _blobNamingNormalizer.NormalizeContainerName(filename);
filename.ShouldBe("this.--is-.-.-my--container---name0");
}
[Fact]
public void NormalizeContainerName_Min_Length()
{
var filename = "a";
filename = _blobNamingNormalizer.NormalizeContainerName(filename);
filename.Length.ShouldBeGreaterThanOrEqualTo(3);
}
[Fact]
public void NormalizeContainerName_Max_Length()
{
var filename = "abpabpabpabpabpabpabpabpabpabpabpabpabpabpabpabpabpabpabpabpabpabpabp";
filename = _blobNamingNormalizer.NormalizeContainerName(filename);
filename.Length.ShouldBeLessThanOrEqualTo(63);
}
[Fact]
public void NormalizeContainerName_Must_Not_Be_Ip_Address()
{
var filename = "192.168.5.4";
filename = _blobNamingNormalizer.NormalizeContainerName(filename);
filename.ShouldBe("000");
filename = "a.192.168.5.4";
filename = _blobNamingNormalizer.NormalizeContainerName(filename);
filename.ShouldBe("a.192.168.5.4");
}
[Fact]
public void NormalizeContainerName_Dots()
{
var filename = ".this..is.my.container....name.";
filename = _blobNamingNormalizer.NormalizeContainerName(filename);
filename.ShouldBe("this.is.my.container.name");
}
[Fact]
public void NormalizeContainerName_DNS()
{
var filename = "bucket...example..com";
filename = _blobNamingNormalizer.NormalizeContainerName(filename);
filename.ShouldBe("bucket.example.com");
}
[Fact]
public void NormalizeContainerName_Max_Length_Dash()
{
var filename = "-this-is-my-container-name-abpabpabpabpabpabpabpabp-a-b-p-a--b-p-";
filename = _blobNamingNormalizer.NormalizeContainerName(filename);
filename.ShouldBe("this-is-my-container-name-abpabpabpabpabpabpabpabp-a-b-p-a--b");
}
}

13
framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/GoogleBlobContainer_Tests.cs

@ -0,0 +1,13 @@
using Xunit;
namespace Volo.Abp.BlobStoring.Google;
/*
//Please set the correct connection string in secrets.json and continue the test.
public class GoogleBlobContainer_Tests : BlobContainer_Tests<AbpBlobStoringGoogleTestModule>
{
public GoogleBlobContainer_Tests()
{
}
}
*/

56
framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/GoogleBlobNameCalculator_Tests.cs

@ -0,0 +1,56 @@
using System;
using Shouldly;
using Volo.Abp.MultiTenancy;
using Xunit;
namespace Volo.Abp.BlobStoring.Google;
public class GoogleBlobNameCalculator_Tests : AbpBlobStoringGoogleTestCommonBase
{
private readonly IGoogleBlobNameCalculator _calculator;
private readonly ICurrentTenant _currentTenant;
private const string GoogleContainerName = "/";
private const string GoogleSeparator = "/";
public GoogleBlobNameCalculator_Tests()
{
_calculator = GetRequiredService<IGoogleBlobNameCalculator>();
_currentTenant = GetRequiredService<ICurrentTenant>();
}
[Fact]
public void Default_Settings()
{
_calculator.Calculate(
GetArgs("my-container", "my-blob")
).ShouldBe($"host{GoogleSeparator}my-blob");
}
[Fact]
public void Default_Settings_With_TenantId()
{
var tenantId = Guid.NewGuid();
using (_currentTenant.Change(tenantId))
{
_calculator.Calculate(
GetArgs("my-container", "my-blob")
).ShouldBe($"tenants{GoogleSeparator}{tenantId:D}{GoogleSeparator}my-blob");
}
}
private static BlobProviderArgs GetArgs(
string containerName,
string blobName)
{
return new BlobProviderGetArgs(
containerName,
new BlobContainerConfiguration().UseGoogle(x =>
{
x.ContainerName = containerName;
}),
blobName
);
}
}

22
framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Domain/ExtraProperties_Tests.cs

@ -1,6 +1,7 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Shouldly;
using Volo.Abp.Data;
using Volo.Abp.Domain.Repositories;
@ -59,6 +60,27 @@ public class ExtraProperties_Tests : ExtraProperties_Tests<AbpEntityFrameworkCor
});
}
[Fact]
public async Task Should_Get_An_Extra_Property_After_Soft_Deletion()
{
var london = await CityRepository.FindByNameAsync("London");
london.HasProperty("PhoneCode").ShouldBeTrue();
london.GetProperty<string>("PhoneCode").ShouldBe("42");
await CityRepository.DeleteAsync(london);
london = await CityRepository.FindByNameAsync("London");
london.ShouldBeNull();
using (var uow = ServiceProvider.GetRequiredService<IDataFilter>().Disable<ISoftDelete>())
{
london = await CityRepository.FindByNameAsync("London");
london.IsDeleted.ShouldBeTrue();
london.HasProperty("PhoneCode").ShouldBeTrue();
london.GetProperty<string>("PhoneCode").ShouldBe("42");
}
}
public enum Color
{
Red = 0,

4
framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/City.cs

@ -5,12 +5,14 @@ using Volo.Abp.Domain.Entities;
namespace Volo.Abp.TestApp.Domain;
public class City : AggregateRoot<Guid>
public class City : AggregateRoot<Guid>, ISoftDelete
{
public string Name { get; set; }
public ICollection<District> Districts { get; set; }
public bool IsDeleted { get; set; }
private City()
{

3
framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ConcurrencyStamp_Tests.cs

@ -1,5 +1,6 @@
using System.Threading.Tasks;
using Volo.Abp.Data;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Modularity;
using Volo.Abp.TestApp.Domain;
using Xunit;
@ -49,7 +50,7 @@ public abstract class ConcurrencyStamp_Tests<TStartupModule> : TestAppTestBase<T
//And deleting my old entity throws exception!
await Assert.ThrowsAsync<AbpDbConcurrencyException>(async () =>
{
await CityRepository.DeleteAsync(london1);
await CityRepository.HardDeleteAsync(london1);
});
}
}

2
latest-versions.json

@ -1,6 +1,6 @@
[
{
"version": "8.2.2",
"version": "8.3.0",
"releaseDate": "",
"type": "stable",
"message": ""

6
modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json

@ -3,8 +3,8 @@
"name": "asp.net",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.0-rc.3",
"@abp/prismjs": "~8.3.0-rc.3",
"@abp/highlight.js": "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.0",
"@abp/prismjs": "~8.3.0",
"@abp/highlight.js": "~8.3.0"
}
}

276
modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock

@ -2,212 +2,212 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.3.tgz#804fe763c3b66cbaf7ac8de7aca53a8690f0283c"
integrity sha512-ldiW9rXMMF7iAZpgFg1gDbwZW64/qLjhIyn+IcO7BzpLD6DKCzeQl/M+p7H1h7TC/ZSLEjRfcQs+ubjMI+OFoQ==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0-rc.3"
"@abp/bootstrap" "~8.3.0-rc.3"
"@abp/bootstrap-datepicker" "~8.3.0-rc.3"
"@abp/bootstrap-daterangepicker" "~8.3.0-rc.3"
"@abp/datatables.net-bs5" "~8.3.0-rc.3"
"@abp/font-awesome" "~8.3.0-rc.3"
"@abp/jquery-form" "~8.3.0-rc.3"
"@abp/jquery-validation-unobtrusive" "~8.3.0-rc.3"
"@abp/lodash" "~8.3.0-rc.3"
"@abp/luxon" "~8.3.0-rc.3"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.3"
"@abp/moment" "~8.3.0-rc.3"
"@abp/select2" "~8.3.0-rc.3"
"@abp/sweetalert2" "~8.3.0-rc.3"
"@abp/timeago" "~8.3.0-rc.3"
"@abp/toastr" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.3.tgz#e1e68f10e1715af44505da2d80b12fdf52d7de8c"
integrity sha512-0ld0/fXTj2mJZ12W1nn87K1Beqg+zbIGSR8lxWXG56jVArxasSqL3CiOQg+lLMUnWq1kwtTuoxZZVA76aL+nJA==
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7"
integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0"
"@abp/bootstrap" "~8.3.0"
"@abp/bootstrap-datepicker" "~8.3.0"
"@abp/bootstrap-daterangepicker" "~8.3.0"
"@abp/datatables.net-bs5" "~8.3.0"
"@abp/font-awesome" "~8.3.0"
"@abp/jquery-form" "~8.3.0"
"@abp/jquery-validation-unobtrusive" "~8.3.0"
"@abp/lodash" "~8.3.0"
"@abp/luxon" "~8.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0"
"@abp/moment" "~8.3.0"
"@abp/select2" "~8.3.0"
"@abp/sweetalert2" "~8.3.0"
"@abp/timeago" "~8.3.0"
"@abp/toastr" "~8.3.0"
"@abp/aspnetcore.mvc.ui@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816"
integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw==
dependencies:
ansi-colors "^4.1.3"
"@abp/bootstrap-datepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.3.tgz#319054e54532085031a80d5859dec1a56b7548ac"
integrity sha512-fWKry7HLQ14Vv3GiF/bqge4ySN/9GkK/kZRrdeopdzvmOKTPCHSJ8DNrXAmd+WVHbcqdQ6uovWBOfMufCLohJw==
"@abp/bootstrap-datepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267"
integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w==
dependencies:
bootstrap-datepicker "^1.10.0"
"@abp/bootstrap-daterangepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.3.tgz#873728e2d6313fae07f1f74a4cf483e50bccfa7f"
integrity sha512-nu2N12ftl/1zA7Fe1lAgZiJnkZKFBNjfsPmy+ykQLKGWIkca14b0UHwUIHEaiI26fD6bBT50/kMRzA7uE3goaA==
"@abp/bootstrap-daterangepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17"
integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.3.tgz#ca01bc3b6c4d5b63cf1bb86472e8df366ff3cf40"
integrity sha512-qSJ5s8k3X4WANgUoEZ289q+UKkStnbAMIEmIh6x93nIZHaGAJsK3oaSNgZ2DbGPhxpMKxhJpCuzF1KrRDtwtUQ==
"@abp/bootstrap@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3"
integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
bootstrap "^5.3.3"
"@abp/clipboard@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.3.tgz#73eeba6bebccd0926ee40ba693c4c1e72f559f05"
integrity sha512-NUjh2ML1g9afBZcW0Ulp9/7CEMPH57ukxUwJBC88yd0C+oYC7KVurD7yeLtBrMAMQdfqP0e/lQcxZj69HB9p7g==
"@abp/clipboard@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c"
integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
clipboard "^2.0.11"
"@abp/core@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.3.tgz#4031ec2c08a00652bb717c962ddc3aa8b3cf72c9"
integrity sha512-9Y7EcLE+0RLnJyhZlSYCElTjrFz+P7uXbyl+1UyuyY+dxyAdZhZ+1WPHFSr0f8KlJrxkjnsPj+gR4e48u15FDw==
"@abp/core@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445"
integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q==
dependencies:
"@abp/utils" "~8.3.0-rc.3"
"@abp/utils" "~8.3.0"
"@abp/datatables.net-bs5@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.3.tgz#da22fbf7fe23671bfa20e83c9490e7bbe169b4aa"
integrity sha512-36VOOd/1461LZN11awaU5xbC3oYYJFebNFBeFZijsc8LtVKCwgMWZ8K3sCOolBVEyltDzKntw+w0NwhlWjd8tA==
"@abp/datatables.net-bs5@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb"
integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA==
dependencies:
"@abp/datatables.net" "~8.3.0-rc.3"
"@abp/datatables.net" "~8.3.0"
datatables.net-bs5 "^2.0.8"
"@abp/datatables.net@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.3.tgz#933ade7c61d3dfb61aa9278eb948e7756013a61f"
integrity sha512-MjSWhmMilHAKb4HmCLQOXesuFWvguIxhpKRAfSfweIiaOtgaPBh4KR8PSGxZgC0fImQYjWSfHQP4QkLAd5xasA==
"@abp/datatables.net@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b"
integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
datatables.net "^2.0.8"
"@abp/font-awesome@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.3.tgz#efa785200433025725e6dcd48c8b6b538938681d"
integrity sha512-DRjSDWhTWmL0I2A7KcFOxQFaLftxg0Rvcss0138j/mGpt64+unzcYo6YRCEga/k6ygxc7dYnhFmQf2tli44toQ==
"@abp/font-awesome@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9"
integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@fortawesome/fontawesome-free" "^6.5.2"
"@abp/highlight.js@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.3.0-rc.3.tgz#aadc37d3d2fdb0f75a28df341b52131e8f55edd4"
integrity sha512-ht2qdrdU4s4sadMv7Fog6zNCWEonV3+D4JCizt0k7dFq13wVSv/xtq04CVe/s0zp5LhD5EfJMleVaaQKEAFV/A==
"@abp/highlight.js@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.3.0.tgz#fabd11a8ef7cd0e379b4c9b359d66b4aa7585e30"
integrity sha512-SHvGXqQrZGuNmup32FisVHrWCdTJyEzHgp6y8Twx1FaP1e0hSN3QK6Jw4Do600ZKI9n5xCK+kMCpdJau8I6bIg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@highlightjs/cdn-assets" "~11.9.0"
"@abp/jquery-form@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.3.tgz#fbb1ceb0e4092243cb018e1d7aa1ca86371fa98c"
integrity sha512-n7Tu4b2UhaRMcQCmzcBMiEYnaaR/OmA7LZfOcg4YP202xnLj29w4R/sRbQjr0w9lvPhue9rrSXaEf43UrV8eyg==
"@abp/jquery-form@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d"
integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.3.tgz#bcc8dad54b880134519f642b6a1a151584889bf2"
integrity sha512-4pfc7vYh5oMZc4+AJRwN7CQmb4ZK29POyuL9RjuBCQbvYCLcru0M5cQTz3wt9jLeAXn402lbwxh1cLioZfw8SQ==
"@abp/jquery-validation-unobtrusive@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521"
integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ==
dependencies:
"@abp/jquery-validation" "~8.3.0-rc.3"
"@abp/jquery-validation" "~8.3.0"
jquery-validation-unobtrusive "^4.0.0"
"@abp/jquery-validation@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.3.tgz#d71e59dfa793070b780bb8078f4cd12b8217f701"
integrity sha512-/OEh5PVKfA4BB7YVmFFBa+GKDR4jzNOkRBUnzplxxcegrXlbbjuxC7VcnsLzXQJ1c2aUO6a1y8L7MsPMjaXVrg==
"@abp/jquery-validation@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887"
integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-validation "^1.20.1"
"@abp/jquery@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.3.tgz#7350b8675c7199b143bad86f46a50c629568605b"
integrity sha512-GkjKCrQmqqeu3xvpWTZxFa1VVRKPhmiutO2syuPi2dReDBhMV6h6EZZeu5y8lHLvL1HTEEANFFFXJGUna07FRQ==
"@abp/jquery@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef"
integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
jquery "~3.7.1"
"@abp/lodash@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.3.tgz#90b1c266a16bd2bdfab22bb635114610738a17ba"
integrity sha512-L4lw6eSOXeXg2IixjdcHHVw1z7Q1wLUJDr8NzlRF51KfEPZ5Lt28IhoJuEfE7y24e6v+q6CL15axPwSQOUIlhw==
"@abp/lodash@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c"
integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
lodash "^4.17.21"
"@abp/luxon@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.3.tgz#dc2a024c4b20b59408c41b259fe9b7cc8820bd7f"
integrity sha512-QOpAHiJxzSW+4HClyTspYaMDSUbY4Sz36d4Q7LSKHcwLIuqQ7rRfGEeWctYZYPwHIgK4udhde08Z8xrzl5tZSg==
"@abp/luxon@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07"
integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
luxon "^3.4.4"
"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.3.tgz#4eb53cf29ecf7c613f2d00e5b1bab4d807fd8396"
integrity sha512-NyQ2Qg2PfsDjWZfSwfsESFFkveIMQXFwWiSWgmeolWeFNtETDI1KJ5Nrf//sY+8zpn6ciCQTI5iaklLPPWQSKg==
"@abp/malihu-custom-scrollbar-plugin@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817"
integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.3.tgz#8f997de893d8b69f670f99fe0f3f8a8b3ed64451"
integrity sha512-UulCn7Qt6Y1JfXYd+KGsvJZX7uybXVwud+55tE7TnNl7OXmQ6R3yL6uv+5da0iJsZzQa6c3EknmTkLLD53HfRw==
"@abp/moment@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a"
integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w==
dependencies:
moment "^2.30.1"
"@abp/prismjs@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.3.tgz#9a78f0339f0b20591990f585497e7f5e585828d8"
integrity sha512-IaPkxDQeB9NhFGRh7jEmRTdLcNcCEdwdEELzZpYgQIQ4EOA/bq9jbYa9rD9wAYXRE6/yliQLTzmOzori4ddrXw==
"@abp/prismjs@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6"
integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q==
dependencies:
"@abp/clipboard" "~8.3.0-rc.3"
"@abp/core" "~8.3.0-rc.3"
"@abp/clipboard" "~8.3.0"
"@abp/core" "~8.3.0"
prismjs "^1.29.0"
"@abp/select2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.3.tgz#621505b7a829b02cfbb146c7b710093b9e6e19f4"
integrity sha512-SV0gTfKbEAgMG/ND6zrc3QF1buByHePrPxoI1lt1ZiSgt5m9V9i6+zDkE20/W/puegINJAU2kJZtm9hCfMtXaQ==
"@abp/select2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867"
integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
select2 "^4.0.13"
"@abp/sweetalert2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.3.tgz#728978d364fe80dfd3b9cacdee0960e921d404af"
integrity sha512-G3xAKewy7TH2UZgLg+mVhgng5y1RbanVfsA/VTc9DE1XBMG9fpiqywhbny/5qabFhgvNjMKM28Yce23uAsji1A==
"@abp/sweetalert2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa"
integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
sweetalert2 "^11.3.6"
"@abp/timeago@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.3.tgz#dcef20b900e6e95e12fec64b2f1632949f164eb0"
integrity sha512-sFOlpH54PiHosrmRoPZHtC+RVQdjPWetvtFm7svIfCta+dq6Iz70B7/O0oqQabAIERhA9jTf3ubMtBF6FCdmYg==
"@abp/timeago@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55"
integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
timeago "^1.6.7"
"@abp/toastr@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.3.tgz#5c821d5a049c322f082c37febd5980d2d664292c"
integrity sha512-PdiQMO6UA6yTKGHqztm5Kxu3UzsidnYyQtjojVTYQd87mvgIDIUkoXxXJ2VVgHnRy2FdZW12UfZG4v3/eJHbmg==
"@abp/toastr@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af"
integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
toastr "^2.1.4"
"@abp/utils@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.3.tgz#00b4acf4a4a2b4c4c1193a737f972d6508cf1831"
integrity sha512-cEPVo2QkLmn4Meo++dkvknfKlNlfQ7kmdWdXon1ZViaf9YFbTEZIYD5ccrdGUvKkVlAyOHG3TcAHesiAOyx1PQ==
"@abp/utils@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9"
integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw==
dependencies:
just-compare "^2.3.0"

4
modules/basic-theme/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": "~8.3.0-rc.3",
"@abp/prismjs": "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0",
"@abp/prismjs": "~8.3.0"
},
"devDependencies": {}
}

280
modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock

@ -2,211 +2,211 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.3.tgz#58dc0dc5bb42e7c2bd70c717256332df2efe6d45"
integrity sha512-ba97ROK5RiEtIwOMwwfHuZFAX/iaQ+fR4Tw6cz+SHGkqfrACP4KnO+GwplCCyG/Y/ZmbX8KTliDEWGKDL4CCqQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.3.tgz#804fe763c3b66cbaf7ac8de7aca53a8690f0283c"
integrity sha512-ldiW9rXMMF7iAZpgFg1gDbwZW64/qLjhIyn+IcO7BzpLD6DKCzeQl/M+p7H1h7TC/ZSLEjRfcQs+ubjMI+OFoQ==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0-rc.3"
"@abp/bootstrap" "~8.3.0-rc.3"
"@abp/bootstrap-datepicker" "~8.3.0-rc.3"
"@abp/bootstrap-daterangepicker" "~8.3.0-rc.3"
"@abp/datatables.net-bs5" "~8.3.0-rc.3"
"@abp/font-awesome" "~8.3.0-rc.3"
"@abp/jquery-form" "~8.3.0-rc.3"
"@abp/jquery-validation-unobtrusive" "~8.3.0-rc.3"
"@abp/lodash" "~8.3.0-rc.3"
"@abp/luxon" "~8.3.0-rc.3"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.3"
"@abp/moment" "~8.3.0-rc.3"
"@abp/select2" "~8.3.0-rc.3"
"@abp/sweetalert2" "~8.3.0-rc.3"
"@abp/timeago" "~8.3.0-rc.3"
"@abp/toastr" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.3.tgz#e1e68f10e1715af44505da2d80b12fdf52d7de8c"
integrity sha512-0ld0/fXTj2mJZ12W1nn87K1Beqg+zbIGSR8lxWXG56jVArxasSqL3CiOQg+lLMUnWq1kwtTuoxZZVA76aL+nJA==
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4"
integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7"
integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0"
"@abp/bootstrap" "~8.3.0"
"@abp/bootstrap-datepicker" "~8.3.0"
"@abp/bootstrap-daterangepicker" "~8.3.0"
"@abp/datatables.net-bs5" "~8.3.0"
"@abp/font-awesome" "~8.3.0"
"@abp/jquery-form" "~8.3.0"
"@abp/jquery-validation-unobtrusive" "~8.3.0"
"@abp/lodash" "~8.3.0"
"@abp/luxon" "~8.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0"
"@abp/moment" "~8.3.0"
"@abp/select2" "~8.3.0"
"@abp/sweetalert2" "~8.3.0"
"@abp/timeago" "~8.3.0"
"@abp/toastr" "~8.3.0"
"@abp/aspnetcore.mvc.ui@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816"
integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw==
dependencies:
ansi-colors "^4.1.3"
"@abp/bootstrap-datepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.3.tgz#319054e54532085031a80d5859dec1a56b7548ac"
integrity sha512-fWKry7HLQ14Vv3GiF/bqge4ySN/9GkK/kZRrdeopdzvmOKTPCHSJ8DNrXAmd+WVHbcqdQ6uovWBOfMufCLohJw==
"@abp/bootstrap-datepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267"
integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w==
dependencies:
bootstrap-datepicker "^1.10.0"
"@abp/bootstrap-daterangepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.3.tgz#873728e2d6313fae07f1f74a4cf483e50bccfa7f"
integrity sha512-nu2N12ftl/1zA7Fe1lAgZiJnkZKFBNjfsPmy+ykQLKGWIkca14b0UHwUIHEaiI26fD6bBT50/kMRzA7uE3goaA==
"@abp/bootstrap-daterangepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17"
integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.3.tgz#ca01bc3b6c4d5b63cf1bb86472e8df366ff3cf40"
integrity sha512-qSJ5s8k3X4WANgUoEZ289q+UKkStnbAMIEmIh6x93nIZHaGAJsK3oaSNgZ2DbGPhxpMKxhJpCuzF1KrRDtwtUQ==
"@abp/bootstrap@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3"
integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
bootstrap "^5.3.3"
"@abp/clipboard@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.3.tgz#73eeba6bebccd0926ee40ba693c4c1e72f559f05"
integrity sha512-NUjh2ML1g9afBZcW0Ulp9/7CEMPH57ukxUwJBC88yd0C+oYC7KVurD7yeLtBrMAMQdfqP0e/lQcxZj69HB9p7g==
"@abp/clipboard@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c"
integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
clipboard "^2.0.11"
"@abp/core@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.3.tgz#4031ec2c08a00652bb717c962ddc3aa8b3cf72c9"
integrity sha512-9Y7EcLE+0RLnJyhZlSYCElTjrFz+P7uXbyl+1UyuyY+dxyAdZhZ+1WPHFSr0f8KlJrxkjnsPj+gR4e48u15FDw==
"@abp/core@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445"
integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q==
dependencies:
"@abp/utils" "~8.3.0-rc.3"
"@abp/utils" "~8.3.0"
"@abp/datatables.net-bs5@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.3.tgz#da22fbf7fe23671bfa20e83c9490e7bbe169b4aa"
integrity sha512-36VOOd/1461LZN11awaU5xbC3oYYJFebNFBeFZijsc8LtVKCwgMWZ8K3sCOolBVEyltDzKntw+w0NwhlWjd8tA==
"@abp/datatables.net-bs5@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb"
integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA==
dependencies:
"@abp/datatables.net" "~8.3.0-rc.3"
"@abp/datatables.net" "~8.3.0"
datatables.net-bs5 "^2.0.8"
"@abp/datatables.net@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.3.tgz#933ade7c61d3dfb61aa9278eb948e7756013a61f"
integrity sha512-MjSWhmMilHAKb4HmCLQOXesuFWvguIxhpKRAfSfweIiaOtgaPBh4KR8PSGxZgC0fImQYjWSfHQP4QkLAd5xasA==
"@abp/datatables.net@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b"
integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
datatables.net "^2.0.8"
"@abp/font-awesome@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.3.tgz#efa785200433025725e6dcd48c8b6b538938681d"
integrity sha512-DRjSDWhTWmL0I2A7KcFOxQFaLftxg0Rvcss0138j/mGpt64+unzcYo6YRCEga/k6ygxc7dYnhFmQf2tli44toQ==
"@abp/font-awesome@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9"
integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@fortawesome/fontawesome-free" "^6.5.2"
"@abp/jquery-form@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.3.tgz#fbb1ceb0e4092243cb018e1d7aa1ca86371fa98c"
integrity sha512-n7Tu4b2UhaRMcQCmzcBMiEYnaaR/OmA7LZfOcg4YP202xnLj29w4R/sRbQjr0w9lvPhue9rrSXaEf43UrV8eyg==
"@abp/jquery-form@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d"
integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.3.tgz#bcc8dad54b880134519f642b6a1a151584889bf2"
integrity sha512-4pfc7vYh5oMZc4+AJRwN7CQmb4ZK29POyuL9RjuBCQbvYCLcru0M5cQTz3wt9jLeAXn402lbwxh1cLioZfw8SQ==
"@abp/jquery-validation-unobtrusive@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521"
integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ==
dependencies:
"@abp/jquery-validation" "~8.3.0-rc.3"
"@abp/jquery-validation" "~8.3.0"
jquery-validation-unobtrusive "^4.0.0"
"@abp/jquery-validation@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.3.tgz#d71e59dfa793070b780bb8078f4cd12b8217f701"
integrity sha512-/OEh5PVKfA4BB7YVmFFBa+GKDR4jzNOkRBUnzplxxcegrXlbbjuxC7VcnsLzXQJ1c2aUO6a1y8L7MsPMjaXVrg==
"@abp/jquery-validation@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887"
integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-validation "^1.20.1"
"@abp/jquery@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.3.tgz#7350b8675c7199b143bad86f46a50c629568605b"
integrity sha512-GkjKCrQmqqeu3xvpWTZxFa1VVRKPhmiutO2syuPi2dReDBhMV6h6EZZeu5y8lHLvL1HTEEANFFFXJGUna07FRQ==
"@abp/jquery@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef"
integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
jquery "~3.7.1"
"@abp/lodash@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.3.tgz#90b1c266a16bd2bdfab22bb635114610738a17ba"
integrity sha512-L4lw6eSOXeXg2IixjdcHHVw1z7Q1wLUJDr8NzlRF51KfEPZ5Lt28IhoJuEfE7y24e6v+q6CL15axPwSQOUIlhw==
"@abp/lodash@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c"
integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
lodash "^4.17.21"
"@abp/luxon@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.3.tgz#dc2a024c4b20b59408c41b259fe9b7cc8820bd7f"
integrity sha512-QOpAHiJxzSW+4HClyTspYaMDSUbY4Sz36d4Q7LSKHcwLIuqQ7rRfGEeWctYZYPwHIgK4udhde08Z8xrzl5tZSg==
"@abp/luxon@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07"
integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
luxon "^3.4.4"
"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.3.tgz#4eb53cf29ecf7c613f2d00e5b1bab4d807fd8396"
integrity sha512-NyQ2Qg2PfsDjWZfSwfsESFFkveIMQXFwWiSWgmeolWeFNtETDI1KJ5Nrf//sY+8zpn6ciCQTI5iaklLPPWQSKg==
"@abp/malihu-custom-scrollbar-plugin@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817"
integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.3.tgz#8f997de893d8b69f670f99fe0f3f8a8b3ed64451"
integrity sha512-UulCn7Qt6Y1JfXYd+KGsvJZX7uybXVwud+55tE7TnNl7OXmQ6R3yL6uv+5da0iJsZzQa6c3EknmTkLLD53HfRw==
"@abp/moment@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a"
integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w==
dependencies:
moment "^2.30.1"
"@abp/prismjs@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.3.tgz#9a78f0339f0b20591990f585497e7f5e585828d8"
integrity sha512-IaPkxDQeB9NhFGRh7jEmRTdLcNcCEdwdEELzZpYgQIQ4EOA/bq9jbYa9rD9wAYXRE6/yliQLTzmOzori4ddrXw==
"@abp/prismjs@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6"
integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q==
dependencies:
"@abp/clipboard" "~8.3.0-rc.3"
"@abp/core" "~8.3.0-rc.3"
"@abp/clipboard" "~8.3.0"
"@abp/core" "~8.3.0"
prismjs "^1.29.0"
"@abp/select2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.3.tgz#621505b7a829b02cfbb146c7b710093b9e6e19f4"
integrity sha512-SV0gTfKbEAgMG/ND6zrc3QF1buByHePrPxoI1lt1ZiSgt5m9V9i6+zDkE20/W/puegINJAU2kJZtm9hCfMtXaQ==
"@abp/select2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867"
integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
select2 "^4.0.13"
"@abp/sweetalert2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.3.tgz#728978d364fe80dfd3b9cacdee0960e921d404af"
integrity sha512-G3xAKewy7TH2UZgLg+mVhgng5y1RbanVfsA/VTc9DE1XBMG9fpiqywhbny/5qabFhgvNjMKM28Yce23uAsji1A==
"@abp/sweetalert2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa"
integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
sweetalert2 "^11.3.6"
"@abp/timeago@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.3.tgz#dcef20b900e6e95e12fec64b2f1632949f164eb0"
integrity sha512-sFOlpH54PiHosrmRoPZHtC+RVQdjPWetvtFm7svIfCta+dq6Iz70B7/O0oqQabAIERhA9jTf3ubMtBF6FCdmYg==
"@abp/timeago@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55"
integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
timeago "^1.6.7"
"@abp/toastr@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.3.tgz#5c821d5a049c322f082c37febd5980d2d664292c"
integrity sha512-PdiQMO6UA6yTKGHqztm5Kxu3UzsidnYyQtjojVTYQd87mvgIDIUkoXxXJ2VVgHnRy2FdZW12UfZG4v3/eJHbmg==
"@abp/toastr@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af"
integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
toastr "^2.1.4"
"@abp/utils@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.3.tgz#00b4acf4a4a2b4c4c1193a737f972d6508cf1831"
integrity sha512-cEPVo2QkLmn4Meo++dkvknfKlNlfQ7kmdWdXon1ZViaf9YFbTEZIYD5ccrdGUvKkVlAyOHG3TcAHesiAOyx1PQ==
"@abp/utils@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9"
integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw==
dependencies:
just-compare "^2.3.0"

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

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

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

@ -2,237 +2,237 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.3.tgz#58dc0dc5bb42e7c2bd70c717256332df2efe6d45"
integrity sha512-ba97ROK5RiEtIwOMwwfHuZFAX/iaQ+fR4Tw6cz+SHGkqfrACP4KnO+GwplCCyG/Y/ZmbX8KTliDEWGKDL4CCqQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.3.tgz#804fe763c3b66cbaf7ac8de7aca53a8690f0283c"
integrity sha512-ldiW9rXMMF7iAZpgFg1gDbwZW64/qLjhIyn+IcO7BzpLD6DKCzeQl/M+p7H1h7TC/ZSLEjRfcQs+ubjMI+OFoQ==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0-rc.3"
"@abp/bootstrap" "~8.3.0-rc.3"
"@abp/bootstrap-datepicker" "~8.3.0-rc.3"
"@abp/bootstrap-daterangepicker" "~8.3.0-rc.3"
"@abp/datatables.net-bs5" "~8.3.0-rc.3"
"@abp/font-awesome" "~8.3.0-rc.3"
"@abp/jquery-form" "~8.3.0-rc.3"
"@abp/jquery-validation-unobtrusive" "~8.3.0-rc.3"
"@abp/lodash" "~8.3.0-rc.3"
"@abp/luxon" "~8.3.0-rc.3"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.3"
"@abp/moment" "~8.3.0-rc.3"
"@abp/select2" "~8.3.0-rc.3"
"@abp/sweetalert2" "~8.3.0-rc.3"
"@abp/timeago" "~8.3.0-rc.3"
"@abp/toastr" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.3.tgz#e1e68f10e1715af44505da2d80b12fdf52d7de8c"
integrity sha512-0ld0/fXTj2mJZ12W1nn87K1Beqg+zbIGSR8lxWXG56jVArxasSqL3CiOQg+lLMUnWq1kwtTuoxZZVA76aL+nJA==
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4"
integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7"
integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0"
"@abp/bootstrap" "~8.3.0"
"@abp/bootstrap-datepicker" "~8.3.0"
"@abp/bootstrap-daterangepicker" "~8.3.0"
"@abp/datatables.net-bs5" "~8.3.0"
"@abp/font-awesome" "~8.3.0"
"@abp/jquery-form" "~8.3.0"
"@abp/jquery-validation-unobtrusive" "~8.3.0"
"@abp/lodash" "~8.3.0"
"@abp/luxon" "~8.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0"
"@abp/moment" "~8.3.0"
"@abp/select2" "~8.3.0"
"@abp/sweetalert2" "~8.3.0"
"@abp/timeago" "~8.3.0"
"@abp/toastr" "~8.3.0"
"@abp/aspnetcore.mvc.ui@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816"
integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw==
dependencies:
ansi-colors "^4.1.3"
"@abp/blogging@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.3.0-rc.3.tgz#fc68b867467e64bf600a91577ff3285e7f1d4870"
integrity sha512-1fGQo62qNOPArbj3hPDmgYFO0hmqP0gMSWKXlFKc7DhB0+tkM0kNn85FgAaZ37DdFSdQAh/0xUzuQYPZGB8dFw==
"@abp/blogging@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.3.0.tgz#2559f67b961ce3987a1dd59c138c223e19f36d51"
integrity sha512-z9ntHhxgDYxX31OpGbPVsy9eY3/zLJiCpEtRpvNYKrKAVsS4fZSxfaywvma8owBpYmwyw4uNHVLr4EXpq0oX2Q==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.3"
"@abp/owl.carousel" "~8.3.0-rc.3"
"@abp/prismjs" "~8.3.0-rc.3"
"@abp/tui-editor" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0"
"@abp/owl.carousel" "~8.3.0"
"@abp/prismjs" "~8.3.0"
"@abp/tui-editor" "~8.3.0"
"@abp/bootstrap-datepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.3.tgz#319054e54532085031a80d5859dec1a56b7548ac"
integrity sha512-fWKry7HLQ14Vv3GiF/bqge4ySN/9GkK/kZRrdeopdzvmOKTPCHSJ8DNrXAmd+WVHbcqdQ6uovWBOfMufCLohJw==
"@abp/bootstrap-datepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267"
integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w==
dependencies:
bootstrap-datepicker "^1.10.0"
"@abp/bootstrap-daterangepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.3.tgz#873728e2d6313fae07f1f74a4cf483e50bccfa7f"
integrity sha512-nu2N12ftl/1zA7Fe1lAgZiJnkZKFBNjfsPmy+ykQLKGWIkca14b0UHwUIHEaiI26fD6bBT50/kMRzA7uE3goaA==
"@abp/bootstrap-daterangepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17"
integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.3.tgz#ca01bc3b6c4d5b63cf1bb86472e8df366ff3cf40"
integrity sha512-qSJ5s8k3X4WANgUoEZ289q+UKkStnbAMIEmIh6x93nIZHaGAJsK3oaSNgZ2DbGPhxpMKxhJpCuzF1KrRDtwtUQ==
"@abp/bootstrap@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3"
integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
bootstrap "^5.3.3"
"@abp/clipboard@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.3.tgz#73eeba6bebccd0926ee40ba693c4c1e72f559f05"
integrity sha512-NUjh2ML1g9afBZcW0Ulp9/7CEMPH57ukxUwJBC88yd0C+oYC7KVurD7yeLtBrMAMQdfqP0e/lQcxZj69HB9p7g==
"@abp/clipboard@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c"
integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
clipboard "^2.0.11"
"@abp/core@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.3.tgz#4031ec2c08a00652bb717c962ddc3aa8b3cf72c9"
integrity sha512-9Y7EcLE+0RLnJyhZlSYCElTjrFz+P7uXbyl+1UyuyY+dxyAdZhZ+1WPHFSr0f8KlJrxkjnsPj+gR4e48u15FDw==
"@abp/core@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445"
integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q==
dependencies:
"@abp/utils" "~8.3.0-rc.3"
"@abp/utils" "~8.3.0"
"@abp/datatables.net-bs5@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.3.tgz#da22fbf7fe23671bfa20e83c9490e7bbe169b4aa"
integrity sha512-36VOOd/1461LZN11awaU5xbC3oYYJFebNFBeFZijsc8LtVKCwgMWZ8K3sCOolBVEyltDzKntw+w0NwhlWjd8tA==
"@abp/datatables.net-bs5@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb"
integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA==
dependencies:
"@abp/datatables.net" "~8.3.0-rc.3"
"@abp/datatables.net" "~8.3.0"
datatables.net-bs5 "^2.0.8"
"@abp/datatables.net@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.3.tgz#933ade7c61d3dfb61aa9278eb948e7756013a61f"
integrity sha512-MjSWhmMilHAKb4HmCLQOXesuFWvguIxhpKRAfSfweIiaOtgaPBh4KR8PSGxZgC0fImQYjWSfHQP4QkLAd5xasA==
"@abp/datatables.net@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b"
integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
datatables.net "^2.0.8"
"@abp/font-awesome@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.3.tgz#efa785200433025725e6dcd48c8b6b538938681d"
integrity sha512-DRjSDWhTWmL0I2A7KcFOxQFaLftxg0Rvcss0138j/mGpt64+unzcYo6YRCEga/k6ygxc7dYnhFmQf2tli44toQ==
"@abp/font-awesome@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9"
integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@fortawesome/fontawesome-free" "^6.5.2"
"@abp/jquery-form@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.3.tgz#fbb1ceb0e4092243cb018e1d7aa1ca86371fa98c"
integrity sha512-n7Tu4b2UhaRMcQCmzcBMiEYnaaR/OmA7LZfOcg4YP202xnLj29w4R/sRbQjr0w9lvPhue9rrSXaEf43UrV8eyg==
"@abp/jquery-form@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d"
integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.3.tgz#bcc8dad54b880134519f642b6a1a151584889bf2"
integrity sha512-4pfc7vYh5oMZc4+AJRwN7CQmb4ZK29POyuL9RjuBCQbvYCLcru0M5cQTz3wt9jLeAXn402lbwxh1cLioZfw8SQ==
"@abp/jquery-validation-unobtrusive@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521"
integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ==
dependencies:
"@abp/jquery-validation" "~8.3.0-rc.3"
"@abp/jquery-validation" "~8.3.0"
jquery-validation-unobtrusive "^4.0.0"
"@abp/jquery-validation@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.3.tgz#d71e59dfa793070b780bb8078f4cd12b8217f701"
integrity sha512-/OEh5PVKfA4BB7YVmFFBa+GKDR4jzNOkRBUnzplxxcegrXlbbjuxC7VcnsLzXQJ1c2aUO6a1y8L7MsPMjaXVrg==
"@abp/jquery-validation@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887"
integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-validation "^1.20.1"
"@abp/jquery@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.3.tgz#7350b8675c7199b143bad86f46a50c629568605b"
integrity sha512-GkjKCrQmqqeu3xvpWTZxFa1VVRKPhmiutO2syuPi2dReDBhMV6h6EZZeu5y8lHLvL1HTEEANFFFXJGUna07FRQ==
"@abp/jquery@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef"
integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
jquery "~3.7.1"
"@abp/lodash@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.3.tgz#90b1c266a16bd2bdfab22bb635114610738a17ba"
integrity sha512-L4lw6eSOXeXg2IixjdcHHVw1z7Q1wLUJDr8NzlRF51KfEPZ5Lt28IhoJuEfE7y24e6v+q6CL15axPwSQOUIlhw==
"@abp/lodash@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c"
integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
lodash "^4.17.21"
"@abp/luxon@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.3.tgz#dc2a024c4b20b59408c41b259fe9b7cc8820bd7f"
integrity sha512-QOpAHiJxzSW+4HClyTspYaMDSUbY4Sz36d4Q7LSKHcwLIuqQ7rRfGEeWctYZYPwHIgK4udhde08Z8xrzl5tZSg==
"@abp/luxon@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07"
integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
luxon "^3.4.4"
"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.3.tgz#4eb53cf29ecf7c613f2d00e5b1bab4d807fd8396"
integrity sha512-NyQ2Qg2PfsDjWZfSwfsESFFkveIMQXFwWiSWgmeolWeFNtETDI1KJ5Nrf//sY+8zpn6ciCQTI5iaklLPPWQSKg==
"@abp/malihu-custom-scrollbar-plugin@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817"
integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.3.tgz#8f997de893d8b69f670f99fe0f3f8a8b3ed64451"
integrity sha512-UulCn7Qt6Y1JfXYd+KGsvJZX7uybXVwud+55tE7TnNl7OXmQ6R3yL6uv+5da0iJsZzQa6c3EknmTkLLD53HfRw==
"@abp/moment@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a"
integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w==
dependencies:
moment "^2.30.1"
"@abp/owl.carousel@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.3.0-rc.3.tgz#acf0bcb208013cef595fe7a6d7f7c25518a43e66"
integrity sha512-QgAJ3LJ8HYZQQV9z64TCJ/L4gx19avIlakMs5iViz64vxQM1HM1bLaBHR/51twcxHGDEpTN6aH2N0ERONGgkQg==
"@abp/owl.carousel@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.3.0.tgz#4a1128e7eb98511b890fb91ef7658b6d8d3381e7"
integrity sha512-nVBPb00XOInGNUFQgzNEN/ASZGJPl1FTxPXkg6aQQPPAQMz3ZJXByZrvej56zUR550M831XtRNmWoulI+/yVGQ==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
owl.carousel "^2.3.4"
"@abp/prismjs@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.3.tgz#9a78f0339f0b20591990f585497e7f5e585828d8"
integrity sha512-IaPkxDQeB9NhFGRh7jEmRTdLcNcCEdwdEELzZpYgQIQ4EOA/bq9jbYa9rD9wAYXRE6/yliQLTzmOzori4ddrXw==
"@abp/prismjs@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6"
integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q==
dependencies:
"@abp/clipboard" "~8.3.0-rc.3"
"@abp/core" "~8.3.0-rc.3"
"@abp/clipboard" "~8.3.0"
"@abp/core" "~8.3.0"
prismjs "^1.29.0"
"@abp/select2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.3.tgz#621505b7a829b02cfbb146c7b710093b9e6e19f4"
integrity sha512-SV0gTfKbEAgMG/ND6zrc3QF1buByHePrPxoI1lt1ZiSgt5m9V9i6+zDkE20/W/puegINJAU2kJZtm9hCfMtXaQ==
"@abp/select2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867"
integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
select2 "^4.0.13"
"@abp/sweetalert2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.3.tgz#728978d364fe80dfd3b9cacdee0960e921d404af"
integrity sha512-G3xAKewy7TH2UZgLg+mVhgng5y1RbanVfsA/VTc9DE1XBMG9fpiqywhbny/5qabFhgvNjMKM28Yce23uAsji1A==
"@abp/sweetalert2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa"
integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
sweetalert2 "^11.3.6"
"@abp/timeago@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.3.tgz#dcef20b900e6e95e12fec64b2f1632949f164eb0"
integrity sha512-sFOlpH54PiHosrmRoPZHtC+RVQdjPWetvtFm7svIfCta+dq6Iz70B7/O0oqQabAIERhA9jTf3ubMtBF6FCdmYg==
"@abp/timeago@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55"
integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
timeago "^1.6.7"
"@abp/toastr@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.3.tgz#5c821d5a049c322f082c37febd5980d2d664292c"
integrity sha512-PdiQMO6UA6yTKGHqztm5Kxu3UzsidnYyQtjojVTYQd87mvgIDIUkoXxXJ2VVgHnRy2FdZW12UfZG4v3/eJHbmg==
"@abp/toastr@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af"
integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
toastr "^2.1.4"
"@abp/tui-editor@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.3.0-rc.3.tgz#52524047cba5b068d7bb22f1295226c090f3c6b1"
integrity sha512-PPipxm/BNtfmimc185kK7hHkkAS692huhKlLJnLHwCpuHvGbKB1rCoourW451V6knuYOkfu79wM3GSnVFROF2A==
"@abp/tui-editor@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.3.0.tgz#188360644140f3173b0347c1ce883612a5eb9e18"
integrity sha512-GNFuKvAlwihuzg91dekGZ5s5aLKySROHbLujanzaco1nfRvWehx+J+oCP0rHzQ3++DpxEXhlz05qW9I1gCEAKA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/prismjs" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
"@abp/prismjs" "~8.3.0"
"@abp/utils@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.3.tgz#00b4acf4a4a2b4c4c1193a737f972d6508cf1831"
integrity sha512-cEPVo2QkLmn4Meo++dkvknfKlNlfQ7kmdWdXon1ZViaf9YFbTEZIYD5ccrdGUvKkVlAyOHG3TcAHesiAOyx1PQ==
"@abp/utils@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9"
integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw==
dependencies:
just-compare "^2.3.0"

2
modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs

@ -308,7 +308,7 @@ namespace Volo.Blogging.Posts
foreach (var newTag in newTags)
{
var tag = tags.FirstOrDefault(t => t.Name == newTag);
var tag = tags.FirstOrDefault(t => t.Name.Equals(newTag, StringComparison.OrdinalIgnoreCase));
if (tag == null)
{

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": "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0"
}
}

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

@ -2,194 +2,194 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.3.tgz#58dc0dc5bb42e7c2bd70c717256332df2efe6d45"
integrity sha512-ba97ROK5RiEtIwOMwwfHuZFAX/iaQ+fR4Tw6cz+SHGkqfrACP4KnO+GwplCCyG/Y/ZmbX8KTliDEWGKDL4CCqQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.3.tgz#804fe763c3b66cbaf7ac8de7aca53a8690f0283c"
integrity sha512-ldiW9rXMMF7iAZpgFg1gDbwZW64/qLjhIyn+IcO7BzpLD6DKCzeQl/M+p7H1h7TC/ZSLEjRfcQs+ubjMI+OFoQ==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0-rc.3"
"@abp/bootstrap" "~8.3.0-rc.3"
"@abp/bootstrap-datepicker" "~8.3.0-rc.3"
"@abp/bootstrap-daterangepicker" "~8.3.0-rc.3"
"@abp/datatables.net-bs5" "~8.3.0-rc.3"
"@abp/font-awesome" "~8.3.0-rc.3"
"@abp/jquery-form" "~8.3.0-rc.3"
"@abp/jquery-validation-unobtrusive" "~8.3.0-rc.3"
"@abp/lodash" "~8.3.0-rc.3"
"@abp/luxon" "~8.3.0-rc.3"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.3"
"@abp/moment" "~8.3.0-rc.3"
"@abp/select2" "~8.3.0-rc.3"
"@abp/sweetalert2" "~8.3.0-rc.3"
"@abp/timeago" "~8.3.0-rc.3"
"@abp/toastr" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.3.tgz#e1e68f10e1715af44505da2d80b12fdf52d7de8c"
integrity sha512-0ld0/fXTj2mJZ12W1nn87K1Beqg+zbIGSR8lxWXG56jVArxasSqL3CiOQg+lLMUnWq1kwtTuoxZZVA76aL+nJA==
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4"
integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7"
integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0"
"@abp/bootstrap" "~8.3.0"
"@abp/bootstrap-datepicker" "~8.3.0"
"@abp/bootstrap-daterangepicker" "~8.3.0"
"@abp/datatables.net-bs5" "~8.3.0"
"@abp/font-awesome" "~8.3.0"
"@abp/jquery-form" "~8.3.0"
"@abp/jquery-validation-unobtrusive" "~8.3.0"
"@abp/lodash" "~8.3.0"
"@abp/luxon" "~8.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0"
"@abp/moment" "~8.3.0"
"@abp/select2" "~8.3.0"
"@abp/sweetalert2" "~8.3.0"
"@abp/timeago" "~8.3.0"
"@abp/toastr" "~8.3.0"
"@abp/aspnetcore.mvc.ui@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816"
integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw==
dependencies:
ansi-colors "^4.1.3"
"@abp/bootstrap-datepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.3.tgz#319054e54532085031a80d5859dec1a56b7548ac"
integrity sha512-fWKry7HLQ14Vv3GiF/bqge4ySN/9GkK/kZRrdeopdzvmOKTPCHSJ8DNrXAmd+WVHbcqdQ6uovWBOfMufCLohJw==
"@abp/bootstrap-datepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267"
integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w==
dependencies:
bootstrap-datepicker "^1.10.0"
"@abp/bootstrap-daterangepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.3.tgz#873728e2d6313fae07f1f74a4cf483e50bccfa7f"
integrity sha512-nu2N12ftl/1zA7Fe1lAgZiJnkZKFBNjfsPmy+ykQLKGWIkca14b0UHwUIHEaiI26fD6bBT50/kMRzA7uE3goaA==
"@abp/bootstrap-daterangepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17"
integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.3.tgz#ca01bc3b6c4d5b63cf1bb86472e8df366ff3cf40"
integrity sha512-qSJ5s8k3X4WANgUoEZ289q+UKkStnbAMIEmIh6x93nIZHaGAJsK3oaSNgZ2DbGPhxpMKxhJpCuzF1KrRDtwtUQ==
"@abp/bootstrap@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3"
integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
bootstrap "^5.3.3"
"@abp/core@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.3.tgz#4031ec2c08a00652bb717c962ddc3aa8b3cf72c9"
integrity sha512-9Y7EcLE+0RLnJyhZlSYCElTjrFz+P7uXbyl+1UyuyY+dxyAdZhZ+1WPHFSr0f8KlJrxkjnsPj+gR4e48u15FDw==
"@abp/core@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445"
integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q==
dependencies:
"@abp/utils" "~8.3.0-rc.3"
"@abp/utils" "~8.3.0"
"@abp/datatables.net-bs5@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.3.tgz#da22fbf7fe23671bfa20e83c9490e7bbe169b4aa"
integrity sha512-36VOOd/1461LZN11awaU5xbC3oYYJFebNFBeFZijsc8LtVKCwgMWZ8K3sCOolBVEyltDzKntw+w0NwhlWjd8tA==
"@abp/datatables.net-bs5@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb"
integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA==
dependencies:
"@abp/datatables.net" "~8.3.0-rc.3"
"@abp/datatables.net" "~8.3.0"
datatables.net-bs5 "^2.0.8"
"@abp/datatables.net@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.3.tgz#933ade7c61d3dfb61aa9278eb948e7756013a61f"
integrity sha512-MjSWhmMilHAKb4HmCLQOXesuFWvguIxhpKRAfSfweIiaOtgaPBh4KR8PSGxZgC0fImQYjWSfHQP4QkLAd5xasA==
"@abp/datatables.net@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b"
integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
datatables.net "^2.0.8"
"@abp/font-awesome@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.3.tgz#efa785200433025725e6dcd48c8b6b538938681d"
integrity sha512-DRjSDWhTWmL0I2A7KcFOxQFaLftxg0Rvcss0138j/mGpt64+unzcYo6YRCEga/k6ygxc7dYnhFmQf2tli44toQ==
"@abp/font-awesome@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9"
integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@fortawesome/fontawesome-free" "^6.5.2"
"@abp/jquery-form@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.3.tgz#fbb1ceb0e4092243cb018e1d7aa1ca86371fa98c"
integrity sha512-n7Tu4b2UhaRMcQCmzcBMiEYnaaR/OmA7LZfOcg4YP202xnLj29w4R/sRbQjr0w9lvPhue9rrSXaEf43UrV8eyg==
"@abp/jquery-form@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d"
integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.3.tgz#bcc8dad54b880134519f642b6a1a151584889bf2"
integrity sha512-4pfc7vYh5oMZc4+AJRwN7CQmb4ZK29POyuL9RjuBCQbvYCLcru0M5cQTz3wt9jLeAXn402lbwxh1cLioZfw8SQ==
"@abp/jquery-validation-unobtrusive@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521"
integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ==
dependencies:
"@abp/jquery-validation" "~8.3.0-rc.3"
"@abp/jquery-validation" "~8.3.0"
jquery-validation-unobtrusive "^4.0.0"
"@abp/jquery-validation@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.3.tgz#d71e59dfa793070b780bb8078f4cd12b8217f701"
integrity sha512-/OEh5PVKfA4BB7YVmFFBa+GKDR4jzNOkRBUnzplxxcegrXlbbjuxC7VcnsLzXQJ1c2aUO6a1y8L7MsPMjaXVrg==
"@abp/jquery-validation@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887"
integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-validation "^1.20.1"
"@abp/jquery@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.3.tgz#7350b8675c7199b143bad86f46a50c629568605b"
integrity sha512-GkjKCrQmqqeu3xvpWTZxFa1VVRKPhmiutO2syuPi2dReDBhMV6h6EZZeu5y8lHLvL1HTEEANFFFXJGUna07FRQ==
"@abp/jquery@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef"
integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
jquery "~3.7.1"
"@abp/lodash@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.3.tgz#90b1c266a16bd2bdfab22bb635114610738a17ba"
integrity sha512-L4lw6eSOXeXg2IixjdcHHVw1z7Q1wLUJDr8NzlRF51KfEPZ5Lt28IhoJuEfE7y24e6v+q6CL15axPwSQOUIlhw==
"@abp/lodash@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c"
integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
lodash "^4.17.21"
"@abp/luxon@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.3.tgz#dc2a024c4b20b59408c41b259fe9b7cc8820bd7f"
integrity sha512-QOpAHiJxzSW+4HClyTspYaMDSUbY4Sz36d4Q7LSKHcwLIuqQ7rRfGEeWctYZYPwHIgK4udhde08Z8xrzl5tZSg==
"@abp/luxon@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07"
integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
luxon "^3.4.4"
"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.3.tgz#4eb53cf29ecf7c613f2d00e5b1bab4d807fd8396"
integrity sha512-NyQ2Qg2PfsDjWZfSwfsESFFkveIMQXFwWiSWgmeolWeFNtETDI1KJ5Nrf//sY+8zpn6ciCQTI5iaklLPPWQSKg==
"@abp/malihu-custom-scrollbar-plugin@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817"
integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.3.tgz#8f997de893d8b69f670f99fe0f3f8a8b3ed64451"
integrity sha512-UulCn7Qt6Y1JfXYd+KGsvJZX7uybXVwud+55tE7TnNl7OXmQ6R3yL6uv+5da0iJsZzQa6c3EknmTkLLD53HfRw==
"@abp/moment@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a"
integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w==
dependencies:
moment "^2.30.1"
"@abp/select2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.3.tgz#621505b7a829b02cfbb146c7b710093b9e6e19f4"
integrity sha512-SV0gTfKbEAgMG/ND6zrc3QF1buByHePrPxoI1lt1ZiSgt5m9V9i6+zDkE20/W/puegINJAU2kJZtm9hCfMtXaQ==
"@abp/select2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867"
integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
select2 "^4.0.13"
"@abp/sweetalert2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.3.tgz#728978d364fe80dfd3b9cacdee0960e921d404af"
integrity sha512-G3xAKewy7TH2UZgLg+mVhgng5y1RbanVfsA/VTc9DE1XBMG9fpiqywhbny/5qabFhgvNjMKM28Yce23uAsji1A==
"@abp/sweetalert2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa"
integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
sweetalert2 "^11.3.6"
"@abp/timeago@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.3.tgz#dcef20b900e6e95e12fec64b2f1632949f164eb0"
integrity sha512-sFOlpH54PiHosrmRoPZHtC+RVQdjPWetvtFm7svIfCta+dq6Iz70B7/O0oqQabAIERhA9jTf3ubMtBF6FCdmYg==
"@abp/timeago@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55"
integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
timeago "^1.6.7"
"@abp/toastr@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.3.tgz#5c821d5a049c322f082c37febd5980d2d664292c"
integrity sha512-PdiQMO6UA6yTKGHqztm5Kxu3UzsidnYyQtjojVTYQd87mvgIDIUkoXxXJ2VVgHnRy2FdZW12UfZG4v3/eJHbmg==
"@abp/toastr@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af"
integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
toastr "^2.1.4"
"@abp/utils@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.3.tgz#00b4acf4a4a2b4c4c1193a737f972d6508cf1831"
integrity sha512-cEPVo2QkLmn4Meo++dkvknfKlNlfQ7kmdWdXon1ZViaf9YFbTEZIYD5ccrdGUvKkVlAyOHG3TcAHesiAOyx1PQ==
"@abp/utils@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9"
integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw==
dependencies:
just-compare "^2.3.0"

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

@ -15,11 +15,11 @@
},
"private": true,
"dependencies": {
"@abp/ng.account": "~8.3.0-rc.3",
"@abp/ng.identity": "~8.3.0-rc.3",
"@abp/ng.setting-management": "~8.3.0-rc.3",
"@abp/ng.tenant-management": "~8.3.0-rc.3",
"@abp/ng.theme.basic": "~8.3.0-rc.3",
"@abp/ng.account": "~8.3.0",
"@abp/ng.identity": "~8.3.0",
"@abp/ng.setting-management": "~8.3.0",
"@abp/ng.tenant-management": "~8.3.0",
"@abp/ng.theme.basic": "~8.3.0",
"@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": ">=8.3.0-rc.3",
"@abp/ng.theme.shared": ">=8.3.0-rc.3"
"@abp/ng.core": ">=8.3.0",
"@abp/ng.theme.shared": ">=8.3.0"
},
"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": "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0"
}
}

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

@ -2,194 +2,194 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.3.tgz#58dc0dc5bb42e7c2bd70c717256332df2efe6d45"
integrity sha512-ba97ROK5RiEtIwOMwwfHuZFAX/iaQ+fR4Tw6cz+SHGkqfrACP4KnO+GwplCCyG/Y/ZmbX8KTliDEWGKDL4CCqQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.3.tgz#804fe763c3b66cbaf7ac8de7aca53a8690f0283c"
integrity sha512-ldiW9rXMMF7iAZpgFg1gDbwZW64/qLjhIyn+IcO7BzpLD6DKCzeQl/M+p7H1h7TC/ZSLEjRfcQs+ubjMI+OFoQ==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0-rc.3"
"@abp/bootstrap" "~8.3.0-rc.3"
"@abp/bootstrap-datepicker" "~8.3.0-rc.3"
"@abp/bootstrap-daterangepicker" "~8.3.0-rc.3"
"@abp/datatables.net-bs5" "~8.3.0-rc.3"
"@abp/font-awesome" "~8.3.0-rc.3"
"@abp/jquery-form" "~8.3.0-rc.3"
"@abp/jquery-validation-unobtrusive" "~8.3.0-rc.3"
"@abp/lodash" "~8.3.0-rc.3"
"@abp/luxon" "~8.3.0-rc.3"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.3"
"@abp/moment" "~8.3.0-rc.3"
"@abp/select2" "~8.3.0-rc.3"
"@abp/sweetalert2" "~8.3.0-rc.3"
"@abp/timeago" "~8.3.0-rc.3"
"@abp/toastr" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.3.tgz#e1e68f10e1715af44505da2d80b12fdf52d7de8c"
integrity sha512-0ld0/fXTj2mJZ12W1nn87K1Beqg+zbIGSR8lxWXG56jVArxasSqL3CiOQg+lLMUnWq1kwtTuoxZZVA76aL+nJA==
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4"
integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7"
integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0"
"@abp/bootstrap" "~8.3.0"
"@abp/bootstrap-datepicker" "~8.3.0"
"@abp/bootstrap-daterangepicker" "~8.3.0"
"@abp/datatables.net-bs5" "~8.3.0"
"@abp/font-awesome" "~8.3.0"
"@abp/jquery-form" "~8.3.0"
"@abp/jquery-validation-unobtrusive" "~8.3.0"
"@abp/lodash" "~8.3.0"
"@abp/luxon" "~8.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0"
"@abp/moment" "~8.3.0"
"@abp/select2" "~8.3.0"
"@abp/sweetalert2" "~8.3.0"
"@abp/timeago" "~8.3.0"
"@abp/toastr" "~8.3.0"
"@abp/aspnetcore.mvc.ui@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816"
integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw==
dependencies:
ansi-colors "^4.1.3"
"@abp/bootstrap-datepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.3.tgz#319054e54532085031a80d5859dec1a56b7548ac"
integrity sha512-fWKry7HLQ14Vv3GiF/bqge4ySN/9GkK/kZRrdeopdzvmOKTPCHSJ8DNrXAmd+WVHbcqdQ6uovWBOfMufCLohJw==
"@abp/bootstrap-datepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267"
integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w==
dependencies:
bootstrap-datepicker "^1.10.0"
"@abp/bootstrap-daterangepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.3.tgz#873728e2d6313fae07f1f74a4cf483e50bccfa7f"
integrity sha512-nu2N12ftl/1zA7Fe1lAgZiJnkZKFBNjfsPmy+ykQLKGWIkca14b0UHwUIHEaiI26fD6bBT50/kMRzA7uE3goaA==
"@abp/bootstrap-daterangepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17"
integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.3.tgz#ca01bc3b6c4d5b63cf1bb86472e8df366ff3cf40"
integrity sha512-qSJ5s8k3X4WANgUoEZ289q+UKkStnbAMIEmIh6x93nIZHaGAJsK3oaSNgZ2DbGPhxpMKxhJpCuzF1KrRDtwtUQ==
"@abp/bootstrap@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3"
integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
bootstrap "^5.3.3"
"@abp/core@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.3.tgz#4031ec2c08a00652bb717c962ddc3aa8b3cf72c9"
integrity sha512-9Y7EcLE+0RLnJyhZlSYCElTjrFz+P7uXbyl+1UyuyY+dxyAdZhZ+1WPHFSr0f8KlJrxkjnsPj+gR4e48u15FDw==
"@abp/core@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445"
integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q==
dependencies:
"@abp/utils" "~8.3.0-rc.3"
"@abp/utils" "~8.3.0"
"@abp/datatables.net-bs5@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.3.tgz#da22fbf7fe23671bfa20e83c9490e7bbe169b4aa"
integrity sha512-36VOOd/1461LZN11awaU5xbC3oYYJFebNFBeFZijsc8LtVKCwgMWZ8K3sCOolBVEyltDzKntw+w0NwhlWjd8tA==
"@abp/datatables.net-bs5@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb"
integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA==
dependencies:
"@abp/datatables.net" "~8.3.0-rc.3"
"@abp/datatables.net" "~8.3.0"
datatables.net-bs5 "^2.0.8"
"@abp/datatables.net@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.3.tgz#933ade7c61d3dfb61aa9278eb948e7756013a61f"
integrity sha512-MjSWhmMilHAKb4HmCLQOXesuFWvguIxhpKRAfSfweIiaOtgaPBh4KR8PSGxZgC0fImQYjWSfHQP4QkLAd5xasA==
"@abp/datatables.net@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b"
integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
datatables.net "^2.0.8"
"@abp/font-awesome@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.3.tgz#efa785200433025725e6dcd48c8b6b538938681d"
integrity sha512-DRjSDWhTWmL0I2A7KcFOxQFaLftxg0Rvcss0138j/mGpt64+unzcYo6YRCEga/k6ygxc7dYnhFmQf2tli44toQ==
"@abp/font-awesome@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9"
integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@fortawesome/fontawesome-free" "^6.5.2"
"@abp/jquery-form@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.3.tgz#fbb1ceb0e4092243cb018e1d7aa1ca86371fa98c"
integrity sha512-n7Tu4b2UhaRMcQCmzcBMiEYnaaR/OmA7LZfOcg4YP202xnLj29w4R/sRbQjr0w9lvPhue9rrSXaEf43UrV8eyg==
"@abp/jquery-form@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d"
integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.3.tgz#bcc8dad54b880134519f642b6a1a151584889bf2"
integrity sha512-4pfc7vYh5oMZc4+AJRwN7CQmb4ZK29POyuL9RjuBCQbvYCLcru0M5cQTz3wt9jLeAXn402lbwxh1cLioZfw8SQ==
"@abp/jquery-validation-unobtrusive@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521"
integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ==
dependencies:
"@abp/jquery-validation" "~8.3.0-rc.3"
"@abp/jquery-validation" "~8.3.0"
jquery-validation-unobtrusive "^4.0.0"
"@abp/jquery-validation@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.3.tgz#d71e59dfa793070b780bb8078f4cd12b8217f701"
integrity sha512-/OEh5PVKfA4BB7YVmFFBa+GKDR4jzNOkRBUnzplxxcegrXlbbjuxC7VcnsLzXQJ1c2aUO6a1y8L7MsPMjaXVrg==
"@abp/jquery-validation@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887"
integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-validation "^1.20.1"
"@abp/jquery@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.3.tgz#7350b8675c7199b143bad86f46a50c629568605b"
integrity sha512-GkjKCrQmqqeu3xvpWTZxFa1VVRKPhmiutO2syuPi2dReDBhMV6h6EZZeu5y8lHLvL1HTEEANFFFXJGUna07FRQ==
"@abp/jquery@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef"
integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
jquery "~3.7.1"
"@abp/lodash@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.3.tgz#90b1c266a16bd2bdfab22bb635114610738a17ba"
integrity sha512-L4lw6eSOXeXg2IixjdcHHVw1z7Q1wLUJDr8NzlRF51KfEPZ5Lt28IhoJuEfE7y24e6v+q6CL15axPwSQOUIlhw==
"@abp/lodash@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c"
integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
lodash "^4.17.21"
"@abp/luxon@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.3.tgz#dc2a024c4b20b59408c41b259fe9b7cc8820bd7f"
integrity sha512-QOpAHiJxzSW+4HClyTspYaMDSUbY4Sz36d4Q7LSKHcwLIuqQ7rRfGEeWctYZYPwHIgK4udhde08Z8xrzl5tZSg==
"@abp/luxon@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07"
integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
luxon "^3.4.4"
"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.3.tgz#4eb53cf29ecf7c613f2d00e5b1bab4d807fd8396"
integrity sha512-NyQ2Qg2PfsDjWZfSwfsESFFkveIMQXFwWiSWgmeolWeFNtETDI1KJ5Nrf//sY+8zpn6ciCQTI5iaklLPPWQSKg==
"@abp/malihu-custom-scrollbar-plugin@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817"
integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.3.tgz#8f997de893d8b69f670f99fe0f3f8a8b3ed64451"
integrity sha512-UulCn7Qt6Y1JfXYd+KGsvJZX7uybXVwud+55tE7TnNl7OXmQ6R3yL6uv+5da0iJsZzQa6c3EknmTkLLD53HfRw==
"@abp/moment@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a"
integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w==
dependencies:
moment "^2.30.1"
"@abp/select2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.3.tgz#621505b7a829b02cfbb146c7b710093b9e6e19f4"
integrity sha512-SV0gTfKbEAgMG/ND6zrc3QF1buByHePrPxoI1lt1ZiSgt5m9V9i6+zDkE20/W/puegINJAU2kJZtm9hCfMtXaQ==
"@abp/select2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867"
integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
select2 "^4.0.13"
"@abp/sweetalert2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.3.tgz#728978d364fe80dfd3b9cacdee0960e921d404af"
integrity sha512-G3xAKewy7TH2UZgLg+mVhgng5y1RbanVfsA/VTc9DE1XBMG9fpiqywhbny/5qabFhgvNjMKM28Yce23uAsji1A==
"@abp/sweetalert2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa"
integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
sweetalert2 "^11.3.6"
"@abp/timeago@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.3.tgz#dcef20b900e6e95e12fec64b2f1632949f164eb0"
integrity sha512-sFOlpH54PiHosrmRoPZHtC+RVQdjPWetvtFm7svIfCta+dq6Iz70B7/O0oqQabAIERhA9jTf3ubMtBF6FCdmYg==
"@abp/timeago@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55"
integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
timeago "^1.6.7"
"@abp/toastr@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.3.tgz#5c821d5a049c322f082c37febd5980d2d664292c"
integrity sha512-PdiQMO6UA6yTKGHqztm5Kxu3UzsidnYyQtjojVTYQd87mvgIDIUkoXxXJ2VVgHnRy2FdZW12UfZG4v3/eJHbmg==
"@abp/toastr@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af"
integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
toastr "^2.1.4"
"@abp/utils@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.3.tgz#00b4acf4a4a2b4c4c1193a737f972d6508cf1831"
integrity sha512-cEPVo2QkLmn4Meo++dkvknfKlNlfQ7kmdWdXon1ZViaf9YFbTEZIYD5ccrdGUvKkVlAyOHG3TcAHesiAOyx1PQ==
"@abp/utils@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9"
integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw==
dependencies:
just-compare "^2.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": "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0"
}
}

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

@ -2,194 +2,194 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.3.tgz#58dc0dc5bb42e7c2bd70c717256332df2efe6d45"
integrity sha512-ba97ROK5RiEtIwOMwwfHuZFAX/iaQ+fR4Tw6cz+SHGkqfrACP4KnO+GwplCCyG/Y/ZmbX8KTliDEWGKDL4CCqQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.3.tgz#804fe763c3b66cbaf7ac8de7aca53a8690f0283c"
integrity sha512-ldiW9rXMMF7iAZpgFg1gDbwZW64/qLjhIyn+IcO7BzpLD6DKCzeQl/M+p7H1h7TC/ZSLEjRfcQs+ubjMI+OFoQ==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0-rc.3"
"@abp/bootstrap" "~8.3.0-rc.3"
"@abp/bootstrap-datepicker" "~8.3.0-rc.3"
"@abp/bootstrap-daterangepicker" "~8.3.0-rc.3"
"@abp/datatables.net-bs5" "~8.3.0-rc.3"
"@abp/font-awesome" "~8.3.0-rc.3"
"@abp/jquery-form" "~8.3.0-rc.3"
"@abp/jquery-validation-unobtrusive" "~8.3.0-rc.3"
"@abp/lodash" "~8.3.0-rc.3"
"@abp/luxon" "~8.3.0-rc.3"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.3"
"@abp/moment" "~8.3.0-rc.3"
"@abp/select2" "~8.3.0-rc.3"
"@abp/sweetalert2" "~8.3.0-rc.3"
"@abp/timeago" "~8.3.0-rc.3"
"@abp/toastr" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.3.tgz#e1e68f10e1715af44505da2d80b12fdf52d7de8c"
integrity sha512-0ld0/fXTj2mJZ12W1nn87K1Beqg+zbIGSR8lxWXG56jVArxasSqL3CiOQg+lLMUnWq1kwtTuoxZZVA76aL+nJA==
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4"
integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7"
integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0"
"@abp/bootstrap" "~8.3.0"
"@abp/bootstrap-datepicker" "~8.3.0"
"@abp/bootstrap-daterangepicker" "~8.3.0"
"@abp/datatables.net-bs5" "~8.3.0"
"@abp/font-awesome" "~8.3.0"
"@abp/jquery-form" "~8.3.0"
"@abp/jquery-validation-unobtrusive" "~8.3.0"
"@abp/lodash" "~8.3.0"
"@abp/luxon" "~8.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0"
"@abp/moment" "~8.3.0"
"@abp/select2" "~8.3.0"
"@abp/sweetalert2" "~8.3.0"
"@abp/timeago" "~8.3.0"
"@abp/toastr" "~8.3.0"
"@abp/aspnetcore.mvc.ui@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816"
integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw==
dependencies:
ansi-colors "^4.1.3"
"@abp/bootstrap-datepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.3.tgz#319054e54532085031a80d5859dec1a56b7548ac"
integrity sha512-fWKry7HLQ14Vv3GiF/bqge4ySN/9GkK/kZRrdeopdzvmOKTPCHSJ8DNrXAmd+WVHbcqdQ6uovWBOfMufCLohJw==
"@abp/bootstrap-datepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267"
integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w==
dependencies:
bootstrap-datepicker "^1.10.0"
"@abp/bootstrap-daterangepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.3.tgz#873728e2d6313fae07f1f74a4cf483e50bccfa7f"
integrity sha512-nu2N12ftl/1zA7Fe1lAgZiJnkZKFBNjfsPmy+ykQLKGWIkca14b0UHwUIHEaiI26fD6bBT50/kMRzA7uE3goaA==
"@abp/bootstrap-daterangepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17"
integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.3.tgz#ca01bc3b6c4d5b63cf1bb86472e8df366ff3cf40"
integrity sha512-qSJ5s8k3X4WANgUoEZ289q+UKkStnbAMIEmIh6x93nIZHaGAJsK3oaSNgZ2DbGPhxpMKxhJpCuzF1KrRDtwtUQ==
"@abp/bootstrap@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3"
integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
bootstrap "^5.3.3"
"@abp/core@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.3.tgz#4031ec2c08a00652bb717c962ddc3aa8b3cf72c9"
integrity sha512-9Y7EcLE+0RLnJyhZlSYCElTjrFz+P7uXbyl+1UyuyY+dxyAdZhZ+1WPHFSr0f8KlJrxkjnsPj+gR4e48u15FDw==
"@abp/core@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445"
integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q==
dependencies:
"@abp/utils" "~8.3.0-rc.3"
"@abp/utils" "~8.3.0"
"@abp/datatables.net-bs5@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.3.tgz#da22fbf7fe23671bfa20e83c9490e7bbe169b4aa"
integrity sha512-36VOOd/1461LZN11awaU5xbC3oYYJFebNFBeFZijsc8LtVKCwgMWZ8K3sCOolBVEyltDzKntw+w0NwhlWjd8tA==
"@abp/datatables.net-bs5@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb"
integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA==
dependencies:
"@abp/datatables.net" "~8.3.0-rc.3"
"@abp/datatables.net" "~8.3.0"
datatables.net-bs5 "^2.0.8"
"@abp/datatables.net@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.3.tgz#933ade7c61d3dfb61aa9278eb948e7756013a61f"
integrity sha512-MjSWhmMilHAKb4HmCLQOXesuFWvguIxhpKRAfSfweIiaOtgaPBh4KR8PSGxZgC0fImQYjWSfHQP4QkLAd5xasA==
"@abp/datatables.net@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b"
integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
datatables.net "^2.0.8"
"@abp/font-awesome@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.3.tgz#efa785200433025725e6dcd48c8b6b538938681d"
integrity sha512-DRjSDWhTWmL0I2A7KcFOxQFaLftxg0Rvcss0138j/mGpt64+unzcYo6YRCEga/k6ygxc7dYnhFmQf2tli44toQ==
"@abp/font-awesome@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9"
integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@fortawesome/fontawesome-free" "^6.5.2"
"@abp/jquery-form@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.3.tgz#fbb1ceb0e4092243cb018e1d7aa1ca86371fa98c"
integrity sha512-n7Tu4b2UhaRMcQCmzcBMiEYnaaR/OmA7LZfOcg4YP202xnLj29w4R/sRbQjr0w9lvPhue9rrSXaEf43UrV8eyg==
"@abp/jquery-form@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d"
integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.3.tgz#bcc8dad54b880134519f642b6a1a151584889bf2"
integrity sha512-4pfc7vYh5oMZc4+AJRwN7CQmb4ZK29POyuL9RjuBCQbvYCLcru0M5cQTz3wt9jLeAXn402lbwxh1cLioZfw8SQ==
"@abp/jquery-validation-unobtrusive@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521"
integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ==
dependencies:
"@abp/jquery-validation" "~8.3.0-rc.3"
"@abp/jquery-validation" "~8.3.0"
jquery-validation-unobtrusive "^4.0.0"
"@abp/jquery-validation@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.3.tgz#d71e59dfa793070b780bb8078f4cd12b8217f701"
integrity sha512-/OEh5PVKfA4BB7YVmFFBa+GKDR4jzNOkRBUnzplxxcegrXlbbjuxC7VcnsLzXQJ1c2aUO6a1y8L7MsPMjaXVrg==
"@abp/jquery-validation@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887"
integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-validation "^1.20.1"
"@abp/jquery@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.3.tgz#7350b8675c7199b143bad86f46a50c629568605b"
integrity sha512-GkjKCrQmqqeu3xvpWTZxFa1VVRKPhmiutO2syuPi2dReDBhMV6h6EZZeu5y8lHLvL1HTEEANFFFXJGUna07FRQ==
"@abp/jquery@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef"
integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
jquery "~3.7.1"
"@abp/lodash@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.3.tgz#90b1c266a16bd2bdfab22bb635114610738a17ba"
integrity sha512-L4lw6eSOXeXg2IixjdcHHVw1z7Q1wLUJDr8NzlRF51KfEPZ5Lt28IhoJuEfE7y24e6v+q6CL15axPwSQOUIlhw==
"@abp/lodash@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c"
integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
lodash "^4.17.21"
"@abp/luxon@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.3.tgz#dc2a024c4b20b59408c41b259fe9b7cc8820bd7f"
integrity sha512-QOpAHiJxzSW+4HClyTspYaMDSUbY4Sz36d4Q7LSKHcwLIuqQ7rRfGEeWctYZYPwHIgK4udhde08Z8xrzl5tZSg==
"@abp/luxon@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07"
integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
luxon "^3.4.4"
"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.3.tgz#4eb53cf29ecf7c613f2d00e5b1bab4d807fd8396"
integrity sha512-NyQ2Qg2PfsDjWZfSwfsESFFkveIMQXFwWiSWgmeolWeFNtETDI1KJ5Nrf//sY+8zpn6ciCQTI5iaklLPPWQSKg==
"@abp/malihu-custom-scrollbar-plugin@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817"
integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.3.tgz#8f997de893d8b69f670f99fe0f3f8a8b3ed64451"
integrity sha512-UulCn7Qt6Y1JfXYd+KGsvJZX7uybXVwud+55tE7TnNl7OXmQ6R3yL6uv+5da0iJsZzQa6c3EknmTkLLD53HfRw==
"@abp/moment@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a"
integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w==
dependencies:
moment "^2.30.1"
"@abp/select2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.3.tgz#621505b7a829b02cfbb146c7b710093b9e6e19f4"
integrity sha512-SV0gTfKbEAgMG/ND6zrc3QF1buByHePrPxoI1lt1ZiSgt5m9V9i6+zDkE20/W/puegINJAU2kJZtm9hCfMtXaQ==
"@abp/select2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867"
integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
select2 "^4.0.13"
"@abp/sweetalert2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.3.tgz#728978d364fe80dfd3b9cacdee0960e921d404af"
integrity sha512-G3xAKewy7TH2UZgLg+mVhgng5y1RbanVfsA/VTc9DE1XBMG9fpiqywhbny/5qabFhgvNjMKM28Yce23uAsji1A==
"@abp/sweetalert2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa"
integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
sweetalert2 "^11.3.6"
"@abp/timeago@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.3.tgz#dcef20b900e6e95e12fec64b2f1632949f164eb0"
integrity sha512-sFOlpH54PiHosrmRoPZHtC+RVQdjPWetvtFm7svIfCta+dq6Iz70B7/O0oqQabAIERhA9jTf3ubMtBF6FCdmYg==
"@abp/timeago@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55"
integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
timeago "^1.6.7"
"@abp/toastr@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.3.tgz#5c821d5a049c322f082c37febd5980d2d664292c"
integrity sha512-PdiQMO6UA6yTKGHqztm5Kxu3UzsidnYyQtjojVTYQd87mvgIDIUkoXxXJ2VVgHnRy2FdZW12UfZG4v3/eJHbmg==
"@abp/toastr@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af"
integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
toastr "^2.1.4"
"@abp/utils@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.3.tgz#00b4acf4a4a2b4c4c1193a737f972d6508cf1831"
integrity sha512-cEPVo2QkLmn4Meo++dkvknfKlNlfQ7kmdWdXon1ZViaf9YFbTEZIYD5ccrdGUvKkVlAyOHG3TcAHesiAOyx1PQ==
"@abp/utils@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9"
integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw==
dependencies:
just-compare "^2.3.0"

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

@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0-rc.3",
"@abp/cms-kit": "8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0",
"@abp/cms-kit": "8.3.0"
}
}

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

@ -2,302 +2,302 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.3.tgz#58dc0dc5bb42e7c2bd70c717256332df2efe6d45"
integrity sha512-ba97ROK5RiEtIwOMwwfHuZFAX/iaQ+fR4Tw6cz+SHGkqfrACP4KnO+GwplCCyG/Y/ZmbX8KTliDEWGKDL4CCqQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.3.tgz#804fe763c3b66cbaf7ac8de7aca53a8690f0283c"
integrity sha512-ldiW9rXMMF7iAZpgFg1gDbwZW64/qLjhIyn+IcO7BzpLD6DKCzeQl/M+p7H1h7TC/ZSLEjRfcQs+ubjMI+OFoQ==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0-rc.3"
"@abp/bootstrap" "~8.3.0-rc.3"
"@abp/bootstrap-datepicker" "~8.3.0-rc.3"
"@abp/bootstrap-daterangepicker" "~8.3.0-rc.3"
"@abp/datatables.net-bs5" "~8.3.0-rc.3"
"@abp/font-awesome" "~8.3.0-rc.3"
"@abp/jquery-form" "~8.3.0-rc.3"
"@abp/jquery-validation-unobtrusive" "~8.3.0-rc.3"
"@abp/lodash" "~8.3.0-rc.3"
"@abp/luxon" "~8.3.0-rc.3"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.3"
"@abp/moment" "~8.3.0-rc.3"
"@abp/select2" "~8.3.0-rc.3"
"@abp/sweetalert2" "~8.3.0-rc.3"
"@abp/timeago" "~8.3.0-rc.3"
"@abp/toastr" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.3.tgz#e1e68f10e1715af44505da2d80b12fdf52d7de8c"
integrity sha512-0ld0/fXTj2mJZ12W1nn87K1Beqg+zbIGSR8lxWXG56jVArxasSqL3CiOQg+lLMUnWq1kwtTuoxZZVA76aL+nJA==
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4"
integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7"
integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0"
"@abp/bootstrap" "~8.3.0"
"@abp/bootstrap-datepicker" "~8.3.0"
"@abp/bootstrap-daterangepicker" "~8.3.0"
"@abp/datatables.net-bs5" "~8.3.0"
"@abp/font-awesome" "~8.3.0"
"@abp/jquery-form" "~8.3.0"
"@abp/jquery-validation-unobtrusive" "~8.3.0"
"@abp/lodash" "~8.3.0"
"@abp/luxon" "~8.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0"
"@abp/moment" "~8.3.0"
"@abp/select2" "~8.3.0"
"@abp/sweetalert2" "~8.3.0"
"@abp/timeago" "~8.3.0"
"@abp/toastr" "~8.3.0"
"@abp/aspnetcore.mvc.ui@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816"
integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw==
dependencies:
ansi-colors "^4.1.3"
"@abp/bootstrap-datepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.3.tgz#319054e54532085031a80d5859dec1a56b7548ac"
integrity sha512-fWKry7HLQ14Vv3GiF/bqge4ySN/9GkK/kZRrdeopdzvmOKTPCHSJ8DNrXAmd+WVHbcqdQ6uovWBOfMufCLohJw==
"@abp/bootstrap-datepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267"
integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w==
dependencies:
bootstrap-datepicker "^1.10.0"
"@abp/bootstrap-daterangepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.3.tgz#873728e2d6313fae07f1f74a4cf483e50bccfa7f"
integrity sha512-nu2N12ftl/1zA7Fe1lAgZiJnkZKFBNjfsPmy+ykQLKGWIkca14b0UHwUIHEaiI26fD6bBT50/kMRzA7uE3goaA==
"@abp/bootstrap-daterangepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17"
integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.3.tgz#ca01bc3b6c4d5b63cf1bb86472e8df366ff3cf40"
integrity sha512-qSJ5s8k3X4WANgUoEZ289q+UKkStnbAMIEmIh6x93nIZHaGAJsK3oaSNgZ2DbGPhxpMKxhJpCuzF1KrRDtwtUQ==
"@abp/bootstrap@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3"
integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
bootstrap "^5.3.3"
"@abp/clipboard@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.3.tgz#73eeba6bebccd0926ee40ba693c4c1e72f559f05"
integrity sha512-NUjh2ML1g9afBZcW0Ulp9/7CEMPH57ukxUwJBC88yd0C+oYC7KVurD7yeLtBrMAMQdfqP0e/lQcxZj69HB9p7g==
"@abp/clipboard@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c"
integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
clipboard "^2.0.11"
"@abp/cms-kit.admin@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.3.0-rc.3.tgz#9904a23025c634ee2f60c1babf64078ae08d985a"
integrity sha512-DscM2f/VO/A93M/bXw9tKcGkiX4qSQgkRKU871F2enek/7RG94eXie9JEXUgjw+fuUwXlrGSNngQOgYaIF41tQ==
"@abp/cms-kit.admin@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.3.0.tgz#9601f8b8e391a1b19b53fa04f0ea7ffb8358ab45"
integrity sha512-Bwk505jNh4bthmSemsvsc2eaSppaUyctHCX2of+ZEwkbB4uc9S4ctbeV9VmeO45AUIm055/GnttfXbMKvte7ng==
dependencies:
"@abp/codemirror" "~8.3.0-rc.3"
"@abp/jstree" "~8.3.0-rc.3"
"@abp/markdown-it" "~8.3.0-rc.3"
"@abp/slugify" "~8.3.0-rc.3"
"@abp/tui-editor" "~8.3.0-rc.3"
"@abp/uppy" "~8.3.0-rc.3"
"@abp/codemirror" "~8.3.0"
"@abp/jstree" "~8.3.0"
"@abp/markdown-it" "~8.3.0"
"@abp/slugify" "~8.3.0"
"@abp/tui-editor" "~8.3.0"
"@abp/uppy" "~8.3.0"
"@abp/cms-kit.public@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.3.0-rc.3.tgz#6c114453248c5512df8a374dbe3af06247d151d2"
integrity sha512-gTWT5WQM4E/VMn/oSK5N4hbrqtLwRdyZ9+jztprUtlOEedx3oLJpdSBU4GxC9ds2ting23leBRFAb2iSXQ0n9A==
"@abp/cms-kit.public@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.3.0.tgz#cec3a67e223f951ceb6863ef62b7a487794d7253"
integrity sha512-K8azk9SGEIzE4F+Zcb9tltZezyNP9Yzkq4bDRysv5EAyfa+zNQbyftaA6LcysEhhHbiJ8Gzvtxl93sNUiCluFg==
dependencies:
"@abp/highlight.js" "~8.3.0-rc.3"
"@abp/star-rating-svg" "~8.3.0-rc.3"
"@abp/highlight.js" "~8.3.0"
"@abp/star-rating-svg" "~8.3.0"
"@abp/cms-kit@8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.3.0-rc.3.tgz#9546f1bfed955739ecee5a7175b1e426e21bbf64"
integrity sha512-M2t7QlJARQQV9LeDOoUk6S3hleyRe4zwfVACY3PAw3BTV3xZI3Vqt2RMEjuXjOOxxkdQfPMfE4pY5wWKumPOjQ==
"@abp/cms-kit@8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.3.0.tgz#7ac7ebcb43b1633ea337e5e6f5b447ef4e000992"
integrity sha512-XBunhRVZE4cKyTx1L9Ieh3SUw4rn0+GPGHarUmdK4oiK2q3zRZHnmAQ9w0Pb34yNcAlbPVvcqU0zE2lz2k2sSQ==
dependencies:
"@abp/cms-kit.admin" "~8.3.0-rc.3"
"@abp/cms-kit.public" "~8.3.0-rc.3"
"@abp/cms-kit.admin" "~8.3.0"
"@abp/cms-kit.public" "~8.3.0"
"@abp/codemirror@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.3.0-rc.3.tgz#c2f871609bc8819e8f010e98cdf9c9f2324c9afa"
integrity sha512-i2RQoBWk1hmcjfU570EsFaFTu1wCRPrxzT+FbJCXmGGSuZYdVo6piOuK06MNvqmNPq/gbGVV3aFCRc3KNHkKYA==
"@abp/codemirror@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.3.0.tgz#e5b631154ab9900ba01128b4f8d2d5d16b74566f"
integrity sha512-1Mi9wT/Nl1c7VS4q/OVFilbyhAkUTy+o4WRA1OMvLd9c4pJXflmJk6CT7XODmB38ePp3kygLB7nxvNN+GLu70A==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
codemirror "^6.0.1"
"@abp/core@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.3.tgz#4031ec2c08a00652bb717c962ddc3aa8b3cf72c9"
integrity sha512-9Y7EcLE+0RLnJyhZlSYCElTjrFz+P7uXbyl+1UyuyY+dxyAdZhZ+1WPHFSr0f8KlJrxkjnsPj+gR4e48u15FDw==
"@abp/core@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445"
integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q==
dependencies:
"@abp/utils" "~8.3.0-rc.3"
"@abp/utils" "~8.3.0"
"@abp/datatables.net-bs5@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.3.tgz#da22fbf7fe23671bfa20e83c9490e7bbe169b4aa"
integrity sha512-36VOOd/1461LZN11awaU5xbC3oYYJFebNFBeFZijsc8LtVKCwgMWZ8K3sCOolBVEyltDzKntw+w0NwhlWjd8tA==
"@abp/datatables.net-bs5@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb"
integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA==
dependencies:
"@abp/datatables.net" "~8.3.0-rc.3"
"@abp/datatables.net" "~8.3.0"
datatables.net-bs5 "^2.0.8"
"@abp/datatables.net@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.3.tgz#933ade7c61d3dfb61aa9278eb948e7756013a61f"
integrity sha512-MjSWhmMilHAKb4HmCLQOXesuFWvguIxhpKRAfSfweIiaOtgaPBh4KR8PSGxZgC0fImQYjWSfHQP4QkLAd5xasA==
"@abp/datatables.net@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b"
integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
datatables.net "^2.0.8"
"@abp/font-awesome@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.3.tgz#efa785200433025725e6dcd48c8b6b538938681d"
integrity sha512-DRjSDWhTWmL0I2A7KcFOxQFaLftxg0Rvcss0138j/mGpt64+unzcYo6YRCEga/k6ygxc7dYnhFmQf2tli44toQ==
"@abp/font-awesome@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9"
integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@fortawesome/fontawesome-free" "^6.5.2"
"@abp/highlight.js@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.3.0-rc.3.tgz#aadc37d3d2fdb0f75a28df341b52131e8f55edd4"
integrity sha512-ht2qdrdU4s4sadMv7Fog6zNCWEonV3+D4JCizt0k7dFq13wVSv/xtq04CVe/s0zp5LhD5EfJMleVaaQKEAFV/A==
"@abp/highlight.js@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.3.0.tgz#fabd11a8ef7cd0e379b4c9b359d66b4aa7585e30"
integrity sha512-SHvGXqQrZGuNmup32FisVHrWCdTJyEzHgp6y8Twx1FaP1e0hSN3QK6Jw4Do600ZKI9n5xCK+kMCpdJau8I6bIg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@highlightjs/cdn-assets" "~11.9.0"
"@abp/jquery-form@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.3.tgz#fbb1ceb0e4092243cb018e1d7aa1ca86371fa98c"
integrity sha512-n7Tu4b2UhaRMcQCmzcBMiEYnaaR/OmA7LZfOcg4YP202xnLj29w4R/sRbQjr0w9lvPhue9rrSXaEf43UrV8eyg==
"@abp/jquery-form@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d"
integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.3.tgz#bcc8dad54b880134519f642b6a1a151584889bf2"
integrity sha512-4pfc7vYh5oMZc4+AJRwN7CQmb4ZK29POyuL9RjuBCQbvYCLcru0M5cQTz3wt9jLeAXn402lbwxh1cLioZfw8SQ==
"@abp/jquery-validation-unobtrusive@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521"
integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ==
dependencies:
"@abp/jquery-validation" "~8.3.0-rc.3"
"@abp/jquery-validation" "~8.3.0"
jquery-validation-unobtrusive "^4.0.0"
"@abp/jquery-validation@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.3.tgz#d71e59dfa793070b780bb8078f4cd12b8217f701"
integrity sha512-/OEh5PVKfA4BB7YVmFFBa+GKDR4jzNOkRBUnzplxxcegrXlbbjuxC7VcnsLzXQJ1c2aUO6a1y8L7MsPMjaXVrg==
"@abp/jquery-validation@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887"
integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-validation "^1.20.1"
"@abp/jquery@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.3.tgz#7350b8675c7199b143bad86f46a50c629568605b"
integrity sha512-GkjKCrQmqqeu3xvpWTZxFa1VVRKPhmiutO2syuPi2dReDBhMV6h6EZZeu5y8lHLvL1HTEEANFFFXJGUna07FRQ==
"@abp/jquery@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef"
integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
jquery "~3.7.1"
"@abp/jstree@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.3.0-rc.3.tgz#eb8ad04055d7d7a4f18d165c61cd8400119c87e5"
integrity sha512-OmQ0lkASZM8Yxm42ZKUsuxD2inG7D96SfBlupDCdn1zH1qp9uRu3/7TeliWa9QaHIKeUubQzB6JHgHnO2pCqIw==
"@abp/jstree@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.3.0.tgz#48054d14cd2f5ad255e5ddfb11facfae5902256a"
integrity sha512-9+0cLxIPo1pZJvYsmvo/lWWDI/yH2e9p7iQg/QukQsavvfZ/QNTDweCTI4o407lu66s6921UEZ+KnozvFvuAfg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jstree "^3.3.16"
"@abp/lodash@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.3.tgz#90b1c266a16bd2bdfab22bb635114610738a17ba"
integrity sha512-L4lw6eSOXeXg2IixjdcHHVw1z7Q1wLUJDr8NzlRF51KfEPZ5Lt28IhoJuEfE7y24e6v+q6CL15axPwSQOUIlhw==
"@abp/lodash@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c"
integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
lodash "^4.17.21"
"@abp/luxon@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.3.tgz#dc2a024c4b20b59408c41b259fe9b7cc8820bd7f"
integrity sha512-QOpAHiJxzSW+4HClyTspYaMDSUbY4Sz36d4Q7LSKHcwLIuqQ7rRfGEeWctYZYPwHIgK4udhde08Z8xrzl5tZSg==
"@abp/luxon@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07"
integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
luxon "^3.4.4"
"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.3.tgz#4eb53cf29ecf7c613f2d00e5b1bab4d807fd8396"
integrity sha512-NyQ2Qg2PfsDjWZfSwfsESFFkveIMQXFwWiSWgmeolWeFNtETDI1KJ5Nrf//sY+8zpn6ciCQTI5iaklLPPWQSKg==
"@abp/malihu-custom-scrollbar-plugin@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817"
integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/markdown-it@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-8.3.0-rc.3.tgz#b5fea34b0978da8c25683e54b97e72667af62051"
integrity sha512-YEGu4JRTKohMG7jdl6Jvr0PCaeIwM5+1GgMp+ozs5MbhF9fSrnbgkPAHNxjaN7vwEmwtegXWWTrf3M4cj0KceQ==
"@abp/markdown-it@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-8.3.0.tgz#d8ca44d277dbce804b2240371cbd4d01e7bfeb55"
integrity sha512-hrwh1M/KbOmZ826EbllU/bQFcQq+YskZMpKTIDhPj8FQTXsOIjsvlcNjaBcSCGwE3hHyiUG8h3qw1VjjTE/PmA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
markdown-it "^14.1.0"
"@abp/moment@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.3.tgz#8f997de893d8b69f670f99fe0f3f8a8b3ed64451"
integrity sha512-UulCn7Qt6Y1JfXYd+KGsvJZX7uybXVwud+55tE7TnNl7OXmQ6R3yL6uv+5da0iJsZzQa6c3EknmTkLLD53HfRw==
"@abp/moment@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a"
integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w==
dependencies:
moment "^2.30.1"
"@abp/prismjs@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.3.tgz#9a78f0339f0b20591990f585497e7f5e585828d8"
integrity sha512-IaPkxDQeB9NhFGRh7jEmRTdLcNcCEdwdEELzZpYgQIQ4EOA/bq9jbYa9rD9wAYXRE6/yliQLTzmOzori4ddrXw==
"@abp/prismjs@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6"
integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q==
dependencies:
"@abp/clipboard" "~8.3.0-rc.3"
"@abp/core" "~8.3.0-rc.3"
"@abp/clipboard" "~8.3.0"
"@abp/core" "~8.3.0"
prismjs "^1.29.0"
"@abp/select2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.3.tgz#621505b7a829b02cfbb146c7b710093b9e6e19f4"
integrity sha512-SV0gTfKbEAgMG/ND6zrc3QF1buByHePrPxoI1lt1ZiSgt5m9V9i6+zDkE20/W/puegINJAU2kJZtm9hCfMtXaQ==
"@abp/select2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867"
integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
select2 "^4.0.13"
"@abp/slugify@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.3.0-rc.3.tgz#cedb942d00ce64ed5d097a981b1d29294f2446a9"
integrity sha512-Nyw7EqB8ebFOTQs4MXu9d79ivoTaYSkunnCL6Ebw4jLc0Of8naNKgGYzojRdBqN/8kNCYgsIKn0t/Wga37qmTA==
"@abp/slugify@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.3.0.tgz#ac061a40268437a10defef48045ddce8eb109035"
integrity sha512-YCNg+wiyx2Y+pQesQvsZKQBYj9kVc5041opCFRuwos3IbbHUCtOdzvrc11ZAIAaUOfN5EfGZ2MfVD3v18OH3DQ==
dependencies:
slugify "^1.6.6"
"@abp/star-rating-svg@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.3.0-rc.3.tgz#2b5e9d8473ccf2bbefc5666c388b04560c1ef529"
integrity sha512-VhvEUZ6NPgTl7CQxqNUy2IUCPT4RyOpAVDF5RQF25r/hLoThDKk7IqhsrmWgWLShfJEMMxv9T2rSq8jnoS6MJw==
"@abp/star-rating-svg@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.3.0.tgz#5a8d62eca5158a4bc9f827a610db5c93e6fc9e78"
integrity sha512-W7ds+IYw45M+HNVBPSBMH7Tn7edrxQ+elUgE8eEYdz9MzYoGxwIW97lzwDjr30LMR45+ITzcc6v8GwwF4jSR6w==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
star-rating-svg "^3.5.0"
"@abp/sweetalert2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.3.tgz#728978d364fe80dfd3b9cacdee0960e921d404af"
integrity sha512-G3xAKewy7TH2UZgLg+mVhgng5y1RbanVfsA/VTc9DE1XBMG9fpiqywhbny/5qabFhgvNjMKM28Yce23uAsji1A==
"@abp/sweetalert2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa"
integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
sweetalert2 "^11.3.6"
"@abp/timeago@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.3.tgz#dcef20b900e6e95e12fec64b2f1632949f164eb0"
integrity sha512-sFOlpH54PiHosrmRoPZHtC+RVQdjPWetvtFm7svIfCta+dq6Iz70B7/O0oqQabAIERhA9jTf3ubMtBF6FCdmYg==
"@abp/timeago@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55"
integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
timeago "^1.6.7"
"@abp/toastr@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.3.tgz#5c821d5a049c322f082c37febd5980d2d664292c"
integrity sha512-PdiQMO6UA6yTKGHqztm5Kxu3UzsidnYyQtjojVTYQd87mvgIDIUkoXxXJ2VVgHnRy2FdZW12UfZG4v3/eJHbmg==
"@abp/toastr@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af"
integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
toastr "^2.1.4"
"@abp/tui-editor@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.3.0-rc.3.tgz#52524047cba5b068d7bb22f1295226c090f3c6b1"
integrity sha512-PPipxm/BNtfmimc185kK7hHkkAS692huhKlLJnLHwCpuHvGbKB1rCoourW451V6knuYOkfu79wM3GSnVFROF2A==
"@abp/tui-editor@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.3.0.tgz#188360644140f3173b0347c1ce883612a5eb9e18"
integrity sha512-GNFuKvAlwihuzg91dekGZ5s5aLKySROHbLujanzaco1nfRvWehx+J+oCP0rHzQ3++DpxEXhlz05qW9I1gCEAKA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/prismjs" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
"@abp/prismjs" "~8.3.0"
"@abp/uppy@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.3.0-rc.3.tgz#e0cb5713a362f00e7a21131d47033351f3b98bca"
integrity sha512-yCvRuWI6KgbSJvKNy7PK27q/sS2Pn+R2A8l/1Ys1DU5EVU8QguXcYpbuWWgnhqrCc/x9okMB+FbbJwGMkD2LMQ==
"@abp/uppy@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.3.0.tgz#4b19ae7ed431276415195c19e94a24841232a7aa"
integrity sha512-ob9dVKxCnnxP3VarSIivx5++7KzKpUGA8qFI+tOpTiL2uPI71ERo4neOnCC1USa03bWDEo24cLWz3/CNGVIWrA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
uppy "^3.27.0"
"@abp/utils@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.3.tgz#00b4acf4a4a2b4c4c1193a737f972d6508cf1831"
integrity sha512-cEPVo2QkLmn4Meo++dkvknfKlNlfQ7kmdWdXon1ZViaf9YFbTEZIYD5ccrdGUvKkVlAyOHG3TcAHesiAOyx1PQ==
"@abp/utils@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9"
integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw==
dependencies:
just-compare "^2.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": "~8.3.0-rc.3",
"@abp/docs": "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0",
"@abp/docs": "~8.3.0"
}
}

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

@ -2,238 +2,238 @@
# yarn lockfile v1
"@abp/anchor-js@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.3.0-rc.3.tgz#b75b06cd79c26305555b0e2fcdf246909fd0870a"
integrity sha512-2YmkxFmGGacgsc9Xq//L8bD2oDTw8EFvIEsHua99f1sRWFgJq3QxjNMkk9uM8iQJGROJLs39B8jp2RcVsPWzbg==
"@abp/anchor-js@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.3.0.tgz#8dd848c157440ab41fe46e486afa390fae6838b4"
integrity sha512-fugT/x0pdHbE246W3z3qhunRz/SUkEwYU8ANBu8QM/+JgKwyqIl8M82UD3aHCimKQFqadvMo17XGQJsGcSAS/Q==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
anchor-js "^5.0.0"
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.3.tgz#58dc0dc5bb42e7c2bd70c717256332df2efe6d45"
integrity sha512-ba97ROK5RiEtIwOMwwfHuZFAX/iaQ+fR4Tw6cz+SHGkqfrACP4KnO+GwplCCyG/Y/ZmbX8KTliDEWGKDL4CCqQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.3.tgz#804fe763c3b66cbaf7ac8de7aca53a8690f0283c"
integrity sha512-ldiW9rXMMF7iAZpgFg1gDbwZW64/qLjhIyn+IcO7BzpLD6DKCzeQl/M+p7H1h7TC/ZSLEjRfcQs+ubjMI+OFoQ==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0-rc.3"
"@abp/bootstrap" "~8.3.0-rc.3"
"@abp/bootstrap-datepicker" "~8.3.0-rc.3"
"@abp/bootstrap-daterangepicker" "~8.3.0-rc.3"
"@abp/datatables.net-bs5" "~8.3.0-rc.3"
"@abp/font-awesome" "~8.3.0-rc.3"
"@abp/jquery-form" "~8.3.0-rc.3"
"@abp/jquery-validation-unobtrusive" "~8.3.0-rc.3"
"@abp/lodash" "~8.3.0-rc.3"
"@abp/luxon" "~8.3.0-rc.3"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.3"
"@abp/moment" "~8.3.0-rc.3"
"@abp/select2" "~8.3.0-rc.3"
"@abp/sweetalert2" "~8.3.0-rc.3"
"@abp/timeago" "~8.3.0-rc.3"
"@abp/toastr" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.3.tgz#e1e68f10e1715af44505da2d80b12fdf52d7de8c"
integrity sha512-0ld0/fXTj2mJZ12W1nn87K1Beqg+zbIGSR8lxWXG56jVArxasSqL3CiOQg+lLMUnWq1kwtTuoxZZVA76aL+nJA==
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4"
integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7"
integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0"
"@abp/bootstrap" "~8.3.0"
"@abp/bootstrap-datepicker" "~8.3.0"
"@abp/bootstrap-daterangepicker" "~8.3.0"
"@abp/datatables.net-bs5" "~8.3.0"
"@abp/font-awesome" "~8.3.0"
"@abp/jquery-form" "~8.3.0"
"@abp/jquery-validation-unobtrusive" "~8.3.0"
"@abp/lodash" "~8.3.0"
"@abp/luxon" "~8.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0"
"@abp/moment" "~8.3.0"
"@abp/select2" "~8.3.0"
"@abp/sweetalert2" "~8.3.0"
"@abp/timeago" "~8.3.0"
"@abp/toastr" "~8.3.0"
"@abp/aspnetcore.mvc.ui@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816"
integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw==
dependencies:
ansi-colors "^4.1.3"
"@abp/bootstrap-datepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.3.tgz#319054e54532085031a80d5859dec1a56b7548ac"
integrity sha512-fWKry7HLQ14Vv3GiF/bqge4ySN/9GkK/kZRrdeopdzvmOKTPCHSJ8DNrXAmd+WVHbcqdQ6uovWBOfMufCLohJw==
"@abp/bootstrap-datepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267"
integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w==
dependencies:
bootstrap-datepicker "^1.10.0"
"@abp/bootstrap-daterangepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.3.tgz#873728e2d6313fae07f1f74a4cf483e50bccfa7f"
integrity sha512-nu2N12ftl/1zA7Fe1lAgZiJnkZKFBNjfsPmy+ykQLKGWIkca14b0UHwUIHEaiI26fD6bBT50/kMRzA7uE3goaA==
"@abp/bootstrap-daterangepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17"
integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.3.tgz#ca01bc3b6c4d5b63cf1bb86472e8df366ff3cf40"
integrity sha512-qSJ5s8k3X4WANgUoEZ289q+UKkStnbAMIEmIh6x93nIZHaGAJsK3oaSNgZ2DbGPhxpMKxhJpCuzF1KrRDtwtUQ==
"@abp/bootstrap@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3"
integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
bootstrap "^5.3.3"
"@abp/clipboard@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.3.tgz#73eeba6bebccd0926ee40ba693c4c1e72f559f05"
integrity sha512-NUjh2ML1g9afBZcW0Ulp9/7CEMPH57ukxUwJBC88yd0C+oYC7KVurD7yeLtBrMAMQdfqP0e/lQcxZj69HB9p7g==
"@abp/clipboard@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c"
integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
clipboard "^2.0.11"
"@abp/core@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.3.tgz#4031ec2c08a00652bb717c962ddc3aa8b3cf72c9"
integrity sha512-9Y7EcLE+0RLnJyhZlSYCElTjrFz+P7uXbyl+1UyuyY+dxyAdZhZ+1WPHFSr0f8KlJrxkjnsPj+gR4e48u15FDw==
"@abp/core@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445"
integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q==
dependencies:
"@abp/utils" "~8.3.0-rc.3"
"@abp/utils" "~8.3.0"
"@abp/datatables.net-bs5@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.3.tgz#da22fbf7fe23671bfa20e83c9490e7bbe169b4aa"
integrity sha512-36VOOd/1461LZN11awaU5xbC3oYYJFebNFBeFZijsc8LtVKCwgMWZ8K3sCOolBVEyltDzKntw+w0NwhlWjd8tA==
"@abp/datatables.net-bs5@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb"
integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA==
dependencies:
"@abp/datatables.net" "~8.3.0-rc.3"
"@abp/datatables.net" "~8.3.0"
datatables.net-bs5 "^2.0.8"
"@abp/datatables.net@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.3.tgz#933ade7c61d3dfb61aa9278eb948e7756013a61f"
integrity sha512-MjSWhmMilHAKb4HmCLQOXesuFWvguIxhpKRAfSfweIiaOtgaPBh4KR8PSGxZgC0fImQYjWSfHQP4QkLAd5xasA==
"@abp/datatables.net@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b"
integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
datatables.net "^2.0.8"
"@abp/docs@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.3.0-rc.3.tgz#def4cc74abb30fef29f5bca77b05f02d5e576886"
integrity sha512-jYnF8JCbwQuWDAJn+0pSy6PgP1xo6xkjZjBdHBnwPnA1GgpiPYDf7+/BDNvdEPsUfXR6tanro9qefaVxyyQpgg==
"@abp/docs@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.3.0.tgz#3ca32d80b00e2f2b7410c76d92f653919fa50d20"
integrity sha512-HIHLoRtMeeZIF9JAfQ+EWyFyNWT/rJhtz23rweWz2waaC+Ua5JWkFF3vcNuPiMIqWilOp0iwsSAP0ex10/+7kA==
dependencies:
"@abp/anchor-js" "~8.3.0-rc.3"
"@abp/clipboard" "~8.3.0-rc.3"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.3"
"@abp/popper.js" "~8.3.0-rc.3"
"@abp/prismjs" "~8.3.0-rc.3"
"@abp/anchor-js" "~8.3.0"
"@abp/clipboard" "~8.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0"
"@abp/popper.js" "~8.3.0"
"@abp/prismjs" "~8.3.0"
"@abp/font-awesome@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.3.tgz#efa785200433025725e6dcd48c8b6b538938681d"
integrity sha512-DRjSDWhTWmL0I2A7KcFOxQFaLftxg0Rvcss0138j/mGpt64+unzcYo6YRCEga/k6ygxc7dYnhFmQf2tli44toQ==
"@abp/font-awesome@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9"
integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@fortawesome/fontawesome-free" "^6.5.2"
"@abp/jquery-form@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.3.tgz#fbb1ceb0e4092243cb018e1d7aa1ca86371fa98c"
integrity sha512-n7Tu4b2UhaRMcQCmzcBMiEYnaaR/OmA7LZfOcg4YP202xnLj29w4R/sRbQjr0w9lvPhue9rrSXaEf43UrV8eyg==
"@abp/jquery-form@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d"
integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.3.tgz#bcc8dad54b880134519f642b6a1a151584889bf2"
integrity sha512-4pfc7vYh5oMZc4+AJRwN7CQmb4ZK29POyuL9RjuBCQbvYCLcru0M5cQTz3wt9jLeAXn402lbwxh1cLioZfw8SQ==
"@abp/jquery-validation-unobtrusive@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521"
integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ==
dependencies:
"@abp/jquery-validation" "~8.3.0-rc.3"
"@abp/jquery-validation" "~8.3.0"
jquery-validation-unobtrusive "^4.0.0"
"@abp/jquery-validation@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.3.tgz#d71e59dfa793070b780bb8078f4cd12b8217f701"
integrity sha512-/OEh5PVKfA4BB7YVmFFBa+GKDR4jzNOkRBUnzplxxcegrXlbbjuxC7VcnsLzXQJ1c2aUO6a1y8L7MsPMjaXVrg==
"@abp/jquery-validation@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887"
integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-validation "^1.20.1"
"@abp/jquery@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.3.tgz#7350b8675c7199b143bad86f46a50c629568605b"
integrity sha512-GkjKCrQmqqeu3xvpWTZxFa1VVRKPhmiutO2syuPi2dReDBhMV6h6EZZeu5y8lHLvL1HTEEANFFFXJGUna07FRQ==
"@abp/jquery@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef"
integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
jquery "~3.7.1"
"@abp/lodash@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.3.tgz#90b1c266a16bd2bdfab22bb635114610738a17ba"
integrity sha512-L4lw6eSOXeXg2IixjdcHHVw1z7Q1wLUJDr8NzlRF51KfEPZ5Lt28IhoJuEfE7y24e6v+q6CL15axPwSQOUIlhw==
"@abp/lodash@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c"
integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
lodash "^4.17.21"
"@abp/luxon@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.3.tgz#dc2a024c4b20b59408c41b259fe9b7cc8820bd7f"
integrity sha512-QOpAHiJxzSW+4HClyTspYaMDSUbY4Sz36d4Q7LSKHcwLIuqQ7rRfGEeWctYZYPwHIgK4udhde08Z8xrzl5tZSg==
"@abp/luxon@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07"
integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
luxon "^3.4.4"
"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.3.tgz#4eb53cf29ecf7c613f2d00e5b1bab4d807fd8396"
integrity sha512-NyQ2Qg2PfsDjWZfSwfsESFFkveIMQXFwWiSWgmeolWeFNtETDI1KJ5Nrf//sY+8zpn6ciCQTI5iaklLPPWQSKg==
"@abp/malihu-custom-scrollbar-plugin@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817"
integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.3.tgz#8f997de893d8b69f670f99fe0f3f8a8b3ed64451"
integrity sha512-UulCn7Qt6Y1JfXYd+KGsvJZX7uybXVwud+55tE7TnNl7OXmQ6R3yL6uv+5da0iJsZzQa6c3EknmTkLLD53HfRw==
"@abp/moment@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a"
integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w==
dependencies:
moment "^2.30.1"
"@abp/popper.js@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.3.0-rc.3.tgz#446554b4937f97115346b2f617f58dea91d21a29"
integrity sha512-+lT3no56TfRF4DDVKNxJ56ZOB358UQlAG8BZ9107TmvwP0I+IoKDpApByv6FRnc1Sxy6RoY5vdDRdeTAKSSAyA==
"@abp/popper.js@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.3.0.tgz#95af55f98209ed2537e5f61404e6bfcdf36045e9"
integrity sha512-1jJbKU7zod3ihQ5hpDz91j33gkprQUkysvOzFnyDG8T5yQk+E63kYCHY+dzV3lSI1QpQscZA0c3SWVcgDgROvA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@popperjs/core" "^2.11.8"
"@abp/prismjs@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.3.tgz#9a78f0339f0b20591990f585497e7f5e585828d8"
integrity sha512-IaPkxDQeB9NhFGRh7jEmRTdLcNcCEdwdEELzZpYgQIQ4EOA/bq9jbYa9rD9wAYXRE6/yliQLTzmOzori4ddrXw==
"@abp/prismjs@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6"
integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q==
dependencies:
"@abp/clipboard" "~8.3.0-rc.3"
"@abp/core" "~8.3.0-rc.3"
"@abp/clipboard" "~8.3.0"
"@abp/core" "~8.3.0"
prismjs "^1.29.0"
"@abp/select2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.3.tgz#621505b7a829b02cfbb146c7b710093b9e6e19f4"
integrity sha512-SV0gTfKbEAgMG/ND6zrc3QF1buByHePrPxoI1lt1ZiSgt5m9V9i6+zDkE20/W/puegINJAU2kJZtm9hCfMtXaQ==
"@abp/select2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867"
integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
select2 "^4.0.13"
"@abp/sweetalert2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.3.tgz#728978d364fe80dfd3b9cacdee0960e921d404af"
integrity sha512-G3xAKewy7TH2UZgLg+mVhgng5y1RbanVfsA/VTc9DE1XBMG9fpiqywhbny/5qabFhgvNjMKM28Yce23uAsji1A==
"@abp/sweetalert2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa"
integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
sweetalert2 "^11.3.6"
"@abp/timeago@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.3.tgz#dcef20b900e6e95e12fec64b2f1632949f164eb0"
integrity sha512-sFOlpH54PiHosrmRoPZHtC+RVQdjPWetvtFm7svIfCta+dq6Iz70B7/O0oqQabAIERhA9jTf3ubMtBF6FCdmYg==
"@abp/timeago@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55"
integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
timeago "^1.6.7"
"@abp/toastr@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.3.tgz#5c821d5a049c322f082c37febd5980d2d664292c"
integrity sha512-PdiQMO6UA6yTKGHqztm5Kxu3UzsidnYyQtjojVTYQd87mvgIDIUkoXxXJ2VVgHnRy2FdZW12UfZG4v3/eJHbmg==
"@abp/toastr@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af"
integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
toastr "^2.1.4"
"@abp/utils@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.3.tgz#00b4acf4a4a2b4c4c1193a737f972d6508cf1831"
integrity sha512-cEPVo2QkLmn4Meo++dkvknfKlNlfQ7kmdWdXon1ZViaf9YFbTEZIYD5ccrdGUvKkVlAyOHG3TcAHesiAOyx1PQ==
"@abp/utils@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9"
integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw==
dependencies:
just-compare "^2.3.0"

2
modules/openiddict/app/OpenIddict.Demo.Server/package.json

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

20
modules/openiddict/app/angular/package.json

@ -12,15 +12,15 @@
},
"private": true,
"dependencies": {
"@abp/ng.account": "~8.3.0-rc.3",
"@abp/ng.components": "~8.3.0-rc.3",
"@abp/ng.core": "~8.3.0-rc.3",
"@abp/ng.oauth": "~8.3.0-rc.3",
"@abp/ng.identity": "~8.3.0-rc.3",
"@abp/ng.setting-management": "~8.3.0-rc.3",
"@abp/ng.tenant-management": "~8.3.0-rc.3",
"@abp/ng.theme.shared": "~8.3.0-rc.3",
"@abp/ng.theme.lepton-x": "~3.3.0-rc.3",
"@abp/ng.account": "~8.3.0",
"@abp/ng.components": "~8.3.0",
"@abp/ng.core": "~8.3.0",
"@abp/ng.oauth": "~8.3.0",
"@abp/ng.identity": "~8.3.0",
"@abp/ng.setting-management": "~8.3.0",
"@abp/ng.tenant-management": "~8.3.0",
"@abp/ng.theme.shared": "~8.3.0",
"@abp/ng.theme.lepton-x": "~3.3.0",
"@angular/animations": "^15.0.1",
"@angular/common": "^15.0.1",
"@angular/compiler": "^15.0.1",
@ -36,7 +36,7 @@
"zone.js": "~0.11.4"
},
"devDependencies": {
"@abp/ng.schematics": "~8.3.0-rc.3",
"@abp/ng.schematics": "~8.3.0",
"@angular-devkit/build-angular": "^15.0.1",
"@angular-eslint/builder": "~15.1.0",
"@angular-eslint/eslint-plugin": "~15.1.0",

7
modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Microsoft/Extensions/DependencyInjection/OpenIddictServerBuilderExtensions.cs

@ -5,14 +5,17 @@ namespace Microsoft.Extensions.DependencyInjection;
public static class OpenIddictServerBuilderExtensions
{
public static OpenIddictServerBuilder AddProductionEncryptionAndSigningCertificate(this OpenIddictServerBuilder builder, string fileName, string passPhrase)
public static OpenIddictServerBuilder AddProductionEncryptionAndSigningCertificate(this OpenIddictServerBuilder builder, string fileName, string passPhrase, X509KeyStorageFlags? flag = null)
{
if (!File.Exists(fileName))
{
throw new FileNotFoundException($"Signing Certificate couldn't found: {fileName}");
}
var certificate = new X509Certificate2(fileName, passPhrase);
var certificate = flag != null
? new X509Certificate2(fileName, passPhrase, flag.Value)
: new X509Certificate2(fileName, passPhrase);
builder.AddSigningCertificate(certificate);
builder.AddEncryptionCertificate(certificate);
return builder;

2
modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json

@ -3,6 +3,6 @@
"name": "demo-app",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0"
}
}

258
modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock

@ -2,194 +2,194 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.3.tgz#58dc0dc5bb42e7c2bd70c717256332df2efe6d45"
integrity sha512-ba97ROK5RiEtIwOMwwfHuZFAX/iaQ+fR4Tw6cz+SHGkqfrACP4KnO+GwplCCyG/Y/ZmbX8KTliDEWGKDL4CCqQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.3.tgz#804fe763c3b66cbaf7ac8de7aca53a8690f0283c"
integrity sha512-ldiW9rXMMF7iAZpgFg1gDbwZW64/qLjhIyn+IcO7BzpLD6DKCzeQl/M+p7H1h7TC/ZSLEjRfcQs+ubjMI+OFoQ==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0-rc.3"
"@abp/bootstrap" "~8.3.0-rc.3"
"@abp/bootstrap-datepicker" "~8.3.0-rc.3"
"@abp/bootstrap-daterangepicker" "~8.3.0-rc.3"
"@abp/datatables.net-bs5" "~8.3.0-rc.3"
"@abp/font-awesome" "~8.3.0-rc.3"
"@abp/jquery-form" "~8.3.0-rc.3"
"@abp/jquery-validation-unobtrusive" "~8.3.0-rc.3"
"@abp/lodash" "~8.3.0-rc.3"
"@abp/luxon" "~8.3.0-rc.3"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.3"
"@abp/moment" "~8.3.0-rc.3"
"@abp/select2" "~8.3.0-rc.3"
"@abp/sweetalert2" "~8.3.0-rc.3"
"@abp/timeago" "~8.3.0-rc.3"
"@abp/toastr" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.3.tgz#e1e68f10e1715af44505da2d80b12fdf52d7de8c"
integrity sha512-0ld0/fXTj2mJZ12W1nn87K1Beqg+zbIGSR8lxWXG56jVArxasSqL3CiOQg+lLMUnWq1kwtTuoxZZVA76aL+nJA==
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4"
integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7"
integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0"
"@abp/bootstrap" "~8.3.0"
"@abp/bootstrap-datepicker" "~8.3.0"
"@abp/bootstrap-daterangepicker" "~8.3.0"
"@abp/datatables.net-bs5" "~8.3.0"
"@abp/font-awesome" "~8.3.0"
"@abp/jquery-form" "~8.3.0"
"@abp/jquery-validation-unobtrusive" "~8.3.0"
"@abp/lodash" "~8.3.0"
"@abp/luxon" "~8.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0"
"@abp/moment" "~8.3.0"
"@abp/select2" "~8.3.0"
"@abp/sweetalert2" "~8.3.0"
"@abp/timeago" "~8.3.0"
"@abp/toastr" "~8.3.0"
"@abp/aspnetcore.mvc.ui@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816"
integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw==
dependencies:
ansi-colors "^4.1.3"
"@abp/bootstrap-datepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.3.tgz#319054e54532085031a80d5859dec1a56b7548ac"
integrity sha512-fWKry7HLQ14Vv3GiF/bqge4ySN/9GkK/kZRrdeopdzvmOKTPCHSJ8DNrXAmd+WVHbcqdQ6uovWBOfMufCLohJw==
"@abp/bootstrap-datepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267"
integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w==
dependencies:
bootstrap-datepicker "^1.10.0"
"@abp/bootstrap-daterangepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.3.tgz#873728e2d6313fae07f1f74a4cf483e50bccfa7f"
integrity sha512-nu2N12ftl/1zA7Fe1lAgZiJnkZKFBNjfsPmy+ykQLKGWIkca14b0UHwUIHEaiI26fD6bBT50/kMRzA7uE3goaA==
"@abp/bootstrap-daterangepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17"
integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.3.tgz#ca01bc3b6c4d5b63cf1bb86472e8df366ff3cf40"
integrity sha512-qSJ5s8k3X4WANgUoEZ289q+UKkStnbAMIEmIh6x93nIZHaGAJsK3oaSNgZ2DbGPhxpMKxhJpCuzF1KrRDtwtUQ==
"@abp/bootstrap@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3"
integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
bootstrap "^5.3.3"
"@abp/core@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.3.tgz#4031ec2c08a00652bb717c962ddc3aa8b3cf72c9"
integrity sha512-9Y7EcLE+0RLnJyhZlSYCElTjrFz+P7uXbyl+1UyuyY+dxyAdZhZ+1WPHFSr0f8KlJrxkjnsPj+gR4e48u15FDw==
"@abp/core@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445"
integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q==
dependencies:
"@abp/utils" "~8.3.0-rc.3"
"@abp/utils" "~8.3.0"
"@abp/datatables.net-bs5@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.3.tgz#da22fbf7fe23671bfa20e83c9490e7bbe169b4aa"
integrity sha512-36VOOd/1461LZN11awaU5xbC3oYYJFebNFBeFZijsc8LtVKCwgMWZ8K3sCOolBVEyltDzKntw+w0NwhlWjd8tA==
"@abp/datatables.net-bs5@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb"
integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA==
dependencies:
"@abp/datatables.net" "~8.3.0-rc.3"
"@abp/datatables.net" "~8.3.0"
datatables.net-bs5 "^2.0.8"
"@abp/datatables.net@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.3.tgz#933ade7c61d3dfb61aa9278eb948e7756013a61f"
integrity sha512-MjSWhmMilHAKb4HmCLQOXesuFWvguIxhpKRAfSfweIiaOtgaPBh4KR8PSGxZgC0fImQYjWSfHQP4QkLAd5xasA==
"@abp/datatables.net@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b"
integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
datatables.net "^2.0.8"
"@abp/font-awesome@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.3.tgz#efa785200433025725e6dcd48c8b6b538938681d"
integrity sha512-DRjSDWhTWmL0I2A7KcFOxQFaLftxg0Rvcss0138j/mGpt64+unzcYo6YRCEga/k6ygxc7dYnhFmQf2tli44toQ==
"@abp/font-awesome@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9"
integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@fortawesome/fontawesome-free" "^6.5.2"
"@abp/jquery-form@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.3.tgz#fbb1ceb0e4092243cb018e1d7aa1ca86371fa98c"
integrity sha512-n7Tu4b2UhaRMcQCmzcBMiEYnaaR/OmA7LZfOcg4YP202xnLj29w4R/sRbQjr0w9lvPhue9rrSXaEf43UrV8eyg==
"@abp/jquery-form@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d"
integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.3.tgz#bcc8dad54b880134519f642b6a1a151584889bf2"
integrity sha512-4pfc7vYh5oMZc4+AJRwN7CQmb4ZK29POyuL9RjuBCQbvYCLcru0M5cQTz3wt9jLeAXn402lbwxh1cLioZfw8SQ==
"@abp/jquery-validation-unobtrusive@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521"
integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ==
dependencies:
"@abp/jquery-validation" "~8.3.0-rc.3"
"@abp/jquery-validation" "~8.3.0"
jquery-validation-unobtrusive "^4.0.0"
"@abp/jquery-validation@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.3.tgz#d71e59dfa793070b780bb8078f4cd12b8217f701"
integrity sha512-/OEh5PVKfA4BB7YVmFFBa+GKDR4jzNOkRBUnzplxxcegrXlbbjuxC7VcnsLzXQJ1c2aUO6a1y8L7MsPMjaXVrg==
"@abp/jquery-validation@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887"
integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-validation "^1.20.1"
"@abp/jquery@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.3.tgz#7350b8675c7199b143bad86f46a50c629568605b"
integrity sha512-GkjKCrQmqqeu3xvpWTZxFa1VVRKPhmiutO2syuPi2dReDBhMV6h6EZZeu5y8lHLvL1HTEEANFFFXJGUna07FRQ==
"@abp/jquery@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef"
integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
jquery "~3.7.1"
"@abp/lodash@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.3.tgz#90b1c266a16bd2bdfab22bb635114610738a17ba"
integrity sha512-L4lw6eSOXeXg2IixjdcHHVw1z7Q1wLUJDr8NzlRF51KfEPZ5Lt28IhoJuEfE7y24e6v+q6CL15axPwSQOUIlhw==
"@abp/lodash@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c"
integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
lodash "^4.17.21"
"@abp/luxon@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.3.tgz#dc2a024c4b20b59408c41b259fe9b7cc8820bd7f"
integrity sha512-QOpAHiJxzSW+4HClyTspYaMDSUbY4Sz36d4Q7LSKHcwLIuqQ7rRfGEeWctYZYPwHIgK4udhde08Z8xrzl5tZSg==
"@abp/luxon@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07"
integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
luxon "^3.4.4"
"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.3.tgz#4eb53cf29ecf7c613f2d00e5b1bab4d807fd8396"
integrity sha512-NyQ2Qg2PfsDjWZfSwfsESFFkveIMQXFwWiSWgmeolWeFNtETDI1KJ5Nrf//sY+8zpn6ciCQTI5iaklLPPWQSKg==
"@abp/malihu-custom-scrollbar-plugin@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817"
integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.3.tgz#8f997de893d8b69f670f99fe0f3f8a8b3ed64451"
integrity sha512-UulCn7Qt6Y1JfXYd+KGsvJZX7uybXVwud+55tE7TnNl7OXmQ6R3yL6uv+5da0iJsZzQa6c3EknmTkLLD53HfRw==
"@abp/moment@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a"
integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w==
dependencies:
moment "^2.30.1"
"@abp/select2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.3.tgz#621505b7a829b02cfbb146c7b710093b9e6e19f4"
integrity sha512-SV0gTfKbEAgMG/ND6zrc3QF1buByHePrPxoI1lt1ZiSgt5m9V9i6+zDkE20/W/puegINJAU2kJZtm9hCfMtXaQ==
"@abp/select2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867"
integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
select2 "^4.0.13"
"@abp/sweetalert2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.3.tgz#728978d364fe80dfd3b9cacdee0960e921d404af"
integrity sha512-G3xAKewy7TH2UZgLg+mVhgng5y1RbanVfsA/VTc9DE1XBMG9fpiqywhbny/5qabFhgvNjMKM28Yce23uAsji1A==
"@abp/sweetalert2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa"
integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
sweetalert2 "^11.3.6"
"@abp/timeago@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.3.tgz#dcef20b900e6e95e12fec64b2f1632949f164eb0"
integrity sha512-sFOlpH54PiHosrmRoPZHtC+RVQdjPWetvtFm7svIfCta+dq6Iz70B7/O0oqQabAIERhA9jTf3ubMtBF6FCdmYg==
"@abp/timeago@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55"
integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
timeago "^1.6.7"
"@abp/toastr@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.3.tgz#5c821d5a049c322f082c37febd5980d2d664292c"
integrity sha512-PdiQMO6UA6yTKGHqztm5Kxu3UzsidnYyQtjojVTYQd87mvgIDIUkoXxXJ2VVgHnRy2FdZW12UfZG4v3/eJHbmg==
"@abp/toastr@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af"
integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
toastr "^2.1.4"
"@abp/utils@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.3.tgz#00b4acf4a4a2b4c4c1193a737f972d6508cf1831"
integrity sha512-cEPVo2QkLmn4Meo++dkvknfKlNlfQ7kmdWdXon1ZViaf9YFbTEZIYD5ccrdGUvKkVlAyOHG3TcAHesiAOyx1PQ==
"@abp/utils@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9"
integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw==
dependencies:
just-compare "^2.3.0"

4
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json

@ -3,7 +3,7 @@
"version": "1.0.0",
"private": true,
"dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0-rc.3",
"@abp/virtual-file-explorer": "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0",
"@abp/virtual-file-explorer": "~8.3.0"
}
}

292
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock

@ -2,221 +2,221 @@
# yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.3.tgz#58dc0dc5bb42e7c2bd70c717256332df2efe6d45"
integrity sha512-ba97ROK5RiEtIwOMwwfHuZFAX/iaQ+fR4Tw6cz+SHGkqfrACP4KnO+GwplCCyG/Y/ZmbX8KTliDEWGKDL4CCqQ==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.3.tgz#804fe763c3b66cbaf7ac8de7aca53a8690f0283c"
integrity sha512-ldiW9rXMMF7iAZpgFg1gDbwZW64/qLjhIyn+IcO7BzpLD6DKCzeQl/M+p7H1h7TC/ZSLEjRfcQs+ubjMI+OFoQ==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0-rc.3"
"@abp/bootstrap" "~8.3.0-rc.3"
"@abp/bootstrap-datepicker" "~8.3.0-rc.3"
"@abp/bootstrap-daterangepicker" "~8.3.0-rc.3"
"@abp/datatables.net-bs5" "~8.3.0-rc.3"
"@abp/font-awesome" "~8.3.0-rc.3"
"@abp/jquery-form" "~8.3.0-rc.3"
"@abp/jquery-validation-unobtrusive" "~8.3.0-rc.3"
"@abp/lodash" "~8.3.0-rc.3"
"@abp/luxon" "~8.3.0-rc.3"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.3"
"@abp/moment" "~8.3.0-rc.3"
"@abp/select2" "~8.3.0-rc.3"
"@abp/sweetalert2" "~8.3.0-rc.3"
"@abp/timeago" "~8.3.0-rc.3"
"@abp/toastr" "~8.3.0-rc.3"
"@abp/aspnetcore.mvc.ui@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.3.tgz#e1e68f10e1715af44505da2d80b12fdf52d7de8c"
integrity sha512-0ld0/fXTj2mJZ12W1nn87K1Beqg+zbIGSR8lxWXG56jVArxasSqL3CiOQg+lLMUnWq1kwtTuoxZZVA76aL+nJA==
"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0.tgz#a2d17eb5da2c3abfad4bcc842cfcda0e58a130a4"
integrity sha512-T2dg7WlvNSrwTCfy5wk4gqiJ/15kIjMGM4wLXIJcMYn60yGY/YeX6Q4A3R/qJzfl4JdgW5rt3GpdKv86y/ADXg==
dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0.tgz#5d6bb5181a62770e9cb967980b77e75c115c5ed7"
integrity sha512-o/0eh8jLS+YJiseTKzzioUz0vNnMFzyoz+mkyA4PlO1gqw2JFhzPhTBZ3cuyV9QlxUfEA8dWAkqAUX6vqiHwkw==
dependencies:
"@abp/aspnetcore.mvc.ui" "~8.3.0"
"@abp/bootstrap" "~8.3.0"
"@abp/bootstrap-datepicker" "~8.3.0"
"@abp/bootstrap-daterangepicker" "~8.3.0"
"@abp/datatables.net-bs5" "~8.3.0"
"@abp/font-awesome" "~8.3.0"
"@abp/jquery-form" "~8.3.0"
"@abp/jquery-validation-unobtrusive" "~8.3.0"
"@abp/lodash" "~8.3.0"
"@abp/luxon" "~8.3.0"
"@abp/malihu-custom-scrollbar-plugin" "~8.3.0"
"@abp/moment" "~8.3.0"
"@abp/select2" "~8.3.0"
"@abp/sweetalert2" "~8.3.0"
"@abp/timeago" "~8.3.0"
"@abp/toastr" "~8.3.0"
"@abp/aspnetcore.mvc.ui@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0.tgz#d7ba0539bfcc6661a347dea7f952489010b3e816"
integrity sha512-OxgZhLKiXGFYYpNJ5O/IbhinsniiBPv9586e+1Soar0GckCMIIegJxnJb1Bo1O75blrcK2cIU6LqjRT1FXt2Lw==
dependencies:
ansi-colors "^4.1.3"
"@abp/bootstrap-datepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.3.tgz#319054e54532085031a80d5859dec1a56b7548ac"
integrity sha512-fWKry7HLQ14Vv3GiF/bqge4ySN/9GkK/kZRrdeopdzvmOKTPCHSJ8DNrXAmd+WVHbcqdQ6uovWBOfMufCLohJw==
"@abp/bootstrap-datepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0.tgz#8c1bf9efec37b671d8f28b8b1e89c1ac66684267"
integrity sha512-KCwMtm7x+cnKPeNMzhjDJUce0stwu4e57ibmvA6sMf1tmj+yB256O4E2hIDDohiT3vP/zV8HVHX6uATlcmGC9w==
dependencies:
bootstrap-datepicker "^1.10.0"
"@abp/bootstrap-daterangepicker@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.3.tgz#873728e2d6313fae07f1f74a4cf483e50bccfa7f"
integrity sha512-nu2N12ftl/1zA7Fe1lAgZiJnkZKFBNjfsPmy+ykQLKGWIkca14b0UHwUIHEaiI26fD6bBT50/kMRzA7uE3goaA==
"@abp/bootstrap-daterangepicker@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0.tgz#2b8ed978333502677916f88cbb3e1d1b1c8a3a17"
integrity sha512-uQSfuCQogl4BujdqvtdAoSE+z32ci8FT5+i3gLfpqbgTaxvY/Kv5NxAUH5/1sjnuAE7SMWO+eVvI3V0pXgQohg==
dependencies:
bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.3.tgz#ca01bc3b6c4d5b63cf1bb86472e8df366ff3cf40"
integrity sha512-qSJ5s8k3X4WANgUoEZ289q+UKkStnbAMIEmIh6x93nIZHaGAJsK3oaSNgZ2DbGPhxpMKxhJpCuzF1KrRDtwtUQ==
"@abp/bootstrap@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0.tgz#96d6ea7e6ac30f6e34e495a4224f56f7b2a1a7a3"
integrity sha512-5AmdTtakmWhZmHrb7ibvvf+KwF9OGadpAe7Kv9mNEE02K2qkp7Xw4r5o/bgVl7YfLC1FA6GZZXrV2s2t0gjHtg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
bootstrap "^5.3.3"
"@abp/clipboard@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.3.tgz#73eeba6bebccd0926ee40ba693c4c1e72f559f05"
integrity sha512-NUjh2ML1g9afBZcW0Ulp9/7CEMPH57ukxUwJBC88yd0C+oYC7KVurD7yeLtBrMAMQdfqP0e/lQcxZj69HB9p7g==
"@abp/clipboard@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0.tgz#1b171e533f768cf42c8fc0c9c67fac1c636fee8c"
integrity sha512-T0O4OaMxLLYztAxyvEc3onEOpGHB/C8/jDcvJwd7mgpLoi9zXVfHwpnzkx/egfNJMzp49STD6Jc+jACi8Uq+CQ==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
clipboard "^2.0.11"
"@abp/core@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.3.tgz#4031ec2c08a00652bb717c962ddc3aa8b3cf72c9"
integrity sha512-9Y7EcLE+0RLnJyhZlSYCElTjrFz+P7uXbyl+1UyuyY+dxyAdZhZ+1WPHFSr0f8KlJrxkjnsPj+gR4e48u15FDw==
"@abp/core@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0.tgz#3a68f5a9549efcc3e13500e301f2576751b51445"
integrity sha512-zrxnZi4qij/Y4AZWaXuPqs3Dd7gBtU/onX7FkYxLgQDxYBfx+84QAnPRNRFKMWaD/wKbTUB0wA66U3t2aiQX9Q==
dependencies:
"@abp/utils" "~8.3.0-rc.3"
"@abp/utils" "~8.3.0"
"@abp/datatables.net-bs5@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.3.tgz#da22fbf7fe23671bfa20e83c9490e7bbe169b4aa"
integrity sha512-36VOOd/1461LZN11awaU5xbC3oYYJFebNFBeFZijsc8LtVKCwgMWZ8K3sCOolBVEyltDzKntw+w0NwhlWjd8tA==
"@abp/datatables.net-bs5@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0.tgz#21822ae4912a561afe9112925185aece03fcd0eb"
integrity sha512-GOGYSSHp3iPUDFRX2Y3C0wkiCOJDuYuK/zUSzQLNpOvBMZO+I/oWBcZM+qkVowIzsoRlAGV9+CVV2B/B05qidA==
dependencies:
"@abp/datatables.net" "~8.3.0-rc.3"
"@abp/datatables.net" "~8.3.0"
datatables.net-bs5 "^2.0.8"
"@abp/datatables.net@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.3.tgz#933ade7c61d3dfb61aa9278eb948e7756013a61f"
integrity sha512-MjSWhmMilHAKb4HmCLQOXesuFWvguIxhpKRAfSfweIiaOtgaPBh4KR8PSGxZgC0fImQYjWSfHQP4QkLAd5xasA==
"@abp/datatables.net@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0.tgz#ff697758ce9309ba8311f23aec921c4722588c8b"
integrity sha512-4dIdv7eN1tVouOUrlF+MIdg8zQpecyH61waqLgy1q5jMZQivrTSFZ7UWMG3WVOAYjw5zSUZHZPbzA+ttnaOPkg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
datatables.net "^2.0.8"
"@abp/font-awesome@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.3.tgz#efa785200433025725e6dcd48c8b6b538938681d"
integrity sha512-DRjSDWhTWmL0I2A7KcFOxQFaLftxg0Rvcss0138j/mGpt64+unzcYo6YRCEga/k6ygxc7dYnhFmQf2tli44toQ==
"@abp/font-awesome@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0.tgz#9e4e9adc08dfca52c0a07d1608c5e5662675a4c9"
integrity sha512-NRxvM/dzvQC2Cj/F5i07XB/i6IVTmXcO9sOq6TWosWib0wGaPxRbCSjy8QUAYSD1QYaVQ30XMb3XXImaMGyd8A==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
"@fortawesome/fontawesome-free" "^6.5.2"
"@abp/jquery-form@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.3.tgz#fbb1ceb0e4092243cb018e1d7aa1ca86371fa98c"
integrity sha512-n7Tu4b2UhaRMcQCmzcBMiEYnaaR/OmA7LZfOcg4YP202xnLj29w4R/sRbQjr0w9lvPhue9rrSXaEf43UrV8eyg==
"@abp/jquery-form@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0.tgz#fa2ad2fedbe3d3528ee94cbbd4f94d48f0cb5e4d"
integrity sha512-olP9FmpNVTbOIewsVua0moHVYXw4Sl3chFbvTDLG6vRBohLSjllUXfgY3UEIVWR1PCqnAg+iEJZl9NHB9iOLBg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.3.tgz#bcc8dad54b880134519f642b6a1a151584889bf2"
integrity sha512-4pfc7vYh5oMZc4+AJRwN7CQmb4ZK29POyuL9RjuBCQbvYCLcru0M5cQTz3wt9jLeAXn402lbwxh1cLioZfw8SQ==
"@abp/jquery-validation-unobtrusive@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0.tgz#0992cdd33170df83c79aa3371038c0b30e451521"
integrity sha512-9hidjq8x8sTnP5O3K2b2x9NpxvPd9WB03ENR6OfvM89kfSmQapSvBZTlCu80YK9NaQJ6MLQRLYOCuc3GHcj3EQ==
dependencies:
"@abp/jquery-validation" "~8.3.0-rc.3"
"@abp/jquery-validation" "~8.3.0"
jquery-validation-unobtrusive "^4.0.0"
"@abp/jquery-validation@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.3.tgz#d71e59dfa793070b780bb8078f4cd12b8217f701"
integrity sha512-/OEh5PVKfA4BB7YVmFFBa+GKDR4jzNOkRBUnzplxxcegrXlbbjuxC7VcnsLzXQJ1c2aUO6a1y8L7MsPMjaXVrg==
"@abp/jquery-validation@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0.tgz#bd6a72c6d86f116abe3b5d2adf3752bdbbcca887"
integrity sha512-6l5BZSa3N0Fou6Se7MfUSnI2dD4SYhZ2V988bgPJQ6p37XBOZ2OAj7LEIf5FSjtUzXjao/6/vqjkPNYreNikig==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
jquery-validation "^1.20.1"
"@abp/jquery@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.3.tgz#7350b8675c7199b143bad86f46a50c629568605b"
integrity sha512-GkjKCrQmqqeu3xvpWTZxFa1VVRKPhmiutO2syuPi2dReDBhMV6h6EZZeu5y8lHLvL1HTEEANFFFXJGUna07FRQ==
"@abp/jquery@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0.tgz#9be5ef2f769680226e6a1a981026590caf3b57ef"
integrity sha512-GsFY+n3EtS6B0pAoKd+xMnt5Dzi5bHvIbhLgDgfQfOBzAy3twGRWsPQ3nkuXXm8TppwujMNowU1oiLKPPm0AOA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
jquery "~3.7.1"
"@abp/lodash@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.3.tgz#90b1c266a16bd2bdfab22bb635114610738a17ba"
integrity sha512-L4lw6eSOXeXg2IixjdcHHVw1z7Q1wLUJDr8NzlRF51KfEPZ5Lt28IhoJuEfE7y24e6v+q6CL15axPwSQOUIlhw==
"@abp/lodash@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0.tgz#f5a0a496c999886f2d6999067bfac2e1f0c3969c"
integrity sha512-BiAsONbKR/RKG3WjRaMWVmhNe1ELEsykVq+ogG1Rhk3kwPbvze3TS8k2p0Lu/RC41/BmDUmJ5abg1pUMwkRT8w==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
lodash "^4.17.21"
"@abp/luxon@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.3.tgz#dc2a024c4b20b59408c41b259fe9b7cc8820bd7f"
integrity sha512-QOpAHiJxzSW+4HClyTspYaMDSUbY4Sz36d4Q7LSKHcwLIuqQ7rRfGEeWctYZYPwHIgK4udhde08Z8xrzl5tZSg==
"@abp/luxon@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0.tgz#7dd3f756be1605506e26f7ac76b80cc082a12d07"
integrity sha512-8gdI5BtXkVp0sFg89QVDe8AvgQ7Qfq4JCqz2PMrKPSATR3H8GD6BCaEYpRp6CNTCjVrQjGZdzKgUyea1D3dHbw==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
luxon "^3.4.4"
"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.3.tgz#4eb53cf29ecf7c613f2d00e5b1bab4d807fd8396"
integrity sha512-NyQ2Qg2PfsDjWZfSwfsESFFkveIMQXFwWiSWgmeolWeFNtETDI1KJ5Nrf//sY+8zpn6ciCQTI5iaklLPPWQSKg==
"@abp/malihu-custom-scrollbar-plugin@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0.tgz#c88c132c3402bbb02054ca7d446051950f87a817"
integrity sha512-nd/mb6LJa6fMxal8PGcIjIRIoZ/UHCd01WDC9YI2H4wGCGx0CA0JyHso5oc/OEzJhUL8ujO/vYm9uLb7YahPtA==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.3.tgz#8f997de893d8b69f670f99fe0f3f8a8b3ed64451"
integrity sha512-UulCn7Qt6Y1JfXYd+KGsvJZX7uybXVwud+55tE7TnNl7OXmQ6R3yL6uv+5da0iJsZzQa6c3EknmTkLLD53HfRw==
"@abp/moment@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0.tgz#8e4f7a523ab76ef9e4cd96a399560bad38d38d1a"
integrity sha512-LywSsKuQ2GN/Btmle6CcTKa811zbvUWdC+RLQA792K9HyBs6LvN0qRRluEQZgplairRgh2pDOg8tdFlUERkv2w==
dependencies:
moment "^2.30.1"
"@abp/prismjs@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.3.tgz#9a78f0339f0b20591990f585497e7f5e585828d8"
integrity sha512-IaPkxDQeB9NhFGRh7jEmRTdLcNcCEdwdEELzZpYgQIQ4EOA/bq9jbYa9rD9wAYXRE6/yliQLTzmOzori4ddrXw==
"@abp/prismjs@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0.tgz#0c87c63294d1452ed7152083d2fb6e70aa3aeae6"
integrity sha512-3wpwbqqlGRfQSLcBP+Qb2TKOoVGZVYYwOP6dP3So9ev8J5gFMDEizH9zLwRVHYrrsZZP8/etYnyZ0hn7ewuI5Q==
dependencies:
"@abp/clipboard" "~8.3.0-rc.3"
"@abp/core" "~8.3.0-rc.3"
"@abp/clipboard" "~8.3.0"
"@abp/core" "~8.3.0"
prismjs "^1.29.0"
"@abp/select2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.3.tgz#621505b7a829b02cfbb146c7b710093b9e6e19f4"
integrity sha512-SV0gTfKbEAgMG/ND6zrc3QF1buByHePrPxoI1lt1ZiSgt5m9V9i6+zDkE20/W/puegINJAU2kJZtm9hCfMtXaQ==
"@abp/select2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0.tgz#ef4742fcd345394767f46180f61c6cabbd0b3867"
integrity sha512-bdLt2+ImxxpiZl4HGbYJpdDROQUT7/Z/+8A+6oJNacq3lNekdvufLYgTMxKru6zTbnd9j3HFKMOTE1eRjb9Xqg==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
select2 "^4.0.13"
"@abp/sweetalert2@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.3.tgz#728978d364fe80dfd3b9cacdee0960e921d404af"
integrity sha512-G3xAKewy7TH2UZgLg+mVhgng5y1RbanVfsA/VTc9DE1XBMG9fpiqywhbny/5qabFhgvNjMKM28Yce23uAsji1A==
"@abp/sweetalert2@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0.tgz#a63020d57e44f7940817287d3d9676288bfb85aa"
integrity sha512-ooqPM4Z2v2scnMo5l8ycTmp6t/sW4sCsvIkJ4TyM876WLQJaZxJdOao4RQWuU+dVFr9zg8cOwqLH4q7UEiO6ww==
dependencies:
"@abp/core" "~8.3.0-rc.3"
"@abp/core" "~8.3.0"
sweetalert2 "^11.3.6"
"@abp/timeago@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.3.tgz#dcef20b900e6e95e12fec64b2f1632949f164eb0"
integrity sha512-sFOlpH54PiHosrmRoPZHtC+RVQdjPWetvtFm7svIfCta+dq6Iz70B7/O0oqQabAIERhA9jTf3ubMtBF6FCdmYg==
"@abp/timeago@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0.tgz#b3b8d6927bf170f77af848bc1925e5ef6835bd55"
integrity sha512-Dd6xaUoF9Bp4F9WJnTsFBqY+Gt++UR7UmLvBZL/dvthkeNCu2I8MUsmshkUUjY0lIXpjZwefUOuyupQrgHXPMg==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
timeago "^1.6.7"
"@abp/toastr@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.3.tgz#5c821d5a049c322f082c37febd5980d2d664292c"
integrity sha512-PdiQMO6UA6yTKGHqztm5Kxu3UzsidnYyQtjojVTYQd87mvgIDIUkoXxXJ2VVgHnRy2FdZW12UfZG4v3/eJHbmg==
"@abp/toastr@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0.tgz#e68a2bd8f731e79034594bc2c736f7c66b3df1af"
integrity sha512-aWK/RaX/FmcEKhJLjsw1A0K2c04m2fRJkmo9NwzBCSscy6Msw9IMkqNWLiFDThMU8/qKzq7wq3Vmk/C0IpeAwA==
dependencies:
"@abp/jquery" "~8.3.0-rc.3"
"@abp/jquery" "~8.3.0"
toastr "^2.1.4"
"@abp/utils@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.3.tgz#00b4acf4a4a2b4c4c1193a737f972d6508cf1831"
integrity sha512-cEPVo2QkLmn4Meo++dkvknfKlNlfQ7kmdWdXon1ZViaf9YFbTEZIYD5ccrdGUvKkVlAyOHG3TcAHesiAOyx1PQ==
"@abp/utils@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0.tgz#96ae9266ad4d833fd9d723acef7fc85fabf618d9"
integrity sha512-w/XAqza4Z8wBWRoj5uPNKbd1/bE9L/uUWk6EUSBKmljMRryWQBmaPkb1XgvrOMQIbyyF60tUvvipapQLPVh6hw==
dependencies:
just-compare "^2.3.0"
"@abp/virtual-file-explorer@~8.3.0-rc.3":
version "8.3.0-rc.3"
resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-8.3.0-rc.3.tgz#c9da03db01969b733c49960e7eee0a39479a108e"
integrity sha512-wlW07CnEDiHB/WbvS42HSstVpgYOYJb7wToeIX/06rfAnvvbJx8f97/hCvCbfmD+dM5bFr7QzVOAIH1IMYH/FQ==
"@abp/virtual-file-explorer@~8.3.0":
version "8.3.0"
resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-8.3.0.tgz#44572a5251274db27e740c627d6f6169bb54d1fb"
integrity sha512-UEMeSOfpLTwEhFvmDd8+/CoBslC3n15w51Fnmz/RH007Z4M5BQvt//uTNzEV2trOn/MtAL+bf9X+Ij3Qu6JQvg==
dependencies:
"@abp/clipboard" "~8.3.0-rc.3"
"@abp/prismjs" "~8.3.0-rc.3"
"@abp/clipboard" "~8.3.0"
"@abp/prismjs" "~8.3.0"
"@fortawesome/fontawesome-free@^6.5.2":
version "6.6.0"

2
npm/lerna.json

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

4
npm/ng-packs/package.json

@ -44,8 +44,8 @@
},
"private": true,
"devDependencies": {
"@abp/ng.theme.lepton-x": "~3.3.0-rc.3",
"@abp/utils": "~8.3.0-rc.3",
"@abp/ng.theme.lepton-x": "~3.3.0",
"@abp/utils": "~8.3.0",
"@angular-devkit/build-angular": "~18.1.0",
"@angular-devkit/core": "~18.1.0",
"@angular-devkit/schematics": "~18.1.0",

6
npm/ng-packs/packages/account-core/package.json

@ -1,14 +1,14 @@
{
"name": "@abp/ng.account.core",
"version": "8.3.0-rc.3",
"version": "8.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.core": "~8.3.0-rc.3",
"@abp/ng.theme.shared": "~8.3.0-rc.3",
"@abp/ng.core": "~8.3.0",
"@abp/ng.theme.shared": "~8.3.0",
"tslib": "^2.0.0"
},
"publishConfig": {

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

@ -1,14 +1,14 @@
{
"name": "@abp/ng.account",
"version": "8.3.0-rc.3",
"version": "8.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.account.core": "~8.3.0-rc.3",
"@abp/ng.theme.shared": "~8.3.0-rc.3",
"@abp/ng.account.core": "~8.3.0",
"@abp/ng.theme.shared": "~8.3.0",
"tslib": "^2.0.0"
},
"publishConfig": {

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

@ -1,14 +1,14 @@
{
"name": "@abp/ng.components",
"version": "8.3.0-rc.3",
"version": "8.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"peerDependencies": {
"@abp/ng.core": ">=8.3.0-rc.3",
"@abp/ng.theme.shared": ">=8.3.0-rc.3"
"@abp/ng.core": ">=8.3.0",
"@abp/ng.theme.shared": ">=8.3.0"
},
"dependencies": {
"chart.js": "^3.5.1",

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

@ -1,13 +1,13 @@
{
"name": "@abp/ng.core",
"version": "8.3.0-rc.3",
"version": "8.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/utils": "~8.3.0-rc.3",
"@abp/utils": "~8.3.0",
"just-clone": "^6.0.0",
"just-compare": "^2.0.0",
"ts-toolbelt": "^9.0.0",

16
npm/ng-packs/packages/core/src/lib/utils/generator-utils.ts

@ -1,3 +1,7 @@
import { Injector } from '@angular/core';
import { ABP } from '../models';
import { ConfigStateService } from '../services';
export function uuid(a?: any): string {
return a
? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)
@ -16,7 +20,11 @@ export function generateHash(value: string): number {
return hashed;
}
export function generatePassword(length = 8) {
export function generatePassword(injector?: Injector, length = 8) {
if (injector) {
length = getRequiredPasswordLength(injector);
}
length = Math.min(Math.max(4, length), 128);
const lowers = 'abcdefghjkmnpqrstuvwxyz';
@ -39,3 +47,9 @@ export function generatePassword(length = 8) {
return password.sort(() => 0.5 - Math.random()).join('');
}
function getRequiredPasswordLength(injector: Injector) {
const configState = injector.get(ConfigStateService);
const passwordRules: ABP.Dictionary<string> = configState.getSettings('Identity.Password');
return Number(passwordRules['Abp.Identity.Password.RequiredLength']) || 8;
}

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

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

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

@ -1,6 +1,6 @@
{
"name": "@abp/nx.generators",
"version": "8.3.0-rc.3",
"version": "8.3.0",
"homepage": "https://abp.io",
"generators": "./generators.json",
"type": "commonjs",

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

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

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

@ -1,14 +1,14 @@
{
"name": "@abp/ng.oauth",
"version": "8.3.0-rc.3",
"version": "8.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.core": "~8.3.0-rc.3",
"@abp/utils": "~8.3.0-rc.3",
"@abp/ng.core": "~8.3.0",
"@abp/utils": "~8.3.0",
"angular-oauth2-oidc": "^17.0.0",
"just-clone": "^6.0.0",
"just-compare": "^2.0.0",

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

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

112
npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts

@ -171,58 +171,74 @@ export class PermissionManagementComponent
}
onClickCheckbox(clickedPermission: PermissionGrantInfoDto) {
if (
clickedPermission.isGranted &&
this.isGrantedByOtherProviderName(clickedPermission.grantedProviders)
)
const { isGranted, grantedProviders } = clickedPermission;
if (isGranted && this.isGrantedByOtherProviderName(grantedProviders)) {
return;
}
this.setSelectedGroup(this.selectedGroup);
setTimeout(() => {
this.permissions = this.permissions.map(per => {
if (clickedPermission.name === per.name) {
return { ...per, isGranted: !per.isGranted };
} else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {
return { ...per, isGranted: false };
} else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {
return { ...per, isGranted: true };
}
return per;
});
this.updatePermissionStatus(clickedPermission);
this.updateSelectedGroupPermissions(clickedPermission);
this.setParentClicked(clickedPermission);
this.setTabCheckboxState();
this.setGrantCheckboxState();
this.setParentClicked(clickedPermission);
}, 0);
}
setParentClicked(clickedPermissions: PermissionGrantInfoDto) {
let childPermissionGrantedCount = 0;
let parentPermission: PermissionGrantInfoDto;
updatePermissionStatus(clickedPermission: PermissionGrantInfoDto) {
this.permissions = this.permissions.map(permission => {
const isExactMatch = clickedPermission.name == permission.name;
const isParentOfPermission = clickedPermission.parentName === permission.name;
const isChildOfPermission = clickedPermission.name === permission.parentName;
if (isExactMatch) {
return { ...permission, isGranted: !permission.isGranted };
}
if (isChildOfPermission && permission.isGranted) {
return { ...permission, isGranted: false };
}
if (isParentOfPermission && !permission.isGranted) {
return { ...permission, isGranted: true };
}
return permission;
});
}
setParentClicked(clickedPermission: PermissionGrantInfoDto) {
if (clickedPermission.parentName) {
const parentPermissions = findParentPermissions(this.permissions, clickedPermission);
if (parentPermissions.length > 0) {
const parentNames = new Set(parentPermissions.map(parent => parent.name));
if (clickedPermissions.parentName) {
this.permissions.forEach(per => {
if (per.name === clickedPermissions.parentName) {
parentPermission = per;
}
});
this.permissions.forEach(per => {
if (parentPermission.name === per.parentName) {
per.isGranted && childPermissionGrantedCount++;
}
});
if (childPermissionGrantedCount === 1 && !parentPermission.isGranted) {
this.permissions = this.permissions.map(per => {
if (per.name === parentPermission.name) {
per.isGranted = true;
let updatedIsGranted = per.isGranted;
if (per.parentName === clickedPermission.name && !clickedPermission.isGranted) {
updatedIsGranted = false;
}
if (parentNames.has(per.name)) {
updatedIsGranted = true;
}
return per;
return { ...per, isGranted: updatedIsGranted };
});
}
return;
}
this.permissions = this.permissions.map(per => {
if (per.parentName === clickedPermissions.name) {
per.isGranted = false;
const parents = findParentPermissions(this.permissions, per);
if (parents.length > 0) {
const rootParent = parents[parents.length - 1];
if (rootParent.name === clickedPermission.name && !rootParent.isGranted) {
return { ...per, isGranted: false };
}
}
return per;
});
@ -238,13 +254,13 @@ export class PermissionManagementComponent
}
setTabCheckboxState() {
const selectableGroupPermissions = this.selectedGroupPermissions.filter(per =>
const selectablePermissions = this.permissions.filter(per =>
per.grantedProviders.every(p => p.providerName === this.providerName),
);
const selectedPermissions = selectableGroupPermissions.filter(per => per.isGranted);
const selectedPermissions = selectablePermissions.filter(per => per.isGranted);
const element = document.querySelector('#select-all-in-this-tabs') as any;
if (selectedPermissions.length === selectableGroupPermissions.length) {
if (selectedPermissions.length === selectablePermissions.length) {
element.indeterminate = false;
this.selectThisTab = true;
} else if (selectedPermissions.length === 0) {
@ -387,6 +403,26 @@ export class PermissionManagementComponent
}
}
function findParentPermissions(
permissions: PermissionGrantInfoDto[],
permission: PermissionGrantInfoDto,
): PermissionGrantInfoDto[] {
const permissionMap = new Map(permissions.map(p => [p.name, p]));
let currentPermission = permissionMap.get(permission.name) ?? null;
const parentPermissions: PermissionGrantInfoDto[] = [];
while (currentPermission && currentPermission.parentName) {
const parentPermission = permissionMap.get(currentPermission.parentName);
if (!parentPermission) {
break;
}
parentPermissions.push(parentPermission);
currentPermission = parentPermission;
}
return parentPermissions;
}
function findMargin(
permissions: PermissionGrantInfoDto[],
permission: PermissionGrantInfoDto,

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

@ -1,6 +1,6 @@
{
"name": "@abp/ng.schematics",
"version": "8.3.0-rc.3",
"version": "8.3.0",
"author": "",
"schematics": "./collection.json",
"dependencies": {

5
npm/ng-packs/packages/schematics/src/commands/change-theme/style-map.ts

@ -196,6 +196,11 @@ styleMap.set(ThemeOptionsEnum.LeptonX, [
inject: true,
bundleName: 'bootstrap-icons',
},
{
input: 'node_modules/ng-zorro-antd/tree/style/index.min.css',
inject: false,
bundleName: 'ng-zorro-antd-tree',
},
]);
styleMap.set(ThemeOptionsEnum.LeptonXLite, [
{

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

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

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

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

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

@ -1,14 +1,14 @@
{
"name": "@abp/ng.theme.basic",
"version": "8.3.0-rc.3",
"version": "8.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.account.core": "~8.3.0-rc.3",
"@abp/ng.theme.shared": "~8.3.0-rc.3",
"@abp/ng.account.core": "~8.3.0",
"@abp/ng.theme.shared": "~8.3.0",
"tslib": "^2.0.0"
},
"publishConfig": {

8
npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.html

@ -56,9 +56,7 @@
</div>
</div>
} @else {
<ng-template #loginBtn>
<a role="button" class="nav-link pointer" (click)="navigateToLogin()">{{
'AbpAccount::Login' | abpLocalization
}}</a>
</ng-template>
<a role="button" class="nav-link pointer" (click)="navigateToLogin()">
{{ 'AbpAccount::Login' | abpLocalization }}
</a>
}

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

@ -1,13 +1,13 @@
{
"name": "@abp/ng.theme.shared",
"version": "8.3.0-rc.3",
"version": "8.3.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
"@abp/ng.core": "~8.3.0-rc.3",
"@abp/ng.core": "~8.3.0",
"@fortawesome/fontawesome-free": "^5.15.4",
"@ng-bootstrap/ng-bootstrap": "~16.0.0",
"@ngx-validate/core": "^0.2.0",

4
npm/packs/anchor-js/package.json

@ -1,11 +1,11 @@
{
"version": "8.3.0-rc.3",
"version": "8.3.0",
"name": "@abp/anchor-js",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/core": "~8.3.0-rc.3",
"@abp/core": "~8.3.0",
"anchor-js": "^5.0.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",

4
npm/packs/aspnetcore.components.server.basictheme/package.json

@ -1,11 +1,11 @@
{
"version": "8.3.0-rc.3",
"version": "8.3.0",
"name": "@abp/aspnetcore.components.server.basictheme",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/aspnetcore.components.server.theming": "~8.3.0-rc.3"
"@abp/aspnetcore.components.server.theming": "~8.3.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",

6
npm/packs/aspnetcore.components.server.theming/package.json

@ -1,12 +1,12 @@
{
"version": "8.3.0-rc.3",
"version": "8.3.0",
"name": "@abp/aspnetcore.components.server.theming",
"publishConfig": {
"access": "public"
},
"dependencies": {
"@abp/bootstrap": "~8.3.0-rc.3",
"@abp/font-awesome": "~8.3.0-rc.3"
"@abp/bootstrap": "~8.3.0",
"@abp/font-awesome": "~8.3.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",

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

Loading…
Cancel
Save