diff --git a/.github/ISSUE_TEMPLATE/03_studio.yml b/.github/ISSUE_TEMPLATE/03_studio.yml new file mode 100644 index 0000000000..c6839403d7 --- /dev/null +++ b/.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 diff --git a/.github/ISSUE_TEMPLATE/03_article_request.yml b/.github/ISSUE_TEMPLATE/04_article_request.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/03_article_request.yml rename to .github/ISSUE_TEMPLATE/04_article_request.yml diff --git a/.github/ISSUE_TEMPLATE/04_performance_issue.md b/.github/ISSUE_TEMPLATE/05_performance_issue.md similarity index 100% rename from .github/ISSUE_TEMPLATE/04_performance_issue.md rename to .github/ISSUE_TEMPLATE/05_performance_issue.md diff --git a/.github/ISSUE_TEMPLATE/05_blank_issue.md b/.github/ISSUE_TEMPLATE/06_blank_issue.md similarity index 100% rename from .github/ISSUE_TEMPLATE/05_blank_issue.md rename to .github/ISSUE_TEMPLATE/06_blank_issue.md diff --git a/Directory.Packages.props b/Directory.Packages.props index b43886f7cf..8f741e93b8 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -6,7 +6,7 @@ - + @@ -38,6 +38,7 @@ + diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json index 2429f52eef..48cba301a9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json @@ -15,6 +15,7 @@ "Permission:Maintain": "Maintain", "Permission:ClearCaches": "Clear caches", "Permission:Modules": "Modules", + "Permission:UserDownloads": "User Downloads", "Permission:Packages": "Packages", "Permission:Edit": "Edit", "Permission:Delete": "Delete", @@ -102,6 +103,9 @@ "DoYouWantToCreateNewUser": "Do you want to create new user?", "MasterModules": "Master Modules", "OrganizationName": "Organisation name", + "DownloadType": "Download type", + "UserDownloads": "User Downloads", + "AcceptNewsletter": "Accept newsletter", "CreationDate": "Creation date", "LicenseStartDate": "License start date", "LicenseEndDate": "License end date", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 825de3e1cc..703c158dea 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -120,8 +120,15 @@ "PurchaseOrderNo": "Purchase order no", "QuotationDate": "Quotation date", "CompanyName": "Company name", + "DownloadType": "Download type", + "UserDownloads": "User Downloads", + "AcceptNewsletter": "Accept newsletter", "CompanyAddress": "Company address", "Price": "Price", + "Unknown": "Unknown", + "DddEBook": "Ddd EBook", + "MasteringAbpFrameworkEBook": "Mastering AbpFramework EBook", + "MicroserviceEBook": "Microservice EBook", "DiscountText": "Discount text", "DiscountQuantity": "Discount quantity", "DiscountPrice": "Discount price", @@ -284,6 +291,7 @@ "Menu:Quotation": "Quotation", "Menu:Invoice": "Invoice", "Menu:Quotation/Invoice": "Quotation/Invoice", + "Menu:UserDownloads": "User Downloads", "Menu:PaymentRequests": "Payment Requests", "Permission:PaymentRequests": "Payment Requests", "PaymentRequests": "Payment Requests", @@ -566,6 +574,7 @@ "AllowAbpStudioBetaAccess": "Allow ABP Studio Beta Access", "TotalQuestionCanNotBeNullMessage": "Total Question can not be null", "Permission:OrganizationAutoRenewalPayments": "Organization Auto Renewal Payments", + "Permission:UserDownloads": "User Downloads", "Permission:RetryFailedPayments": "Retry Failed Payments", "AutoRenewalIsNotEnabled": "Auto Renewal is not enabled!", "LicenseIsNotExpired": "License is not expired!", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index 5ef7d9b717..b5245caab8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -569,6 +569,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: {0}", "CreatePostCoverInfo": "For creating an effective post, add a cover photo. Upload 16:9 aspect ratio pictures for the best view.
Maximum file size: 1MB.", + "CreatePostCoverInfo_Title": "Add a cover image to your post.", + "CreatePostCoverInfo1": " Accepted file types : JPEG, JPG, PNG", + "CreatePostCoverInfo2": " Max file size : 1 MB", + "CreatePostCoverInfo3": " Image proportion : 16:9", + "CreatePostCoverInfo4": " Download a sample cover image ", "ThisExtensionIsNotAllowed": "This extension is not allowed.", "TheFileIsTooLarge": "The file is too large.", "GoToThePost": "Go to the Post", @@ -1440,6 +1445,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.", @@ -1823,6 +1829,9 @@ "BackgroundWorkers": "Background Workers", "BackgroundWorkersExplanation": "Define operations to run in a separate, dedicated thread. Use the built-in background workers or integrate your own. Hangfire and Quartz integrations are already available.", "ConcurrencyCheck": "Concurrency Check", - "ConcurrencyCheckExplanation": "ABP provides an optimistic concurrency check mechanism to ensure data consistency in your application and prevents users access or change the same data in a database at the same time." + "ConcurrencyCheckExplanation": "ABP provides an optimistic concurrency check mechanism to ensure data consistency in your application and prevents users access or change the same data in a database at the same time.", + "NewsletterEmailFooterCreateTemplateMessage": "
Thank you for subscribing! We're thrilled to have you on board.
As a subscriber, you'll receive the latest updates on:
  • Promotional Offers:Benefit from exclusive discounts, seasonal campaigns, and special offers.
  • Events:Stay informed about our Community Talks, Webinars, and the ABP DOTNET Conferences.
  • Release Notes:Get the latest on ABP Platform releases and new products.
  • Newsletter:Enjoy our blog posts, community news, and more.

We look forward to keeping you informed and engaged.
", + "NewsletterDeleteSubscriptionDescription": "
This is a confirmation that you have unsubscribed from the following email categories:
  • Promotional Offers:Discounts, seasonal campaigns, etc.
  • Events:Community Talks, Webinars, ABP DOTNET Conference, etc.
  • Release Notes:ABP Platform releases, new products, etc.
  • Newsletter:Blog posts, community news, etc.

Please note that you will still receive important transactional emails related to your account.
", + "NewsletterEmailFooterTemplateDeleteSubscription": "If you change your mind, you're always welcome to resubscribe!" } } \ No newline at end of file diff --git a/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/POST.md b/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/POST.md new file mode 100644 index 0000000000..c28a80af5e --- /dev/null +++ b/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/POST.md @@ -0,0 +1,64 @@ + + +![book](images/book.jpg) + +Ahead-of-Time (AOT) compilation and Just-in-Time (JIT) compilation are two different methods for compiling Angular applications. Here's a breakdown of the differences between them: + +### **Ahead-of-Time (AOT) Compilation** + +**What is AOT?** + +- AOT compilation refers to the process of compiling your Angular application during the build phase, before the application is served to the browser. +- The Angular compiler converts your TypeScript and HTML templates into efficient JavaScript code ahead of time. + +**Advantages:** + +1. **Faster Rendering:** Since the compilation is done beforehand, the browser receives precompiled code, leading to faster rendering and better performance when the app loads. +2. **Smaller Bundle Size:** AOT eliminates the need for the Angular compiler in the client-side bundle, which reduces the overall bundle size. +3. **Improved Security:** AOT compilation checks your templates and bindings during the build process, catching errors early and reducing the risk of injection attacks. +4. **Early Error Detection:** Errors related to templates and bindings are caught during the build time rather than at runtime, leading to more robust and error-free applications. + +**When to Use:** + +- AOT is typically used in production builds because it provides better performance, smaller bundles, and more secure applications. + +**How to Use:** + +- AOT is the default when you run `ng build --prod` in an Angular project. + +### **Just-in-Time (JIT) Compilation** + +**What is JIT?** + +- JIT compilation occurs in the browser at runtime. The Angular compiler translates the TypeScript and HTML templates into JavaScript code just before the application runs in the browser. +- The application is compiled on the fly as the user interacts with it. + +**Advantages:** + +1. **Faster Build Time:** Since there’s no pre-compilation step, the build process is faster during development. +2. **More Flexible Development:** JIT allows for rapid iteration during development, as changes can be quickly reflected without needing to rebuild the entire application. +3. **Dynamic Components:** JIT allows for more flexibility in scenarios where components need to be dynamically created or compiled at runtime. + +**When to Use:** + +- JIT is typically used in development environments because it allows for quicker build times and easier debugging. + +**How to Use:** + +- JIT is the default compilation method when you run `ng serve` for development builds in Angular. + +### **Comparison Summary:** + +| Feature | AOT (Ahead-of-Time) | JIT (Just-in-Time) | +| ---------------------- | ----------------------------- | ---------------------------------- | +| **Compilation Timing** | At build time | At runtime | +| **Performance** | Faster application startup | Slower application startup | +| **Bundle Size** | Smaller (no Angular compiler) | Larger (includes Angular compiler) | +| **Error Detection** | Catches template errors early | Errors caught at runtime | +| **Use Case** | Production | Development | +| **Dynamic Components** | Less flexible | More flexible | + +### **Best Practices:** + +- **Use AOT** for production builds to ensure faster load times, smaller bundle sizes, and more secure applications. +- **Use JIT** during development to take advantage of quicker builds and easier debugging. \ No newline at end of file diff --git a/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/images/book.jpg b/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/images/book.jpg new file mode 100644 index 0000000000..bb1b8e86dc Binary files /dev/null and b/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/images/book.jpg differ diff --git a/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/images/cover.png b/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/images/cover.png new file mode 100644 index 0000000000..236eddc965 Binary files /dev/null and b/docs/en/Community-Articles/2024-08-28-Understanding-AOT-vs-JIT/images/cover.png differ diff --git a/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/Post.md b/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/Post.md new file mode 100644 index 0000000000..c13c5ab345 --- /dev/null +++ b/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/Post.md @@ -0,0 +1,85 @@ +# What is Angular Schematics? + +![Cover Image](cover.png) + +**Angular Schematics** is a powerful tool which is part of the Angular CLI that allows developers to automate various development tasks by **generating and modifying code**. Schematics provides a way to create **templates and boilerplate code** for Angular applications or libraries, enabling consistency and reducing the amount of repetitive work. + +### Key Concepts of Angular Schematics: + +1. **Code Generation:** + - Schematics can generate boilerplate code for various Angular artifacts, such as components, services, modules, pipes... For example, when you run a command like `ng generate component my-component`, Angular uses a schematic to create the component files and update the necessary modules. + +2. **Code Modification:** + - Schematics can also modify existing code in your project. This includes tasks like updating configuration files, adding new routes, or modifying Angular modules. They can be very useful when upgrading projects to a new version of Angular or adding new features that require changes to the existing codebase. + +3. **Custom Schematics:** + - Developers can create their own custom schematics to automate repetitive tasks specific to their projects. For example, if your team frequently needs to set up a certain type of service or configure specific libraries, you can create a schematic that automates these steps. In [ABP Suite](https://abp.io/suite), we use the custom schematics templates to generate CRUD pages for Angular UI. + +4. **Collection of Schematics:** + - Schematics are often grouped into collections. The Angular CLI itself is a collection of schematics. You can create your own collection or use third-party schematic collections created by the Angular community. + +5. **Integration with Angular CLI:** + - Schematics is integrated with the Angular CLI. The `ng generate` and `ng add` commands are examples of how schematics are used in everyday Angular development. When you use these commands, the Angular CLI runs the corresponding schematic to perform the desired operation. + +6. **Upgrade Tasks:** + - Schematics can be used to automate the process of upgrading Angular applications. For example, the Angular Update command (`ng update`) uses schematics to automatically apply necessary changes to your project when upgrading to a new version of Angular. + +### Common Use Cases: + +- **Generating Components, Services, Modules.:** Easily create Angular building blocks with commands like `ng generate component`, `ng generate service`, or `ng generate module`. + +- **Adding Libraries:** Automatically set up and configure third-party libraries with `ng add`. For example, `ng add @angular/material` uses a schematic to install and configure Angular Material in your project. + +- **Automating Project Upgrades:** Simplify the process of upgrading Angular versions by running `ng update`, which uses schematics to make necessary code changes. + +- **Custom Project Scaffolding:** Create custom schematics to enforce your team's development standards and best practices by automating the creation of specific project structures. + +### How to Create a Custom Schematic: + +Creating a custom schematic involves several steps: +1. **Install the Schematics CLI:** + ```bash + npm install -g @angular-devkit/schematics-cli + ``` + +2. **Create a New Schematic Project:** + ```bash + schematics blank --name=my-schematic + cd my-schematic + ``` + +3. **Define Your Schematic:** Modify the files in the schematic project to define what your schematic will generate or modify. + +4. **Test Your Schematic:** You can run your schematic locally using the `schematics` command. + +5. **Publish Your Schematic (Optional):** Once your schematic is ready, you can publish it to npm or include it in your Angular projects. + +#### Example: +If you want to create a custom component with specific settings or styles, you can create a schematic to automate this. Every time a developer on your team needs to create this type of component, they can run the schematic, ensuring consistency across the project. + + + +### Helpful Links + +Here are the direct links for the Angular Schematics resources: + +- [Angular Official Documentation: Schematics Overview — angular.io](https://angular.io/guide/schematics) + +- [Creating Custom Schematics — angular.io](https://angular.io/guide/schematics-for-libraries) + +- [CLI Schematic Command — angular.io](https://angular.io/cli/schematic) + +- [Devkit Schematics— github.com](https://github.com/angular/angular-cli/tree/main/packages/angular_devkit/schematics) + +- [Schematics Examples — github.com](https://github.com/angular/angular-cli/tree/main/packages/schematics/angular) + +- [Debugging Angular Schematics — dev.to](https://dev.to/nikolasleblanc/debugging-angular-schematics-1ne0) + +- [Using Schematics with Nx — nx.dev](https://nx.dev/guides/using-angular-schematics) + +- [Schematics API — angular.io](https://angular.io/api/schematics) + + + +### Conclusion: +Angular Schematics is a powerful tool for automating repetitive tasks, generating consistent code, and managing project upgrades. By leveraging schematics, Angular developers can save time, reduce errors, and enforce best practices across their projects. \ No newline at end of file diff --git a/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/cover.png b/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/cover.png new file mode 100644 index 0000000000..3e155996e8 Binary files /dev/null and b/docs/en/Community-Articles/2024-08-29-What-is-Angular-Schematics/cover.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/Post.md b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/Post.md new file mode 100644 index 0000000000..b80917f4c4 --- /dev/null +++ b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/Post.md @@ -0,0 +1,123 @@ +# Do You Really Need Multi-tenancy? + +This article discusses whether you need a multi-tenancy architecture for your next project. Answer my critical questions to decide if multi-tenancy suits your application or not! + +![Cover image](cover.png) + +## What’s Multi-tenancy? + +It’s an architectural approach to building SaaS solutions. In this model, the hardware and software resources are shared between tenants, and application data is virtually or physically isolated between tenants. Here, **the main goal is minimizing costs and maximizing customer count**. + +**An ideal multi-tenant application should be;** + +- A multi-tenancy system should be designed to **work seamlessly** and make your application code **multi-tenancy aware** as much as possible. +- When a customer wants to separate their database, it **should also be deployable to on-premise**. + + +![Tenancy Schema](tenancy-schema.png) + + +--- + + + +## Multi-tenant Development is Hard - Reconsider! + +**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; + +![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".** + +--- + + + +## Do I Really Need Multi-tenancy? + +Ask yourself the following questions if you cannot decide whether your app needs multi-tenancy or not; + +1. Can a user be shared among other tenants? +2. Any tenant needs to see other tenant's data? +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? + + + +Let's answer these questions; + + + +##### **1. Can a user be shared among other tenants?** + +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! + +![Shared entity](shared-entity.png) + +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 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?** + +This question is not a clear decision parameter for multi-tenancy. But it can be a supportive parameter for your decision. Actually, this is a common feature in multi-tenant systems where aggregated reporting or analytics across tenants is required. In a virtually isolated multi-tenant environment, you can easily do this by just disabling the multi-tenancy filter. However, when some of your tenants have separate databases or application instances, it becomes harder to get aggregate reports. + +Do you need cumulative queries over your tenants? If your answer is YES, then you should keep all your tenants' data in a shared database to easily query them. But if you still need to physically move some of the tenants, then you have the following strategies: + +* First, all your databases need to be on the same network so that you can gather data from different databases. +* Second, in some cases, according to the GDPR requirements or government agency regulations, you must locate the database in their geo-location. And you cannot connect to these databases. In this case, you can create a Web API in your application that gives you a report for this specific tenant. Later, you'll gather the reports from all your tenants like this and merge them. +* Third; When the tenant databases are in different geo-location (inaccessible), then each tenant can send their report to your central server. So you can generate cumulative reports. + + + +## Conclusion + +- 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. **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!** + + + +--- + + + +![Logo](https://abp.io/assets/platform/img/logos/logo-abp-dark.svg) + +We’ve been working for a long time on multi-tenancy, microservices, modular development topics, and developing tools and frameworks for repetitive development tasks. Check out the amazing open-source [ABP Framework](https://github.com/abpframework/abp), which provides all the alternative solutions to implement a multi-tenant architecture. The multi-tenancy logic is seamlessly done at the core level, and you can simply focus on your business code. Keep it simple, nice and neat with ABP. + + +```bash +ABP.IO: The Modern Way of Developing Web Apps for .NET Developers! +``` + + + +Alper Ebicoglu / [x.com/alperebicoglu](https://x.com/alperebicoglu) + +— ABP Team diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/coupled-tenants.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/coupled-tenants.png new file mode 100644 index 0000000000..5dbe089084 Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/coupled-tenants.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/cover.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/cover.png new file mode 100644 index 0000000000..0946615495 Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/cover.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/questions.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/questions.png new file mode 100644 index 0000000000..d75731dbef Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/questions.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/security-gdpr-db-retention.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/security-gdpr-db-retention.png new file mode 100644 index 0000000000..ae38dae0e2 Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/security-gdpr-db-retention.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/shared-entity.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/shared-entity.png new file mode 100644 index 0000000000..bb9b5d979d Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/shared-entity.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/tenancy-schema.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/tenancy-schema.png new file mode 100644 index 0000000000..952aca7266 Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/tenancy-schema.png differ diff --git a/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/user-multiple-membership.png b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/user-multiple-membership.png new file mode 100644 index 0000000000..9cd6bcfb48 Binary files /dev/null and b/docs/en/Community-Articles/2024-09-01-Do-You-Need-MultiTenancy/user-multiple-membership.png differ diff --git a/docs/en/cli/index.md b/docs/en/cli/index.md index a25ed0c4eb..ba3e6aabf8 100644 --- a/docs/en/cli/index.md +++ b/docs/en/cli/index.md @@ -140,10 +140,10 @@ For more samples, go to [ABP CLI Create Solution Samples](new-command-samples.md * `--tiered`: Creates a tiered solution where Web and Http API layers are physically separated. If not specified, it creates a layered solution which is less complex and suitable for most scenarios. (*Available for* ***Team*** *or higher licenses*) * `angular`: Angular UI. There are some additional options for this template: * `--tiered`: The Auth Server project comes as a separate project and runs at a different endpoint. It separates the Auth Server from the API Host application. If not specified, you will have a single endpoint in the server side. (*Available for* ***Team*** *or higher licenses*) - * `--pwa`: Specifies the project as Progressive Web Application. + * `--progressive-web-app` or `-pwa`: Specifies the project as Progressive Web Application. * `blazor`: Blazor UI. There are some additional options for this template: * `--tiered`The Auth Server project comes as a separate project and runs at a different endpoint. It separates the Auth Server from the API Host application. If not specified, you will have a single endpoint in the server side. (*Available for* ***Team*** *or higher licenses*) - * `--pwa`: Specifies the project as Progressive Web Application. + * `--progressive-web-app` or `-pwa`: Specifies the project as Progressive Web Application. * `blazor-server`: Blazor Server UI. There are some additional options for this template: * `--tiered`: The Auth Server and the API Host project comes as separate projects and run at different endpoints. It has 3 startup projects: *HttpApi.Host*, *AuthServer* and *Blazor* and and each runs on different endpoints. If not specified, you will have a single endpoint for your web project. (*Available for* ***Team*** *or higher licenses*) * `maui-blazor`: Blazor Maui UI (*Available for* ***Team*** *or higher licenses*). There are some additional options for this template: @@ -158,8 +158,12 @@ For more samples, go to [ABP CLI Create Solution Samples](new-command-samples.md * `ef`: Entity Framework Core. * `mongodb`: MongoDB. * `--connection-string` or `-cs`: Overwrites the default connection strings in all `appsettings.json` files. The default connection string is `Server=localhost;Database=MyProjectName;Trusted_Connection=True` for EF Core and it is configured to use the SQL Server. If you want to use the EF Core, but need to change the DBMS, you can change it as [described here](../framework/data/entity-framework-core/other-dbms.md) (after creating the solution). + * `--skip-migrations` or `-sm`: Skips the creating initial database migration step. + * `--skip-migrator` or `-smr`: Skips the run database migrator step. * `--public-website`: Public Website is a front-facing website for describing your project, listing your products and doing SEO for marketing purposes. Users can login and register on your website with this website. This option is only included in PRO templates. + * `--without-cms-kit`: When you add a public website to your solution, it automatically includes the [CmsKit](./../modules/cms-kit-pro/index.md) module. If you don't want to include *CmsKit*, you can use this parameter. * `--separate-tenant-schema`: Creates a different DbContext for tenant schema. If not specified, the tenant schema is shared with the host schema. This option is only included in PRO templates. + * `--sample-crud-page` or `-scp`: It adds the [BookStore](./../tutorials/book-store/index.md) sample to your solution. * `--theme` or `-th`: Specifes the theme. Default theme is `leptonx`. Available themes: * `leptonx`: LeptonX Theme. (*Available for* ***Team*** *or higher licenses*) * `leptonx-lite`: LeptonX-Lite Theme. @@ -176,6 +180,9 @@ For more samples, go to [ABP CLI Create Solution Samples](new-command-samples.md * `ef`: Entity Framework Core. * `mongodb`: MongoDB. * `--connection-string` or `-cs`: Overwrites the default connection strings in all `appsettings.json` files. The default connection string is `Server=localhost;Database=MyProjectName;Trusted_Connection=True` for EF Core and it is configured to use the SQL Server. If you want to use the EF Core, but need to change the DBMS, you can change it as [described here](../framework/data/entity-framework-core/other-dbms.md) (after creating the solution). + * `--skip-migrations` or `-sm`: Skips the creating initial database migration step. + * `--skip-migrator` or `-smr`: Skips the run database migrator step. + * `--sample-crud-page` or `-scp`: It adds the [BookStore](./../tutorials/book-store/index.md) sample to your solution. * `--theme`: Specifes the theme. Default theme is `leptonx`. Available themes: * `leptonx`: LeptonX Theme. (*Available for* ***Team*** *or higher licenses*) * `leptonx-lite`: LeptonX-Lite Theme. @@ -213,6 +220,7 @@ For more samples, go to [ABP CLI Create Solution Samples](new-command-samples.md * `--dont-run-install-libs`: Skip installing client side packages. * `--dont-run-bundling`: Skip bundling for Blazor packages. * `--no-kubernetes-configuration` or `-nkc`: Skips the Kubernetes configuration files. +* `--no-social-logins` or `-nsl`: Skipts the social login configuration. * *Module Options*: You can skip some modules if you don't want to add them to your solution (*Available for* ***Team*** *or higher licenses*). Available commands: * `-no-saas`: Skips the Saas module. * `-no-gdpr`: Skips the GDPR module. @@ -796,12 +804,19 @@ Examples: ````bash abp upgrade -t app +abp upgrade -t app --language-management --gdpr --audit-logging-ui --text-template-management --openiddict-pro +abp upgrade -t app-nolayers --audit-logging-ui abp upgrade -t app-nolayers -p D:\MyProjects\MyProject ```` #### Options * `--path` or `-p`: Specifies the module path. The module should be in that directory. If not specified, the default is the current directory. +* `--gdpr`: Installs GDPR module too. +* `--language-management`: Installs Language Management module too. +* `--audit-logging-ui`: Installs Audit Logging Pro (UI) module too. +* `--text-template-management`: Installs Text Template Management module too. +* `--openiddict-pro`: Installs OpenIddict Pro (UI) module too. ### translate @@ -909,6 +924,7 @@ abp bundle [options] * ```--project-type``` or ```-t```: Specifies the project type. Default type is `webassembly`. Available types: * `webassembly` * `maui-blazor` +* `--version` or `-v`: Specifies the ABP Framework version that the project is using. This is helpful for those who use central package management. `bundle` command reads the `appsettings.json` file inside the Blazor and MAUI Blazor project for bundling options. For more details about managing style and script references in Blazor or MAUI Blazor apps, see [Managing Global Scripts & Styles](../framework/ui/blazor/global-scripts-styles.md) diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 5222de9a06..b3d2b55678 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -184,6 +184,14 @@ { "text": "Concepts", "path": "studio/concepts.md" + }, + { + "text": "Version Compatibility", + "path": "studio/version-compatibility.md" + }, + { + "text": "Release Notes", + "path": "studio/release-notes.md" } ] }, @@ -438,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" @@ -840,7 +852,7 @@ "items": [ { "text": "Overview", - "path": "framework/ui/mvc-razor-pages" + "path": "framework/ui/mvc-razor-pages/overall" }, { "text": "Navigation / Menus", @@ -1810,7 +1822,7 @@ "text": "Samples", "items": [ { - "text": "All Samples", + "text": "Overview", "path": "samples" }, { @@ -1923,4 +1935,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/docs/en/framework/api-development/index.md b/docs/en/framework/api-development/index.md index 4b2105486d..2f55487b1c 100644 --- a/docs/en/framework/api-development/index.md +++ b/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) \ No newline at end of file +* [Swagger Integration](./swagger.md) diff --git a/docs/en/framework/infrastructure/background-jobs/hangfire.md b/docs/en/framework/infrastructure/background-jobs/hangfire.md index 8d5a76509b..396c7498b5 100644 --- a/docs/en/framework/infrastructure/background-jobs/hangfire.md +++ b/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("AuthServer:RequireHttpsMetadata"); + options.Audience = "MyProjectName"; + }); + + context.Services.AddAuthentication() + .AddCookie("Cookies") + .AddOpenIdConnect("oidc", options => + { + options.Authority = configuration["AuthServer:Authority"]; + options.RequireHttpsMetadata = configuration.GetValue("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()}; +}); +``` diff --git a/docs/en/framework/infrastructure/blob-storing/google.md b/docs/en/framework/infrastructure/blob-storing/google.md new file mode 100644 index 0000000000..a90152b4f0 --- /dev/null +++ b/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(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/` 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. diff --git a/docs/en/framework/infrastructure/blob-storing/index.md b/docs/en/framework/infrastructure/blob-storing/index.md index 61a05c65c0..f95a90e410 100644 --- a/docs/en/framework/infrastructure/blob-storing/index.md +++ b/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. diff --git a/docs/en/framework/infrastructure/data-filtering.md b/docs/en/framework/infrastructure/data-filtering.md index 584099b681..38844f2079 100644 --- a/docs/en/framework/infrastructure/data-filtering.md +++ b/docs/en/framework/infrastructure/data-filtering.md @@ -320,6 +320,81 @@ public override string GetCompiledQueryCacheKey() } ```` +##### Make User-defined function mapping compatible with [DevExtreme.AspNet.Data's](https://github.com/DevExpress/DevExtreme.AspNet.Data) `IAsyncAdapter` + +If you are using [DevExtreme.AspNet.Data](https://github.com/DevExpress/DevExtreme.AspNet.Data) and `User-defined function mapping`, You need to create a custom adapter to compatible with `IAsyncAdapter`. + +````csharp +var adapter = new AbpDevExtremeAsyncAdapter(); +CustomAsyncAdapters.RegisterAdapter(typeof(AbpEntityQueryProvider), adapter); +```` + +````csharp +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using System.Threading; +using System.Threading.Tasks; +using DevExtreme.AspNet.Data.Async; + +namespace Abp.EntityFrameworkCore; + +public class AbpDevExtremeAsyncAdapter : IAsyncAdapter +{ + private readonly MethodInfo _countAsyncMethod; + private readonly MethodInfo _toListAsyncMethod; + + public AbpDevExtremeAsyncAdapter() + { + var extensionsType = Type.GetType("Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions, Microsoft.EntityFrameworkCore"); + _countAsyncMethod = FindQueryExtensionMethod(extensionsType, "CountAsync"); + _toListAsyncMethod = FindQueryExtensionMethod(extensionsType, "ToListAsync"); + } + + public Task CountAsync(IQueryProvider provider, Expression expr, CancellationToken cancellationToken) + { + return InvokeCountAsync(_countAsyncMethod, provider, expr, cancellationToken); + } + + public Task> ToEnumerableAsync(IQueryProvider provider, Expression expr, CancellationToken cancellationToken) + { + return InvokeToListAsync(_toListAsyncMethod, provider, expr, cancellationToken); + } + + static MethodInfo FindQueryExtensionMethod(Type extensionsType, string name) + { + return extensionsType.GetMethods().First(m => + { + if (!m.IsGenericMethod || m.Name != name) + { + return false; + } + var parameters = m.GetParameters(); + return parameters.Length == 2 && parameters[1].ParameterType == typeof(CancellationToken); + }); + } + + static Task InvokeCountAsync(MethodInfo method, IQueryProvider provider, Expression expr, CancellationToken cancellationToken) + { + var countArgument = ((MethodCallExpression)expr).Arguments[0]; + var query = provider.CreateQuery(countArgument); + return (Task)InvokeQueryExtensionMethod(method, query.ElementType, query, cancellationToken); + } + + static async Task> InvokeToListAsync(MethodInfo method, IQueryProvider provider, Expression expr, CancellationToken cancellationToken) + { + return await (Task>)InvokeQueryExtensionMethod(method, typeof(T), provider.CreateQuery(expr), cancellationToken); + } + + static object InvokeQueryExtensionMethod(MethodInfo method, Type elementType, IQueryable query, CancellationToken cancellationToken) + { + return method.MakeGenericMethod(elementType).Invoke(null, new object[] { query, cancellationToken }); + } +} +```` + ### MongoDB ABP abstracts the `IMongoDbRepositoryFilterer` interface to implement data filtering for the [MongoDB Integration](../data/mongodb), it works only if you use the repositories properly. Otherwise, you should manually filter the data. diff --git a/docs/en/framework/ui/angular/theming.md b/docs/en/framework/ui/angular/theming.md index 58323bb661..1940fc331b 100644 --- a/docs/en/framework/ui/angular/theming.md +++ b/docs/en/framework/ui/angular/theming.md @@ -20,7 +20,7 @@ Currently, three themes are **officially provided**: * The [Basic Theme](basic-theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**. * The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license. -* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](https://docs.abp.io/en/commercial/latest/themes/lepton-x/angular) and [lite](../../../ui-themes/lepton-x-lite/angular.md) choices. +* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](../../../ui-themes/lepton-x/angular.md) and [lite](../../../ui-themes/lepton-x-lite/angular.md) choices. ## Overall diff --git a/docs/en/framework/ui/mvc-razor-pages/overall.md b/docs/en/framework/ui/mvc-razor-pages/overall.md index b6e85bfd15..657fb42df7 100644 --- a/docs/en/framework/ui/mvc-razor-pages/overall.md +++ b/docs/en/framework/ui/mvc-razor-pages/overall.md @@ -36,7 +36,7 @@ Currently, three themes are **officially provided**: * The [Basic Theme](Basic-Theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**. * The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license. -* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](https://docs.abp.io/en/commercial/latest/themes/lepton-x/mvc) and [lite](../../../ui-themes/lepton-x-lite/asp-net-core.md) choices. +* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has both [commercial](../../../ui-themes/lepton-x/mvc.md) and [lite](../../../ui-themes/lepton-x-lite/asp-net-core.md) choices. There are also some community-driven themes for the ABP (you can search on the web). diff --git a/docs/en/framework/ui/mvc-razor-pages/security-headers.md b/docs/en/framework/ui/mvc-razor-pages/security-headers.md index 56cde05005..a54697aca4 100644 --- a/docs/en/framework/ui/mvc-razor-pages/security-headers.md +++ b/docs/en/framework/ui/mvc-razor-pages/security-headers.md @@ -38,7 +38,7 @@ Security Headers middleware is an ASP.NET Core request pipeline [middleware](htt app.UseAbpSecurityHeaders(); ``` -> You can add this middleware after `app.UseRouting()` in your module class's `OnApplicationInitialization` method to register it to the request pipeline. This middleware is already configured in the [ABP Commercial Startup Templates](https://docs.abp.io/en/commercial/latest/startup-templates/index), so you don't need to manually add it if you are using one of these startup templates. +> You can add this middleware after `app.UseRouting()` in your module class's `OnApplicationInitialization` method to register it to the request pipeline. This middleware is already configured in the [ABP Commercial Startup Templates](../../../solution-templates/index.md), so you don't need to manually add it if you are using one of these startup templates. After that, you have registered the `UseAbpSecurityHeaders` middleware into the request pipeline, the defined security headers will be shown in the response headers as in the figure below: diff --git a/docs/en/framework/ui/mvc-razor-pages/theming.md b/docs/en/framework/ui/mvc-razor-pages/theming.md index 9cddf1ba96..895032f1d7 100644 --- a/docs/en/framework/ui/mvc-razor-pages/theming.md +++ b/docs/en/framework/ui/mvc-razor-pages/theming.md @@ -21,7 +21,7 @@ Currently, four themes are **officially provided**: * The [Basic Theme](basic-theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**. * The [LeptonX Lite Theme](../../../ui-themes/lepton-x-lite/asp-net-core.md) is modern and stylish Bootstrap UI theme. It is ideal if you want to have a production ready UI theme. It is also **open source and free**. * The [Lepton Theme](https://abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP](https://abp.io/) license. -* The [LeptonX Theme](https://docs.abp.io/en/commercial/latest/themes/lepton-x/index) is also a **commercial** theme developed by the core ABP theme and is a part of the [ABP](https://abp.io/) license. This is the default theme after ABP v6.0.0. +* The [LeptonX Theme](../../../ui-themes/lepton-x/index.md) is also a **commercial** theme developed by the core ABP theme and is a part of the [ABP](https://abp.io/) license. This is the default theme after ABP v6.0.0. There are also some community-driven themes for the ABP (you can search on the web). diff --git a/docs/en/get-started/layered-web-application.md b/docs/en/get-started/layered-web-application.md index 804b2df787..e1c00fd336 100644 --- a/docs/en/get-started/layered-web-application.md +++ b/docs/en/get-started/layered-web-application.md @@ -26,9 +26,9 @@ The following tools should be installed on your development machine: * [Yarn v1.22+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [2](#f-yarn) or npm v10+ (already installed with Node) {{ end }} {{ if Tiered == "Yes" }} -* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)). +* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)). {{ else }} -* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)) is required if you select the Public website option. +* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)) is required if you select the Public website option. {{ end }} 1 _You can use another editor instead of Visual Studio as long as it supports .NET Core and ASP.NET Core._ [↩](#a-editor) diff --git a/docs/en/get-started/microservice.md b/docs/en/get-started/microservice.md index 9a90be00da..82db8dcc62 100644 --- a/docs/en/get-started/microservice.md +++ b/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. diff --git a/docs/en/get-started/single-layer-web-application.md b/docs/en/get-started/single-layer-web-application.md index 201d0fb2df..319fb19c9a 100644 --- a/docs/en/get-started/single-layer-web-application.md +++ b/docs/en/get-started/single-layer-web-application.md @@ -25,9 +25,9 @@ The following tools should be installed on your development machine: * [Yarn v1.22+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [2](#f-yarn) or npm v10+ (already installed with Node) {{ end }} {{ if Tiered == "Yes" }} -* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)). +* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)). {{ else }} -* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)) is required if you select the Public website option. +* [Redis](https://redis.io/) (as the [distributed cache](../framework/fundamentals/caching.md)) is required if you select the Public website option. {{ end }} 1 _You can use another editor instead of Visual Studio as long as it supports .NET Core and ASP.NET Core._ [↩](#a-editor) diff --git a/docs/en/guides/migrating-from-open-source.md b/docs/en/guides/migrating-from-open-source.md index f73b7afc8d..5340e4212a 100644 --- a/docs/en/guides/migrating-from-open-source.md +++ b/docs/en/guides/migrating-from-open-source.md @@ -9,12 +9,14 @@ ABP Studio provides a way for users, who already started the development before * Alternatively, you can use the following ABP Studio CLI command to achieve the same functionality: ```bash - abp upgrade [-t ] + abp upgrade [-t ] [options] Examples: abp upgrade -t app - abp upgrade -t app-nolayers + abp upgrade -t app --language-management --gdpr --audit-logging-ui --text-template-management --openiddict-pro + abp upgrade -t app-nolayers --audit-logging-ui + abp upgrade -t app-nolayers -p D:\MyProjects\MyProject ``` ## Changes in the solution @@ -31,15 +33,14 @@ This command will remove the following modules from your solution: And install the following modules to your solution: - Volo.Abp.Account.Pro -- Volo.Abp.AuditLogging.Pro - Volo.Abp.Identity.Pro -- Volo.Abp.OpenIddict.Pro -- Volo.Saas -- Volo.Abp.LanguageManagement -- Volo.Abp.TextTemplateManagement -- Volo.FileManagement -- Volo.Abp.Gdpr - Volo.Abp.LeptonXTheme +- Volo.Saas +- Volo.Abp.OpenIddict.Pro (*Optional*) +- Volo.Abp.AuditLogging.Pro (*Optional*) +- Volo.Abp.LanguageManagement (*Optional*) +- Volo.Abp.TextTemplateManagement (*Optional*) +- Volo.Abp.Gdpr (*Optional*) ### Other changes diff --git a/docs/en/images/payment-module-subscription-flow.png b/docs/en/images/payment-module-subscription-flow.png index e36c1ee61f..080559e5af 100644 Binary files a/docs/en/images/payment-module-subscription-flow.png and b/docs/en/images/payment-module-subscription-flow.png differ diff --git a/docs/en/modules/audit-logging-pro.md b/docs/en/modules/audit-logging-pro.md index 1719bf51a5..ef609e5422 100644 --- a/docs/en/modules/audit-logging-pro.md +++ b/docs/en/modules/audit-logging-pro.md @@ -115,7 +115,7 @@ To see `AbpAuditingOptions` properties, please see its [documentation](../framew ### ExpiredAuditLogDeleterOptions -`ExpiredAuditLogDeleterOptions` can be configured in the UI layer, within the `ConfigureServices` method of your [module](https://docs.abp.io/en/abp/latest/Module-Development-Basics). Example: +`ExpiredAuditLogDeleterOptions` can be configured in the UI layer, within the `ConfigureServices` method of your [module](../framework/architecture/modularity/basics.md). Example: ```csharp Configure(options => @@ -241,7 +241,7 @@ You can modify the look and behavior of the module pages by passing the followin #### Services / Models -Audit Logging module services and models are generated via `generate-proxy` command of the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI). If you need the module's proxies, you can run the following command in the Angular project directory: +Audit Logging module services and models are generated via `generate-proxy` command of the [ABP CLI](../cli/index.md). If you need the module's proxies, you can run the following command in the Angular project directory: ```bash abp generate-proxy --module auditLogging diff --git a/docs/en/modules/cms-kit-pro/index.md b/docs/en/modules/cms-kit-pro/index.md index 14bce30381..af3559ec7e 100644 --- a/docs/en/modules/cms-kit-pro/index.md +++ b/docs/en/modules/cms-kit-pro/index.md @@ -17,6 +17,7 @@ The following features are provided by the open-source CMS Kit module: - [**Menu**](../cms-kit/menus.md) system to manage public menus dynamically. - [**Global resources**](../cms-kit/global-resources.md) system to add global styles and scripts dynamically. - [**Dynamic widget**](../cms-kit/dynamic-widget.md) system to create dynamic widgets for page and blog posts. +- [**Marked Item**](../cms-kit/marked-items.md) system to flag favorites or important items with icons or emojis. The following features are provided by the CMS Kit Pro version: diff --git a/docs/en/modules/database-tables.md b/docs/en/modules/database-tables.md index 0fce394470..ad8c66d684 100644 --- a/docs/en/modules/database-tables.md +++ b/docs/en/modules/database-tables.md @@ -248,7 +248,7 @@ This table stores the values of the features for different providers. You can us ### FmDirectoryDescriptors -This table is utilized by the [File Management system](file-management.md) to manage directories by using the [BlobStoring](https://docs.abp.io/en/abp/latest/Blob-Storing) module. +This table is utilized by the [File Management system](file-management.md) to manage directories by using the [BlobStoring](../framework/infrastructure/blob-storing/index.md) module. #### Foreign Keys diff --git a/docs/en/modules/identity.md b/docs/en/modules/identity.md index b9c19fe198..46c6a671c1 100644 --- a/docs/en/modules/identity.md +++ b/docs/en/modules/identity.md @@ -252,7 +252,7 @@ Following custom repositories are defined for this module: ##### Claim type manager -`IdenityClaimTypeManager` is used to perform some operations for the `IdentityClaimType` aggregate root. +`IdentityClaimTypeManager` is used to perform some operations for the `IdentityClaimType` aggregate root. ##### Organization unit manager diff --git a/docs/en/modules/payment.md b/docs/en/modules/payment.md index c868f7b02a..b3fb6de84b 100644 --- a/docs/en/modules/payment.md +++ b/docs/en/modules/payment.md @@ -15,7 +15,7 @@ Payment module is not installed in [the startup templates](../solution-templates ### Using ABP CLI -ABP CLI allows adding a module to a solution using ```add-module``` command. You can check its [documentation](https://docs.abp.io/en/abp/latest/CLI#add-module) for more information. So, payment module can be added using the command below; +ABP CLI allows adding a module to a solution using ```add-module``` command. You can check its [documentation](../cli#add-module) for more information. So, payment module can be added using the command below; ```bash abp add-module Volo.Payment diff --git a/docs/en/modules/text-template-management.md b/docs/en/modules/text-template-management.md index 46b3784f5d..9b2235314f 100644 --- a/docs/en/modules/text-template-management.md +++ b/docs/en/modules/text-template-management.md @@ -2,7 +2,7 @@ > You must have an ABP Team or a higher license to use this module. -This module is used to store and edit template contents for [the text templating system](https://docs.abp.io/en/abp/latest/Text-Templating) of the ABP. So, you may need to understand it to better understand the purpose of this module. +This module is used to store and edit template contents for [the text templating system](../framework/infrastructure/text-templating/index.md) of the ABP. So, you may need to understand it to better understand the purpose of this module. There are different use cases of the text templating system. For example, [the Account Module](account.md) is using it to define templates for sending emails when it needs to send emails to users (like sending "password reset link" email). This module provides UI to easily edit these email templates. diff --git a/docs/en/release-info/migration-guides/abp-8-2.md b/docs/en/release-info/migration-guides/abp-8-2.md index 0a70af9796..cd904f052e 100644 --- a/docs/en/release-info/migration-guides/abp-8-2.md +++ b/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. \ No newline at end of file diff --git a/docs/en/release-info/migration-guides/openiddict-step-by-step.md b/docs/en/release-info/migration-guides/openiddict-step-by-step.md index e174f0dfb5..04866180ad 100644 --- a/docs/en/release-info/migration-guides/openiddict-step-by-step.md +++ b/docs/en/release-info/migration-guides/openiddict-step-by-step.md @@ -9,8 +9,8 @@ On the other hand, Identity Server ends support for the open-source Identity Ser ## Commercial Template -If you are using a commercial template, please check [Migrating from IdentityServer to OpenIddict for the Commercial Templates](https://docs.abp.io/en/commercial/6.0/migration-guides/openIddict-step-by-step) guide. -If you are using the microservice template, please check [Migrating the Microservice Template from IdentityServer to OpenIddict](https://docs.abp.io/en/commercial/6.0/migration-guides/openIddict-microservice) guide. +If you are using a commercial template, please check [Migrating from IdentityServer to OpenIddict for the Commercial Templates](https://abp.io/docs/commercial/6.0/migration-guides/openIddict-step-by-step) guide. +If you are using the microservice template, please check [Migrating the Microservice Template from IdentityServer to OpenIddict](https://abp.io/docs/commercial/6.0/migration-guides/openIddict-microservice) guide. ## OpenIddict Migration Steps @@ -258,7 +258,7 @@ for creating the host builder. ## Source code of samples and module * [Open source tiered & separate auth server application migrate Identity Server to OpenIddict](https://github.com/abpframework/abp-samples/tree/master/Ids2OpenId) -* [OpenIddict module document](https://docs.abp.io/en/abp/6.0/Modules/OpenIddict) +* [OpenIddict module document](../../modules/openiddict.md) * [OpenIddict module source code](https://github.com/abpframework/abp/tree/rel-6.0/modules/openiddict) ## See Also diff --git a/docs/en/release-info/release-notes.md b/docs/en/release-info/release-notes.md index 108162e652..a94ed9d0b8 100644 --- a/docs/en/release-info/release-notes.md +++ b/docs/en/release-info/release-notes.md @@ -304,7 +304,7 @@ See the detailed **[blog post / announcement](https://abp.io/blog/ABP-Framework- * Performance improvements (pre-compiling razor pages). * New **Organization Unit** Management UI for the [Identity Module](https://abp.io/modules/Volo.Identity.Pro) to create hierarchical organization units and manage their members and roles. * Created **Angular UI** for the [Chat Module](https://abp.io/modules/Volo.Chat). -* Implemented **Angular UI** for the [Easy CRM](https://docs.abp.io/en/commercial/latest/samples/easy-crm) application. +* Implemented **Angular UI** for the [Easy CRM](../samples/easy-crm.md) application. * [ABP Suite](https://abp.io/tools/suite) code generation support for **module development**. * New [leptontheme.com](http://leptontheme.com/) web site to show the **[Lepton Theme](https://abp.io/themes) components**. diff --git a/docs/en/release-info/road-map.md b/docs/en/release-info/road-map.md index 1e3fe105ac..82da0a0b8e 100644 --- a/docs/en/release-info/road-map.md +++ b/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 diff --git a/docs/en/samples/index.md b/docs/en/samples/index.md index 5adf0ac6a8..619eb81484 100644 --- a/docs/en/samples/index.md +++ b/docs/en/samples/index.md @@ -27,13 +27,13 @@ A simple CRUD application to show basic principles of developing an application The following samples uses only the open source (free) modules. * **Book Store: Razor Pages UI & Entity Framework Core** - * [Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=MVC&DB=EF) + * [Tutorial](../tutorials/book-store/part-01.md?UI=MVC&DB=EF) * [Source code](https://github.com/abpframework/abp-samples/tree/master/BookStore-Mvc-EfCore) * **Book Store: Blazor UI & Entity Framework Core** - * [Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=Blazor&DB=EF) + * [Tutorial](../tutorials/book-store/part-01.md?UI=Blazor&DB=EF) * [Source code](https://github.com/abpframework/abp-samples/tree/master/BookStore-Blazor-EfCore) * **Book Store: Angular UI & MongoDB** - * [Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=NG&DB=Mongo) + * [Tutorial](../tutorials/book-store/part-01.md?UI=NG&DB=Mongo) * [Source code](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb) * **Book Store: Modular application (Razor Pages UI & EF Core)** * [Source code](https://github.com/abpframework/abp-samples/tree/master/BookStore-Modular) @@ -43,13 +43,13 @@ The following samples uses only the open source (free) modules. The following samples uses the pro modules. - **Book Store: Razor Pages (MVC) UI & Entity Framework Core** - - [Tutorial](https://docs.abp.io/en/commercial/latest/tutorials/book-store/part-1?UI=MVC&DB=EF) + - [Tutorial](../tutorials/book-store/part-01.md?UI=MVC&DB=EF) - [Download the source code](https://abp.io/Account/Login?returnUrl=/api/download/samples/bookstore-mvc-ef) - **Book Store: Blazor UI & Entity Framework Core** - - [Tutorial](https://docs.abp.io/en/commercial/latest/tutorials/book-store/part-1?UI=Blazor&DB=EF) + - [Tutorial](../tutorials/book-store/part-01.md?UI=Blazor&DB=EF) - [Download the source code](https://abp.io/Account/Login?returnUrl=/api/download/samples/bookstore-blazor-efcore) - **Book Store: Angular UI & MongoDB** - - [Tutorial](https://docs.abp.io/en/commercial/latest/tutorials/book-store/part-1?UI=NG&DB=Mongo) + - [Tutorial](../tutorials/book-store/part-01.md?UI=NG&DB=Mongo) - [Download the source code](https://abp.io/Account/Login?returnUrl=/api/download/samples/bookstore-angular-mongodb) ## Other Samples diff --git a/docs/en/solution-templates/microservice/adding-new-api-gateways.md b/docs/en/solution-templates/microservice/adding-new-api-gateways.md index a026f6e884..415452a3bd 100644 --- a/docs/en/solution-templates/microservice/adding-new-api-gateways.md +++ b/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. diff --git a/docs/en/solution-templates/microservice/adding-new-applications.md b/docs/en/solution-templates/microservice/adding-new-applications.md index 7e3a53cbae..352b18f763 100644 --- a/docs/en/solution-templates/microservice/adding-new-applications.md +++ b/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. diff --git a/docs/en/solution-templates/microservice/adding-new-microservices.md b/docs/en/solution-templates/microservice/adding-new-microservices.md index 2ff864cd0d..4a82ee6a55 100644 --- a/docs/en/solution-templates/microservice/adding-new-microservices.md +++ b/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 @@ -192,7 +195,7 @@ private async Task CreateClientsAsync() "SaasService", "AuditLoggingService", "AdministrationService", - "ProductService" // new service ++ "ProductService" }).ToList(), redirectUris: new List { $"{webClientRootUrl}signin-oidc" }, postLogoutRedirectUris: new List() { $"{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 ``` \ No newline at end of file diff --git a/docs/en/solution-templates/microservice/images/folder-structure.png b/docs/en/solution-templates/microservice/images/folder-structure.png new file mode 100644 index 0000000000..926bfaa3d5 Binary files /dev/null and b/docs/en/solution-templates/microservice/images/folder-structure.png differ diff --git a/docs/en/studio/concepts.md b/docs/en/studio/concepts.md index 5f23150cf1..995519e191 100644 --- a/docs/en/studio/concepts.md +++ b/docs/en/studio/concepts.md @@ -5,7 +5,7 @@ { "Next": { "Name": "Overview", - "Path": "studio/overview.md" + "Path": "studio/overview" } } ```` @@ -46,4 +46,4 @@ Some ABP Studio terms may seem conflict with .NET and Visual Studio. To make the | Module | Solution | | Package | Project | -In essence, ABP Studio uses the solution term to cover all the .NET solutions and other components of your product. ABP Studio is used to build and manage the relations of these multiple .NET solutions and provides a high-level view of the whole system. \ No newline at end of file +In essence, ABP Studio uses the solution term to cover all the .NET solutions and other components of your product. ABP Studio is used to build and manage the relations of these multiple .NET solutions and provides a high-level view of the whole system. diff --git a/docs/en/studio/images/abp-studio-switch-to-preview.png b/docs/en/studio/images/abp-studio-switch-to-preview.png new file mode 100644 index 0000000000..32f6d01edb Binary files /dev/null and b/docs/en/studio/images/abp-studio-switch-to-preview.png differ diff --git a/docs/en/studio/monitoring-applications.md b/docs/en/studio/monitoring-applications.md index b7a67e2f63..645df15418 100644 --- a/docs/en/studio/monitoring-applications.md +++ b/docs/en/studio/monitoring-applications.md @@ -5,7 +5,7 @@ { "Next": { "Name": "Working with Kubernetes", - "Path": "studio/kubernetes.md" + "Path": "studio/kubernetes" } } ```` diff --git a/docs/en/studio/overview.md b/docs/en/studio/overview.md index 15f6615883..ecfdda52bc 100644 --- a/docs/en/studio/overview.md +++ b/docs/en/studio/overview.md @@ -35,13 +35,14 @@ The top menu is the main menu bar in ABP Studio. It offers access to various fun ### ABP Suite -[ABP Suite](https://abp.io/tools/suite) is a complementary tool to the ABP Platform, designed to enable the rapid construction of web pages in just a few minutes. With the ABP Suite button in the Top Menu, you can access the Suite from the browser embedded in ABP Studio. +[ABP Suite](https://abp.io/suite) is a complementary tool to the ABP Platform, designed to enable the rapid construction of web pages in just a few minutes. With the ABP Suite button in the Top Menu, you can access the Suite from the browser embedded in ABP Studio. ### 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 diff --git a/docs/en/studio/release-notes.md b/docs/en/studio/release-notes.md new file mode 100644 index 0000000000..e2bbddf2eb --- /dev/null +++ b/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 \ No newline at end of file diff --git a/docs/en/studio/solution-explorer.md b/docs/en/studio/solution-explorer.md index cffd268a38..76e3543269 100644 --- a/docs/en/studio/solution-explorer.md +++ b/docs/en/studio/solution-explorer.md @@ -157,7 +157,7 @@ ABP modules have their own file extension `.abpmdl`, and they are located in the ### Difference Between ABP Module Template and ABP Studio Module Approach -In ABP, creating a module solution using the [CLI](https://docs.abp.io/en/commercial/latest/startup-templates/module/creating-a-new-solution) results in a solution with numerous projects, some of which may not be necessary for a specific use case. The ABP Studio module approach differs from the ABP module template, offering greater flexibility. With ABP Studio, we can create a module containing only the required projects; for example, an empty module with only the `Domain` and `Application` projects. In this approach, the term [Package](./concepts.md#package) is used for module projects. +In ABP, creating a module solution using the [CLI](../cli/index.md) results in a solution with numerous projects, some of which may not be necessary for a specific use case. The ABP Studio module approach differs from the ABP module template, offering greater flexibility. With ABP Studio, we can create a module containing only the required projects; for example, an empty module with only the `Domain` and `Application` projects. In this approach, the term [Package](./concepts.md#package) is used for module projects. Furthermore, it's important to mention that we can create not just DDD-principled modules. The [Modularity](../framework/architecture/modularity/basics.md) document clarifies the difference between *Framework* and *Application* modules. Basically, every C# project refers to the `Volo.Abp.Core` package and defines the *Module* class as an ABP Class Library. We have the option to develop an infrastructure module using only the *ABP Class Library* packages and provide a module reference to other modules. diff --git a/docs/en/studio/version-compatibility.md b/docs/en/studio/version-compatibility.md new file mode 100644 index 0000000000..b8142f8cc0 --- /dev/null +++ b/docs/en/studio/version-compatibility.md @@ -0,0 +1,15 @@ +# ABP Studio and ABP Solution Templates Version Compatibility + +This document provides an overview of the compatibility between various versions of ABP Studio and [ABP Solution Templates](../solution-templates/index.md). Use this reference to ensure that you are using the correct versions of ABP Studio and ABP for your projects. + +| **ABP Studio Version** | **ABP Version** | +|------------------------|---------------------------| +| 0.7.8 | 8.2.2 | +| 0.7.4 to 0.7.7 | 8.2.1 | +| 0.7.0 to 0.7.3 | 8.2.0 | +| 0.6.8 - 0.6.9 | 8.1.3 | +| 0.6.7 | 8.1.1 | + +By default, ABP Studio uses stable versions to create solutions. Therefore, if you want to create a solution with a preview version, first you need to create a solution and then switch your solution to the preview version from the ABP Studio UI: + +![](images/abp-studio-switch-to-preview.png) \ No newline at end of file diff --git a/docs/en/suite/generating-crud-page.md b/docs/en/suite/generating-crud-page.md index a4a2fcfd6e..8d98bb7df9 100644 --- a/docs/en/suite/generating-crud-page.md +++ b/docs/en/suite/generating-crud-page.md @@ -93,7 +93,7 @@ To create a new entity, make sure the *-New entity-* is selected in the **Entity * **Customizable code**: Specifies hook-points to allow adding custom code blocks. Then, the code blocks that were written by you will not be overridden in the next entity generation and will be respected. -* **Multi-tenant**: For your multi-tenant application, you can set an entity as multi-tenant which means the data will be isolated between the tenants. To make an entity multi-tenant, ABP Suite adds the `IMultiTenant` interface to the entity. Further information see [Multi-Tenancy](https://docs.abp.io/{{Document_Language_Code}}/abp/{{Document_Version}}/Multi-Tenancy) +* **Multi-tenant**: For your multi-tenant application, you can set an entity as multi-tenant which means the data will be isolated between the tenants. To make an entity multi-tenant, ABP Suite adds the `IMultiTenant` interface to the entity. Further information see [Multi-Tenancy](../framework/architecture/multi-tenancy/index.md) * If you created your application with *Separated tenant schema* support, then when you enable the multi-tenancy for the entity, database configurations (DbSet definitions and model configurations) will be defined in both `MyProjectNameDbContext` and `MyProjectNameTenantDbContext` (can be used for tenant-specific configurations) classes. Otherwise, the database configurations will only be defined in the `MyProjectNameDbContext` class for the host. diff --git a/docs/en/tutorials/todo/layered/index.md b/docs/en/tutorials/todo/layered/index.md index 6761bb68bb..b58d95a034 100644 --- a/docs/en/tutorials/todo/layered/index.md +++ b/docs/en/tutorials/todo/layered/index.md @@ -3,7 +3,7 @@ ````json //[doc-params] { - "UI": ["MVC", "Blazor", "BlazorServer", "NG"], + "UI": ["MVC", "Blazor", "BlazorServer", "BlazorWebApp" ,"NG"], "DB": ["EF", "Mongo"] } ```` @@ -148,6 +148,10 @@ Ensure the `TodoApp.HttpApi.Host` project is the startup project, then run the a You can explore and test your HTTP API with this UI. Now, we can set the `TodoApp.Blazor` as the startup project and run it to open the actual Blazor application UI: +{{else if UI=="BlazorWebApp" }} + +It is good to run the application before starting the development. Ensure the `TodoApp.Blazor` project is the startup project, then run the application (Ctrl+F5 in Visual Studio) to see the initial UI: + {{else if UI=="NG"}} It is good to run the application before starting the development. The solution has two main applications: @@ -252,7 +256,7 @@ You can apply changes to the database using the following command, in the same c dotnet ef database update ``` -> If you are using Visual Studio, you may want to use the `Add-Migration Added_TodoItem` and `Update-Database` commands in the *Package Manager Console (PMC)*. In this case, ensure that {{if UI=="MVC"}}`TodoApp.Web`{{else if UI=="BlazorServer"}}`TodoApp.Blazor`{{else if UI=="Blazor" || UI=="NG"}}`TodoApp.HttpApi.Host`{{end}} is the startup project and `TodoApp.EntityFrameworkCore` is the *Default Project* in PMC. +> If you are using Visual Studio, you may want to use the `Add-Migration Added_TodoItem` and `Update-Database` commands in the *Package Manager Console (PMC)*. In this case, ensure that {{if UI=="MVC"}}`TodoApp.Web`{{else if UI=="BlazorServer" || UI=="Blazor" || UI=="BlazorWebApp"}}`TodoApp.Blazor`{{else if UI=="Blazor" || UI=="NG"}}`TodoApp.HttpApi.Host`{{end}} is the startup project and `TodoApp.EntityFrameworkCore` is the *Default Project* in PMC. {{else if DB=="Mongo"}} @@ -581,11 +585,11 @@ If you open the [Swagger UI](https://swagger.io/tools/swagger-ui/) by entering t ![todo-api](../images/todo-api.png) -{{else if UI=="Blazor" || UI=="BlazorServer"}} +{{else if UI=="Blazor" || UI=="BlazorServer" || UI=="BlazorWebApp"}} ### Index.razor.cs -Open the `Index.razor.cs` file in the `Pages` folder of the *TodoApp.Blazor* project and replace the content with the following code block: +Open the `Index.razor.cs` file in the `Pages` folder of the {{if UI=="BlazorWebApp"}} *TodoApp.Blazor.Client* {{else}}*TodoApp.Blazor*{{end}} project and replace the content with the following code block: ```csharp using Microsoft.AspNetCore.Components; @@ -634,7 +638,7 @@ See the *Dynamic C# Proxies & Auto API Controllers* section below to learn how w ### Index.razor -Open the `Index.razor` file in the `Pages` folder of the *TodoApp.Blazor* project and replace the content with the following code block: +Open the `Index.razor` file in the `Pages` folder of the {{if UI=="BlazorWebApp"}} *TodoApp.Blazor.Client* {{else}} *TodoApp.Blazor* {{end}} project and replace the content with the following code block: ```xml @page "/" @@ -676,7 +680,7 @@ Open the `Index.razor` file in the `Pages` folder of the *TodoApp.Blazor* projec ### Index.razor.css -As the final touch, open the `Index.razor.css` file in the `Pages` folder of the *TodoApp.Blazor* project and replace it with the following content: +As the final touch, open the `Index.razor.css` file in the `Pages` folder of the {{if UI=="BlazorWebApp"}}*TodoApp.Blazor.Client*{{else}}*TodoApp.Blazor*{{end}} project and replace it with the following content: ```css #TodoList{ diff --git a/docs/en/ui-themes/lepton-x/mvc.md b/docs/en/ui-themes/lepton-x/mvc.md index 5e7aab2b7f..4627ccb727 100644 --- a/docs/en/ui-themes/lepton-x/mvc.md +++ b/docs/en/ui-themes/lepton-x/mvc.md @@ -152,7 +152,7 @@ Commonly used components in all layouts. ![Breadcrumb](images/leptonx-breadcrumb.png) -Breadcrumbs can be customized by using the `IPageLayout` service. See [PageLayout - Breadcrumb](https://docs.abp.io/en/abp/7.2/UI%2FAspNetCore%2FPage-Header#breadcrumb) for more information. +Breadcrumbs can be customized by using the `IPageLayout` service. See [PageLayout - Breadcrumb](../../framework/ui/mvc-razor-pages/page-header.md#breadcrumb) for more information. If you need to replace the component, you can follow the steps below. @@ -166,7 +166,7 @@ If you need to replace the component, you can follow the steps below. ![Content title](images/leptonx-content-title.png) -Page Titles can be customized by using the `IPageLayout` service. See [PageLayout - Page Title](https://docs.abp.io/en/abp/7.2/UI%2FAspNetCore%2FPage-Header#page-title) for more information. +Page Titles can be customized by using the `IPageLayout` service. See [PageLayout - Page Title](../../framework/ui/mvc-razor-pages/page-header.md#page-title) for more information. If you need to replace the component, you can follow the steps below. diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln index 3373a239de..19fbf05df8 100644 --- a/framework/Volo.Abp.sln +++ b/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} diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs index d07cca857f..01e0dd7ae9 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs @@ -3,11 +3,15 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.OAuth.Claims; using Microsoft.AspNetCore.Authentication.OpenIdConnect; +using Microsoft.AspNetCore.Localization; +using Microsoft.AspNetCore.RequestLocalization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Microsoft.IdentityModel.Protocols.OpenIdConnect; +using Volo.Abp; using Volo.Abp.AspNetCore.Authentication.OpenIdConnect; using Volo.Abp.AspNetCore.MultiTenancy; +using Volo.Abp.Localization; using Volo.Abp.Security.Claims; namespace Microsoft.Extensions.DependencyInjection; @@ -52,6 +56,7 @@ public static class AbpOpenIdConnectExtensions options.Events.OnTokenValidated = async (context) => { + var logger = context.HttpContext.RequestServices.GetRequiredService>(); var client = context.HttpContext.RequestServices.GetRequiredService(); try { @@ -59,8 +64,28 @@ public static class AbpOpenIdConnectExtensions } catch (Exception ex) { - var logger = context.HttpContext.RequestServices.GetService>(); - logger?.LogException(ex); + logger.LogException(ex); + } + + var culture = context.ProtocolMessage.GetParameter("culture"); + var uiCulture = context.ProtocolMessage.GetParameter("ui-culture"); + if (CultureHelper.IsValidCultureCode(culture) && CultureHelper.IsValidCultureCode(uiCulture)) + { + context.Response.OnStarting(() => + { + logger.LogInformation($"Setting culture and ui-culture to the response. culture: {culture}, ui-culture: {uiCulture}"); + + AbpRequestCultureCookieHelper.SetCultureCookie( + context.HttpContext, + new RequestCulture(culture, uiCulture) + ); + + return Task.CompletedTask; + }); + } + else + { + logger.LogWarning($"Invalid culture or ui-culture parameter in the OpenIdConnect response. culture: {culture}, ui-culture: {uiCulture}"); } }; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs index bdd4cb2a27..f0f7f94439 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs @@ -1,4 +1,6 @@ -using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AspNetCore.Mvc.Libs; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.Data; using Volo.Abp.Minify; using Volo.Abp.Modularity; @@ -11,5 +13,14 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling; )] public class AbpAspNetCoreMvcUiBundlingModule : AbpModule { - + public override void ConfigureServices(ServiceConfigurationContext context) + { + if (!context.Services.IsDataMigrationEnvironment()) + { + Configure(options => + { + options.CheckLibs = true; + }); + } + } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs index 7b68fca32d..379523b659 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs @@ -32,6 +32,7 @@ using Volo.Abp.AspNetCore.Mvc.DataAnnotations; using Volo.Abp.AspNetCore.Mvc.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Infrastructure; using Volo.Abp.AspNetCore.Mvc.Json; +using Volo.Abp.AspNetCore.Mvc.Libs; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.VirtualFileSystem; using Volo.Abp.DependencyInjection; @@ -231,6 +232,7 @@ public class AbpAspNetCoreMvcModule : AbpModule public override void OnApplicationInitialization(ApplicationInitializationContext context) { AddApplicationParts(context); + CheckLibs(context); } private static void AddApplicationParts(ApplicationInitializationContext context) @@ -277,4 +279,9 @@ public class AbpAspNetCoreMvcModule : AbpModule partManager.ApplicationParts.AddIfNotContains(moduleAssembly); } } + + private static void CheckLibs(ApplicationInitializationContext context) + { + context.ServiceProvider.GetRequiredService().CheckLibs(context); + } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs index a9131b91ff..199d489e7a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs @@ -75,10 +75,18 @@ public class AbpExceptionFilter : IAsyncExceptionFilter, IAbpFilter, ITransientD } else { - context.HttpContext.Response.Headers.Append(AbpHttpConsts.AbpErrorFormat, "true"); - context.HttpContext.Response.StatusCode = (int)context - .GetRequiredService() - .GetStatusCode(context.HttpContext, context.Exception); + if (!context.HttpContext.Response.HasStarted) + { + context.HttpContext.Response.Headers.Append(AbpHttpConsts.AbpErrorFormat, "true"); + context.HttpContext.Response.StatusCode = (int)context + .GetRequiredService() + .GetStatusCode(context.HttpContext, context.Exception); + } + else + { + var logger = context.GetService>(NullLogger.Instance)!; + logger.LogWarning("HTTP response has already started, cannot set headers and status code!"); + } context.Result = new ObjectResult(new RemoteServiceErrorResponse(remoteServiceErrorInfo)); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs index b7c443b583..64d2a0d0f3 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs @@ -103,10 +103,17 @@ public class AbpExceptionPageFilter : IAsyncPageFilter, IAbpFilter, ITransientDe } else { - context.HttpContext.Response.Headers.Append(AbpHttpConsts.AbpErrorFormat, "true"); - context.HttpContext.Response.StatusCode = (int)context - .GetRequiredService() - .GetStatusCode(context.HttpContext, context.Exception!); + if (!context.HttpContext.Response.HasStarted) + { + context.HttpContext.Response.Headers.Append(AbpHttpConsts.AbpErrorFormat, "true"); + context.HttpContext.Response.StatusCode = (int)context + .GetRequiredService() + .GetStatusCode(context.HttpContext, context.Exception!); + } + else + { + logger.LogWarning("HTTP response has already started, cannot set headers and status code!"); + } context.Result = new ObjectResult(new RemoteServiceErrorResponse(remoteServiceErrorInfo)); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs new file mode 100644 index 0000000000..d166528a05 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs @@ -0,0 +1,6 @@ +namespace Volo.Abp.AspNetCore.Mvc.Libs; + +public class AbpMvcLibsOptions +{ + public bool CheckLibs { get; set; } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs new file mode 100644 index 0000000000..1d12254934 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs @@ -0,0 +1,93 @@ +using System; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Microsoft.Extensions.FileProviders; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Mvc.Libs; + +public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency +{ + private Task? _checkLibsTask; + + public virtual void CheckLibs(ApplicationInitializationContext context) + { + var options = context.ServiceProvider.GetRequiredService>().Value; + if (options.CheckLibs) + { + var app = context.GetApplicationBuilderOrNull(); + if (app == null) + { + var logger = context.ServiceProvider.GetRequiredService>(); + logger.LogWarning($"The {nameof(IApplicationBuilder)} is not available. The 'CheckLibs' feature is disabled!"); + return; + } + + app.Use(async (httpContext, next) => + { + if (!await CheckLibsAsyncOnceAsync(httpContext)) + { + httpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; + httpContext.Response.ContentType = "text/html"; + await httpContext.Response.WriteAsync( + "" + + " " + + " Error - The Libs folder is missing!" + + " " + + " " + + "

⚠️ The Libs folder under the wwwroot/libs directory is empty!

" + + "

The Libs folder contains mandatory NPM Packages for running the project.

" + + "

Make sure you run the abp install-libs CLI tool command.

" + + "

For more information, check out the ABP CLI documentation

" + + " " + + "", + Encoding.UTF8 + ); + return; + } + + await next(httpContext); + }); + } + } + + protected virtual Task CheckLibsAsyncOnceAsync(HttpContext httpContext) + { + if (_checkLibsTask == null) + { + _checkLibsTask = CheckLibsAsync(httpContext); + } + + return _checkLibsTask; + } + + protected virtual Task CheckLibsAsync(HttpContext httpContext) + { + var logger = httpContext.RequestServices.GetRequiredService>(); + try + { + var fileProvider = new PhysicalFileProvider(httpContext.RequestServices.GetRequiredService().WebRootPath); + var libsFolder = fileProvider.GetDirectoryContents("/libs"); + if (!libsFolder.Exists || !libsFolder.Any()) + { + logger.LogError("The 'wwwroot/libs' folder does not exist or empty!"); + return Task.FromResult(false); + } + } + catch (Exception e) + { + // In case of any exception, log it and return true to prevent crashing the application. + logger.LogError(e, "An error occurred while checking the libs folder!"); + } + + return Task.FromResult(true); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/IAbpMvcLibsService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/IAbpMvcLibsService.cs new file mode 100644 index 0000000000..98a88184e8 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/IAbpMvcLibsService.cs @@ -0,0 +1,6 @@ +namespace Volo.Abp.AspNetCore.Mvc.Libs; + +public interface IAbpMvcLibsService +{ + void CheckLibs(ApplicationInitializationContext context); +} diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/ApplicationInitializationContextExtensions.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/ApplicationInitializationContextExtensions.cs index 045b293489..1f6e3c17bf 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/ApplicationInitializationContextExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/ApplicationInitializationContextExtensions.cs @@ -12,7 +12,14 @@ public static class ApplicationInitializationContextExtensions { public static IApplicationBuilder GetApplicationBuilder(this ApplicationInitializationContext context) { - return context.ServiceProvider.GetRequiredService>().Value!; + var applicationBuilder = context.ServiceProvider.GetRequiredService>().Value; + Check.NotNull(applicationBuilder, nameof(applicationBuilder)); + return applicationBuilder; + } + + public static IApplicationBuilder? GetApplicationBuilderOrNull(this ApplicationInitializationContext context) + { + return context.ServiceProvider.GetRequiredService>().Value; } public static IWebHostEnvironment GetEnvironment(this ApplicationInitializationContext context) diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/AbpDynamicClaimsMiddleware.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/AbpDynamicClaimsMiddleware.cs index d2c328f2ae..b2bbb78e7b 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/AbpDynamicClaimsMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/AbpDynamicClaimsMiddleware.cs @@ -2,6 +2,7 @@ using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Features.Authentication; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Volo.Abp.AspNetCore.Middleware; @@ -18,9 +19,21 @@ public class AbpDynamicClaimsMiddleware : AbpMiddlewareBase, ITransientDependenc { if (context.RequestServices.GetRequiredService>().Value.IsDynamicClaimsEnabled) { - var authenticationType = context.User.Identity.AuthenticationType; - var abpClaimsPrincipalFactory = context.RequestServices.GetRequiredService(); - context.User = await abpClaimsPrincipalFactory.CreateDynamicAsync(context.User); + var authenticateResultFeature = context.Features.Get(); + var authenticationType = authenticateResultFeature?.AuthenticateResult?.Ticket?.AuthenticationScheme ?? context.User.Identity.AuthenticationType; + + if (authenticateResultFeature != null && !authenticationType.IsNullOrWhiteSpace()) + { + var abpClaimsPrincipalFactory = context.RequestServices.GetRequiredService(); + var user = await abpClaimsPrincipalFactory.CreateDynamicAsync(context.User); + + authenticateResultFeature.AuthenticateResult = AuthenticateResult.Success(new AuthenticationTicket(user, authenticationType)); + var httpAuthenticationFeature = context.Features.Get(); + if (httpAuthenticationFeature != null) + { + httpAuthenticationFeature.User = authenticateResultFeature.AuthenticateResult.Principal; + } + } if (context.User.Identity?.IsAuthenticated == false) { diff --git a/framework/src/Volo.Abp.BlobStoring.Google/Volo.Abp.BlobStoring.Google.csproj b/framework/src/Volo.Abp.BlobStoring.Google/Volo.Abp.BlobStoring.Google.csproj new file mode 100644 index 0000000000..073c8c1891 --- /dev/null +++ b/framework/src/Volo.Abp.BlobStoring.Google/Volo.Abp.BlobStoring.Google.csproj @@ -0,0 +1,24 @@ + + + + + + + netstandard2.0;netstandard2.1;net8.0 + enable + Nullable + Volo.Abp.BlobStoring.Google + Volo.Abp.BlobStoring.Google + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + false + false + + + + + + + + + diff --git a/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleModule.cs b/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleModule.cs new file mode 100644 index 0000000000..f5243fda15 --- /dev/null +++ b/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 +{ + +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/DefaultGoogleBlobNameCalculator.cs b/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/DefaultGoogleBlobNameCalculator.cs new file mode 100644 index 0000000000..fec52b44d1 --- /dev/null +++ b/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}"; + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobContainerConfigurationExtensions.cs b/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobContainerConfigurationExtensions.cs new file mode 100644 index 0000000000..3c0efd4c86 --- /dev/null +++ b/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 googleConfigureAction) + { + containerConfiguration.ProviderType = typeof(GoogleBlobProvider); + containerConfiguration.NamingNormalizers.TryAdd(); + + googleConfigureAction(new GoogleBlobProviderConfiguration(containerConfiguration)); + + return containerConfiguration; + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobNamingNormalizer.cs b/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobNamingNormalizer.cs new file mode 100644 index 0000000000..8dc840d805 --- /dev/null +++ b/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 +{ + /// + /// https://cloud.google.com/storage/docs/buckets#naming + /// + 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; + } + + /// + /// https://cloud.google.com/storage/docs/objects#naming + /// + 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; + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProvider.cs new file mode 100644 index 0000000000..cd5dc21d7f --- /dev/null +++ b/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 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 ExistsAsync(BlobProviderExistsArgs args) + { + var blobName = GoogleBlobNameCalculator.Calculate(args); + return await BlobExistsAsync(args, blobName); + } + + public async override Task 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 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 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 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); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProviderConfiguration.cs b/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProviderConfiguration.cs new file mode 100644 index 0000000000..39db24f700 --- /dev/null +++ b/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; + } + + /// + /// Unique identifier for your project. + /// For more info see: https://cloud.google.com/resource-manager/docs/creating-managing-projects + /// + public string? ProjectId { + get => _containerConfiguration.GetConfigurationOrDefault(GoogleBlobProviderConfigurationNames.ProjectId); + set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.ProjectId, value); + } + + /// + /// Email address that generated by the Google Cloud. + /// + public string? ClientEmail { + get => _containerConfiguration.GetConfigurationOrDefault(GoogleBlobProviderConfigurationNames.ClientEmail); + set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.ClientEmail, value); + } + + /// + /// Private key that generated by Google Cloud. + /// Starts with '-----BEGIN PRIVATE KEY-----' + /// and ends with '-----END PRIVATE KEY-----' + /// + public string? PrivateKey { + get => _containerConfiguration.GetConfigurationOrDefault(GoogleBlobProviderConfigurationNames.PrivateKey); + set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.PrivateKey, value); + } + + /// + /// Available OAuth 2.0 scopes. + /// + public List? Scopes { + get => _containerConfiguration.GetConfigurationOrDefault(GoogleBlobProviderConfigurationNames.Scopes, new List()); + set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.Scopes, value); + } + + /// + /// Use the application default credentials. https://cloud.google.com/docs/authentication/provide-credentials-adc + /// Default value: false. + /// + public bool UseApplicationDefaultCredentials { + get => _containerConfiguration.GetConfigurationOrDefault(GoogleBlobProviderConfigurationNames.UseApplicationDefaultCredentials, false); + set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.UseApplicationDefaultCredentials, value); + } + + /// + /// 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 will be used. + /// + public string? ContainerName { + get => _containerConfiguration.GetConfigurationOrDefault(GoogleBlobProviderConfigurationNames.ContainerName); + set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.ContainerName, value); + } + + /// + /// Default value: false. + /// + public bool CreateContainerIfNotExists { + get => _containerConfiguration.GetConfigurationOrDefault(GoogleBlobProviderConfigurationNames.CreateContainerIfNotExists, false); + set => _containerConfiguration.SetConfiguration(GoogleBlobProviderConfigurationNames.CreateContainerIfNotExists, value); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProviderConfigurationNames.cs b/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/GoogleBlobProviderConfigurationNames.cs new file mode 100644 index 0000000000..c682c693c8 --- /dev/null +++ b/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"; +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/IGoogleBlobNameCalculator.cs b/framework/src/Volo.Abp.BlobStoring.Google/Volo/Abp/BlobStoring/Google/IGoogleBlobNameCalculator.cs new file mode 100644 index 0000000000..8099c6fa8c --- /dev/null +++ b/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); +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Http/UrlHelpers.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Http/UrlHelpers.cs new file mode 100644 index 0000000000..30e5e81be2 --- /dev/null +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Http/UrlHelpers.cs @@ -0,0 +1,28 @@ +using System; + +namespace Volo.Abp.Http; + +public static class UrlHelpers +{ + private const string WildcardSubdomain = "*."; + + public static bool IsSubdomainOf(string subdomain, string domain) + { + if (Uri.TryCreate(subdomain, UriKind.Absolute, out var subdomainUri) && + Uri.TryCreate(domain.Replace(WildcardSubdomain, string.Empty), UriKind.Absolute, out var domainUri)) + { + return domainUri == subdomainUri || IsSubdomainOf(subdomainUri, domainUri); + } + + return false; + } + + public static bool IsSubdomainOf(Uri subdomain, Uri domain) + { + return subdomain.IsAbsoluteUri + && domain.IsAbsoluteUri + && subdomain.Scheme == domain.Scheme + && subdomain.Port == domain.Port + && subdomain.Host.EndsWith($".{domain.Host}", StringComparison.Ordinal); + } +} diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs index c4bd75cca2..c471d89acf 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs @@ -614,7 +614,19 @@ public abstract class AbpDbContext : DbContext, IAbpEfCoreDbContext, return; } + ExtraPropertyDictionary? originalExtraProperties = null; + if (entry.Entity is IHasExtraProperties) + { + originalExtraProperties = entry.OriginalValues.GetValue(nameof(IHasExtraProperties.ExtraProperties)); + } + entry.Reload(); + + if (entry.Entity is IHasExtraProperties) + { + ObjectHelper.TrySetProperty(entry.Entity.As(), x => x.ExtraProperties, () => originalExtraProperties); + } + ObjectHelper.TrySetProperty(entry.Entity.As(), x => x.IsDeleted, () => true); SetDeletionAuditProperties(entry); } diff --git a/framework/src/Volo.Abp.TextTemplating.Core/Volo/Abp/TextTemplating/VirtualFiles/LocalizedTemplateContentReaderFactory.cs b/framework/src/Volo.Abp.TextTemplating.Core/Volo/Abp/TextTemplating/VirtualFiles/LocalizedTemplateContentReaderFactory.cs index e0ca815003..001717eb11 100644 --- a/framework/src/Volo.Abp.TextTemplating.Core/Volo/Abp/TextTemplating/VirtualFiles/LocalizedTemplateContentReaderFactory.cs +++ b/framework/src/Volo.Abp.TextTemplating.Core/Volo/Abp/TextTemplating/VirtualFiles/LocalizedTemplateContentReaderFactory.cs @@ -13,16 +13,23 @@ public class LocalizedTemplateContentReaderFactory : ILocalizedTemplateContentRe protected IVirtualFileProvider VirtualFileProvider { get; } protected ConcurrentDictionary ReaderCache { get; } protected SemaphoreSlim SyncObj; + protected IAbpHostEnvironment AbpHostEnvironment { get; } - public LocalizedTemplateContentReaderFactory(IVirtualFileProvider virtualFileProvider) + public LocalizedTemplateContentReaderFactory(IVirtualFileProvider virtualFileProvider, IAbpHostEnvironment abpHostEnvironment) { VirtualFileProvider = virtualFileProvider; + AbpHostEnvironment = abpHostEnvironment; ReaderCache = new ConcurrentDictionary(); SyncObj = new SemaphoreSlim(1, 1); } public virtual async Task CreateAsync(TemplateDefinition templateDefinition) { + if (AbpHostEnvironment.IsDevelopment()) + { + return await CreateInternalAsync(templateDefinition); + } + if (ReaderCache.TryGetValue(templateDefinition.Name, out var reader)) { return reader; diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Urls/AppUrlProvider.cs b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Urls/AppUrlProvider.cs index e7b113c8b5..2991e84331 100644 --- a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Urls/AppUrlProvider.cs +++ b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Urls/AppUrlProvider.cs @@ -7,6 +7,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http; using Volo.Abp.MultiTenancy; namespace Volo.Abp.UI.Navigation.Urls; @@ -43,7 +44,8 @@ public class AppUrlProvider : IAppUrlProvider, ITransientDependency { redirectAllowedUrls.Add((await NormalizeUrlAsync(redirectAllowedUrl))!); } - var allow = redirectAllowedUrls.Any(x => url.StartsWith(x, StringComparison.CurrentCultureIgnoreCase)); + var allow = redirectAllowedUrls.Any(x => url.StartsWith(x, StringComparison.CurrentCultureIgnoreCase) || + UrlHelpers.IsSubdomainOf(url, x)); if (!allow) { Logger.LogError($"Invalid RedirectUrl: {url}, Use {nameof(AppUrlProvider)} to configure it!"); diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json index 9ecba92ca0..77937eab9f 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/es.json +++ b/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." } -} \ No newline at end of file +} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs index 027403d226..0e13746d66 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations; using Volo.Abp.AspNetCore.Mvc.GlobalFeatures; +using Volo.Abp.AspNetCore.Mvc.Libs; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.Localization.Resource; using Volo.Abp.AspNetCore.Security.Claims; @@ -140,6 +141,11 @@ public class AbpAspNetCoreMvcTestModule : AbpModule }); context.Services.TransformAbpClaims(); + + Configure(options => + { + options.CheckLibs = false; + }); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo.Abp.BlobStoring.Google.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo.Abp.BlobStoring.Google.Tests.csproj new file mode 100644 index 0000000000..a36e26fade --- /dev/null +++ b/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo.Abp.BlobStoring.Google.Tests.csproj @@ -0,0 +1,19 @@ + + + + + + net8.0 + + 9f0d2c00-80c1-435b-bfab-2c39c8249091 + + + + + + + + + + + diff --git a/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleTestBase.cs b/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleTestBase.cs new file mode 100644 index 0000000000..709590f6ed --- /dev/null +++ b/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 +{ + protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) + { + options.UseAutofac(); + } +} + +public class AbpBlobStoringGoogleTestBase : AbpIntegratedTest +{ + protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) + { + options.UseAutofac(); + } +} diff --git a/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleTestModule.cs b/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/AbpBlobStoringGoogleTestModule.cs new file mode 100644 index 0000000000..36a100a191 --- /dev/null +++ b/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; + + +/// +/// This module will not try to connect to Google Cloud Storage. +/// +[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(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 + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/DefaultGoogleBlobNamingNormalizerProvider_Tests.cs b/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/DefaultGoogleBlobNamingNormalizerProvider_Tests.cs new file mode 100644 index 0000000000..cfe43f8bcf --- /dev/null +++ b/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(); + } + + [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"); + } +} diff --git a/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/GoogleBlobContainer_Tests.cs b/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/GoogleBlobContainer_Tests.cs new file mode 100644 index 0000000000..6a4405f7cd --- /dev/null +++ b/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 +{ + public GoogleBlobContainer_Tests() + { + } +} +*/ diff --git a/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/GoogleBlobNameCalculator_Tests.cs b/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo/Abp/BlobStoring/Google/GoogleBlobNameCalculator_Tests.cs new file mode 100644 index 0000000000..781900ad81 --- /dev/null +++ b/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(); + _currentTenant = GetRequiredService(); + } + + [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 + ); + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/Http/UrlHelpers_Tests.cs b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/Http/UrlHelpers_Tests.cs new file mode 100644 index 0000000000..51251f84d4 --- /dev/null +++ b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/Http/UrlHelpers_Tests.cs @@ -0,0 +1,43 @@ +using Shouldly; +using Xunit; + +namespace Volo.Abp.Http; + +public class UrlHelpers_Tests +{ + [Theory] + [InlineData(null)] + [InlineData("null")] + [InlineData("http://")] + [InlineData("http://*")] + [InlineData("http://.domain")] + [InlineData("http://.domain/hello")] + public void IsSubdomainOf_ReturnsFalseIfDomainIsMalformedUri(string domain) + { + var actual = UrlHelpers.IsSubdomainOf("http://*.domain", domain); + actual.ShouldBeFalse(); + } + + [Theory] + [InlineData("http://sub.domain", "http://domain")] + [InlineData("http://sub.domain", "http://*.domain")] + [InlineData("http://sub.sub.domain", "http://*.domain")] + [InlineData("http://sub.sub.domain", "http://*.sub.domain")] + [InlineData("http://sub.domain:4567", "http://*.domain:4567")] + public void IsSubdomainOf_ReturnsTrue_WhenASubdomain(string subdomain, string domain) + { + var actual = UrlHelpers.IsSubdomainOf(subdomain, domain); + actual.ShouldBeTrue(); + } + + [Theory] + [InlineData("http://sub.domain:1234", "http://*.domain:5678")] + [InlineData("http://sub.domain", "http://domain.*")] + [InlineData("http://sub.domain.hacker", "http://*.domain")] + [InlineData("https://sub.domain", "http://*.domain")] + public void IsSubdomainOf_ReturnsFalse_WhenNotASubdomain(string subdomain, string domain) + { + var actual = UrlHelpers.IsSubdomainOf(subdomain, domain); + actual.ShouldBeFalse(); + } +} diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Domain/ExtraProperties_Tests.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Domain/ExtraProperties_Tests.cs index 42b6ca2a67..59eaa367fa 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Domain/ExtraProperties_Tests.cs +++ b/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("PhoneCode").ShouldBe("42"); + + await CityRepository.DeleteAsync(london); + + london = await CityRepository.FindByNameAsync("London"); + london.ShouldBeNull(); + + using (var uow = ServiceProvider.GetRequiredService().Disable()) + { + london = await CityRepository.FindByNameAsync("London"); + london.IsDeleted.ShouldBeTrue(); + london.HasProperty("PhoneCode").ShouldBeTrue(); + london.GetProperty("PhoneCode").ShouldBe("42"); + } + } + public enum Color { Red = 0, diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/City.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/City.cs index 15ca147d91..50c3d32458 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Domain/City.cs +++ b/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 +public class City : AggregateRoot, ISoftDelete { public string Name { get; set; } public ICollection Districts { get; set; } + public bool IsDeleted { get; set; } + private City() { diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ConcurrencyStamp_Tests.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ConcurrencyStamp_Tests.cs index 2f9f8c1257..2906431ff1 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ConcurrencyStamp_Tests.cs +++ b/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 : TestAppTestBase(async () => { - await CityRepository.DeleteAsync(london1); + await CityRepository.HardDeleteAsync(london1); }); } } diff --git a/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/RazorLocalizedTemplateContentReaderFactory_Tests.cs b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/RazorLocalizedTemplateContentReaderFactory_Tests.cs index 97a3b7426e..1e50d5a86c 100644 --- a/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/RazorLocalizedTemplateContentReaderFactory_Tests.cs +++ b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo/Abp/TextTemplating/Razor/RazorLocalizedTemplateContentReaderFactory_Tests.cs @@ -12,7 +12,8 @@ public class RazorLocalizedTemplateContentReaderFactory_Tests : LocalizedTemplat LocalizedTemplateContentReaderFactory = new LocalizedTemplateContentReaderFactory( new PhysicalFileVirtualFileProvider( new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), - "Volo", "Abp", "TextTemplating", "Razor")))); + "Volo", "Abp", "TextTemplating", "Razor"))), + GetRequiredService()); WelcomeEmailEnglishContent = "@inherits Volo.Abp.TextTemplating.Razor.RazorTemplatePageBase" + Environment.NewLine + diff --git a/framework/test/Volo.Abp.TextTemplating.Scriban.Tests/Volo/Abp/TextTemplating/Scriban/ScribanLocalizedTemplateContentReaderFactory_Tests.cs b/framework/test/Volo.Abp.TextTemplating.Scriban.Tests/Volo/Abp/TextTemplating/Scriban/ScribanLocalizedTemplateContentReaderFactory_Tests.cs index 35fecd093d..bbf0f99c56 100644 --- a/framework/test/Volo.Abp.TextTemplating.Scriban.Tests/Volo/Abp/TextTemplating/Scriban/ScribanLocalizedTemplateContentReaderFactory_Tests.cs +++ b/framework/test/Volo.Abp.TextTemplating.Scriban.Tests/Volo/Abp/TextTemplating/Scriban/ScribanLocalizedTemplateContentReaderFactory_Tests.cs @@ -11,7 +11,8 @@ public class ScribanLocalizedTemplateContentReaderFactory_Tests : LocalizedTempl LocalizedTemplateContentReaderFactory = new LocalizedTemplateContentReaderFactory( new PhysicalFileVirtualFileProvider( new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), - "Volo", "Abp", "TextTemplating", "Scriban")))); + "Volo", "Abp", "TextTemplating", "Scriban"))), + GetRequiredService()); WelcomeEmailEnglishContent = "Welcome {{model.name}} to the abp.io!"; WelcomeEmailTurkishContent = "Merhaba {{model.name}}, abp.io'ya hoşgeldiniz!"; diff --git a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/AppUrlProvider_Tests.cs b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/AppUrlProvider_Tests.cs index 5b448aa683..eb3698d23b 100644 --- a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/AppUrlProvider_Tests.cs +++ b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/AppUrlProvider_Tests.cs @@ -40,7 +40,8 @@ public class AppUrlProvider_Tests : AbpIntegratedTest "https://wwww.volosoft.com", "https://wwww.aspnetzero.com", "https://{{tenantName}}.abp.io", - "https://{{tenantId}}.abp.io" + "https://{{tenantId}}.abp.io", + "https://*.demo.myabp.io" }); options.Applications["BLAZOR"].RootUrl = "https://{{tenantId}}.abp.io"; @@ -101,12 +102,16 @@ public class AppUrlProvider_Tests : AbpIntegratedTest [Fact] public async Task IsRedirectAllowedUrlAsync() { - (await _appUrlProvider.IsRedirectAllowedUrlAsync("https://community.abp.io")).ShouldBeFalse(); (await _appUrlProvider.IsRedirectAllowedUrlAsync("https://wwww.volosoft.com")).ShouldBeTrue(); + (await _appUrlProvider.IsRedirectAllowedUrlAsync("https://wwww.demo.myabp.io")).ShouldBeTrue(); + (await _appUrlProvider.IsRedirectAllowedUrlAsync("https://demo.myabp.io")).ShouldBeTrue(); + (await _appUrlProvider.IsRedirectAllowedUrlAsync("https://api.demo.myabp.io")).ShouldBeTrue(); + (await _appUrlProvider.IsRedirectAllowedUrlAsync("https://test.api.demo.myabp.io")).ShouldBeTrue(); + (await _appUrlProvider.IsRedirectAllowedUrlAsync("https://volosoft.com/demo.myabp.io")).ShouldBeFalse(); + (await _appUrlProvider.IsRedirectAllowedUrlAsync("https://wwww.myabp.io")).ShouldBeFalse(); using (_currentTenant.Change(null)) { - (await _appUrlProvider.IsRedirectAllowedUrlAsync("https://www.abp.io")).ShouldBeFalse(); (await _appUrlProvider.IsRedirectAllowedUrlAsync("https://abp.io")).ShouldBeTrue(); } diff --git a/latest-versions.json b/latest-versions.json index 4649df25e4..8e0b7be03d 100644 --- a/latest-versions.json +++ b/latest-versions.json @@ -1,6 +1,6 @@ [ { - "version": "8.2.1", + "version": "8.2.2", "releaseDate": "", "type": "stable", "message": "" diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.abppkg.analyze.json index 9b8257a2f0..da04b6d001 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.abppkg.analyze.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Account.Application.Contracts", - "hash": "392da50100d94bd18adbc7c41cd9efce", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Account", diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.abppkg.analyze.json index dbd55b0f21..d02c89e745 100644 --- a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.abppkg.analyze.json +++ b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Account.Application", - "hash": "ebd6f98a2003938944d5a3790daf20af", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Account", @@ -141,6 +141,7 @@ "methods": [ { "returnType": "IdentityUserDto", + "namespace": "Volo.Abp.Account", "name": "RegisterAsync", "summary": null, "isAsync": true, @@ -157,6 +158,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Account", "name": "SendPasswordResetCodeAsync", "summary": null, "isAsync": true, @@ -173,6 +175,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.Account", "name": "VerifyPasswordResetTokenAsync", "summary": null, "isAsync": true, @@ -189,6 +192,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Account", "name": "ResetPasswordAsync", "summary": null, "isAsync": true, @@ -208,6 +212,87 @@ "name": "AccountAppService", "summary": null }, + { + "namespace": "Volo.Abp.Account", + "baseClass": { + "name": "IdentityAppServiceBase", + "namespace": "Volo.Abp.Identity", + "declaringAssemblyName": "Volo.Abp.Identity.Application", + "fullName": "Volo.Abp.Identity.IdentityAppServiceBase" + }, + "implementingInterfaces": [ + { + "name": "IApplicationService", + "namespace": "Volo.Abp.Application.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" + }, + { + "name": "IRemoteService", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" + }, + { + "name": "IAvoidDuplicateCrossCuttingConcerns", + "namespace": "Volo.Abp.Aspects", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" + }, + { + "name": "IValidationEnabled", + "namespace": "Volo.Abp.Validation", + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" + }, + { + "name": "IUnitOfWorkEnabled", + "namespace": "Volo.Abp.Uow", + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" + }, + { + "name": "IAuditingEnabled", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" + }, + { + "name": "IGlobalFeatureCheckingEnabled", + "namespace": "Volo.Abp.GlobalFeatures", + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IDynamicClaimsAppService", + "namespace": "Volo.Abp.Account", + "declaringAssemblyName": "Volo.Abp.Account.Application.Contracts", + "fullName": "Volo.Abp.Account.IDynamicClaimsAppService" + } + ], + "methods": [ + { + "returnType": "Void", + "namespace": "Volo.Abp.Account", + "name": "RefreshAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [] + } + ], + "contentType": "applicationService", + "name": "DynamicClaimsAppService", + "summary": null + }, { "namespace": "Volo.Abp.Account", "baseClass": { @@ -275,6 +360,7 @@ "methods": [ { "returnType": "ProfileDto", + "namespace": "Volo.Abp.Account", "name": "GetAsync", "summary": null, "isAsync": true, @@ -285,6 +371,7 @@ }, { "returnType": "ProfileDto", + "namespace": "Volo.Abp.Account", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -301,6 +388,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Account", "name": "ChangePasswordAsync", "summary": null, "isAsync": true, diff --git a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.abppkg.analyze.json index 0fe0981e1d..cba964b090 100644 --- a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.abppkg.analyze.json +++ b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.abppkg.analyze.json @@ -1,10 +1,25 @@ { "name": "Volo.Abp.Account.Blazor", - "hash": "caa7279a6d55f90db90b3ec2313a4e12", + "hash": "", "contents": [ { - "namespace": "Volo.Abp.Account.Blazor;", + "namespace": "Volo.Abp.Account.Blazor", "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.AspNetCore.Components.Web.Theming", + "namespace": "Volo.Abp.AspNetCore.Components.Web.Theming", + "name": "AbpAspNetCoreComponentsWebThemingModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AutoMapper", + "namespace": "Volo.Abp.AutoMapper", + "name": "AbpAutoMapperModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Account.Application.Contracts", + "namespace": "Volo.Abp.Account", + "name": "AbpAccountApplicationContractsModule" + } ], "implementingInterfaces": [ { @@ -53,6 +68,12 @@ "contentType": "abpModule", "name": "AbpAccountBlazorModule", "summary": null + }, + { + "namespace": "Volo.Abp.Account.Blazor.Pages.Account", + "contentType": "webPage", + "name": "AccountManage", + "summary": null } ] } \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.abppkg.analyze.json index bed1809a98..d6313846ba 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.abppkg.analyze.json +++ b/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Account.HttpApi.Client", - "hash": "5a1716ad59fa19da3009381a4d0d3e1d", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Account", diff --git a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json index 2df3965fe7..3ee0c8975a 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json +++ b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Account.HttpApi", - "hash": "caa7279a6d55f90db90b3ec2313a4e12", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Account", @@ -68,6 +68,107 @@ "contentType": "abpModule", "name": "AbpAccountHttpApiModule", "summary": null + }, + { + "apis": [ + { + "path": "api/account/register", + "method": "POST", + "groupName": "Account", + "responseType": "Volo.Abp.Identity.IdentityUserDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "RegisterDto" + } + ] + }, + { + "path": "api/account/send-password-reset-code", + "method": "POST", + "groupName": "Account", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "SendPasswordResetCodeDto" + } + ] + }, + { + "path": "api/account/verify-password-reset-token", + "method": "POST", + "groupName": "Account", + "responseType": "System.Boolean", + "responseTypeAsJson": "true", + "parameterDescriptions": [ + { + "name": "input", + "type": "VerifyPasswordResetTokenInput" + } + ] + }, + { + "path": "api/account/reset-password", + "method": "POST", + "groupName": "Account", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "ResetPasswordDto" + } + ] + }, + { + "path": "api/account/dynamic-claims/refresh", + "method": "POST", + "groupName": "DynamicClaims", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [] + }, + { + "path": "api/account/my-profile", + "method": "GET", + "groupName": "Profile", + "responseType": "Volo.Abp.Account.ProfileDto", + "responseTypeAsJson": "", + "parameterDescriptions": [] + }, + { + "path": "api/account/my-profile", + "method": "PUT", + "groupName": "Profile", + "responseType": "Volo.Abp.Account.ProfileDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "UpdateProfileDto" + } + ] + }, + { + "path": "api/account/my-profile/change-password", + "method": "POST", + "groupName": "Profile", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "ChangePasswordInput" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null } ] } \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.abppkg.analyze.json index 2f22b0023e..5f73497d46 100644 --- a/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.abppkg.analyze.json +++ b/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Account.Web.OpenIddict", - "hash": "29785246e5bdaa8010c7da236efe3ba1", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Account.Web", diff --git a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json index f346e062ae..af62c4f131 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json +++ b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Account.Web", - "hash": "93b7e37fb41330719f0911b2c1b31cf0", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Account.Web", @@ -78,6 +78,107 @@ "contentType": "abpModule", "name": "AbpAccountWebModule", "summary": null + }, + { + "apis": [ + { + "path": "api/account/login", + "method": "POST", + "groupName": "Account", + "responseType": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "login", + "type": "UserLoginInfo" + } + ] + }, + { + "path": "api/account/logout", + "method": "GET", + "groupName": "Account", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [] + }, + { + "path": "api/account/check-password", + "method": "POST", + "groupName": "Account", + "responseType": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "login", + "type": "UserLoginInfo" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null + }, + { + "namespace": "Volo.Abp.Account.Web.Pages.Account", + "contentType": "webPage", + "name": "AccessDeniedModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Account.Web.Pages.Account", + "contentType": "webPage", + "name": "ForgotPasswordModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Account.Web.Pages.Account", + "contentType": "webPage", + "name": "LoggedOutModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Account.Web.Pages.Account", + "contentType": "webPage", + "name": "LoginModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Account.Web.Pages.Account", + "contentType": "webPage", + "name": "LogoutModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Account.Web.Pages.Account", + "contentType": "webPage", + "name": "ManageModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Account.Web.Pages.Account", + "contentType": "webPage", + "name": "PasswordResetLinkSentModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Account.Web.Pages.Account", + "contentType": "webPage", + "name": "RegisterModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Account.Web.Pages.Account", + "contentType": "webPage", + "name": "ResetPasswordModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Account.Web.Pages.Account", + "contentType": "webPage", + "name": "ResetPasswordConfirmationModel", + "summary": null } ] } \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json index 459bd50c19..3dab2d3fe4 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AuditLogging.Domain.Shared", - "hash": "8e82f96ec1349d214e72c8fb4f902460", + "hash": "", "contents": [ { "namespace": "Volo.Abp.AuditLogging", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json index 9d2726bc18..92016b016f 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AuditLogging.Domain", - "hash": "fa171768247503b44e7e57d4518d2ef8", + "hash": "", "contents": [ { "namespace": "Volo.Abp.AuditLogging", @@ -274,7 +274,7 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], @@ -486,6 +486,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.AuditLogging", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -528,6 +529,11 @@ "name": "url", "isOptional": true }, + { + "type": "String", + "name": "clientId", + "isOptional": true + }, { "type": "Nullable", "name": "userId", @@ -587,6 +593,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.AuditLogging", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -614,6 +621,11 @@ "name": "url", "isOptional": true }, + { + "type": "String", + "name": "clientId", + "isOptional": true + }, { "type": "Nullable", "name": "userId", @@ -668,6 +680,7 @@ }, { "returnType": "Dictionary", + "namespace": "Volo.Abp.AuditLogging", "name": "GetAverageExecutionDurationPerDayAsync", "summary": null, "isAsync": true, @@ -694,6 +707,7 @@ }, { "returnType": "EntityChange", + "namespace": "Volo.Abp.AuditLogging", "name": "GetEntityChange", "summary": null, "isAsync": true, @@ -715,6 +729,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.AuditLogging", "name": "GetEntityChangeListAsync", "summary": null, "isAsync": true, @@ -781,6 +796,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.AuditLogging", "name": "GetEntityChangeCountAsync", "summary": null, "isAsync": true, @@ -827,6 +843,7 @@ }, { "returnType": "EntityChangeWithUsername", + "namespace": "Volo.Abp.AuditLogging", "name": "GetEntityChangeWithUsernameAsync", "summary": null, "isAsync": true, @@ -848,6 +865,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.AuditLogging", "name": "GetEntityChangesWithUsernameAsync", "summary": null, "isAsync": true, diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json index 5e5f6b6373..5d090598d4 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AuditLogging.EntityFrameworkCore", - "hash": "ce7134690167eded17ba2eac28d2d34e", + "hash": "", "contents": [ { "namespace": "Volo.Abp.AuditLogging.EntityFrameworkCore", @@ -67,33 +67,27 @@ { "namespace": "Volo.Abp.AuditLogging.EntityFrameworkCore", "connectionStringName": "AbpAuditLogging", - "databaseTables": [ - { - "entityFullName": "Volo.Abp.AuditLogging.AuditLog", - "contentType": "databaseTable", - "name": "AbpAuditLogs", - "summary": null - }, - { - "entityFullName": "Volo.Abp.AuditLogging.AuditLogAction", - "contentType": "databaseTable", - "name": "AbpAuditLogActions", - "summary": null - }, - { - "entityFullName": "Volo.Abp.AuditLogging.EntityChange", - "contentType": "databaseTable", - "name": "AbpEntityChanges", - "summary": null - }, + "databaseTables": [], + "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ { - "entityFullName": "Volo.Abp.AuditLogging.EntityPropertyChange", - "contentType": "databaseTable", - "name": "AbpEntityPropertyChanges", - "summary": null + "returnType": "Void", + "namespace": "Volo.Abp.AuditLogging.EntityFrameworkCore", + "name": "ConfigureAuditLogging", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] } ], - "replacedDbContexts": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -149,6 +143,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json index 7b26febfce..93652f22ec 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AuditLogging.MongoDB", - "hash": "ce6dfe92b247a77b0138c47e0da4a98c", + "hash": "", "contents": [ { "namespace": "Volo.Abp.AuditLogging.MongoDB", @@ -71,7 +71,7 @@ { "entityFullName": "Volo.Abp.AuditLogging.AuditLog", "contentType": "databaseCollection", - "name": "AbpAuditLogs", + "name": "AuditLogs", "summary": null } ], diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json index c916e58771..40eeda286c 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.Domain.Shared", - "hash": "ad745dc8f75ef6e5b391ee5eca14a895", + "hash": "", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs", diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json index e969d25819..f792712158 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.Domain", - "hash": "9135b4c99ca5f16a980041e8621fb415", + "hash": "", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs", @@ -222,6 +222,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.BackgroundJobs", "name": "GetWaitingListAsync", "summary": null, "isAsync": true, diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json index 41772a0d4f..fd7de5ddf3 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.EntityFrameworkCore", - "hash": "093b92974b3f005cca5e441d8cc1bafb", + "hash": "", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs.EntityFrameworkCore", @@ -67,15 +67,27 @@ { "namespace": "Volo.Abp.BackgroundJobs.EntityFrameworkCore", "connectionStringName": "AbpBackgroundJobs", - "databaseTables": [ + "databaseTables": [], + "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ { - "entityFullName": "Volo.Abp.BackgroundJobs.BackgroundJobRecord", - "contentType": "databaseTable", - "name": "AbpBackgroundJobs", - "summary": null + "returnType": "Void", + "namespace": "Volo.Abp.BackgroundJobs.EntityFrameworkCore", + "name": "ConfigureBackgroundJobs", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] } ], - "replacedDbContexts": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -131,6 +143,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json index 3c333134f7..d6e11b2a6f 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BackgroundJobs.MongoDB", - "hash": "43dcde5f0f68f0b06ce3158a154b58e1", + "hash": "", "contents": [ { "namespace": "Volo.Abp.BackgroundJobs.MongoDB", @@ -71,7 +71,7 @@ { "entityFullName": "Volo.Abp.BackgroundJobs.BackgroundJobRecord", "contentType": "databaseCollection", - "name": "AbpBackgroundJobs", + "name": "BackgroundJobs", "summary": null } ], diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json index 0e1d29e0df..14797aa792 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", - "hash": "69ff20961072c952f3a841d6e783cba9", + "hash": "", "contents": [ { "namespace": "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index 6534b13c8f..634b99a3cb 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/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.2", - "@abp/prismjs": "~8.3.0-rc.2", - "@abp/highlight.js": "~8.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.0", + "@abp/prismjs": "~8.3.0", + "@abp/highlight.js": "~8.3.0" } } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index c1c08588f3..214c3a3fdd 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.2.tgz#eacc811b84cec3be59723c629f8dc7116547b9b2" - integrity sha512-1MT2cBQyrp8/pzdvpQgn7n4JafyKoclZlSaYebGt5JmKa1rDp66pAw0zrIrRVdwfojhYbZxsZ3uvsfmbpiRo9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0-rc.2" - "@abp/bootstrap" "~8.3.0-rc.2" - "@abp/bootstrap-datepicker" "~8.3.0-rc.2" - "@abp/bootstrap-daterangepicker" "~8.3.0-rc.2" - "@abp/datatables.net-bs5" "~8.3.0-rc.2" - "@abp/font-awesome" "~8.3.0-rc.2" - "@abp/jquery-form" "~8.3.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~8.3.0-rc.2" - "@abp/lodash" "~8.3.0-rc.2" - "@abp/luxon" "~8.3.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.2" - "@abp/moment" "~8.3.0-rc.2" - "@abp/select2" "~8.3.0-rc.2" - "@abp/sweetalert2" "~8.3.0-rc.2" - "@abp/timeago" "~8.3.0-rc.2" - "@abp/toastr" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.2.tgz#58372b05fd1765a384e57ee53088b3ace4873e53" - integrity sha512-jswnQx7JoOGmfrqGnS8U+dP7trdxHtM4ZJUvlz/SLQb8OeRxoQyLr4YQhpNa4cnKzN4hrXDlITp22Z3Pn3kQ9g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.2.tgz#22d4944c20b85502e3b40a20e4f3a7085ca43c20" - integrity sha512-PO6xa7ss5YyZN9ofWlMkLr8f5hto/hHNz3x8yJma2he8zaoqMz85DByYPaH1yM5CiVN+RtEUCD9MLHmDwvaLZA== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.2.tgz#fc5d920b16a126b5d4c492f2aa807d3bb5b74cec" - integrity sha512-WrB8XeiYrFyiCWpWlWW2OUEu2MP8ZGPVRnHrTcNLe6rcp8Kj7dlzOrp6MpyJH7/lhgCTVqujoBCvphD9OOS33g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.2.tgz#07feafd950bb88971a8d3d5c1fdfc170d84fe13a" - integrity sha512-1v/nIxwb//tuI1ieGixxvfkcFvVvy1pXIOtL74d99iY7jU4gdNZcIO22qtmS9kTd55dI0FbOS7bERo4pozR+3g== +"@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.2" + "@abp/core" "~8.3.0" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.2.tgz#ed6955b215c1591aa226373b06e329d64b45bc0c" - integrity sha512-swA/ipl31FhEvQspgkZO+FYVfeFXsbhnVQ0aO9S7r0bsWDUA+3rbcpC2oOjRwzzE+qF2vr97f2WO/iR/o6SqpA== +"@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.2" + "@abp/core" "~8.3.0" clipboard "^2.0.11" -"@abp/core@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.2.tgz#63455a6bff294ee93fd8cbec5f0f9a994cf35322" - integrity sha512-RoYUz1y2ZMdAzO6nSZirtYSsEqeW5uBJxnzREkT0DFj1LrB6ywnzdV05GCKbhBcNhp2gDKEGHqCPS4HOMb2uWg== +"@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.2" + "@abp/utils" "~8.3.0" -"@abp/datatables.net-bs5@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.2.tgz#eb75b855595e264510b29adc4e2d01820752d4a3" - integrity sha512-/OTF0rsGqGXCSL+Nec07IP4O0oqdMgAXxgu6gxsjCnjGodhDtQioUbFC8SI8H8aOYBerVHWfMSMLgpJbGbS8eA== +"@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.2" + "@abp/datatables.net" "~8.3.0" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.2.tgz#38f510bb294650881b494798fe33ce9b0c0376ef" - integrity sha512-GFV343oOGwIC3giAuTuKWzuDmIDyQkn+Sr+wLCCExn3gq9OIJI5COCCD1RIp7L9SU4t3CnzJGjvi5Qzq8iLbtQ== +"@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.2" + "@abp/jquery" "~8.3.0" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.2.tgz#c97d656e1a1df8081180d9644d4734da36787c15" - integrity sha512-dUQXDxvAolfksLOIj71gSi+L8L4gvri6Wi8F3CDTgRKDEPRQ9RN0T4bqkMfeTioTeXCHpeqR4YftmmxylOWQhQ== +"@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.2" + "@abp/core" "~8.3.0" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/highlight.js@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.3.0-rc.2.tgz#3bf6dd4c3a768a0c8cdd4ca2d786e1c04358adcf" - integrity sha512-/JPxhtOrm5G/Agl4wjG2t5zmsxS7pdtHdVlAp1WwcFK2JvJVvB504NRdBe/YANsR4DbiJTobWZe6BxRTw7Y3GQ== +"@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.2" + "@abp/core" "~8.3.0" "@highlightjs/cdn-assets" "~11.9.0" -"@abp/jquery-form@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.2.tgz#eecc01b21cb2b8ad0f889662175ca66c6d8f2fe4" - integrity sha512-ng5QHRxGE/aYzSjSXTI84L80xn/fyXSXF1hLgVT2teOR/6XWe7FmDv/SSrYi0oRopeY5dgDrzVpKp2j7+qx/yg== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.2.tgz#6606b71c0043e0a2e382ee07ee2de840ac12b545" - integrity sha512-oS2t9M6j4YI6QSETDZw67fqhpyvpWSpvC/RiuWvMhBKZOWyNPMT3b/42Fz2LI22xSODwNM7jaESEUbdo11PI3Q== +"@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.2" + "@abp/jquery-validation" "~8.3.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.2.tgz#028d9e6c1e94b1c1f9c64607f35d992857fe3121" - integrity sha512-8QmoVDQpbjl/ggfbsXPh1kf3XxFCtuyykeLdhCqYurLSw9UHejDtc/7lJA85L6eiFAjJs6VzbdP9ORnlWyOYgQ== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.2.tgz#4b40ace6d7e7331b1ff5fa41d9a7ce724def7808" - integrity sha512-HDUXVXrHa/HHbkhfLDwxIr6NNQLz+R9M/Gf8+UsxDnzevWZw9hzkwQnO3RWcK99hyaeURA2DEKLGSGa7ip3qfg== +"@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.2" + "@abp/core" "~8.3.0" jquery "~3.7.1" -"@abp/lodash@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.2.tgz#3d714095ac1985bb9688a4a2f7d2b6e439fbab50" - integrity sha512-fhjtXi7pWlNlCbayU2BqeLAbYyds5HlHF0jrqitXS6r07l6VIru5f5f1h1yd3T5RIwoA0ZT9ZrICqvxH9iQA/w== +"@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.2" + "@abp/core" "~8.3.0" lodash "^4.17.21" -"@abp/luxon@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.2.tgz#67e64aed26d7f521b76271656bed8ae19b3da00f" - integrity sha512-uajtkxqRlWK1jACB53lOhF7g8Rj+S9CCHSm2uNuAGcAK30kEZQfLEZTLzzOJ/evqDTiBay1hNYAPHnzY7Uigzw== +"@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.2" + "@abp/core" "~8.3.0" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.2.tgz#e3170cf9ed7a333040151bc1c70405d7e9269e80" - integrity sha512-GLPLnh89ebM6i3EyMjzSYtukT1lU5MSEJ/A18zIzDYgH9SUMFMe4yFJtGDngUtyzQA23hyuHcj3u1CIgPtKuGQ== +"@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.2" + "@abp/core" "~8.3.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.2.tgz#cfa76dba9731e03f24acabe8d254c077b683b99a" - integrity sha512-2JglkMbePjxoHRBjd52MGFMqWwzDdmer1hpPJ7BvznL4tklXtSg+Q7D2z7VB1bv+ZAe31cqI8IxwdxWf2eyOmw== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.2.tgz#bfdc7f12e8b51e321267bcb82500ffa9cb96f69c" - integrity sha512-LYYN6bqjVR/hsA2NJ5LQuPxgDsE/FTHxUVGIMk2TmFKnk8KUjQ7hDE/rllIwGWwxPtS96M6NPnzmrR8NDwI3cA== +"@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.2" - "@abp/core" "~8.3.0-rc.2" + "@abp/clipboard" "~8.3.0" + "@abp/core" "~8.3.0" prismjs "^1.29.0" -"@abp/select2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.2.tgz#ccf997047e75bfdf30b263201cbce6d2257c7348" - integrity sha512-ERQ/Zb8xzL704a2DLoM6ZD3IhH07MeIGn4UBhD/A3n14Yxu82Vi8qOdl+R6f0JhsDGmif/nuovxbUizFeSKmYg== +"@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.2" + "@abp/core" "~8.3.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.2.tgz#27afcabd6c3a10e76979102f5d143b404f38213c" - integrity sha512-ZloFEPOPWXiyKGdxtxyMGglamf8shTZAzhcUlxeqwRRsTlo342LI0iopOHDQ2Kfqmeua9xgj+nhX7zc6Kh0A0w== +"@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.2" + "@abp/core" "~8.3.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.2.tgz#1194a6f049b452141bd5714faff1e1fd8da20800" - integrity sha512-8Z82DPOZYEzfYevVELC1W5L4OdMHDGVZ00QAQqFv/XGTGjMVZeTvfpXKqpEcUYPMUVHcNWU3yLkIUZXGj1qXOw== +"@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.2" + "@abp/jquery" "~8.3.0" timeago "^1.6.7" -"@abp/toastr@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.2.tgz#ef5f08f894510516d055aa4ee2abf8f311a73879" - integrity sha512-syQJ87TVjkDegJBdsP+YfEK8I9zq3mDmLOQrEKRU2z3yX0qdc6zIRSCPTAkyBxf4C4gvdr4dNJJN/uKToaAo2Q== +"@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.2" + "@abp/jquery" "~8.3.0" toastr "^2.1.4" -"@abp/utils@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.2.tgz#9acb10e775c734dac2d4c48ade47c365448bbacc" - integrity sha512-jbXbkOWseh7tqqfX7jSsERFDr/Q89FUKz81rRx5jii2RuXnc9wG9E7BSG0wCQ6+o39dgpsSjKbQgwjnjBJrpJQ== +"@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" diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index abea161454..3f9c9e79e8 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/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.2", - "@abp/prismjs": "~8.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", + "@abp/prismjs": "~8.3.0" }, "devDependencies": {} } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index 4389ce6672..62c9b5489d 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.2.tgz#8699581833e045c1a0e0d402c793c6fe47c8c4aa" - integrity sha512-DLVzeMAaa/1Q6ej4hOjRGYBBkuNMqmIu0ko6g8kYHutqveffUL7wyf+Dc1BJHyHlUSiL/LE0zbeaGjmG1TOVwQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.2.tgz#eacc811b84cec3be59723c629f8dc7116547b9b2" - integrity sha512-1MT2cBQyrp8/pzdvpQgn7n4JafyKoclZlSaYebGt5JmKa1rDp66pAw0zrIrRVdwfojhYbZxsZ3uvsfmbpiRo9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0-rc.2" - "@abp/bootstrap" "~8.3.0-rc.2" - "@abp/bootstrap-datepicker" "~8.3.0-rc.2" - "@abp/bootstrap-daterangepicker" "~8.3.0-rc.2" - "@abp/datatables.net-bs5" "~8.3.0-rc.2" - "@abp/font-awesome" "~8.3.0-rc.2" - "@abp/jquery-form" "~8.3.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~8.3.0-rc.2" - "@abp/lodash" "~8.3.0-rc.2" - "@abp/luxon" "~8.3.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.2" - "@abp/moment" "~8.3.0-rc.2" - "@abp/select2" "~8.3.0-rc.2" - "@abp/sweetalert2" "~8.3.0-rc.2" - "@abp/timeago" "~8.3.0-rc.2" - "@abp/toastr" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.2.tgz#58372b05fd1765a384e57ee53088b3ace4873e53" - integrity sha512-jswnQx7JoOGmfrqGnS8U+dP7trdxHtM4ZJUvlz/SLQb8OeRxoQyLr4YQhpNa4cnKzN4hrXDlITp22Z3Pn3kQ9g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.2.tgz#22d4944c20b85502e3b40a20e4f3a7085ca43c20" - integrity sha512-PO6xa7ss5YyZN9ofWlMkLr8f5hto/hHNz3x8yJma2he8zaoqMz85DByYPaH1yM5CiVN+RtEUCD9MLHmDwvaLZA== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.2.tgz#fc5d920b16a126b5d4c492f2aa807d3bb5b74cec" - integrity sha512-WrB8XeiYrFyiCWpWlWW2OUEu2MP8ZGPVRnHrTcNLe6rcp8Kj7dlzOrp6MpyJH7/lhgCTVqujoBCvphD9OOS33g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.2.tgz#07feafd950bb88971a8d3d5c1fdfc170d84fe13a" - integrity sha512-1v/nIxwb//tuI1ieGixxvfkcFvVvy1pXIOtL74d99iY7jU4gdNZcIO22qtmS9kTd55dI0FbOS7bERo4pozR+3g== +"@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.2" + "@abp/core" "~8.3.0" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.2.tgz#ed6955b215c1591aa226373b06e329d64b45bc0c" - integrity sha512-swA/ipl31FhEvQspgkZO+FYVfeFXsbhnVQ0aO9S7r0bsWDUA+3rbcpC2oOjRwzzE+qF2vr97f2WO/iR/o6SqpA== +"@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.2" + "@abp/core" "~8.3.0" clipboard "^2.0.11" -"@abp/core@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.2.tgz#63455a6bff294ee93fd8cbec5f0f9a994cf35322" - integrity sha512-RoYUz1y2ZMdAzO6nSZirtYSsEqeW5uBJxnzREkT0DFj1LrB6ywnzdV05GCKbhBcNhp2gDKEGHqCPS4HOMb2uWg== +"@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.2" + "@abp/utils" "~8.3.0" -"@abp/datatables.net-bs5@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.2.tgz#eb75b855595e264510b29adc4e2d01820752d4a3" - integrity sha512-/OTF0rsGqGXCSL+Nec07IP4O0oqdMgAXxgu6gxsjCnjGodhDtQioUbFC8SI8H8aOYBerVHWfMSMLgpJbGbS8eA== +"@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.2" + "@abp/datatables.net" "~8.3.0" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.2.tgz#38f510bb294650881b494798fe33ce9b0c0376ef" - integrity sha512-GFV343oOGwIC3giAuTuKWzuDmIDyQkn+Sr+wLCCExn3gq9OIJI5COCCD1RIp7L9SU4t3CnzJGjvi5Qzq8iLbtQ== +"@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.2" + "@abp/jquery" "~8.3.0" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.2.tgz#c97d656e1a1df8081180d9644d4734da36787c15" - integrity sha512-dUQXDxvAolfksLOIj71gSi+L8L4gvri6Wi8F3CDTgRKDEPRQ9RN0T4bqkMfeTioTeXCHpeqR4YftmmxylOWQhQ== +"@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.2" + "@abp/core" "~8.3.0" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.2.tgz#eecc01b21cb2b8ad0f889662175ca66c6d8f2fe4" - integrity sha512-ng5QHRxGE/aYzSjSXTI84L80xn/fyXSXF1hLgVT2teOR/6XWe7FmDv/SSrYi0oRopeY5dgDrzVpKp2j7+qx/yg== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.2.tgz#6606b71c0043e0a2e382ee07ee2de840ac12b545" - integrity sha512-oS2t9M6j4YI6QSETDZw67fqhpyvpWSpvC/RiuWvMhBKZOWyNPMT3b/42Fz2LI22xSODwNM7jaESEUbdo11PI3Q== +"@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.2" + "@abp/jquery-validation" "~8.3.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.2.tgz#028d9e6c1e94b1c1f9c64607f35d992857fe3121" - integrity sha512-8QmoVDQpbjl/ggfbsXPh1kf3XxFCtuyykeLdhCqYurLSw9UHejDtc/7lJA85L6eiFAjJs6VzbdP9ORnlWyOYgQ== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.2.tgz#4b40ace6d7e7331b1ff5fa41d9a7ce724def7808" - integrity sha512-HDUXVXrHa/HHbkhfLDwxIr6NNQLz+R9M/Gf8+UsxDnzevWZw9hzkwQnO3RWcK99hyaeURA2DEKLGSGa7ip3qfg== +"@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.2" + "@abp/core" "~8.3.0" jquery "~3.7.1" -"@abp/lodash@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.2.tgz#3d714095ac1985bb9688a4a2f7d2b6e439fbab50" - integrity sha512-fhjtXi7pWlNlCbayU2BqeLAbYyds5HlHF0jrqitXS6r07l6VIru5f5f1h1yd3T5RIwoA0ZT9ZrICqvxH9iQA/w== +"@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.2" + "@abp/core" "~8.3.0" lodash "^4.17.21" -"@abp/luxon@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.2.tgz#67e64aed26d7f521b76271656bed8ae19b3da00f" - integrity sha512-uajtkxqRlWK1jACB53lOhF7g8Rj+S9CCHSm2uNuAGcAK30kEZQfLEZTLzzOJ/evqDTiBay1hNYAPHnzY7Uigzw== +"@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.2" + "@abp/core" "~8.3.0" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.2.tgz#e3170cf9ed7a333040151bc1c70405d7e9269e80" - integrity sha512-GLPLnh89ebM6i3EyMjzSYtukT1lU5MSEJ/A18zIzDYgH9SUMFMe4yFJtGDngUtyzQA23hyuHcj3u1CIgPtKuGQ== +"@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.2" + "@abp/core" "~8.3.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.2.tgz#cfa76dba9731e03f24acabe8d254c077b683b99a" - integrity sha512-2JglkMbePjxoHRBjd52MGFMqWwzDdmer1hpPJ7BvznL4tklXtSg+Q7D2z7VB1bv+ZAe31cqI8IxwdxWf2eyOmw== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.2.tgz#bfdc7f12e8b51e321267bcb82500ffa9cb96f69c" - integrity sha512-LYYN6bqjVR/hsA2NJ5LQuPxgDsE/FTHxUVGIMk2TmFKnk8KUjQ7hDE/rllIwGWwxPtS96M6NPnzmrR8NDwI3cA== +"@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.2" - "@abp/core" "~8.3.0-rc.2" + "@abp/clipboard" "~8.3.0" + "@abp/core" "~8.3.0" prismjs "^1.29.0" -"@abp/select2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.2.tgz#ccf997047e75bfdf30b263201cbce6d2257c7348" - integrity sha512-ERQ/Zb8xzL704a2DLoM6ZD3IhH07MeIGn4UBhD/A3n14Yxu82Vi8qOdl+R6f0JhsDGmif/nuovxbUizFeSKmYg== +"@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.2" + "@abp/core" "~8.3.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.2.tgz#27afcabd6c3a10e76979102f5d143b404f38213c" - integrity sha512-ZloFEPOPWXiyKGdxtxyMGglamf8shTZAzhcUlxeqwRRsTlo342LI0iopOHDQ2Kfqmeua9xgj+nhX7zc6Kh0A0w== +"@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.2" + "@abp/core" "~8.3.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.2.tgz#1194a6f049b452141bd5714faff1e1fd8da20800" - integrity sha512-8Z82DPOZYEzfYevVELC1W5L4OdMHDGVZ00QAQqFv/XGTGjMVZeTvfpXKqpEcUYPMUVHcNWU3yLkIUZXGj1qXOw== +"@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.2" + "@abp/jquery" "~8.3.0" timeago "^1.6.7" -"@abp/toastr@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.2.tgz#ef5f08f894510516d055aa4ee2abf8f311a73879" - integrity sha512-syQJ87TVjkDegJBdsP+YfEK8I9zq3mDmLOQrEKRU2z3yX0qdc6zIRSCPTAkyBxf4C4gvdr4dNJJN/uKToaAo2Q== +"@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.2" + "@abp/jquery" "~8.3.0" toastr "^2.1.4" -"@abp/utils@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.2.tgz#9acb10e775c734dac2d4c48ade47c365448bbacc" - integrity sha512-jbXbkOWseh7tqqfX7jSsERFDr/Q89FUKz81rRx5jii2RuXnc9wG9E7BSG0wCQ6+o39dgpsSjKbQgwjnjBJrpJQ== +"@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" diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.abppkg.analyze.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.abppkg.analyze.json index ad923a8ce3..6deba88b34 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.abppkg.analyze.json +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BlobStoring.Database.Domain.Shared", - "hash": "ca71bff6138a518c84899353b3d88f2e", + "hash": "", "contents": [ { "namespace": "Volo.Abp.BlobStoring.Database", @@ -11,6 +11,50 @@ "name": "AbpValidationModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BlobStoringDatabaseDomainSharedModule", "summary": null diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.abppkg.analyze.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.abppkg.analyze.json index 44aa7327f7..cd919d1727 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.abppkg.analyze.json +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BlobStoring.Database.Domain", - "hash": "4c72530134504ee1792b7e24248dc384", + "hash": "", "contents": [ { "namespace": "Volo.Abp.BlobStoring.Database", @@ -21,6 +21,50 @@ "name": "BlobStoringDatabaseDomainSharedModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BlobStoringDatabaseDomainModule", "summary": null @@ -29,56 +73,69 @@ "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", - "isAsync": false, + "namespace": "Volo.Abp.BlobStoring.Database", "name": "SetContent", "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, "parameters": [ { "type": "Byte[]", @@ -88,10 +145,32 @@ ] } ], - "namespace": "Volo.Abp.BlobStoring.Database", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Abp.BlobStoring.Database", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Guid", + "name": "ContainerId", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "Name", + "summary": null + }, + { + "type": "System.Byte[]", + "name": "Content", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "DatabaseBlob", "summary": null @@ -100,55 +179,76 @@ "baseClass": { "name": "AggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.AggregateRoot" }, "implementingInterfaces": [ { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IEntity", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IAggregateRoot", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" }, { "name": "IGeneratesDomainEvents", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain" + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" }, { "name": "IHasExtraProperties", "namespace": "Volo.Abp.Data", - "declaringAssemblyName": "Volo.Abp.ObjectExtending" + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" }, { "name": "IHasConcurrencyStamp", "namespace": "Volo.Abp.Domain.Entities", - "declaringAssemblyName": "Volo.Abp.Data" + "declaringAssemblyName": "Volo.Abp.Data", + "fullName": "Volo.Abp.Domain.Entities.IHasConcurrencyStamp" }, { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy" + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [], - "namespace": "Volo.Abp.BlobStoring.Database", - "primaryKeyType": "Guid", "collectionProperties": {}, "navigationProperties": {}, + "namespace": "Volo.Abp.BlobStoring.Database", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.String", + "name": "Name", + "summary": null + } + ], "contentType": "aggregateRoot", "name": "DatabaseBlobContainer", "summary": null @@ -158,12 +258,67 @@ "entityAnalyzeModel": { "namespace": "Volo.Abp.BlobStoring.Database", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "DatabaseBlobContainer", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "DatabaseBlobContainer", + "namespace": "Volo.Abp.BlobStoring.Database", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IDatabaseBlobContainerRepository", "summary": null @@ -173,12 +328,131 @@ "entityAnalyzeModel": { "namespace": "Volo.Abp.BlobStoring.Database", "primaryKeyType": "Guid", - "collectionProperties": {}, - "navigationProperties": {}, + "properties": [], "contentType": "entity", "name": "DatabaseBlob", "summary": null }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "DatabaseBlob", + "namespace": "Volo.Abp.BlobStoring.Database", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "containerId", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "namespace": "Volo.Abp.BlobStoring.Database", + "name": "ExistsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "containerId", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "namespace": "Volo.Abp.BlobStoring.Database", + "name": "DeleteAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "containerId", + "isOptional": false + }, + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "Boolean", + "name": "autoSave", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], "contentType": "repositoryInterface", "name": "IDatabaseBlobRepository", "summary": null diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json index 132618f5a1..4cad523863 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore", - "hash": "0c136e999f8d28fc3b27414e0ff5aef7", + "hash": "", "contents": [ { "namespace": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore", @@ -16,6 +16,50 @@ "name": "AbpEntityFrameworkCoreModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BlobStoringDatabaseEntityFrameworkCoreModule", "summary": null @@ -23,18 +67,99 @@ { "namespace": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore", "connectionStringName": "AbpBlobStoring", - "databaseTables": [ + "databaseTables": [], + "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ + { + "returnType": "Void", + "namespace": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore", + "name": "ConfigureBlobStoring", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] + } + ], + "implementingInterfaces": [ + { + "name": "IInfrastructure", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure" + }, + { + "name": "IDbContextDependencies", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies" + }, + { + "name": "IDbSetCache", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbSetCache" + }, + { + "name": "IDbContextPoolable", + "namespace": "Microsoft.EntityFrameworkCore.Internal", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable" + }, + { + "name": "IResettableService", + "namespace": "Microsoft.EntityFrameworkCore.Infrastructure", + "declaringAssemblyName": "Microsoft.EntityFrameworkCore", + "fullName": "Microsoft.EntityFrameworkCore.Infrastructure.IResettableService" + }, + { + "name": "IDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IDisposable" + }, + { + "name": "IAsyncDisposable", + "namespace": "System", + "declaringAssemblyName": "System.Private.CoreLib", + "fullName": "System.IAsyncDisposable" + }, + { + "name": "IAbpEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IAbpEfCoreDbContext" + }, + { + "name": "IEfCoreDbContext", + "namespace": "Volo.Abp.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" + }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { - "entityFullName": "Volo.Abp.BlobStoring.Database.DatabaseBlob", - "contentType": "databaseTable", - "name": "AbpBlobs", - "summary": null + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" }, { - "entityFullName": "Volo.Abp.BlobStoring.Database.DatabaseBlobContainer", - "contentType": "databaseTable", - "name": "AbpBlobContainers", - "summary": null + "name": "IBlobStoringDbContext", + "namespace": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore", + "declaringAssemblyName": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore", + "fullName": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore.IBlobStoringDbContext" } ], "contentType": "efCoreDbContext", diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.abppkg.analyze.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.abppkg.analyze.json index 888f20c52a..207bff6963 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.abppkg.analyze.json +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.BlobStoring.Database.MongoDB", - "hash": "d0d45fc623e9180d60e60935449cb69b", + "hash": "", "contents": [ { "namespace": "Volo.Abp.BlobStoring.Database.MongoDB", @@ -16,6 +16,50 @@ "name": "AbpMongoDbModule" } ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], "contentType": "abpModule", "name": "BlobStoringDatabaseMongoDbModule", "summary": null @@ -27,16 +71,36 @@ { "entityFullName": "Volo.Abp.BlobStoring.Database.DatabaseBlobContainer", "contentType": "databaseCollection", - "name": "AbpBlobContainers", + "name": "BlobContainers", "summary": null }, { "entityFullName": "Volo.Abp.BlobStoring.Database.DatabaseBlob", "contentType": "databaseCollection", - "name": "AbpBlobs", + "name": "Blobs", "summary": null } ], + "implementingInterfaces": [ + { + "name": "IAbpMongoDbContext", + "namespace": "Volo.Abp.MongoDB", + "declaringAssemblyName": "Volo.Abp.MongoDB", + "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IBlobStoringMongoDbContext", + "namespace": "Volo.Abp.BlobStoring.Database.MongoDB", + "declaringAssemblyName": "Volo.Abp.BlobStoring.Database.MongoDB", + "fullName": "Volo.Abp.BlobStoring.Database.MongoDB.IBlobStoringMongoDbContext" + } + ], "contentType": "mongoDbContext", "name": "BlobStoringMongoDbContext", "summary": null diff --git a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json index 0933dd25b5..ca0db01eb2 100644 --- a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.BloggingTestApp.EntityFrameworkCore", - "hash": "1ae906cf0026320e50077986287d66ac", + "hash": "", "contents": [ { "namespace": "Volo.BloggingTestApp.EntityFrameworkCore", @@ -89,6 +89,7 @@ "connectionStringName": null, "databaseTables": [], "replacedDbContexts": [], + "modelBuilderExtensionMethods": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -144,6 +145,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json index bb074e1d10..c5a0eb3244 100644 --- a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json +++ b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.BloggingTestApp.MongoDB", - "hash": "f3aae951c5c4cd55de2a949848c2a755", + "hash": "", "contents": [ { "namespace": "Volo.BloggingTestApp.MongoDB", diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index c22b4084e4..a7d225a033 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/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.2", - "@abp/blogging": "~8.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", + "@abp/blogging": "~8.3.0" } } diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index 5688ce5c17..a1ee3f6aea 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,237 +2,237 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.2.tgz#8699581833e045c1a0e0d402c793c6fe47c8c4aa" - integrity sha512-DLVzeMAaa/1Q6ej4hOjRGYBBkuNMqmIu0ko6g8kYHutqveffUL7wyf+Dc1BJHyHlUSiL/LE0zbeaGjmG1TOVwQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.2.tgz#eacc811b84cec3be59723c629f8dc7116547b9b2" - integrity sha512-1MT2cBQyrp8/pzdvpQgn7n4JafyKoclZlSaYebGt5JmKa1rDp66pAw0zrIrRVdwfojhYbZxsZ3uvsfmbpiRo9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0-rc.2" - "@abp/bootstrap" "~8.3.0-rc.2" - "@abp/bootstrap-datepicker" "~8.3.0-rc.2" - "@abp/bootstrap-daterangepicker" "~8.3.0-rc.2" - "@abp/datatables.net-bs5" "~8.3.0-rc.2" - "@abp/font-awesome" "~8.3.0-rc.2" - "@abp/jquery-form" "~8.3.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~8.3.0-rc.2" - "@abp/lodash" "~8.3.0-rc.2" - "@abp/luxon" "~8.3.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.2" - "@abp/moment" "~8.3.0-rc.2" - "@abp/select2" "~8.3.0-rc.2" - "@abp/sweetalert2" "~8.3.0-rc.2" - "@abp/timeago" "~8.3.0-rc.2" - "@abp/toastr" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.2.tgz#58372b05fd1765a384e57ee53088b3ace4873e53" - integrity sha512-jswnQx7JoOGmfrqGnS8U+dP7trdxHtM4ZJUvlz/SLQb8OeRxoQyLr4YQhpNa4cnKzN4hrXDlITp22Z3Pn3kQ9g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.3.0-rc.2.tgz#958bfc6291eebb2db1b98e2815d77d1b2d6de214" - integrity sha512-7RAEPCeexCQswPblWQ2mqXipqpZemJ7WfdQs4pvzE/5KI9np2HPCM9IwVWkrqQBjAy69Cxpv1fHhBz3DMIDZeg== +"@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.2" - "@abp/owl.carousel" "~8.3.0-rc.2" - "@abp/prismjs" "~8.3.0-rc.2" - "@abp/tui-editor" "~8.3.0-rc.2" + "@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.2.tgz#22d4944c20b85502e3b40a20e4f3a7085ca43c20" - integrity sha512-PO6xa7ss5YyZN9ofWlMkLr8f5hto/hHNz3x8yJma2he8zaoqMz85DByYPaH1yM5CiVN+RtEUCD9MLHmDwvaLZA== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.2.tgz#fc5d920b16a126b5d4c492f2aa807d3bb5b74cec" - integrity sha512-WrB8XeiYrFyiCWpWlWW2OUEu2MP8ZGPVRnHrTcNLe6rcp8Kj7dlzOrp6MpyJH7/lhgCTVqujoBCvphD9OOS33g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.2.tgz#07feafd950bb88971a8d3d5c1fdfc170d84fe13a" - integrity sha512-1v/nIxwb//tuI1ieGixxvfkcFvVvy1pXIOtL74d99iY7jU4gdNZcIO22qtmS9kTd55dI0FbOS7bERo4pozR+3g== +"@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.2" + "@abp/core" "~8.3.0" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.2.tgz#ed6955b215c1591aa226373b06e329d64b45bc0c" - integrity sha512-swA/ipl31FhEvQspgkZO+FYVfeFXsbhnVQ0aO9S7r0bsWDUA+3rbcpC2oOjRwzzE+qF2vr97f2WO/iR/o6SqpA== +"@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.2" + "@abp/core" "~8.3.0" clipboard "^2.0.11" -"@abp/core@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.2.tgz#63455a6bff294ee93fd8cbec5f0f9a994cf35322" - integrity sha512-RoYUz1y2ZMdAzO6nSZirtYSsEqeW5uBJxnzREkT0DFj1LrB6ywnzdV05GCKbhBcNhp2gDKEGHqCPS4HOMb2uWg== +"@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.2" + "@abp/utils" "~8.3.0" -"@abp/datatables.net-bs5@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.2.tgz#eb75b855595e264510b29adc4e2d01820752d4a3" - integrity sha512-/OTF0rsGqGXCSL+Nec07IP4O0oqdMgAXxgu6gxsjCnjGodhDtQioUbFC8SI8H8aOYBerVHWfMSMLgpJbGbS8eA== +"@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.2" + "@abp/datatables.net" "~8.3.0" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.2.tgz#38f510bb294650881b494798fe33ce9b0c0376ef" - integrity sha512-GFV343oOGwIC3giAuTuKWzuDmIDyQkn+Sr+wLCCExn3gq9OIJI5COCCD1RIp7L9SU4t3CnzJGjvi5Qzq8iLbtQ== +"@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.2" + "@abp/jquery" "~8.3.0" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.2.tgz#c97d656e1a1df8081180d9644d4734da36787c15" - integrity sha512-dUQXDxvAolfksLOIj71gSi+L8L4gvri6Wi8F3CDTgRKDEPRQ9RN0T4bqkMfeTioTeXCHpeqR4YftmmxylOWQhQ== +"@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.2" + "@abp/core" "~8.3.0" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.2.tgz#eecc01b21cb2b8ad0f889662175ca66c6d8f2fe4" - integrity sha512-ng5QHRxGE/aYzSjSXTI84L80xn/fyXSXF1hLgVT2teOR/6XWe7FmDv/SSrYi0oRopeY5dgDrzVpKp2j7+qx/yg== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.2.tgz#6606b71c0043e0a2e382ee07ee2de840ac12b545" - integrity sha512-oS2t9M6j4YI6QSETDZw67fqhpyvpWSpvC/RiuWvMhBKZOWyNPMT3b/42Fz2LI22xSODwNM7jaESEUbdo11PI3Q== +"@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.2" + "@abp/jquery-validation" "~8.3.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.2.tgz#028d9e6c1e94b1c1f9c64607f35d992857fe3121" - integrity sha512-8QmoVDQpbjl/ggfbsXPh1kf3XxFCtuyykeLdhCqYurLSw9UHejDtc/7lJA85L6eiFAjJs6VzbdP9ORnlWyOYgQ== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.2.tgz#4b40ace6d7e7331b1ff5fa41d9a7ce724def7808" - integrity sha512-HDUXVXrHa/HHbkhfLDwxIr6NNQLz+R9M/Gf8+UsxDnzevWZw9hzkwQnO3RWcK99hyaeURA2DEKLGSGa7ip3qfg== +"@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.2" + "@abp/core" "~8.3.0" jquery "~3.7.1" -"@abp/lodash@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.2.tgz#3d714095ac1985bb9688a4a2f7d2b6e439fbab50" - integrity sha512-fhjtXi7pWlNlCbayU2BqeLAbYyds5HlHF0jrqitXS6r07l6VIru5f5f1h1yd3T5RIwoA0ZT9ZrICqvxH9iQA/w== +"@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.2" + "@abp/core" "~8.3.0" lodash "^4.17.21" -"@abp/luxon@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.2.tgz#67e64aed26d7f521b76271656bed8ae19b3da00f" - integrity sha512-uajtkxqRlWK1jACB53lOhF7g8Rj+S9CCHSm2uNuAGcAK30kEZQfLEZTLzzOJ/evqDTiBay1hNYAPHnzY7Uigzw== +"@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.2" + "@abp/core" "~8.3.0" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.2.tgz#e3170cf9ed7a333040151bc1c70405d7e9269e80" - integrity sha512-GLPLnh89ebM6i3EyMjzSYtukT1lU5MSEJ/A18zIzDYgH9SUMFMe4yFJtGDngUtyzQA23hyuHcj3u1CIgPtKuGQ== +"@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.2" + "@abp/core" "~8.3.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.2.tgz#cfa76dba9731e03f24acabe8d254c077b683b99a" - integrity sha512-2JglkMbePjxoHRBjd52MGFMqWwzDdmer1hpPJ7BvznL4tklXtSg+Q7D2z7VB1bv+ZAe31cqI8IxwdxWf2eyOmw== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.3.0-rc.2.tgz#41f0897ea632a456aec3ab3890d1a83487162063" - integrity sha512-Fd4Imv3FvPsQAmWH00vlgg46i9Nj1vHd6HKuZlGRQQhj9Oj7XLiAe17WObqYAVb2A1b+vbryimcP6ofwAFQjLg== +"@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.2" + "@abp/core" "~8.3.0" owl.carousel "^2.3.4" -"@abp/prismjs@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.2.tgz#bfdc7f12e8b51e321267bcb82500ffa9cb96f69c" - integrity sha512-LYYN6bqjVR/hsA2NJ5LQuPxgDsE/FTHxUVGIMk2TmFKnk8KUjQ7hDE/rllIwGWwxPtS96M6NPnzmrR8NDwI3cA== +"@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.2" - "@abp/core" "~8.3.0-rc.2" + "@abp/clipboard" "~8.3.0" + "@abp/core" "~8.3.0" prismjs "^1.29.0" -"@abp/select2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.2.tgz#ccf997047e75bfdf30b263201cbce6d2257c7348" - integrity sha512-ERQ/Zb8xzL704a2DLoM6ZD3IhH07MeIGn4UBhD/A3n14Yxu82Vi8qOdl+R6f0JhsDGmif/nuovxbUizFeSKmYg== +"@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.2" + "@abp/core" "~8.3.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.2.tgz#27afcabd6c3a10e76979102f5d143b404f38213c" - integrity sha512-ZloFEPOPWXiyKGdxtxyMGglamf8shTZAzhcUlxeqwRRsTlo342LI0iopOHDQ2Kfqmeua9xgj+nhX7zc6Kh0A0w== +"@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.2" + "@abp/core" "~8.3.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.2.tgz#1194a6f049b452141bd5714faff1e1fd8da20800" - integrity sha512-8Z82DPOZYEzfYevVELC1W5L4OdMHDGVZ00QAQqFv/XGTGjMVZeTvfpXKqpEcUYPMUVHcNWU3yLkIUZXGj1qXOw== +"@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.2" + "@abp/jquery" "~8.3.0" timeago "^1.6.7" -"@abp/toastr@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.2.tgz#ef5f08f894510516d055aa4ee2abf8f311a73879" - integrity sha512-syQJ87TVjkDegJBdsP+YfEK8I9zq3mDmLOQrEKRU2z3yX0qdc6zIRSCPTAkyBxf4C4gvdr4dNJJN/uKToaAo2Q== +"@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.2" + "@abp/jquery" "~8.3.0" toastr "^2.1.4" -"@abp/tui-editor@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.3.0-rc.2.tgz#d34cf3d4f6f4a15303b6cec53bde6e5ae9c08dc3" - integrity sha512-MwntzC48JOLl+ymFCujT5iUDDLwJTJgkroF9nkyplT1YhUhQWuf+Rb4EdWfQ38+kzUVM+2S3+iQkbLxJK97UtQ== +"@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.2" - "@abp/prismjs" "~8.3.0-rc.2" + "@abp/jquery" "~8.3.0" + "@abp/prismjs" "~8.3.0" -"@abp/utils@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.2.tgz#9acb10e775c734dac2d4c48ade47c365448bbacc" - integrity sha512-jbXbkOWseh7tqqfX7jSsERFDr/Q89FUKz81rRx5jii2RuXnc9wG9E7BSG0wCQ6+o39dgpsSjKbQgwjnjBJrpJQ== +"@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" diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json index 3c721cbb8f..238d602da6 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Admin.Application.Contracts", - "hash": "765deda9c2ad81c60686d163f8856cde", + "hash": "", "contents": [ { "namespace": "Volo.Blogging.Admin", diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json index b247ffa372..473750d55d 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Admin.Application", - "hash": "f36b44743b8df7a8d4cc013570d044a2", + "hash": "", "contents": [ { "namespace": "Volo.Blogging.Admin", @@ -146,6 +146,7 @@ "methods": [ { "returnType": "ListResultDto", + "namespace": "Volo.Blogging.Admin.Blogs", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -156,6 +157,7 @@ }, { "returnType": "BlogDto", + "namespace": "Volo.Blogging.Admin.Blogs", "name": "GetAsync", "summary": null, "isAsync": true, @@ -172,6 +174,7 @@ }, { "returnType": "BlogDto", + "namespace": "Volo.Blogging.Admin.Blogs", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -188,6 +191,7 @@ }, { "returnType": "BlogDto", + "namespace": "Volo.Blogging.Admin.Blogs", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -209,6 +213,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Blogging.Admin.Blogs", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -225,6 +230,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Blogging.Admin.Blogs", "name": "ClearCacheAsync", "summary": null, "isAsync": true, diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json index 294df5e147..851a0316da 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Admin.HttpApi.Client", - "hash": "3c18ac9eda422806cb4bba72a39ad229", + "hash": "", "contents": [ { "namespace": "Volo.Blogging.Admin", diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json index a93621f41c..1a6a317bd2 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Admin.HttpApi", - "hash": "689f6b3f8cc4a2e9e75308df5a58b588", + "hash": "", "contents": [ { "namespace": "Volo.Blogging.Admin", @@ -63,6 +63,90 @@ "contentType": "abpModule", "name": "BloggingAdminHttpApiModule", "summary": null + }, + { + "apis": [ + { + "path": "api/blogging/blogs/admin", + "method": "GET", + "groupName": "BlogManagement", + "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Blogs.Dtos.BlogDto]", + "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}", + "parameterDescriptions": [] + }, + { + "path": "api/blogging/blogs/admin/{id}", + "method": "GET", + "groupName": "BlogManagement", + "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto", + "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/blogging/blogs/admin", + "method": "POST", + "groupName": "BlogManagement", + "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto", + "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", + "parameterDescriptions": [ + { + "name": "input", + "type": "CreateBlogDto" + } + ] + }, + { + "path": "api/blogging/blogs/admin/{id}", + "method": "PUT", + "groupName": "BlogManagement", + "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto", + "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + }, + { + "name": "input", + "type": "UpdateBlogDto" + } + ] + }, + { + "path": "api/blogging/blogs/admin/{id}", + "method": "DELETE", + "groupName": "BlogManagement", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/blogging/blogs/admin/clear-cache/{id}", + "method": "GET", + "groupName": "BlogManagement", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null } ] } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json index 258c5ec139..bfadd4006b 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Admin.Web", - "hash": "f00cd39c07130843c7103cc1f6caf9a2", + "hash": "", "contents": [ { "namespace": "Volo.Blogging.Admin", @@ -73,6 +73,24 @@ "contentType": "abpModule", "name": "BloggingAdminWebModule", "summary": null + }, + { + "namespace": "Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs", + "contentType": "webPage", + "name": "CreateModel", + "summary": null + }, + { + "namespace": "Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs", + "contentType": "webPage", + "name": "EditModel", + "summary": null + }, + { + "namespace": "Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs", + "contentType": "webPage", + "name": "IndexModel", + "summary": null } ] } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json index 233c9594ac..6d09472ac6 100644 --- a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Application.Contracts", - "hash": "90bed1d4c7274bff6059309df9800b27", + "hash": "", "contents": [ { "namespace": "Volo.Blogging", diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json index 97dc91e6d7..b332019e6d 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Application", - "hash": "0119e0d4243cd5f865bda1dc7115637f", + "hash": "", "contents": [ { "namespace": "Volo.Blogging", @@ -151,6 +151,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Blogging.Tagging", "name": "GetPopularTagsAsync", "summary": null, "isAsync": true, @@ -242,6 +243,7 @@ "methods": [ { "returnType": "ListResultDto", + "namespace": "Volo.Blogging.Posts", "name": "GetListByBlogIdAndTagNameAsync", "summary": null, "isAsync": true, @@ -263,6 +265,7 @@ }, { "returnType": "ListResultDto", + "namespace": "Volo.Blogging.Posts", "name": "GetTimeOrderedListAsync", "summary": null, "isAsync": true, @@ -279,6 +282,7 @@ }, { "returnType": "PostWithDetailsDto", + "namespace": "Volo.Blogging.Posts", "name": "GetForReadingAsync", "summary": null, "isAsync": true, @@ -295,6 +299,7 @@ }, { "returnType": "PostWithDetailsDto", + "namespace": "Volo.Blogging.Posts", "name": "GetAsync", "summary": null, "isAsync": true, @@ -311,6 +316,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Blogging.Posts", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -327,6 +333,7 @@ }, { "returnType": "PostWithDetailsDto", + "namespace": "Volo.Blogging.Posts", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -346,8 +353,48 @@ } ] }, + { + "returnType": "List", + "namespace": "Volo.Blogging.Posts", + "name": "GetListByUserIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "userId", + "isOptional": false + } + ] + }, + { + "returnType": "List", + "namespace": "Volo.Blogging.Posts", + "name": "GetLatestBlogPostsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "Int32", + "name": "count", + "isOptional": false + } + ] + }, { "returnType": "PostWithDetailsDto", + "namespace": "Volo.Blogging.Posts", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -367,6 +414,110 @@ "name": "PostAppService", "summary": null }, + { + "namespace": "Volo.Blogging.Members", + "baseClass": { + "name": "BloggingAppServiceBase", + "namespace": "Volo.Blogging", + "declaringAssemblyName": "Volo.Blogging.Application", + "fullName": "Volo.Blogging.BloggingAppServiceBase" + }, + "implementingInterfaces": [ + { + "name": "IApplicationService", + "namespace": "Volo.Abp.Application.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" + }, + { + "name": "IRemoteService", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" + }, + { + "name": "IAvoidDuplicateCrossCuttingConcerns", + "namespace": "Volo.Abp.Aspects", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" + }, + { + "name": "IValidationEnabled", + "namespace": "Volo.Abp.Validation", + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" + }, + { + "name": "IUnitOfWorkEnabled", + "namespace": "Volo.Abp.Uow", + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" + }, + { + "name": "IAuditingEnabled", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" + }, + { + "name": "IGlobalFeatureCheckingEnabled", + "namespace": "Volo.Abp.GlobalFeatures", + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IMemberAppService", + "namespace": "Volo.Blogging.Members", + "declaringAssemblyName": "Volo.Blogging.Application.Contracts", + "fullName": "Volo.Blogging.Members.IMemberAppService" + } + ], + "methods": [ + { + "returnType": "BlogUserDto", + "namespace": "Volo.Blogging.Members", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "username", + "isOptional": false + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.Blogging.Members", + "name": "UpdateUserProfileAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "CustomIdentityBlogUserUpdateDto", + "name": "input", + "isOptional": false + } + ] + } + ], + "contentType": "applicationService", + "name": "MemberAppService", + "summary": null + }, { "namespace": "Volo.Blogging.Files", "baseClass": { @@ -434,6 +585,7 @@ "methods": [ { "returnType": "RawFileDto", + "namespace": "Volo.Blogging.Files", "name": "GetAsync", "summary": null, "isAsync": true, @@ -450,6 +602,7 @@ }, { "returnType": "IRemoteStreamContent", + "namespace": "Volo.Blogging.Files", "name": "GetFileAsync", "summary": null, "isAsync": true, @@ -466,6 +619,7 @@ }, { "returnType": "FileUploadOutputDto", + "namespace": "Volo.Blogging.Files", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -552,6 +706,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Blogging.Comments", "name": "GetHierarchicalListOfPostAsync", "summary": null, "isAsync": true, @@ -568,6 +723,7 @@ }, { "returnType": "CommentWithDetailsDto", + "namespace": "Volo.Blogging.Comments", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -584,6 +740,7 @@ }, { "returnType": "CommentWithDetailsDto", + "namespace": "Volo.Blogging.Comments", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -605,6 +762,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Blogging.Comments", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -691,6 +849,7 @@ "methods": [ { "returnType": "ListResultDto", + "namespace": "Volo.Blogging.Blogs", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -701,6 +860,7 @@ }, { "returnType": "BlogDto", + "namespace": "Volo.Blogging.Blogs", "name": "GetByShortNameAsync", "summary": null, "isAsync": true, @@ -717,6 +877,7 @@ }, { "returnType": "BlogDto", + "namespace": "Volo.Blogging.Blogs", "name": "GetAsync", "summary": null, "isAsync": true, diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs index d1825f4475..0d612dfb0c 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs +++ b/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) { diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json index 54e8d52f5f..2b2ee467f7 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Domain.Shared", - "hash": "416d1bef921b5bb0eb443877eb8af5a6", + "hash": "", "contents": [ { "namespace": "Volo.Blogging", diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json index 4ca41ac00d..64b65921d1 100644 --- a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Domain", - "hash": "6ef78d68d0b8c8fe7a3f43214e572d5d", + "hash": "", "contents": [ { "namespace": "Volo.Blogging", @@ -152,7 +152,7 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" }, { @@ -165,6 +165,7 @@ "methods": [ { "returnType": "Boolean", + "namespace": "Volo.Blogging.Users", "name": "Update", "summary": null, "isAsync": false, @@ -229,6 +230,41 @@ "type": "System.Boolean", "name": "PhoneNumberConfirmed", "summary": null + }, + { + "type": "System.String", + "name": "WebSite", + "summary": null + }, + { + "type": "System.String", + "name": "Twitter", + "summary": null + }, + { + "type": "System.String", + "name": "Github", + "summary": null + }, + { + "type": "System.String", + "name": "Linkedin", + "summary": null + }, + { + "type": "System.String", + "name": "Company", + "summary": null + }, + { + "type": "System.String", + "name": "JobTitle", + "summary": null + }, + { + "type": "System.String", + "name": "Biography", + "summary": null } ], "contentType": "aggregateRoot", @@ -349,6 +385,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Blogging.Tagging", "name": "SetName", "summary": null, "isAsync": false, @@ -365,6 +402,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Blogging.Tagging", "name": "IncreaseUsageCount", "summary": null, "isAsync": false, @@ -381,6 +419,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Blogging.Tagging", "name": "DecreaseUsageCount", "summary": null, "isAsync": false, @@ -397,6 +436,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Blogging.Tagging", "name": "SetDescription", "summary": null, "isAsync": false, @@ -556,6 +596,7 @@ "methods": [ { "returnType": "Post", + "namespace": "Volo.Blogging.Posts", "name": "IncreaseReadCount", "summary": null, "isAsync": false, @@ -566,6 +607,7 @@ }, { "returnType": "Post", + "namespace": "Volo.Blogging.Posts", "name": "SetTitle", "summary": null, "isAsync": false, @@ -582,6 +624,7 @@ }, { "returnType": "Post", + "namespace": "Volo.Blogging.Posts", "name": "SetUrl", "summary": null, "isAsync": false, @@ -598,6 +641,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Blogging.Posts", "name": "AddTag", "summary": null, "isAsync": false, @@ -614,6 +658,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Blogging.Posts", "name": "RemoveTag", "summary": null, "isAsync": false, @@ -800,6 +845,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Blogging.Comments", "name": "SetText", "summary": null, "isAsync": false, @@ -954,6 +1000,7 @@ "methods": [ { "returnType": "Blog", + "namespace": "Volo.Blogging.Blogs", "name": "SetName", "summary": null, "isAsync": false, @@ -970,6 +1017,7 @@ }, { "returnType": "Blog", + "namespace": "Volo.Blogging.Blogs", "name": "SetShortName", "summary": null, "isAsync": false, @@ -1061,6 +1109,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Blogging.Users", "name": "GetUsersAsync", "summary": null, "isAsync": true, @@ -1135,6 +1184,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Blogging.Tagging", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -1156,6 +1206,7 @@ }, { "returnType": "Tag", + "namespace": "Volo.Blogging.Tagging", "name": "GetByNameAsync", "summary": null, "isAsync": true, @@ -1182,6 +1233,7 @@ }, { "returnType": "Tag", + "namespace": "Volo.Blogging.Tagging", "name": "FindByNameAsync", "summary": null, "isAsync": true, @@ -1208,6 +1260,7 @@ }, { "returnType": "List", + "namespace": "Volo.Blogging.Tagging", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -1229,6 +1282,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Blogging.Tagging", "name": "DecreaseUsageCountOfTagsAsync", "summary": null, "isAsync": true, @@ -1298,6 +1352,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Blogging.Posts", "name": "GetPostsByBlogId", "summary": null, "isAsync": true, @@ -1319,6 +1374,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Blogging.Posts", "name": "IsPostUrlInUseAsync", "summary": null, "isAsync": true, @@ -1350,6 +1406,7 @@ }, { "returnType": "Post", + "namespace": "Volo.Blogging.Posts", "name": "GetPostByUrl", "summary": null, "isAsync": true, @@ -1376,6 +1433,7 @@ }, { "returnType": "List", + "namespace": "Volo.Blogging.Posts", "name": "GetOrderedList", "summary": null, "isAsync": true, @@ -1399,6 +1457,55 @@ "isOptional": true } ] + }, + { + "returnType": "List", + "namespace": "Volo.Blogging.Posts", + "name": "GetListByUserIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "userId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "namespace": "Volo.Blogging.Posts", + "name": "GetLatestBlogPostsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "blogId", + "isOptional": false + }, + { + "type": "Int32", + "name": "count", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] } ], "contentType": "repositoryInterface", @@ -1450,6 +1557,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Blogging.Comments", "name": "GetListOfPostAsync", "summary": null, "isAsync": true, @@ -1471,6 +1579,7 @@ }, { "returnType": "Int32", + "namespace": "Volo.Blogging.Comments", "name": "GetCommentCountOfPostAsync", "summary": null, "isAsync": true, @@ -1492,6 +1601,7 @@ }, { "returnType": "List", + "namespace": "Volo.Blogging.Comments", "name": "GetRepliesOfComment", "summary": null, "isAsync": true, @@ -1513,6 +1623,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Blogging.Comments", "name": "DeleteOfPost", "summary": null, "isAsync": true, @@ -1582,6 +1693,7 @@ "methods": [ { "returnType": "Blog", + "namespace": "Volo.Blogging.Blogs", "name": "FindByShortNameAsync", "summary": null, "isAsync": true, diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json index 7fb2558e8c..c891a76071 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.EntityFrameworkCore", - "hash": "6a38802ee4510532b9dd8879c2b2b7ff", + "hash": "", "contents": [ { "namespace": "Volo.Blogging.EntityFrameworkCore", @@ -67,45 +67,27 @@ { "namespace": "Volo.Blogging.EntityFrameworkCore", "connectionStringName": "Blogging", - "databaseTables": [ - { - "entityFullName": "Volo.Blogging.Blogs.Blog", - "contentType": "databaseTable", - "name": "BlgBlogs", - "summary": null - }, - { - "entityFullName": "Volo.Blogging.Comments.Comment", - "contentType": "databaseTable", - "name": "BlgComments", - "summary": null - }, - { - "entityFullName": "Volo.Blogging.Posts.Post", - "contentType": "databaseTable", - "name": "BlgPosts", - "summary": null - }, - { - "entityFullName": "Volo.Blogging.Posts.PostTag", - "contentType": "databaseTable", - "name": "BlgPostTags", - "summary": null - }, - { - "entityFullName": "Volo.Blogging.Tagging.Tag", - "contentType": "databaseTable", - "name": "BlgTags", - "summary": null - }, + "databaseTables": [], + "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ { - "entityFullName": "Volo.Blogging.Users.BlogUser", - "contentType": "databaseTable", - "name": "BlgUsers", - "summary": null + "returnType": "Void", + "namespace": "Volo.Blogging.EntityFrameworkCore", + "name": "ConfigureBlogging", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] } ], - "replacedDbContexts": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -161,6 +143,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json index fab3946f08..4fde803ba1 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.HttpApi.Client", - "hash": "3ca2666acad094da483790ffe3497ae0", + "hash": "", "contents": [ { "namespace": "Volo.Blogging", diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json index e9fa020357..7b15b827b0 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.HttpApi", - "hash": "3e6f3a5c72fe4dd10117f387c5a28255", + "hash": "", "contents": [ { "namespace": "Volo.Blogging", @@ -63,6 +63,300 @@ "contentType": "abpModule", "name": "BloggingHttpApiModule", "summary": null + }, + { + "apis": [ + { + "path": "api/blogging/files/{name}", + "method": "GET", + "groupName": "BlogFiles", + "responseType": "Volo.Blogging.Files.RawFileDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "name", + "type": "String" + } + ] + }, + { + "path": "api/blogging/files/www/{name}", + "method": "GET", + "groupName": "BlogFiles", + "responseType": "Volo.Abp.Content.IRemoteStreamContent", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "name", + "type": "String" + } + ] + }, + { + "path": "api/blogging/files/images/upload", + "method": "POST", + "groupName": "BlogFiles", + "responseType": "Volo.Blogging.Files.FileUploadOutputDto", + "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"webUrl\": \"string\"\r\n}", + "parameterDescriptions": [ + { + "name": "File", + "type": "IRemoteStreamContent" + }, + { + "name": "Name", + "type": "String" + } + ] + }, + { + "path": "api/blogging/blogs", + "method": "GET", + "groupName": "Blogs", + "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Blogs.Dtos.BlogDto]", + "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}", + "parameterDescriptions": [] + }, + { + "path": "api/blogging/blogs/by-shortname/{shortName}", + "method": "GET", + "groupName": "Blogs", + "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto", + "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", + "parameterDescriptions": [ + { + "name": "shortName", + "type": "String" + } + ] + }, + { + "path": "api/blogging/blogs/{id}", + "method": "GET", + "groupName": "Blogs", + "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto", + "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/blogging/comments/hierarchical/{postId}", + "method": "GET", + "groupName": "Comments", + "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Comments.Dtos.CommentWithRepliesDto]", + "responseTypeAsJson": "[\r\n {\r\n \"comment\": {\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"replies\": [\r\n {\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n }\r\n]", + "parameterDescriptions": [ + { + "name": "postId", + "type": "Guid" + } + ] + }, + { + "path": "api/blogging/comments", + "method": "POST", + "groupName": "Comments", + "responseType": "Volo.Blogging.Comments.Dtos.CommentWithDetailsDto", + "responseTypeAsJson": "{\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", + "parameterDescriptions": [ + { + "name": "input", + "type": "CreateCommentDto" + } + ] + }, + { + "path": "api/blogging/comments/{id}", + "method": "PUT", + "groupName": "Comments", + "responseType": "Volo.Blogging.Comments.Dtos.CommentWithDetailsDto", + "responseTypeAsJson": "{\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + }, + { + "name": "input", + "type": "UpdateCommentDto" + } + ] + }, + { + "path": "api/blogging/comments/{id}", + "method": "DELETE", + "groupName": "Comments", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/blogging/posts/{blogId}/all", + "method": "GET", + "groupName": "Posts", + "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Posts.PostWithDetailsDto]", + "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}", + "parameterDescriptions": [ + { + "name": "blogId", + "type": "Guid" + }, + { + "name": "tagName", + "type": "String" + } + ] + }, + { + "path": "api/blogging/posts/{blogId}/all/by-time", + "method": "GET", + "groupName": "Posts", + "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Posts.PostWithDetailsDto]", + "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}", + "parameterDescriptions": [ + { + "name": "blogId", + "type": "Guid" + } + ] + }, + { + "path": "api/blogging/posts/read", + "method": "GET", + "groupName": "Posts", + "responseType": "Volo.Blogging.Posts.PostWithDetailsDto", + "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", + "parameterDescriptions": [ + { + "name": "Url", + "type": "String" + }, + { + "name": "BlogId", + "type": "Guid" + } + ] + }, + { + "path": "api/blogging/posts/{id}", + "method": "GET", + "groupName": "Posts", + "responseType": "Volo.Blogging.Posts.PostWithDetailsDto", + "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/blogging/posts", + "method": "POST", + "groupName": "Posts", + "responseType": "Volo.Blogging.Posts.PostWithDetailsDto", + "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", + "parameterDescriptions": [ + { + "name": "input", + "type": "CreatePostDto" + } + ] + }, + { + "path": "api/blogging/posts/{id}", + "method": "PUT", + "groupName": "Posts", + "responseType": "Volo.Blogging.Posts.PostWithDetailsDto", + "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + }, + { + "name": "input", + "type": "UpdatePostDto" + } + ] + }, + { + "path": "api/blogging/posts/user/{userId}", + "method": "GET", + "groupName": "Posts", + "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Posts.PostWithDetailsDto]", + "responseTypeAsJson": "[\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]", + "parameterDescriptions": [ + { + "name": "userId", + "type": "Guid" + } + ] + }, + { + "path": "api/blogging/posts/{blogId}/latest/{count}", + "method": "GET", + "groupName": "Posts", + "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Posts.PostWithDetailsDto]", + "responseTypeAsJson": "[\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]", + "parameterDescriptions": [ + { + "name": "blogId", + "type": "Guid" + }, + { + "name": "count", + "type": "Int32" + } + ] + }, + { + "path": "api/blogging/posts/{id}", + "method": "DELETE", + "groupName": "Posts", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/blogging/tags/popular/{blogId}", + "method": "GET", + "groupName": "Tags", + "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Tagging.Dtos.TagDto]", + "responseTypeAsJson": "[\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]", + "parameterDescriptions": [ + { + "name": "blogId", + "type": "Guid" + }, + { + "name": "ResultCount", + "type": "Int32" + }, + { + "name": "MinimumPostCount", + "type": "Nullable" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null } ] } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json index f72236e318..3c45d3118e 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.MongoDB", - "hash": "4487b4df01fcd98b0ce2e7d2d11c9ba5", + "hash": "", "contents": [ { "namespace": "Volo.Blogging.MongoDB", @@ -74,33 +74,33 @@ "connectionStringName": "Blogging", "databaseCollections": [ { - "entityFullName": "Volo.Blogging.Blogs.Blog", + "entityFullName": "Volo.Blogging.Users.BlogUser", "contentType": "databaseCollection", - "name": "BlgBlogs", + "name": "Users", "summary": null }, { - "entityFullName": "Volo.Blogging.Comments.Comment", + "entityFullName": "Volo.Blogging.Blogs.Blog", "contentType": "databaseCollection", - "name": "BlgComments", + "name": "Blogs", "summary": null }, { - "entityFullName": "Volo.Blogging.Users.BlogUser", + "entityFullName": "Volo.Blogging.Posts.Post", "contentType": "databaseCollection", - "name": "BlgUsers", + "name": "Posts", "summary": null }, { "entityFullName": "Volo.Blogging.Tagging.Tag", "contentType": "databaseCollection", - "name": "BlgTags", + "name": "Tags", "summary": null }, { - "entityFullName": "Volo.Blogging.Posts.Post", + "entityFullName": "Volo.Blogging.Comments.Comment", "contentType": "databaseCollection", - "name": "BlgPosts", + "name": "Comments", "summary": null } ], diff --git a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json index 27a396bd9e..895ffb1675 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Blogging.Web", - "hash": "d4c82263439a4a663a6b98ee502d02f4", + "hash": "", "contents": [ { "namespace": "Volo.Blogging", @@ -73,6 +73,42 @@ "contentType": "abpModule", "name": "BloggingWebModule", "summary": null + }, + { + "namespace": "Volo.Blogging.Pages.Blogs", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.Blogging.Pages.Blogs.Posts", + "contentType": "webPage", + "name": "DetailModel", + "summary": null + }, + { + "namespace": "Volo.Blogging.Pages.Blogs.Posts", + "contentType": "webPage", + "name": "EditModel", + "summary": null + }, + { + "namespace": "Volo.Blogging.Pages.Blogs.Posts", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.Blogging.Pages.Blogs.Posts", + "contentType": "webPage", + "name": "NewModel", + "summary": null + }, + { + "namespace": "Volo.Blogging.Pages.Blogs.Members", + "contentType": "webPage", + "name": "IndexModel", + "summary": null } ] } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index bf00b13631..f218cbad11 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/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.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 5882b2ed65..d19b65bc24 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.2.tgz#8699581833e045c1a0e0d402c793c6fe47c8c4aa" - integrity sha512-DLVzeMAaa/1Q6ej4hOjRGYBBkuNMqmIu0ko6g8kYHutqveffUL7wyf+Dc1BJHyHlUSiL/LE0zbeaGjmG1TOVwQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.2.tgz#eacc811b84cec3be59723c629f8dc7116547b9b2" - integrity sha512-1MT2cBQyrp8/pzdvpQgn7n4JafyKoclZlSaYebGt5JmKa1rDp66pAw0zrIrRVdwfojhYbZxsZ3uvsfmbpiRo9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0-rc.2" - "@abp/bootstrap" "~8.3.0-rc.2" - "@abp/bootstrap-datepicker" "~8.3.0-rc.2" - "@abp/bootstrap-daterangepicker" "~8.3.0-rc.2" - "@abp/datatables.net-bs5" "~8.3.0-rc.2" - "@abp/font-awesome" "~8.3.0-rc.2" - "@abp/jquery-form" "~8.3.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~8.3.0-rc.2" - "@abp/lodash" "~8.3.0-rc.2" - "@abp/luxon" "~8.3.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.2" - "@abp/moment" "~8.3.0-rc.2" - "@abp/select2" "~8.3.0-rc.2" - "@abp/sweetalert2" "~8.3.0-rc.2" - "@abp/timeago" "~8.3.0-rc.2" - "@abp/toastr" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.2.tgz#58372b05fd1765a384e57ee53088b3ace4873e53" - integrity sha512-jswnQx7JoOGmfrqGnS8U+dP7trdxHtM4ZJUvlz/SLQb8OeRxoQyLr4YQhpNa4cnKzN4hrXDlITp22Z3Pn3kQ9g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.2.tgz#22d4944c20b85502e3b40a20e4f3a7085ca43c20" - integrity sha512-PO6xa7ss5YyZN9ofWlMkLr8f5hto/hHNz3x8yJma2he8zaoqMz85DByYPaH1yM5CiVN+RtEUCD9MLHmDwvaLZA== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.2.tgz#fc5d920b16a126b5d4c492f2aa807d3bb5b74cec" - integrity sha512-WrB8XeiYrFyiCWpWlWW2OUEu2MP8ZGPVRnHrTcNLe6rcp8Kj7dlzOrp6MpyJH7/lhgCTVqujoBCvphD9OOS33g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.2.tgz#07feafd950bb88971a8d3d5c1fdfc170d84fe13a" - integrity sha512-1v/nIxwb//tuI1ieGixxvfkcFvVvy1pXIOtL74d99iY7jU4gdNZcIO22qtmS9kTd55dI0FbOS7bERo4pozR+3g== +"@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.2" + "@abp/core" "~8.3.0" bootstrap "^5.3.3" -"@abp/core@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.2.tgz#63455a6bff294ee93fd8cbec5f0f9a994cf35322" - integrity sha512-RoYUz1y2ZMdAzO6nSZirtYSsEqeW5uBJxnzREkT0DFj1LrB6ywnzdV05GCKbhBcNhp2gDKEGHqCPS4HOMb2uWg== +"@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.2" + "@abp/utils" "~8.3.0" -"@abp/datatables.net-bs5@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.2.tgz#eb75b855595e264510b29adc4e2d01820752d4a3" - integrity sha512-/OTF0rsGqGXCSL+Nec07IP4O0oqdMgAXxgu6gxsjCnjGodhDtQioUbFC8SI8H8aOYBerVHWfMSMLgpJbGbS8eA== +"@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.2" + "@abp/datatables.net" "~8.3.0" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.2.tgz#38f510bb294650881b494798fe33ce9b0c0376ef" - integrity sha512-GFV343oOGwIC3giAuTuKWzuDmIDyQkn+Sr+wLCCExn3gq9OIJI5COCCD1RIp7L9SU4t3CnzJGjvi5Qzq8iLbtQ== +"@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.2" + "@abp/jquery" "~8.3.0" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.2.tgz#c97d656e1a1df8081180d9644d4734da36787c15" - integrity sha512-dUQXDxvAolfksLOIj71gSi+L8L4gvri6Wi8F3CDTgRKDEPRQ9RN0T4bqkMfeTioTeXCHpeqR4YftmmxylOWQhQ== +"@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.2" + "@abp/core" "~8.3.0" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.2.tgz#eecc01b21cb2b8ad0f889662175ca66c6d8f2fe4" - integrity sha512-ng5QHRxGE/aYzSjSXTI84L80xn/fyXSXF1hLgVT2teOR/6XWe7FmDv/SSrYi0oRopeY5dgDrzVpKp2j7+qx/yg== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.2.tgz#6606b71c0043e0a2e382ee07ee2de840ac12b545" - integrity sha512-oS2t9M6j4YI6QSETDZw67fqhpyvpWSpvC/RiuWvMhBKZOWyNPMT3b/42Fz2LI22xSODwNM7jaESEUbdo11PI3Q== +"@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.2" + "@abp/jquery-validation" "~8.3.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.2.tgz#028d9e6c1e94b1c1f9c64607f35d992857fe3121" - integrity sha512-8QmoVDQpbjl/ggfbsXPh1kf3XxFCtuyykeLdhCqYurLSw9UHejDtc/7lJA85L6eiFAjJs6VzbdP9ORnlWyOYgQ== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.2.tgz#4b40ace6d7e7331b1ff5fa41d9a7ce724def7808" - integrity sha512-HDUXVXrHa/HHbkhfLDwxIr6NNQLz+R9M/Gf8+UsxDnzevWZw9hzkwQnO3RWcK99hyaeURA2DEKLGSGa7ip3qfg== +"@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.2" + "@abp/core" "~8.3.0" jquery "~3.7.1" -"@abp/lodash@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.2.tgz#3d714095ac1985bb9688a4a2f7d2b6e439fbab50" - integrity sha512-fhjtXi7pWlNlCbayU2BqeLAbYyds5HlHF0jrqitXS6r07l6VIru5f5f1h1yd3T5RIwoA0ZT9ZrICqvxH9iQA/w== +"@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.2" + "@abp/core" "~8.3.0" lodash "^4.17.21" -"@abp/luxon@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.2.tgz#67e64aed26d7f521b76271656bed8ae19b3da00f" - integrity sha512-uajtkxqRlWK1jACB53lOhF7g8Rj+S9CCHSm2uNuAGcAK30kEZQfLEZTLzzOJ/evqDTiBay1hNYAPHnzY7Uigzw== +"@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.2" + "@abp/core" "~8.3.0" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.2.tgz#e3170cf9ed7a333040151bc1c70405d7e9269e80" - integrity sha512-GLPLnh89ebM6i3EyMjzSYtukT1lU5MSEJ/A18zIzDYgH9SUMFMe4yFJtGDngUtyzQA23hyuHcj3u1CIgPtKuGQ== +"@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.2" + "@abp/core" "~8.3.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.2.tgz#cfa76dba9731e03f24acabe8d254c077b683b99a" - integrity sha512-2JglkMbePjxoHRBjd52MGFMqWwzDdmer1hpPJ7BvznL4tklXtSg+Q7D2z7VB1bv+ZAe31cqI8IxwdxWf2eyOmw== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.2.tgz#ccf997047e75bfdf30b263201cbce6d2257c7348" - integrity sha512-ERQ/Zb8xzL704a2DLoM6ZD3IhH07MeIGn4UBhD/A3n14Yxu82Vi8qOdl+R6f0JhsDGmif/nuovxbUizFeSKmYg== +"@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.2" + "@abp/core" "~8.3.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.2.tgz#27afcabd6c3a10e76979102f5d143b404f38213c" - integrity sha512-ZloFEPOPWXiyKGdxtxyMGglamf8shTZAzhcUlxeqwRRsTlo342LI0iopOHDQ2Kfqmeua9xgj+nhX7zc6Kh0A0w== +"@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.2" + "@abp/core" "~8.3.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.2.tgz#1194a6f049b452141bd5714faff1e1fd8da20800" - integrity sha512-8Z82DPOZYEzfYevVELC1W5L4OdMHDGVZ00QAQqFv/XGTGjMVZeTvfpXKqpEcUYPMUVHcNWU3yLkIUZXGj1qXOw== +"@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.2" + "@abp/jquery" "~8.3.0" timeago "^1.6.7" -"@abp/toastr@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.2.tgz#ef5f08f894510516d055aa4ee2abf8f311a73879" - integrity sha512-syQJ87TVjkDegJBdsP+YfEK8I9zq3mDmLOQrEKRU2z3yX0qdc6zIRSCPTAkyBxf4C4gvdr4dNJJN/uKToaAo2Q== +"@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.2" + "@abp/jquery" "~8.3.0" toastr "^2.1.4" -"@abp/utils@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.2.tgz#9acb10e775c734dac2d4c48ade47c365448bbacc" - integrity sha512-jbXbkOWseh7tqqfX7jSsERFDr/Q89FUKz81rRx5jii2RuXnc9wG9E7BSG0wCQ6+o39dgpsSjKbQgwjnjBJrpJQ== +"@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" diff --git a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json index 907c063ea6..e0da5e658e 100644 --- a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json +++ b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.ClientSimulation.Web", - "hash": "219a88f8096628953238e9590f6a5e56", + "hash": "", "contents": [ { "namespace": "Volo.ClientSimulation", diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index 7d81fb0f8f..3ee27697d0 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.3.0-rc.2", - "@abp/ng.identity": "~8.3.0-rc.2", - "@abp/ng.setting-management": "~8.3.0-rc.2", - "@abp/ng.tenant-management": "~8.3.0-rc.2", - "@abp/ng.theme.basic": "~8.3.0-rc.2", + "@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", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index 9b5180b7d3..d2cfd7941b 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/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.2", - "@abp/ng.theme.shared": ">=8.3.0-rc.2" + "@abp/ng.core": ">=8.3.0", + "@abp/ng.theme.shared": ">=8.3.0" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index a9261d994c..31f6d4b511 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/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.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 5882b2ed65..d19b65bc24 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.2.tgz#8699581833e045c1a0e0d402c793c6fe47c8c4aa" - integrity sha512-DLVzeMAaa/1Q6ej4hOjRGYBBkuNMqmIu0ko6g8kYHutqveffUL7wyf+Dc1BJHyHlUSiL/LE0zbeaGjmG1TOVwQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.2.tgz#eacc811b84cec3be59723c629f8dc7116547b9b2" - integrity sha512-1MT2cBQyrp8/pzdvpQgn7n4JafyKoclZlSaYebGt5JmKa1rDp66pAw0zrIrRVdwfojhYbZxsZ3uvsfmbpiRo9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0-rc.2" - "@abp/bootstrap" "~8.3.0-rc.2" - "@abp/bootstrap-datepicker" "~8.3.0-rc.2" - "@abp/bootstrap-daterangepicker" "~8.3.0-rc.2" - "@abp/datatables.net-bs5" "~8.3.0-rc.2" - "@abp/font-awesome" "~8.3.0-rc.2" - "@abp/jquery-form" "~8.3.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~8.3.0-rc.2" - "@abp/lodash" "~8.3.0-rc.2" - "@abp/luxon" "~8.3.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.2" - "@abp/moment" "~8.3.0-rc.2" - "@abp/select2" "~8.3.0-rc.2" - "@abp/sweetalert2" "~8.3.0-rc.2" - "@abp/timeago" "~8.3.0-rc.2" - "@abp/toastr" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.2.tgz#58372b05fd1765a384e57ee53088b3ace4873e53" - integrity sha512-jswnQx7JoOGmfrqGnS8U+dP7trdxHtM4ZJUvlz/SLQb8OeRxoQyLr4YQhpNa4cnKzN4hrXDlITp22Z3Pn3kQ9g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.2.tgz#22d4944c20b85502e3b40a20e4f3a7085ca43c20" - integrity sha512-PO6xa7ss5YyZN9ofWlMkLr8f5hto/hHNz3x8yJma2he8zaoqMz85DByYPaH1yM5CiVN+RtEUCD9MLHmDwvaLZA== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.2.tgz#fc5d920b16a126b5d4c492f2aa807d3bb5b74cec" - integrity sha512-WrB8XeiYrFyiCWpWlWW2OUEu2MP8ZGPVRnHrTcNLe6rcp8Kj7dlzOrp6MpyJH7/lhgCTVqujoBCvphD9OOS33g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.2.tgz#07feafd950bb88971a8d3d5c1fdfc170d84fe13a" - integrity sha512-1v/nIxwb//tuI1ieGixxvfkcFvVvy1pXIOtL74d99iY7jU4gdNZcIO22qtmS9kTd55dI0FbOS7bERo4pozR+3g== +"@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.2" + "@abp/core" "~8.3.0" bootstrap "^5.3.3" -"@abp/core@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.2.tgz#63455a6bff294ee93fd8cbec5f0f9a994cf35322" - integrity sha512-RoYUz1y2ZMdAzO6nSZirtYSsEqeW5uBJxnzREkT0DFj1LrB6ywnzdV05GCKbhBcNhp2gDKEGHqCPS4HOMb2uWg== +"@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.2" + "@abp/utils" "~8.3.0" -"@abp/datatables.net-bs5@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.2.tgz#eb75b855595e264510b29adc4e2d01820752d4a3" - integrity sha512-/OTF0rsGqGXCSL+Nec07IP4O0oqdMgAXxgu6gxsjCnjGodhDtQioUbFC8SI8H8aOYBerVHWfMSMLgpJbGbS8eA== +"@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.2" + "@abp/datatables.net" "~8.3.0" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.2.tgz#38f510bb294650881b494798fe33ce9b0c0376ef" - integrity sha512-GFV343oOGwIC3giAuTuKWzuDmIDyQkn+Sr+wLCCExn3gq9OIJI5COCCD1RIp7L9SU4t3CnzJGjvi5Qzq8iLbtQ== +"@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.2" + "@abp/jquery" "~8.3.0" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.2.tgz#c97d656e1a1df8081180d9644d4734da36787c15" - integrity sha512-dUQXDxvAolfksLOIj71gSi+L8L4gvri6Wi8F3CDTgRKDEPRQ9RN0T4bqkMfeTioTeXCHpeqR4YftmmxylOWQhQ== +"@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.2" + "@abp/core" "~8.3.0" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.2.tgz#eecc01b21cb2b8ad0f889662175ca66c6d8f2fe4" - integrity sha512-ng5QHRxGE/aYzSjSXTI84L80xn/fyXSXF1hLgVT2teOR/6XWe7FmDv/SSrYi0oRopeY5dgDrzVpKp2j7+qx/yg== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.2.tgz#6606b71c0043e0a2e382ee07ee2de840ac12b545" - integrity sha512-oS2t9M6j4YI6QSETDZw67fqhpyvpWSpvC/RiuWvMhBKZOWyNPMT3b/42Fz2LI22xSODwNM7jaESEUbdo11PI3Q== +"@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.2" + "@abp/jquery-validation" "~8.3.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.2.tgz#028d9e6c1e94b1c1f9c64607f35d992857fe3121" - integrity sha512-8QmoVDQpbjl/ggfbsXPh1kf3XxFCtuyykeLdhCqYurLSw9UHejDtc/7lJA85L6eiFAjJs6VzbdP9ORnlWyOYgQ== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.2.tgz#4b40ace6d7e7331b1ff5fa41d9a7ce724def7808" - integrity sha512-HDUXVXrHa/HHbkhfLDwxIr6NNQLz+R9M/Gf8+UsxDnzevWZw9hzkwQnO3RWcK99hyaeURA2DEKLGSGa7ip3qfg== +"@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.2" + "@abp/core" "~8.3.0" jquery "~3.7.1" -"@abp/lodash@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.2.tgz#3d714095ac1985bb9688a4a2f7d2b6e439fbab50" - integrity sha512-fhjtXi7pWlNlCbayU2BqeLAbYyds5HlHF0jrqitXS6r07l6VIru5f5f1h1yd3T5RIwoA0ZT9ZrICqvxH9iQA/w== +"@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.2" + "@abp/core" "~8.3.0" lodash "^4.17.21" -"@abp/luxon@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.2.tgz#67e64aed26d7f521b76271656bed8ae19b3da00f" - integrity sha512-uajtkxqRlWK1jACB53lOhF7g8Rj+S9CCHSm2uNuAGcAK30kEZQfLEZTLzzOJ/evqDTiBay1hNYAPHnzY7Uigzw== +"@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.2" + "@abp/core" "~8.3.0" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.2.tgz#e3170cf9ed7a333040151bc1c70405d7e9269e80" - integrity sha512-GLPLnh89ebM6i3EyMjzSYtukT1lU5MSEJ/A18zIzDYgH9SUMFMe4yFJtGDngUtyzQA23hyuHcj3u1CIgPtKuGQ== +"@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.2" + "@abp/core" "~8.3.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.2.tgz#cfa76dba9731e03f24acabe8d254c077b683b99a" - integrity sha512-2JglkMbePjxoHRBjd52MGFMqWwzDdmer1hpPJ7BvznL4tklXtSg+Q7D2z7VB1bv+ZAe31cqI8IxwdxWf2eyOmw== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.2.tgz#ccf997047e75bfdf30b263201cbce6d2257c7348" - integrity sha512-ERQ/Zb8xzL704a2DLoM6ZD3IhH07MeIGn4UBhD/A3n14Yxu82Vi8qOdl+R6f0JhsDGmif/nuovxbUizFeSKmYg== +"@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.2" + "@abp/core" "~8.3.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.2.tgz#27afcabd6c3a10e76979102f5d143b404f38213c" - integrity sha512-ZloFEPOPWXiyKGdxtxyMGglamf8shTZAzhcUlxeqwRRsTlo342LI0iopOHDQ2Kfqmeua9xgj+nhX7zc6Kh0A0w== +"@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.2" + "@abp/core" "~8.3.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.2.tgz#1194a6f049b452141bd5714faff1e1fd8da20800" - integrity sha512-8Z82DPOZYEzfYevVELC1W5L4OdMHDGVZ00QAQqFv/XGTGjMVZeTvfpXKqpEcUYPMUVHcNWU3yLkIUZXGj1qXOw== +"@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.2" + "@abp/jquery" "~8.3.0" timeago "^1.6.7" -"@abp/toastr@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.2.tgz#ef5f08f894510516d055aa4ee2abf8f311a73879" - integrity sha512-syQJ87TVjkDegJBdsP+YfEK8I9zq3mDmLOQrEKRU2z3yX0qdc6zIRSCPTAkyBxf4C4gvdr4dNJJN/uKToaAo2Q== +"@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.2" + "@abp/jquery" "~8.3.0" toastr "^2.1.4" -"@abp/utils@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.2.tgz#9acb10e775c734dac2d4c48ade47c365448bbacc" - integrity sha512-jbXbkOWseh7tqqfX7jSsERFDr/Q89FUKz81rRx5jii2RuXnc9wG9E7BSG0wCQ6+o39dgpsSjKbQgwjnjBJrpJQ== +"@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" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index c3d9ed3ec4..7dad1fc3e2 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/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.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index 5882b2ed65..d19b65bc24 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.2.tgz#8699581833e045c1a0e0d402c793c6fe47c8c4aa" - integrity sha512-DLVzeMAaa/1Q6ej4hOjRGYBBkuNMqmIu0ko6g8kYHutqveffUL7wyf+Dc1BJHyHlUSiL/LE0zbeaGjmG1TOVwQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.2.tgz#eacc811b84cec3be59723c629f8dc7116547b9b2" - integrity sha512-1MT2cBQyrp8/pzdvpQgn7n4JafyKoclZlSaYebGt5JmKa1rDp66pAw0zrIrRVdwfojhYbZxsZ3uvsfmbpiRo9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0-rc.2" - "@abp/bootstrap" "~8.3.0-rc.2" - "@abp/bootstrap-datepicker" "~8.3.0-rc.2" - "@abp/bootstrap-daterangepicker" "~8.3.0-rc.2" - "@abp/datatables.net-bs5" "~8.3.0-rc.2" - "@abp/font-awesome" "~8.3.0-rc.2" - "@abp/jquery-form" "~8.3.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~8.3.0-rc.2" - "@abp/lodash" "~8.3.0-rc.2" - "@abp/luxon" "~8.3.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.2" - "@abp/moment" "~8.3.0-rc.2" - "@abp/select2" "~8.3.0-rc.2" - "@abp/sweetalert2" "~8.3.0-rc.2" - "@abp/timeago" "~8.3.0-rc.2" - "@abp/toastr" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.2.tgz#58372b05fd1765a384e57ee53088b3ace4873e53" - integrity sha512-jswnQx7JoOGmfrqGnS8U+dP7trdxHtM4ZJUvlz/SLQb8OeRxoQyLr4YQhpNa4cnKzN4hrXDlITp22Z3Pn3kQ9g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.2.tgz#22d4944c20b85502e3b40a20e4f3a7085ca43c20" - integrity sha512-PO6xa7ss5YyZN9ofWlMkLr8f5hto/hHNz3x8yJma2he8zaoqMz85DByYPaH1yM5CiVN+RtEUCD9MLHmDwvaLZA== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.2.tgz#fc5d920b16a126b5d4c492f2aa807d3bb5b74cec" - integrity sha512-WrB8XeiYrFyiCWpWlWW2OUEu2MP8ZGPVRnHrTcNLe6rcp8Kj7dlzOrp6MpyJH7/lhgCTVqujoBCvphD9OOS33g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.2.tgz#07feafd950bb88971a8d3d5c1fdfc170d84fe13a" - integrity sha512-1v/nIxwb//tuI1ieGixxvfkcFvVvy1pXIOtL74d99iY7jU4gdNZcIO22qtmS9kTd55dI0FbOS7bERo4pozR+3g== +"@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.2" + "@abp/core" "~8.3.0" bootstrap "^5.3.3" -"@abp/core@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.2.tgz#63455a6bff294ee93fd8cbec5f0f9a994cf35322" - integrity sha512-RoYUz1y2ZMdAzO6nSZirtYSsEqeW5uBJxnzREkT0DFj1LrB6ywnzdV05GCKbhBcNhp2gDKEGHqCPS4HOMb2uWg== +"@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.2" + "@abp/utils" "~8.3.0" -"@abp/datatables.net-bs5@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.2.tgz#eb75b855595e264510b29adc4e2d01820752d4a3" - integrity sha512-/OTF0rsGqGXCSL+Nec07IP4O0oqdMgAXxgu6gxsjCnjGodhDtQioUbFC8SI8H8aOYBerVHWfMSMLgpJbGbS8eA== +"@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.2" + "@abp/datatables.net" "~8.3.0" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.2.tgz#38f510bb294650881b494798fe33ce9b0c0376ef" - integrity sha512-GFV343oOGwIC3giAuTuKWzuDmIDyQkn+Sr+wLCCExn3gq9OIJI5COCCD1RIp7L9SU4t3CnzJGjvi5Qzq8iLbtQ== +"@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.2" + "@abp/jquery" "~8.3.0" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.2.tgz#c97d656e1a1df8081180d9644d4734da36787c15" - integrity sha512-dUQXDxvAolfksLOIj71gSi+L8L4gvri6Wi8F3CDTgRKDEPRQ9RN0T4bqkMfeTioTeXCHpeqR4YftmmxylOWQhQ== +"@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.2" + "@abp/core" "~8.3.0" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.2.tgz#eecc01b21cb2b8ad0f889662175ca66c6d8f2fe4" - integrity sha512-ng5QHRxGE/aYzSjSXTI84L80xn/fyXSXF1hLgVT2teOR/6XWe7FmDv/SSrYi0oRopeY5dgDrzVpKp2j7+qx/yg== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.2.tgz#6606b71c0043e0a2e382ee07ee2de840ac12b545" - integrity sha512-oS2t9M6j4YI6QSETDZw67fqhpyvpWSpvC/RiuWvMhBKZOWyNPMT3b/42Fz2LI22xSODwNM7jaESEUbdo11PI3Q== +"@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.2" + "@abp/jquery-validation" "~8.3.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.2.tgz#028d9e6c1e94b1c1f9c64607f35d992857fe3121" - integrity sha512-8QmoVDQpbjl/ggfbsXPh1kf3XxFCtuyykeLdhCqYurLSw9UHejDtc/7lJA85L6eiFAjJs6VzbdP9ORnlWyOYgQ== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.2.tgz#4b40ace6d7e7331b1ff5fa41d9a7ce724def7808" - integrity sha512-HDUXVXrHa/HHbkhfLDwxIr6NNQLz+R9M/Gf8+UsxDnzevWZw9hzkwQnO3RWcK99hyaeURA2DEKLGSGa7ip3qfg== +"@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.2" + "@abp/core" "~8.3.0" jquery "~3.7.1" -"@abp/lodash@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.2.tgz#3d714095ac1985bb9688a4a2f7d2b6e439fbab50" - integrity sha512-fhjtXi7pWlNlCbayU2BqeLAbYyds5HlHF0jrqitXS6r07l6VIru5f5f1h1yd3T5RIwoA0ZT9ZrICqvxH9iQA/w== +"@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.2" + "@abp/core" "~8.3.0" lodash "^4.17.21" -"@abp/luxon@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.2.tgz#67e64aed26d7f521b76271656bed8ae19b3da00f" - integrity sha512-uajtkxqRlWK1jACB53lOhF7g8Rj+S9CCHSm2uNuAGcAK30kEZQfLEZTLzzOJ/evqDTiBay1hNYAPHnzY7Uigzw== +"@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.2" + "@abp/core" "~8.3.0" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.2.tgz#e3170cf9ed7a333040151bc1c70405d7e9269e80" - integrity sha512-GLPLnh89ebM6i3EyMjzSYtukT1lU5MSEJ/A18zIzDYgH9SUMFMe4yFJtGDngUtyzQA23hyuHcj3u1CIgPtKuGQ== +"@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.2" + "@abp/core" "~8.3.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.2.tgz#cfa76dba9731e03f24acabe8d254c077b683b99a" - integrity sha512-2JglkMbePjxoHRBjd52MGFMqWwzDdmer1hpPJ7BvznL4tklXtSg+Q7D2z7VB1bv+ZAe31cqI8IxwdxWf2eyOmw== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.2.tgz#ccf997047e75bfdf30b263201cbce6d2257c7348" - integrity sha512-ERQ/Zb8xzL704a2DLoM6ZD3IhH07MeIGn4UBhD/A3n14Yxu82Vi8qOdl+R6f0JhsDGmif/nuovxbUizFeSKmYg== +"@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.2" + "@abp/core" "~8.3.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.2.tgz#27afcabd6c3a10e76979102f5d143b404f38213c" - integrity sha512-ZloFEPOPWXiyKGdxtxyMGglamf8shTZAzhcUlxeqwRRsTlo342LI0iopOHDQ2Kfqmeua9xgj+nhX7zc6Kh0A0w== +"@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.2" + "@abp/core" "~8.3.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.2.tgz#1194a6f049b452141bd5714faff1e1fd8da20800" - integrity sha512-8Z82DPOZYEzfYevVELC1W5L4OdMHDGVZ00QAQqFv/XGTGjMVZeTvfpXKqpEcUYPMUVHcNWU3yLkIUZXGj1qXOw== +"@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.2" + "@abp/jquery" "~8.3.0" timeago "^1.6.7" -"@abp/toastr@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.2.tgz#ef5f08f894510516d055aa4ee2abf8f311a73879" - integrity sha512-syQJ87TVjkDegJBdsP+YfEK8I9zq3mDmLOQrEKRU2z3yX0qdc6zIRSCPTAkyBxf4C4gvdr4dNJJN/uKToaAo2Q== +"@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.2" + "@abp/jquery" "~8.3.0" toastr "^2.1.4" -"@abp/utils@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.2.tgz#9acb10e775c734dac2d4c48ade47c365448bbacc" - integrity sha512-jbXbkOWseh7tqqfX7jSsERFDr/Q89FUKz81rRx5jii2RuXnc9wG9E7BSG0wCQ6+o39dgpsSjKbQgwjnjBJrpJQ== +"@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" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index d6143e1fd4..bad9a5bd0d 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/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.2", - "@abp/cms-kit": "8.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", + "@abp/cms-kit": "8.3.0" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 459c59a6cd..2b5adef665 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.2.tgz#8699581833e045c1a0e0d402c793c6fe47c8c4aa" - integrity sha512-DLVzeMAaa/1Q6ej4hOjRGYBBkuNMqmIu0ko6g8kYHutqveffUL7wyf+Dc1BJHyHlUSiL/LE0zbeaGjmG1TOVwQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.2.tgz#eacc811b84cec3be59723c629f8dc7116547b9b2" - integrity sha512-1MT2cBQyrp8/pzdvpQgn7n4JafyKoclZlSaYebGt5JmKa1rDp66pAw0zrIrRVdwfojhYbZxsZ3uvsfmbpiRo9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0-rc.2" - "@abp/bootstrap" "~8.3.0-rc.2" - "@abp/bootstrap-datepicker" "~8.3.0-rc.2" - "@abp/bootstrap-daterangepicker" "~8.3.0-rc.2" - "@abp/datatables.net-bs5" "~8.3.0-rc.2" - "@abp/font-awesome" "~8.3.0-rc.2" - "@abp/jquery-form" "~8.3.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~8.3.0-rc.2" - "@abp/lodash" "~8.3.0-rc.2" - "@abp/luxon" "~8.3.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.2" - "@abp/moment" "~8.3.0-rc.2" - "@abp/select2" "~8.3.0-rc.2" - "@abp/sweetalert2" "~8.3.0-rc.2" - "@abp/timeago" "~8.3.0-rc.2" - "@abp/toastr" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.2.tgz#58372b05fd1765a384e57ee53088b3ace4873e53" - integrity sha512-jswnQx7JoOGmfrqGnS8U+dP7trdxHtM4ZJUvlz/SLQb8OeRxoQyLr4YQhpNa4cnKzN4hrXDlITp22Z3Pn3kQ9g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.2.tgz#22d4944c20b85502e3b40a20e4f3a7085ca43c20" - integrity sha512-PO6xa7ss5YyZN9ofWlMkLr8f5hto/hHNz3x8yJma2he8zaoqMz85DByYPaH1yM5CiVN+RtEUCD9MLHmDwvaLZA== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.2.tgz#fc5d920b16a126b5d4c492f2aa807d3bb5b74cec" - integrity sha512-WrB8XeiYrFyiCWpWlWW2OUEu2MP8ZGPVRnHrTcNLe6rcp8Kj7dlzOrp6MpyJH7/lhgCTVqujoBCvphD9OOS33g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.2.tgz#07feafd950bb88971a8d3d5c1fdfc170d84fe13a" - integrity sha512-1v/nIxwb//tuI1ieGixxvfkcFvVvy1pXIOtL74d99iY7jU4gdNZcIO22qtmS9kTd55dI0FbOS7bERo4pozR+3g== +"@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.2" + "@abp/core" "~8.3.0" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.2.tgz#ed6955b215c1591aa226373b06e329d64b45bc0c" - integrity sha512-swA/ipl31FhEvQspgkZO+FYVfeFXsbhnVQ0aO9S7r0bsWDUA+3rbcpC2oOjRwzzE+qF2vr97f2WO/iR/o6SqpA== +"@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.2" + "@abp/core" "~8.3.0" clipboard "^2.0.11" -"@abp/cms-kit.admin@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.3.0-rc.2.tgz#af17d1eccdd9e1012c739bbf396a5b3d3c8728ce" - integrity sha512-otRkJq+PY4RQYMsuu2FmBdv6dozqu9mlY8Lt2NcH8hF9HYRpxmKgbX5UV4d1lj9DLuVTvtK+AOCPzfhHLwb99A== +"@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.2" - "@abp/jstree" "~8.3.0-rc.2" - "@abp/markdown-it" "~8.3.0-rc.2" - "@abp/slugify" "~8.3.0-rc.2" - "@abp/tui-editor" "~8.3.0-rc.2" - "@abp/uppy" "~8.3.0-rc.2" + "@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.3.0-rc.2.tgz#cd8454a24b42b9041dbda5d5fd134c624966ae82" - integrity sha512-JlNBih4F+NFKcJNnvO22p9fWKNo9fMuA55N0ZmzxBH8pa8JXZt4ipCyn8/+ejBIv+Y+OHrzZ5v9cN/3EMxofZg== +"@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.2" - "@abp/star-rating-svg" "~8.3.0-rc.2" + "@abp/highlight.js" "~8.3.0" + "@abp/star-rating-svg" "~8.3.0" -"@abp/cms-kit@8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.3.0-rc.2.tgz#ece854f9f696ba4290dcd2e2c1d876d8a8279cc9" - integrity sha512-zy5jFTXgtdgMpwdSuCc3gEAMITNzKSt2GXh5QMZVC+MoS02TbhsRZDygi/4WqgwX5XtPzQqp/94TfA9ug2Zk3A== +"@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.2" - "@abp/cms-kit.public" "~8.3.0-rc.2" + "@abp/cms-kit.admin" "~8.3.0" + "@abp/cms-kit.public" "~8.3.0" -"@abp/codemirror@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.3.0-rc.2.tgz#8dcfedfd59658cc490b92a52a348ff24748e1658" - integrity sha512-AP1gvL0ldWSgA1sTwflTlY8jwDP7+9nacEXvwiwl2Wq56pdcORfLWQGnjiw/RLu8zJ6HKxwQUjFjNRsRcqscBA== +"@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.2" + "@abp/core" "~8.3.0" codemirror "^6.0.1" -"@abp/core@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.2.tgz#63455a6bff294ee93fd8cbec5f0f9a994cf35322" - integrity sha512-RoYUz1y2ZMdAzO6nSZirtYSsEqeW5uBJxnzREkT0DFj1LrB6ywnzdV05GCKbhBcNhp2gDKEGHqCPS4HOMb2uWg== +"@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.2" + "@abp/utils" "~8.3.0" -"@abp/datatables.net-bs5@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.2.tgz#eb75b855595e264510b29adc4e2d01820752d4a3" - integrity sha512-/OTF0rsGqGXCSL+Nec07IP4O0oqdMgAXxgu6gxsjCnjGodhDtQioUbFC8SI8H8aOYBerVHWfMSMLgpJbGbS8eA== +"@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.2" + "@abp/datatables.net" "~8.3.0" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.2.tgz#38f510bb294650881b494798fe33ce9b0c0376ef" - integrity sha512-GFV343oOGwIC3giAuTuKWzuDmIDyQkn+Sr+wLCCExn3gq9OIJI5COCCD1RIp7L9SU4t3CnzJGjvi5Qzq8iLbtQ== +"@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.2" + "@abp/jquery" "~8.3.0" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.2.tgz#c97d656e1a1df8081180d9644d4734da36787c15" - integrity sha512-dUQXDxvAolfksLOIj71gSi+L8L4gvri6Wi8F3CDTgRKDEPRQ9RN0T4bqkMfeTioTeXCHpeqR4YftmmxylOWQhQ== +"@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.2" + "@abp/core" "~8.3.0" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/highlight.js@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.3.0-rc.2.tgz#3bf6dd4c3a768a0c8cdd4ca2d786e1c04358adcf" - integrity sha512-/JPxhtOrm5G/Agl4wjG2t5zmsxS7pdtHdVlAp1WwcFK2JvJVvB504NRdBe/YANsR4DbiJTobWZe6BxRTw7Y3GQ== +"@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.2" + "@abp/core" "~8.3.0" "@highlightjs/cdn-assets" "~11.9.0" -"@abp/jquery-form@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.2.tgz#eecc01b21cb2b8ad0f889662175ca66c6d8f2fe4" - integrity sha512-ng5QHRxGE/aYzSjSXTI84L80xn/fyXSXF1hLgVT2teOR/6XWe7FmDv/SSrYi0oRopeY5dgDrzVpKp2j7+qx/yg== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.2.tgz#6606b71c0043e0a2e382ee07ee2de840ac12b545" - integrity sha512-oS2t9M6j4YI6QSETDZw67fqhpyvpWSpvC/RiuWvMhBKZOWyNPMT3b/42Fz2LI22xSODwNM7jaESEUbdo11PI3Q== +"@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.2" + "@abp/jquery-validation" "~8.3.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.2.tgz#028d9e6c1e94b1c1f9c64607f35d992857fe3121" - integrity sha512-8QmoVDQpbjl/ggfbsXPh1kf3XxFCtuyykeLdhCqYurLSw9UHejDtc/7lJA85L6eiFAjJs6VzbdP9ORnlWyOYgQ== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.2.tgz#4b40ace6d7e7331b1ff5fa41d9a7ce724def7808" - integrity sha512-HDUXVXrHa/HHbkhfLDwxIr6NNQLz+R9M/Gf8+UsxDnzevWZw9hzkwQnO3RWcK99hyaeURA2DEKLGSGa7ip3qfg== +"@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.2" + "@abp/core" "~8.3.0" jquery "~3.7.1" -"@abp/jstree@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.3.0-rc.2.tgz#ab381a850f6c5515a160f1af61d783f073be19b7" - integrity sha512-smzyK1WptMT/zDrZa3cZjOyERkod5F/COF4UIcwFWAxxIjbmGqJy3NAKUfEXJWipAIqaURyIPPcM1gfALvZnCA== +"@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.2" + "@abp/jquery" "~8.3.0" jstree "^3.3.16" -"@abp/lodash@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.2.tgz#3d714095ac1985bb9688a4a2f7d2b6e439fbab50" - integrity sha512-fhjtXi7pWlNlCbayU2BqeLAbYyds5HlHF0jrqitXS6r07l6VIru5f5f1h1yd3T5RIwoA0ZT9ZrICqvxH9iQA/w== +"@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.2" + "@abp/core" "~8.3.0" lodash "^4.17.21" -"@abp/luxon@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.2.tgz#67e64aed26d7f521b76271656bed8ae19b3da00f" - integrity sha512-uajtkxqRlWK1jACB53lOhF7g8Rj+S9CCHSm2uNuAGcAK30kEZQfLEZTLzzOJ/evqDTiBay1hNYAPHnzY7Uigzw== +"@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.2" + "@abp/core" "~8.3.0" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.2.tgz#e3170cf9ed7a333040151bc1c70405d7e9269e80" - integrity sha512-GLPLnh89ebM6i3EyMjzSYtukT1lU5MSEJ/A18zIzDYgH9SUMFMe4yFJtGDngUtyzQA23hyuHcj3u1CIgPtKuGQ== +"@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.2" + "@abp/core" "~8.3.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-8.3.0-rc.2.tgz#216446aef29bae8e6ffe9dd626ba3c816e9c51c1" - integrity sha512-VfJCKSQ0U+lryck4/k4mhFqK5y4w9+eYzhU0tJRdqN/J/ASRSnT4MBjk9nnPOJ8m3bRMm7B7/nGfjFkceRPl8Q== +"@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.2" + "@abp/core" "~8.3.0" markdown-it "^14.1.0" -"@abp/moment@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.2.tgz#cfa76dba9731e03f24acabe8d254c077b683b99a" - integrity sha512-2JglkMbePjxoHRBjd52MGFMqWwzDdmer1hpPJ7BvznL4tklXtSg+Q7D2z7VB1bv+ZAe31cqI8IxwdxWf2eyOmw== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.2.tgz#bfdc7f12e8b51e321267bcb82500ffa9cb96f69c" - integrity sha512-LYYN6bqjVR/hsA2NJ5LQuPxgDsE/FTHxUVGIMk2TmFKnk8KUjQ7hDE/rllIwGWwxPtS96M6NPnzmrR8NDwI3cA== +"@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.2" - "@abp/core" "~8.3.0-rc.2" + "@abp/clipboard" "~8.3.0" + "@abp/core" "~8.3.0" prismjs "^1.29.0" -"@abp/select2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.2.tgz#ccf997047e75bfdf30b263201cbce6d2257c7348" - integrity sha512-ERQ/Zb8xzL704a2DLoM6ZD3IhH07MeIGn4UBhD/A3n14Yxu82Vi8qOdl+R6f0JhsDGmif/nuovxbUizFeSKmYg== +"@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.2" + "@abp/core" "~8.3.0" select2 "^4.0.13" -"@abp/slugify@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.3.0-rc.2.tgz#a790ceb427a69de0e186d30b38b5cb2bc6d38582" - integrity sha512-ded7RPLei3FHFsgPy4mfsBZf1lRmaN98GXA/RcXwAzIFVGjiHe4jm8NxSqYMz631VRJH0bGSxvUpyZWh2YgFIw== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.3.0-rc.2.tgz#80c0f5a6575b612ba5b89e2482c30d6964d69eb8" - integrity sha512-jbz8wrQUaU7WWIar9cW+L9u75qh4yoT4THTrMxxkxdBo/20Z/YTb9u727JPSZq8W1eluVOL5q24SRF3JkakDAw== +"@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.2" + "@abp/jquery" "~8.3.0" star-rating-svg "^3.5.0" -"@abp/sweetalert2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.2.tgz#27afcabd6c3a10e76979102f5d143b404f38213c" - integrity sha512-ZloFEPOPWXiyKGdxtxyMGglamf8shTZAzhcUlxeqwRRsTlo342LI0iopOHDQ2Kfqmeua9xgj+nhX7zc6Kh0A0w== +"@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.2" + "@abp/core" "~8.3.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.2.tgz#1194a6f049b452141bd5714faff1e1fd8da20800" - integrity sha512-8Z82DPOZYEzfYevVELC1W5L4OdMHDGVZ00QAQqFv/XGTGjMVZeTvfpXKqpEcUYPMUVHcNWU3yLkIUZXGj1qXOw== +"@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.2" + "@abp/jquery" "~8.3.0" timeago "^1.6.7" -"@abp/toastr@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.2.tgz#ef5f08f894510516d055aa4ee2abf8f311a73879" - integrity sha512-syQJ87TVjkDegJBdsP+YfEK8I9zq3mDmLOQrEKRU2z3yX0qdc6zIRSCPTAkyBxf4C4gvdr4dNJJN/uKToaAo2Q== +"@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.2" + "@abp/jquery" "~8.3.0" toastr "^2.1.4" -"@abp/tui-editor@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.3.0-rc.2.tgz#d34cf3d4f6f4a15303b6cec53bde6e5ae9c08dc3" - integrity sha512-MwntzC48JOLl+ymFCujT5iUDDLwJTJgkroF9nkyplT1YhUhQWuf+Rb4EdWfQ38+kzUVM+2S3+iQkbLxJK97UtQ== +"@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.2" - "@abp/prismjs" "~8.3.0-rc.2" + "@abp/jquery" "~8.3.0" + "@abp/prismjs" "~8.3.0" -"@abp/uppy@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.3.0-rc.2.tgz#c954bc23ed3598632ff73b6fd4e91d3bbac4af56" - integrity sha512-z7B730IyHxU/uUoJLVnSlLhAFHLt3dyQ/qos0czQPnUu4/fu8VBE3FwjuObqOYWEJXbe+am9TIVa2KImbQVgHA== +"@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.2" + "@abp/core" "~8.3.0" uppy "^3.27.0" -"@abp/utils@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.2.tgz#9acb10e775c734dac2d4c48ade47c365448bbacc" - integrity sha512-jbXbkOWseh7tqqfX7jSsERFDr/Q89FUKz81rRx5jii2RuXnc9wG9E7BSG0wCQ6+o39dgpsSjKbQgwjnjBJrpJQ== +"@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" diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json index b89faf42fe..1be9d68e1d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Admin.Application.Contracts", - "hash": "ff0f4d058f512abcca9b3b61a7bb300e", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Admin", @@ -60,7 +60,7 @@ "summary": null }, { - "displayName": "Comment Management", + "displayName": "Comment management", "isEnabled": true, "contentType": "permission", "name": "CmsKit.Comments", @@ -74,7 +74,21 @@ "summary": null }, { - "displayName": "Tag Management", + "displayName": "Permission:Comments.Update", + "isEnabled": true, + "contentType": "permission", + "name": "CmsKit.Comments.Update", + "summary": null + }, + { + "displayName": "Permission:Comments.SettingManagement", + "isEnabled": true, + "contentType": "permission", + "name": "CmsKit.Comments.SettingManagement", + "summary": null + }, + { + "displayName": "Tag management", "isEnabled": true, "contentType": "permission", "name": "CmsKit.Tags", @@ -102,7 +116,7 @@ "summary": null }, { - "displayName": "Page Management", + "displayName": "Page management", "isEnabled": true, "contentType": "permission", "name": "CmsKit.Pages", @@ -130,14 +144,14 @@ "summary": null }, { - "displayName": "Set As Home Page", + "displayName": "Set as home page", "isEnabled": true, "contentType": "permission", "name": "CmsKit.Pages.SetAsHomePage", "summary": null }, { - "displayName": "Blog Management", + "displayName": "Blog management", "isEnabled": true, "contentType": "permission", "name": "CmsKit.Blogs", @@ -172,7 +186,7 @@ "summary": null }, { - "displayName": "Blog Post Management", + "displayName": "Blog post management", "isEnabled": true, "contentType": "permission", "name": "CmsKit.BlogPosts", @@ -207,7 +221,7 @@ "summary": null }, { - "displayName": "Menu Management", + "displayName": "Menu management", "isEnabled": true, "contentType": "permission", "name": "CmsKit.Menus", @@ -235,7 +249,7 @@ "summary": null }, { - "displayName": "Global Resources", + "displayName": "Global resources", "isEnabled": true, "contentType": "permission", "name": "CmsKit.GlobalResources", diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json index e58e8fb34a..cb49ddb813 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Admin.Application", - "hash": "1cf0db9a201c7d8143e4f8efb6218d59", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Admin", @@ -136,6 +136,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Tags", "name": "AddTagToEntityAsync", "summary": null, "isAsync": true, @@ -152,6 +153,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Tags", "name": "RemoveTagFromEntityAsync", "summary": null, "isAsync": true, @@ -168,6 +170,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Tags", "name": "SetEntityTagsAsync", "summary": null, "isAsync": true, @@ -296,6 +299,7 @@ "methods": [ { "returnType": "TagDto", + "namespace": "Volo.CmsKit.Admin.Tags", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -312,6 +316,7 @@ }, { "returnType": "TagDto", + "namespace": "Volo.CmsKit.Admin.Tags", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -333,6 +338,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Admin.Tags", "name": "GetTagDefinitionsAsync", "summary": null, "isAsync": true, @@ -343,6 +349,7 @@ }, { "returnType": "TagDto", + "namespace": "Volo.CmsKit.Admin.Tags", "name": "GetAsync", "summary": null, "isAsync": true, @@ -359,6 +366,7 @@ }, { "returnType": "PagedResultDto", + "namespace": "Volo.CmsKit.Admin.Tags", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -375,6 +383,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Tags", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -497,6 +506,7 @@ "methods": [ { "returnType": "PageDto", + "namespace": "Volo.CmsKit.Admin.Pages", "name": "GetAsync", "summary": null, "isAsync": true, @@ -513,6 +523,7 @@ }, { "returnType": "PagedResultDto", + "namespace": "Volo.CmsKit.Admin.Pages", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -529,6 +540,7 @@ }, { "returnType": "PageDto", + "namespace": "Volo.CmsKit.Admin.Pages", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -545,6 +557,7 @@ }, { "returnType": "PageDto", + "namespace": "Volo.CmsKit.Admin.Pages", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -566,6 +579,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Pages", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -582,6 +596,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Pages", "name": "SetAsHomePageAsync", "summary": null, "isAsync": true, @@ -668,6 +683,7 @@ "methods": [ { "returnType": "ListResultDto", + "namespace": "Volo.CmsKit.Admin.Menus", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -677,7 +693,8 @@ "parameters": [] }, { - "returnType": "MenuItemDto", + "returnType": "MenuItemWithDetailsDto", + "namespace": "Volo.CmsKit.Admin.Menus", "name": "GetAsync", "summary": null, "isAsync": true, @@ -694,6 +711,7 @@ }, { "returnType": "MenuItemDto", + "namespace": "Volo.CmsKit.Admin.Menus", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -710,6 +728,7 @@ }, { "returnType": "MenuItemDto", + "namespace": "Volo.CmsKit.Admin.Menus", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -731,6 +750,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Menus", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -747,6 +767,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Menus", "name": "MoveMenuItemAsync", "summary": null, "isAsync": true, @@ -768,6 +789,7 @@ }, { "returnType": "PagedResultDto", + "namespace": "Volo.CmsKit.Admin.Menus", "name": "GetPageLookupAsync", "summary": null, "isAsync": true, @@ -854,6 +876,7 @@ "methods": [ { "returnType": "MediaDescriptorDto", + "namespace": "Volo.CmsKit.Admin.MediaDescriptors", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -875,6 +898,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.MediaDescriptors", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -961,6 +985,7 @@ "methods": [ { "returnType": "GlobalResourcesDto", + "namespace": "Volo.CmsKit.Admin.GlobalResources", "name": "GetAsync", "summary": null, "isAsync": true, @@ -971,6 +996,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.GlobalResources", "name": "SetGlobalResourcesAsync", "summary": null, "isAsync": true, @@ -1057,6 +1083,7 @@ "methods": [ { "returnType": "PagedResultDto", + "namespace": "Volo.CmsKit.Admin.Comments", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -1073,6 +1100,7 @@ }, { "returnType": "CommentWithAuthorDto", + "namespace": "Volo.CmsKit.Admin.Comments", "name": "GetAsync", "summary": null, "isAsync": true, @@ -1089,6 +1117,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Comments", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -1102,6 +1131,56 @@ "isOptional": false } ] + }, + { + "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Comments", + "name": "UpdateApprovalStatusAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CommentApprovalDto", + "name": "input", + "isOptional": false + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Comments", + "name": "UpdateSettingsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "CommentSettingsDto", + "name": "input", + "isOptional": false + } + ] + }, + { + "returnType": "Int32", + "namespace": "Volo.CmsKit.Admin.Comments", + "name": "GetWaitingCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [] } ], "contentType": "applicationService", @@ -1217,6 +1296,7 @@ "methods": [ { "returnType": "BlogDto", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "GetAsync", "summary": null, "isAsync": true, @@ -1233,6 +1313,7 @@ }, { "returnType": "PagedResultDto", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -1249,6 +1330,7 @@ }, { "returnType": "BlogDto", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -1265,6 +1347,7 @@ }, { "returnType": "BlogDto", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -1286,6 +1369,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -1372,6 +1456,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -1388,6 +1473,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "SetAsync", "summary": null, "isAsync": true, @@ -1515,6 +1601,7 @@ "methods": [ { "returnType": "BlogPostDto", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -1531,6 +1618,7 @@ }, { "returnType": "BlogPostDto", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -1552,6 +1640,7 @@ }, { "returnType": "BlogPostDto", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "GetAsync", "summary": null, "isAsync": true, @@ -1568,6 +1657,7 @@ }, { "returnType": "PagedResultDto", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -1584,6 +1674,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -1600,6 +1691,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "PublishAsync", "summary": null, "isAsync": true, @@ -1616,6 +1708,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "DraftAsync", "summary": null, "isAsync": true, @@ -1632,6 +1725,7 @@ }, { "returnType": "BlogPostDto", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "CreateAndPublishAsync", "summary": null, "isAsync": true, @@ -1648,6 +1742,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "SendToReviewAsync", "summary": null, "isAsync": true, @@ -1664,6 +1759,7 @@ }, { "returnType": "BlogPostDto", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "CreateAndSendToReviewAsync", "summary": null, "isAsync": true, @@ -1680,6 +1776,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.CmsKit.Admin.Blogs", "name": "HasBlogPostWaitingForReviewAsync", "summary": null, "isAsync": true, diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json index 5f9d12dd8c..15d3a881b5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Admin.HttpApi.Client", - "hash": "ef3894ffa45c8acb929d4feba96f8075", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Admin", diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json index a616d94e35..e18611bd30 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Admin.HttpApi", - "hash": "5d180189476676a5483931264591c077", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Admin", diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json index 87cdbecc70..b8b9d3e51e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Admin.Web", - "hash": "fa6d7b5a529c2c76386141dc3cb12bba", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Admin.Web", @@ -63,6 +63,132 @@ "contentType": "abpModule", "name": "CmsKitAdminWebModule", "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags", + "contentType": "webPage", + "name": "CreateModalModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags", + "contentType": "webPage", + "name": "EditModalModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Pages", + "contentType": "webPage", + "name": "CreateModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Pages", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Pages", + "contentType": "webPage", + "name": "UpdateModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems", + "contentType": "webPage", + "name": "CreateModalModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems", + "contentType": "webPage", + "name": "UpdateModalModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.GlobalResources", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Contents", + "contentType": "webPage", + "name": "AddWidgetModal", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments", + "contentType": "webPage", + "name": "DetailsModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments.Approve", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs", + "contentType": "webPage", + "name": "CreateModalModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs", + "contentType": "webPage", + "name": "FeaturesModalModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs", + "contentType": "webPage", + "name": "UpdateModalModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts", + "contentType": "webPage", + "name": "CreateModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts", + "contentType": "webPage", + "name": "UpdateModel", + "summary": null } ] } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json index 31c2e8b638..f99448fb3a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Application.Contracts", - "hash": "66c9cd5f35e614372742f30cffd8bd6f", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json index 176ef47816..f9241cd762 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Application", - "hash": "00e09a7a3302312d77b39946caa4bfeb", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json index 3c7c768c62..83c5e5ef19 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Common.Application.Contracts", - "hash": "784cb8875b468f63331845f2e59b803c", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json index cc91790057..97e0500737 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Common.Application", - "hash": "9c83bf387d563350ffb80d42d2884a92", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", @@ -141,6 +141,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.CmsKit.Tags", "name": "GetAllRelatedTagsAsync", "summary": null, "isAsync": true, @@ -159,6 +160,28 @@ "isOptional": false } ] + }, + { + "returnType": "List", + "namespace": "Volo.CmsKit.Tags", + "name": "GetPopularTagsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxCount", + "isOptional": false + } + ] } ], "contentType": "applicationService", @@ -232,6 +255,7 @@ "methods": [ { "returnType": "RemoteStreamContent", + "namespace": "Volo.CmsKit.MediaDescriptors", "name": "DownloadAsync", "summary": null, "isAsync": true, @@ -318,6 +342,7 @@ "methods": [ { "returnType": "BlogFeatureDto", + "namespace": "Volo.CmsKit.Blogs", "name": "GetOrDefaultAsync", "summary": null, "isAsync": true, diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json index 07cf87050b..878f2a794c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Common.HttpApi.Client", - "hash": "e7ad713defbe5999262cd31144491fae", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json index 9fe40718c1..d89526e298 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Common.HttpApi", - "hash": "a5120d7c193b3e67658db2321ee7f3cf", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json index 4fb7b3751a..56c251adff 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Common.Web", - "hash": "f301d4e5431930d0c906428b835e9b6d", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Web", @@ -19,6 +19,11 @@ "declaringAssemblyName": "Volo.Abp.AutoMapper", "namespace": "Volo.Abp.AutoMapper", "name": "AbpAutoMapperModule" + }, + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.Web", + "namespace": "Volo.Abp.SettingManagement.Web", + "name": "AbpSettingManagementWebModule" } ], "implementingInterfaces": [ diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json index 5ae7c0efe3..a748e67a44 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Domain.Shared", - "hash": "bdbefadcd3677ae51a666b11c07bee07", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", @@ -68,6 +68,17 @@ "contentType": "abpModule", "name": "CmsKitDomainSharedModule", "summary": null + }, + { + "defaultValue": "false", + "displayName": "CmsKit.Comments.RequireApprovement", + "description": "", + "isVisibleToClient": true, + "isInherited": true, + "isEncrypted": false, + "contentType": "setting", + "name": "CmsKit.Comments.RequireApprovement", + "summary": null } ] } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json index a6e5c0aa93..1c3f2c14fd 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Domain", - "hash": "a330d75df32c8b504c193f59fe9554e5", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", @@ -24,6 +24,11 @@ "declaringAssemblyName": "Volo.Abp.BlobStoring", "namespace": "Volo.Abp.BlobStoring", "name": "AbpBlobStoringModule" + }, + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.Domain", + "namespace": "Volo.Abp.SettingManagement", + "name": "AbpSettingManagementDomainModule" } ], "implementingInterfaces": [ @@ -157,7 +162,7 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" }, { @@ -170,6 +175,7 @@ "methods": [ { "returnType": "Boolean", + "namespace": "Volo.CmsKit.Users", "name": "Update", "summary": null, "isAsync": false, @@ -353,13 +359,14 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.Tags", "name": "SetName", "summary": null, "isAsync": false, @@ -376,6 +383,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Tags", "name": "SetEntityType", "summary": null, "isAsync": false, @@ -469,7 +477,7 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], @@ -568,6 +576,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.Ratings", "name": "SetStarCount", "summary": null, "isAsync": false, @@ -736,13 +745,20 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" + }, + { + "name": "IHasEntityVersion", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasEntityVersion" } ], "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.Pages", "name": "SetTitle", "summary": null, "isAsync": false, @@ -759,6 +775,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Pages", "name": "SetContent", "summary": null, "isAsync": false, @@ -775,6 +792,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Pages", "name": "SetScript", "summary": null, "isAsync": false, @@ -791,6 +809,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Pages", "name": "SetStyle", "summary": null, "isAsync": false, @@ -845,6 +864,11 @@ "type": "System.Boolean", "name": "IsHomePage", "summary": null + }, + { + "type": "System.Int32", + "name": "EntityVersion", + "summary": null } ], "contentType": "aggregateRoot", @@ -940,13 +964,14 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.Menus", "name": "SetDisplayName", "summary": null, "isAsync": false, @@ -963,6 +988,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Menus", "name": "SetUrl", "summary": null, "isAsync": false, @@ -1156,13 +1182,14 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.MediaDescriptors", "name": "SetName", "summary": null, "isAsync": false, @@ -1213,6 +1240,99 @@ "name": "MediaDescriptor", "summary": null }, + { + "baseClass": { + "name": "BasicAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.BasicAggregateRoot" + }, + "implementingInterfaces": [ + { + "name": "IEntity", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" + }, + { + "name": "IEntity", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" + }, + { + "name": "IAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" + }, + { + "name": "IAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" + }, + { + "name": "IGeneratesDomainEvents", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" + }, + { + "name": "IHasCreationTime", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasCreationTime" + }, + { + "name": "IMustHaveCreator", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IMustHaveCreator" + }, + { + "name": "IMultiTenant", + "namespace": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" + } + ], + "methods": [], + "collectionProperties": {}, + "navigationProperties": {}, + "namespace": "Volo.CmsKit.MarkedItems", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.Guid", + "name": "CreatorId", + "summary": null + }, + { + "type": "System.DateTime", + "name": "CreationTime", + "summary": null + }, + { + "type": "System.String", + "name": "EntityId", + "summary": null + }, + { + "type": "System.String", + "name": "EntityType", + "summary": null + } + ], + "contentType": "aggregateRoot", + "name": "UserMarkedItem", + "summary": null + }, { "baseClass": { "name": "AuditedAggregateRoot", @@ -1302,13 +1422,14 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.GlobalResources", "name": "SetValue", "summary": null, "isAsync": false, @@ -1414,13 +1535,14 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.Comments", "name": "SetText", "summary": null, "isAsync": false, @@ -1434,6 +1556,39 @@ "isOptional": false } ] + }, + { + "returnType": "Comment", + "namespace": "Volo.CmsKit.Comments", + "name": "Approve", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [] + }, + { + "returnType": "Comment", + "namespace": "Volo.CmsKit.Comments", + "name": "Reject", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [] + }, + { + "returnType": "Comment", + "namespace": "Volo.CmsKit.Comments", + "name": "WaitForApproval", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [] } ], "collectionProperties": {}, @@ -1475,6 +1630,21 @@ "type": "System.DateTime", "name": "CreationTime", "summary": null + }, + { + "type": "System.String", + "name": "Url", + "summary": null + }, + { + "type": "System.String", + "name": "IdempotencyToken", + "summary": null + }, + { + "type": "System.Nullable`1[System.Boolean]", + "name": "IsApproved", + "summary": null } ], "contentType": "aggregateRoot", @@ -1594,13 +1764,14 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetName", "summary": null, "isAsync": false, @@ -1617,6 +1788,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetSlug", "summary": null, "isAsync": false, @@ -1907,13 +2079,20 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" + }, + { + "name": "IHasEntityVersion", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasEntityVersion" } ], "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetTitle", "summary": null, "isAsync": false, @@ -1930,6 +2109,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetShortDescription", "summary": null, "isAsync": false, @@ -1946,6 +2126,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetContent", "summary": null, "isAsync": false, @@ -1962,6 +2143,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetDraft", "summary": null, "isAsync": false, @@ -1972,6 +2154,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetPublished", "summary": null, "isAsync": false, @@ -1982,6 +2165,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetWaitingForReview", "summary": null, "isAsync": false, @@ -2052,6 +2236,11 @@ "type": "Volo.CmsKit.Blogs.BlogPostStatus", "name": "Status", "summary": null + }, + { + "type": "System.Int32", + "name": "EntityVersion", + "summary": null } ], "contentType": "aggregateRoot", @@ -2069,6 +2258,7 @@ "methods": [ { "returnType": "EntityTag", + "namespace": "Volo.CmsKit.Tags", "name": "AddTagToEntityAsync", "summary": null, "isAsync": true, @@ -2105,6 +2295,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Tags", "name": "RemoveTagFromEntityAsync", "summary": null, "isAsync": true, @@ -2141,6 +2332,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Tags", "name": "SetEntityTagsAsync", "summary": null, "isAsync": true, @@ -2167,6 +2359,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Tags", "name": "GetEntityIdsFilteredByTagAsync", "summary": null, "isAsync": true, @@ -2193,6 +2386,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Tags", "name": "GetEntityIdsFilteredByTagNameAsync", "summary": null, "isAsync": true, @@ -2252,6 +2446,7 @@ "methods": [ { "returnType": "Tag", + "namespace": "Volo.CmsKit.Tags", "name": "GetOrAddAsync", "summary": null, "isAsync": true, @@ -2273,6 +2468,7 @@ }, { "returnType": "Tag", + "namespace": "Volo.CmsKit.Tags", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -2299,6 +2495,7 @@ }, { "returnType": "Tag", + "namespace": "Volo.CmsKit.Tags", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -2348,6 +2545,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.CmsKit.Reactions", "name": "GetReactionsAsync", "summary": null, "isAsync": true, @@ -2364,6 +2562,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Reactions", "name": "GetSummariesAsync", "summary": null, "isAsync": true, @@ -2385,6 +2584,7 @@ }, { "returnType": "UserReaction", + "namespace": "Volo.CmsKit.Reactions", "name": "GetOrCreateAsync", "summary": null, "isAsync": true, @@ -2416,6 +2616,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.CmsKit.Reactions", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -2475,6 +2676,7 @@ "methods": [ { "returnType": "Rating", + "namespace": "Volo.CmsKit.Ratings", "name": "SetStarAsync", "summary": null, "isAsync": true, @@ -2534,6 +2736,7 @@ "methods": [ { "returnType": "Page", + "namespace": "Volo.CmsKit.Pages", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -2570,6 +2773,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Pages", "name": "SetSlugAsync", "summary": null, "isAsync": true, @@ -2591,6 +2795,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Pages", "name": "SetHomePageAsync", "summary": null, "isAsync": true, @@ -2607,6 +2812,7 @@ }, { "returnType": "Page", + "namespace": "Volo.CmsKit.Pages", "name": "GetHomePageAsync", "summary": null, "isAsync": true, @@ -2645,6 +2851,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.Menus", "name": "SetPageUrl", "summary": null, "isAsync": false, @@ -2666,6 +2873,29 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Menus", + "name": "SetPageUrl", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "MenuItem", + "name": "menuItem", + "isOptional": false + }, + { + "type": "String", + "name": "url", + "isOptional": false + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.CmsKit.Menus", "name": "MoveAsync", "summary": null, "isAsync": true, @@ -2692,6 +2922,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Menus", "name": "OrganizeTreeOrderForMenuItem", "summary": null, "isAsync": false, @@ -2741,6 +2972,7 @@ "methods": [ { "returnType": "MediaDescriptor", + "namespace": "Volo.CmsKit.MediaDescriptors", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -2789,6 +3021,61 @@ "name": "MediaDescriptorManager", "summary": null }, + { + "namespace": "Volo.CmsKit.MarkedItems", + "baseClass": { + "name": "CmsKitDomainServiceBase", + "namespace": "Volo.CmsKit", + "declaringAssemblyName": "Volo.CmsKit.Domain", + "fullName": "Volo.CmsKit.CmsKitDomainServiceBase" + }, + "methods": [ + { + "returnType": "Boolean", + "namespace": "Volo.CmsKit.MarkedItems", + "name": "ToggleUserMarkedItemAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "creatorId", + "isOptional": false + }, + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + } + ] + } + ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "domainService", + "name": "MarkedItemManager", + "summary": null + }, { "namespace": "Volo.CmsKit.GlobalResources", "baseClass": { @@ -2800,6 +3087,7 @@ "methods": [ { "returnType": "GlobalResource", + "namespace": "Volo.CmsKit.GlobalResources", "name": "SetGlobalStyleAsync", "summary": null, "isAsync": true, @@ -2816,6 +3104,7 @@ }, { "returnType": "GlobalResource", + "namespace": "Volo.CmsKit.GlobalResources", "name": "SetGlobalScriptAsync", "summary": null, "isAsync": true, @@ -2832,6 +3121,7 @@ }, { "returnType": "GlobalResource", + "namespace": "Volo.CmsKit.GlobalResources", "name": "GetGlobalStyleAsync", "summary": null, "isAsync": true, @@ -2842,6 +3132,7 @@ }, { "returnType": "GlobalResource", + "namespace": "Volo.CmsKit.GlobalResources", "name": "GetGlobalScriptAsync", "summary": null, "isAsync": true, @@ -2880,6 +3171,7 @@ "methods": [ { "returnType": "Comment", + "namespace": "Volo.CmsKit.Comments", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -2907,6 +3199,11 @@ "name": "text", "isOptional": false }, + { + "type": "String", + "name": "url", + "isOptional": true + }, { "type": "Nullable", "name": "repliedCommentId", @@ -2944,6 +3241,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetAsync", "summary": null, "isAsync": true, @@ -2970,6 +3268,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetDefaultsAsync", "summary": null, "isAsync": true, @@ -2986,6 +3285,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetIfNotSetAsync", "summary": null, "isAsync": true, @@ -3012,6 +3312,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetDefaultsIfNotSetAsync", "summary": null, "isAsync": true, @@ -3056,6 +3357,7 @@ "methods": [ { "returnType": "Blog", + "namespace": "Volo.CmsKit.Blogs", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -3077,6 +3379,7 @@ }, { "returnType": "Blog", + "namespace": "Volo.CmsKit.Blogs", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -3131,6 +3434,7 @@ "methods": [ { "returnType": "BlogPost", + "namespace": "Volo.CmsKit.Blogs", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -3182,6 +3486,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Blogs", "name": "SetSlugUrlAsync", "summary": null, "isAsync": true, @@ -3306,6 +3611,7 @@ "methods": [ { "returnType": "EntityTag", + "namespace": "Volo.CmsKit.Tags", "name": "FindAsync", "summary": null, "isAsync": true, @@ -3337,6 +3643,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Tags", "name": "DeleteManyAsync", "summary": null, "isAsync": true, @@ -3363,6 +3670,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Tags", "name": "GetEntityIdsFilteredByTagAsync", "summary": null, "isAsync": true, @@ -3389,6 +3697,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Tags", "name": "GetEntityIdsFilteredByTagNameAsync", "summary": null, "isAsync": true, @@ -3468,6 +3777,7 @@ "methods": [ { "returnType": "Tag", + "namespace": "Volo.CmsKit.Tags", "name": "GetAsync", "summary": null, "isAsync": true, @@ -3494,6 +3804,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.CmsKit.Tags", "name": "AnyAsync", "summary": null, "isAsync": true, @@ -3520,6 +3831,7 @@ }, { "returnType": "Tag", + "namespace": "Volo.CmsKit.Tags", "name": "FindAsync", "summary": null, "isAsync": true, @@ -3546,6 +3858,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Tags", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -3558,6 +3871,21 @@ "name": "filter", "isOptional": false }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, { "type": "CancellationToken", "name": "cancellationToken", @@ -3567,6 +3895,7 @@ }, { "returnType": "Int32", + "namespace": "Volo.CmsKit.Tags", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -3588,6 +3917,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Tags", "name": "GetAllRelatedTagsAsync", "summary": null, "isAsync": true, @@ -3611,6 +3941,33 @@ "isOptional": true } ] + }, + { + "returnType": "List", + "namespace": "Volo.CmsKit.Tags", + "name": "GetPopularTagsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxCount", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] } ], "contentType": "repositoryInterface", @@ -3662,6 +4019,7 @@ "methods": [ { "returnType": "UserReaction", + "namespace": "Volo.CmsKit.Reactions", "name": "FindAsync", "summary": null, "isAsync": true, @@ -3698,6 +4056,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Reactions", "name": "GetListForUserAsync", "summary": null, "isAsync": true, @@ -3729,6 +4088,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Reactions", "name": "GetSummariesAsync", "summary": null, "isAsync": true, @@ -3803,6 +4163,7 @@ "methods": [ { "returnType": "Rating", + "namespace": "Volo.CmsKit.Ratings", "name": "GetCurrentUserRatingAsync", "summary": null, "isAsync": true, @@ -3834,6 +4195,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Ratings", "name": "GetGroupedStarCountsAsync", "summary": null, "isAsync": true, @@ -3908,6 +4270,7 @@ "methods": [ { "returnType": "Int32", + "namespace": "Volo.CmsKit.Pages", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -3929,6 +4292,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Pages", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -3965,6 +4329,7 @@ }, { "returnType": "Page", + "namespace": "Volo.CmsKit.Pages", "name": "GetBySlugAsync", "summary": null, "isAsync": true, @@ -3986,6 +4351,7 @@ }, { "returnType": "Page", + "namespace": "Volo.CmsKit.Pages", "name": "FindBySlugAsync", "summary": null, "isAsync": true, @@ -4007,6 +4373,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.CmsKit.Pages", "name": "ExistsAsync", "summary": null, "isAsync": true, @@ -4028,6 +4395,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Pages", "name": "GetListOfHomePagesAsync", "summary": null, "isAsync": true, @@ -4041,6 +4409,28 @@ "isOptional": true } ] + }, + { + "returnType": "String", + "namespace": "Volo.CmsKit.Pages", + "name": "FindTitleAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "pageId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] } ], "contentType": "repositoryInterface", @@ -4141,6 +4531,145 @@ "name": "IMediaDescriptorRepository", "summary": null }, + { + "namespace": "Volo.CmsKit.MarkedItems", + "entityAnalyzeModel": { + "namespace": "Volo.CmsKit.MarkedItems", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "UserMarkedItem", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "UserMarkedItem", + "namespace": "Volo.CmsKit.MarkedItems", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "userId", + "isOptional": false + }, + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "namespace": "Volo.CmsKit.MarkedItems", + "name": "GetListForUserAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "userId", + "isOptional": false + }, + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "namespace": "Volo.CmsKit.MarkedItems", + "name": "GetEntityIdsFilteredByUserAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "userId", + "isOptional": false + }, + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "Nullable", + "name": "tenantId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IUserMarkedItemRepository", + "summary": null + }, { "namespace": "Volo.CmsKit.GlobalResources", "entityAnalyzeModel": { @@ -4186,6 +4715,7 @@ "methods": [ { "returnType": "GlobalResource", + "namespace": "Volo.CmsKit.GlobalResources", "name": "FindByNameAsync", "summary": null, "isAsync": true, @@ -4255,6 +4785,7 @@ "methods": [ { "returnType": "CommentWithAuthorQueryResultItem", + "namespace": "Volo.CmsKit.Comments", "name": "GetWithAuthorAsync", "summary": null, "isAsync": true, @@ -4276,6 +4807,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Comments", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -4328,6 +4860,11 @@ "name": "skipCount", "isOptional": true }, + { + "type": "CommentApproveState", + "name": "commentApproveState", + "isOptional": true + }, { "type": "CancellationToken", "name": "cancellationToken", @@ -4337,6 +4874,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.CmsKit.Comments", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -4374,6 +4912,11 @@ "name": "creationEndDate", "isOptional": true }, + { + "type": "CommentApproveState", + "name": "commentApproveState", + "isOptional": true + }, { "type": "CancellationToken", "name": "cancellationToken", @@ -4383,6 +4926,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Comments", "name": "GetListWithAuthorsAsync", "summary": null, "isAsync": true, @@ -4400,6 +4944,11 @@ "name": "entityId", "isOptional": false }, + { + "type": "CommentApproveState", + "name": "commentApproveState", + "isOptional": true + }, { "type": "CancellationToken", "name": "cancellationToken", @@ -4409,6 +4958,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Comments", "name": "DeleteWithRepliesAsync", "summary": null, "isAsync": true, @@ -4427,6 +4977,28 @@ "isOptional": true } ] + }, + { + "returnType": "Boolean", + "namespace": "Volo.CmsKit.Comments", + "name": "ExistsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "idempotencyToken", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] } ], "contentType": "repositoryInterface", @@ -4478,6 +5050,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.CmsKit.Blogs", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -4499,6 +5072,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Blogs", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -4525,6 +5099,7 @@ }, { "returnType": "BlogFeature", + "namespace": "Volo.CmsKit.Blogs", "name": "FindAsync", "summary": null, "isAsync": true, @@ -4599,6 +5174,7 @@ "methods": [ { "returnType": "Int32", + "namespace": "Volo.CmsKit.Blogs", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -4640,6 +5216,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Blogs", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -4696,6 +5273,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.CmsKit.Blogs", "name": "SlugExistsAsync", "summary": null, "isAsync": true, @@ -4722,6 +5300,7 @@ }, { "returnType": "BlogPost", + "namespace": "Volo.CmsKit.Blogs", "name": "GetBySlugAsync", "summary": null, "isAsync": true, @@ -4748,6 +5327,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Blogs", "name": "GetAuthorsHasBlogPostsAsync", "summary": null, "isAsync": true, @@ -4784,6 +5364,7 @@ }, { "returnType": "Int32", + "namespace": "Volo.CmsKit.Blogs", "name": "GetAuthorsHasBlogPostsCountAsync", "summary": null, "isAsync": true, @@ -4805,6 +5386,7 @@ }, { "returnType": "CmsUser", + "namespace": "Volo.CmsKit.Blogs", "name": "GetAuthorHasBlogPostAsync", "summary": null, "isAsync": true, @@ -4826,6 +5408,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.CmsKit.Blogs", "name": "HasBlogPostWaitingForReviewAsync", "summary": null, "isAsync": true, @@ -4890,6 +5473,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.CmsKit.Blogs", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -4926,6 +5510,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.CmsKit.Blogs", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -4947,6 +5532,7 @@ }, { "returnType": "Blog", + "namespace": "Volo.CmsKit.Blogs", "name": "GetBySlugAsync", "summary": null, "isAsync": true, @@ -4968,6 +5554,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.CmsKit.Blogs", "name": "ExistsAsync", "summary": null, "isAsync": true, @@ -4989,6 +5576,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.CmsKit.Blogs", "name": "SlugExistsAsync", "summary": null, "isAsync": true, diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json index 75a47da9b8..88283b8433 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.EntityFrameworkCore", - "hash": "f77c50f915305bf6c4f61dd28fac3d42", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.EntityFrameworkCore", @@ -74,6 +74,25 @@ "connectionStringName": "CmsKit", "databaseTables": [], "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ + { + "returnType": "Void", + "namespace": "Volo.CmsKit.EntityFrameworkCore", + "name": "ConfigureCmsKit", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] + } + ], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -129,6 +148,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json index 1629b07433..6d48362846 100644 --- a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.HttpApi.Client", - "hash": "81149b8997a408cc61968718d651707d", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json index 3cccbcb7bd..a2b88f1280 100644 --- a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.HttpApi", - "hash": "21341ac4929e1d6f0dbc8e183ac3434d", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json index e4f8245ace..23de87b372 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.MongoDB", - "hash": "0a97f3dd5afa54002ac001896c098325", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.MongoDB", @@ -74,81 +74,87 @@ "connectionStringName": "CmsKit", "databaseCollections": [ { - "entityFullName": "Volo.CmsKit.Tags.Tag", + "entityFullName": "Volo.CmsKit.Comments.Comment", "contentType": "databaseCollection", - "name": "CmsTags", + "name": "Comments", "summary": null }, { "entityFullName": "Volo.CmsKit.Reactions.UserReaction", "contentType": "databaseCollection", - "name": "CmsUserReactions", + "name": "UserReactions", "summary": null }, { - "entityFullName": "Volo.CmsKit.Pages.Page", + "entityFullName": "Volo.CmsKit.Users.CmsUser", "contentType": "databaseCollection", - "name": "CmsPages", + "name": "CmsUsers", "summary": null }, { - "entityFullName": "Volo.CmsKit.Comments.Comment", + "entityFullName": "Volo.CmsKit.Ratings.Rating", "contentType": "databaseCollection", - "name": "CmsComments", + "name": "Ratings", "summary": null }, { - "entityFullName": "Volo.CmsKit.Ratings.Rating", + "entityFullName": "Volo.CmsKit.Tags.Tag", "contentType": "databaseCollection", - "name": "CmsRatings", + "name": "Tags", "summary": null }, { - "entityFullName": "Volo.CmsKit.Blogs.BlogFeature", + "entityFullName": "Volo.CmsKit.Tags.EntityTag", "contentType": "databaseCollection", - "name": "CmsBlogFeatures", + "name": "EntityTags", "summary": null }, { - "entityFullName": "Volo.CmsKit.Users.CmsUser", + "entityFullName": "Volo.CmsKit.Pages.Page", "contentType": "databaseCollection", - "name": "CmsUsers", + "name": "Pages", "summary": null }, { - "entityFullName": "Volo.CmsKit.Blogs.BlogPost", + "entityFullName": "Volo.CmsKit.Blogs.Blog", "contentType": "databaseCollection", - "name": "CmsBlogPosts", + "name": "Blogs", "summary": null }, { - "entityFullName": "Volo.CmsKit.Menus.MenuItem", + "entityFullName": "Volo.CmsKit.Blogs.BlogPost", "contentType": "databaseCollection", - "name": "CmsMenuItems", + "name": "BlogPosts", "summary": null }, { - "entityFullName": "Volo.CmsKit.Blogs.Blog", + "entityFullName": "Volo.CmsKit.Blogs.BlogFeature", "contentType": "databaseCollection", - "name": "CmsBlogs", + "name": "BlogFeatures", "summary": null }, { - "entityFullName": "Volo.CmsKit.Tags.EntityTag", + "entityFullName": "Volo.CmsKit.MediaDescriptors.MediaDescriptor", "contentType": "databaseCollection", - "name": "CmsEntityTags", + "name": "MediaDescriptors", "summary": null }, { - "entityFullName": "Volo.CmsKit.MediaDescriptors.MediaDescriptor", + "entityFullName": "Volo.CmsKit.Menus.MenuItem", "contentType": "databaseCollection", - "name": "CmsMediaDescriptors", + "name": "MenuItems", "summary": null }, { "entityFullName": "Volo.CmsKit.GlobalResources.GlobalResource", "contentType": "databaseCollection", - "name": "CmsGlobalResources", + "name": "GlobalResources", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.MarkedItems.UserMarkedItem", + "contentType": "databaseCollection", + "name": "UserMarkedItems", "summary": null } ], diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json index 1dc00dc661..68bc9f6b6d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Public.Application.Contracts", - "hash": "399ba7790fef13507bce65ed77967e4b", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Public", @@ -63,6 +63,20 @@ "contentType": "abpModule", "name": "CmsKitPublicApplicationContractsModule", "summary": null + }, + { + "displayName": "Comment management", + "isEnabled": true, + "contentType": "permission", + "name": "CmsKitPublic.Comments", + "summary": null + }, + { + "displayName": "Delete all", + "isEnabled": true, + "contentType": "permission", + "name": "CmsKitPublic.Comments.DeleteAll", + "summary": null } ] } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json index 5aa9406110..599b6913f4 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Public.Application", - "hash": "b56557870806fcc0a1b72ff08f55da55", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Public", @@ -136,6 +136,7 @@ "methods": [ { "returnType": "ListResultDto", + "namespace": "Volo.CmsKit.Public.Reactions", "name": "GetForSelectionAsync", "summary": null, "isAsync": true, @@ -157,6 +158,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Public.Reactions", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -183,6 +185,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Public.Reactions", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -279,6 +282,7 @@ "methods": [ { "returnType": "RatingDto", + "namespace": "Volo.CmsKit.Public.Ratings", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -305,6 +309,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Public.Ratings", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -326,6 +331,7 @@ }, { "returnType": "List", + "namespace": "Volo.CmsKit.Public.Ratings", "name": "GetGroupedStarCountsAsync", "summary": null, "isAsync": true, @@ -417,6 +423,7 @@ "methods": [ { "returnType": "PageDto", + "namespace": "Volo.CmsKit.Public.Pages", "name": "FindBySlugAsync", "summary": null, "isAsync": true, @@ -433,6 +440,7 @@ }, { "returnType": "PageDto", + "namespace": "Volo.CmsKit.Public.Pages", "name": "FindDefaultHomePageAsync", "summary": null, "isAsync": true, @@ -440,6 +448,23 @@ "isPrivate": false, "isStatic": false, "parameters": [] + }, + { + "returnType": "Boolean", + "namespace": "Volo.CmsKit.Public.Pages", + "name": "DoesSlugExistAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "slug", + "isOptional": false + } + ] } ], "contentType": "applicationService", @@ -513,6 +538,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.CmsKit.Public.Menus", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -526,6 +552,120 @@ "name": "MenuItemPublicAppService", "summary": null }, + { + "namespace": "Volo.CmsKit.Public.MarkedItems", + "baseClass": { + "name": "CmsKitPublicAppServiceBase", + "namespace": "Volo.CmsKit.Public", + "declaringAssemblyName": "Volo.CmsKit.Public.Application", + "fullName": "Volo.CmsKit.Public.CmsKitPublicAppServiceBase" + }, + "implementingInterfaces": [ + { + "name": "IApplicationService", + "namespace": "Volo.Abp.Application.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" + }, + { + "name": "IRemoteService", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" + }, + { + "name": "IAvoidDuplicateCrossCuttingConcerns", + "namespace": "Volo.Abp.Aspects", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" + }, + { + "name": "IValidationEnabled", + "namespace": "Volo.Abp.Validation", + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" + }, + { + "name": "IUnitOfWorkEnabled", + "namespace": "Volo.Abp.Uow", + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" + }, + { + "name": "IAuditingEnabled", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" + }, + { + "name": "IGlobalFeatureCheckingEnabled", + "namespace": "Volo.Abp.GlobalFeatures", + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IMarkedItemPublicAppService", + "namespace": "Volo.CmsKit.Public.MarkedItems", + "declaringAssemblyName": "Volo.CmsKit.Public.Application.Contracts", + "fullName": "Volo.CmsKit.Public.MarkedItems.IMarkedItemPublicAppService" + } + ], + "methods": [ + { + "returnType": "MarkedItemWithToggleDto", + "namespace": "Volo.CmsKit.Public.MarkedItems", + "name": "GetForUserAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + } + ] + }, + { + "returnType": "Boolean", + "namespace": "Volo.CmsKit.Public.MarkedItems", + "name": "ToggleAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "entityType", + "isOptional": false + }, + { + "type": "String", + "name": "entityId", + "isOptional": false + } + ] + } + ], + "contentType": "applicationService", + "name": "MarkedItemPublicAppService", + "summary": null + }, { "namespace": "Volo.CmsKit.Public.GlobalResources", "baseClass": { @@ -593,6 +733,7 @@ "methods": [ { "returnType": "GlobalResourceDto", + "namespace": "Volo.CmsKit.Public.GlobalResources", "name": "GetGlobalScriptAsync", "summary": null, "isAsync": true, @@ -603,6 +744,7 @@ }, { "returnType": "GlobalResourceDto", + "namespace": "Volo.CmsKit.Public.GlobalResources", "name": "GetGlobalStyleAsync", "summary": null, "isAsync": true, @@ -683,6 +825,7 @@ "methods": [ { "returnType": "ListResultDto", + "namespace": "Volo.CmsKit.Public.Comments", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -704,6 +847,7 @@ }, { "returnType": "CommentDto", + "namespace": "Volo.CmsKit.Public.Comments", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -730,6 +874,7 @@ }, { "returnType": "CommentDto", + "namespace": "Volo.CmsKit.Public.Comments", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -751,6 +896,7 @@ }, { "returnType": "Void", + "namespace": "Volo.CmsKit.Public.Comments", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -837,6 +983,7 @@ "methods": [ { "returnType": "BlogPostCommonDto", + "namespace": "Volo.CmsKit.Public.Blogs", "name": "GetAsync", "summary": null, "isAsync": true, @@ -858,6 +1005,7 @@ }, { "returnType": "PagedResultDto", + "namespace": "Volo.CmsKit.Public.Blogs", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -879,6 +1027,7 @@ }, { "returnType": "PagedResultDto", + "namespace": "Volo.CmsKit.Public.Blogs", "name": "GetAuthorsHasBlogPostsAsync", "summary": null, "isAsync": true, @@ -895,6 +1044,7 @@ }, { "returnType": "CmsUserDto", + "namespace": "Volo.CmsKit.Public.Blogs", "name": "GetAuthorHasBlogPostAsync", "summary": null, "isAsync": true, @@ -908,6 +1058,40 @@ "isOptional": false } ] + }, + { + "returnType": "Void", + "namespace": "Volo.CmsKit.Public.Blogs", + "name": "DeleteAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + } + ] + }, + { + "returnType": "String", + "namespace": "Volo.CmsKit.Public.Blogs", + "name": "GetTagNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "tagId", + "isOptional": false + } + ] } ], "contentType": "applicationService", diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.analyze.json index 80205a3959..62a47341e8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Public.HttpApi.Client", - "hash": "54e4cc77905039df9b16fde35a23e6fa", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Public", diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.analyze.json index a99c733cc3..ff3f4e1b8e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Public.HttpApi", - "hash": "e0f90c7c40bbd72d50bcd41f413fbf6a", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Public", diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json index baff1e5a88..86f1cb14bf 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Public.Web", - "hash": "a7ba6e8a7c5cd8f816a4fe9e11d41a02", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Public.Web", @@ -63,6 +63,30 @@ "contentType": "abpModule", "name": "CmsKitPublicWebModule", "summary": null + }, + { + "namespace": "Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Pages", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Blogs", + "contentType": "webPage", + "name": "BlogPostModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Blogs", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Modals.Login", + "contentType": "webPage", + "name": "LoginModalModel", + "summary": null } ] } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json index 39cd4fabeb..1c49452d8b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Web", - "hash": "5baa473fb5239f09781f6d7baf769b0c", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit.Web", diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json index db21a0a643..ed67f9c244 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "VoloDocs.EntityFrameworkCore", - "hash": "16b4276f8bb7836474b6a2da1a71df37", + "hash": "", "contents": [ { "namespace": "VoloDocs.EntityFrameworkCore", @@ -84,6 +84,7 @@ "connectionStringName": null, "databaseTables": [], "replacedDbContexts": [], + "modelBuilderExtensionMethods": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -139,6 +140,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index 07facf46ff..0eabf0859a 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/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.2", - "@abp/docs": "~8.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", + "@abp/docs": "~8.3.0" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index d019096650..027f4c5064 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,238 +2,238 @@ # yarn lockfile v1 -"@abp/anchor-js@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.3.0-rc.2.tgz#8a46022b38e9a474b5e0f9d4440a0e63f19ab9de" - integrity sha512-x7MdN/aaT4Tj22OXTlf8uaDKGtYLOQNd2V2/kG7wHAPJVHaAuoJngjcxMLkjLaqy7rIQZ29Gkcm+XcyTnypRGw== +"@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.2" + "@abp/core" "~8.3.0" anchor-js "^5.0.0" -"@abp/aspnetcore.mvc.ui.theme.basic@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.2.tgz#8699581833e045c1a0e0d402c793c6fe47c8c4aa" - integrity sha512-DLVzeMAaa/1Q6ej4hOjRGYBBkuNMqmIu0ko6g8kYHutqveffUL7wyf+Dc1BJHyHlUSiL/LE0zbeaGjmG1TOVwQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.2.tgz#eacc811b84cec3be59723c629f8dc7116547b9b2" - integrity sha512-1MT2cBQyrp8/pzdvpQgn7n4JafyKoclZlSaYebGt5JmKa1rDp66pAw0zrIrRVdwfojhYbZxsZ3uvsfmbpiRo9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0-rc.2" - "@abp/bootstrap" "~8.3.0-rc.2" - "@abp/bootstrap-datepicker" "~8.3.0-rc.2" - "@abp/bootstrap-daterangepicker" "~8.3.0-rc.2" - "@abp/datatables.net-bs5" "~8.3.0-rc.2" - "@abp/font-awesome" "~8.3.0-rc.2" - "@abp/jquery-form" "~8.3.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~8.3.0-rc.2" - "@abp/lodash" "~8.3.0-rc.2" - "@abp/luxon" "~8.3.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.2" - "@abp/moment" "~8.3.0-rc.2" - "@abp/select2" "~8.3.0-rc.2" - "@abp/sweetalert2" "~8.3.0-rc.2" - "@abp/timeago" "~8.3.0-rc.2" - "@abp/toastr" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.2.tgz#58372b05fd1765a384e57ee53088b3ace4873e53" - integrity sha512-jswnQx7JoOGmfrqGnS8U+dP7trdxHtM4ZJUvlz/SLQb8OeRxoQyLr4YQhpNa4cnKzN4hrXDlITp22Z3Pn3kQ9g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.2.tgz#22d4944c20b85502e3b40a20e4f3a7085ca43c20" - integrity sha512-PO6xa7ss5YyZN9ofWlMkLr8f5hto/hHNz3x8yJma2he8zaoqMz85DByYPaH1yM5CiVN+RtEUCD9MLHmDwvaLZA== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.2.tgz#fc5d920b16a126b5d4c492f2aa807d3bb5b74cec" - integrity sha512-WrB8XeiYrFyiCWpWlWW2OUEu2MP8ZGPVRnHrTcNLe6rcp8Kj7dlzOrp6MpyJH7/lhgCTVqujoBCvphD9OOS33g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.2.tgz#07feafd950bb88971a8d3d5c1fdfc170d84fe13a" - integrity sha512-1v/nIxwb//tuI1ieGixxvfkcFvVvy1pXIOtL74d99iY7jU4gdNZcIO22qtmS9kTd55dI0FbOS7bERo4pozR+3g== +"@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.2" + "@abp/core" "~8.3.0" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.2.tgz#ed6955b215c1591aa226373b06e329d64b45bc0c" - integrity sha512-swA/ipl31FhEvQspgkZO+FYVfeFXsbhnVQ0aO9S7r0bsWDUA+3rbcpC2oOjRwzzE+qF2vr97f2WO/iR/o6SqpA== +"@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.2" + "@abp/core" "~8.3.0" clipboard "^2.0.11" -"@abp/core@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.2.tgz#63455a6bff294ee93fd8cbec5f0f9a994cf35322" - integrity sha512-RoYUz1y2ZMdAzO6nSZirtYSsEqeW5uBJxnzREkT0DFj1LrB6ywnzdV05GCKbhBcNhp2gDKEGHqCPS4HOMb2uWg== +"@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.2" + "@abp/utils" "~8.3.0" -"@abp/datatables.net-bs5@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.2.tgz#eb75b855595e264510b29adc4e2d01820752d4a3" - integrity sha512-/OTF0rsGqGXCSL+Nec07IP4O0oqdMgAXxgu6gxsjCnjGodhDtQioUbFC8SI8H8aOYBerVHWfMSMLgpJbGbS8eA== +"@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.2" + "@abp/datatables.net" "~8.3.0" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.2.tgz#38f510bb294650881b494798fe33ce9b0c0376ef" - integrity sha512-GFV343oOGwIC3giAuTuKWzuDmIDyQkn+Sr+wLCCExn3gq9OIJI5COCCD1RIp7L9SU4t3CnzJGjvi5Qzq8iLbtQ== +"@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.2" + "@abp/jquery" "~8.3.0" datatables.net "^2.0.8" -"@abp/docs@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.3.0-rc.2.tgz#ff3fe66476f61d8c8572a8224fec17443419304a" - integrity sha512-4bST8sm8NKIYn3n3Aa6WlY2jE+KtICb1y/exhj4GL5AqhyqckG3np1Vh4oOlMmKHcS8xkCsPlViCMbUezHeAIg== +"@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.2" - "@abp/clipboard" "~8.3.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.2" - "@abp/popper.js" "~8.3.0-rc.2" - "@abp/prismjs" "~8.3.0-rc.2" + "@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.2.tgz#c97d656e1a1df8081180d9644d4734da36787c15" - integrity sha512-dUQXDxvAolfksLOIj71gSi+L8L4gvri6Wi8F3CDTgRKDEPRQ9RN0T4bqkMfeTioTeXCHpeqR4YftmmxylOWQhQ== +"@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.2" + "@abp/core" "~8.3.0" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.2.tgz#eecc01b21cb2b8ad0f889662175ca66c6d8f2fe4" - integrity sha512-ng5QHRxGE/aYzSjSXTI84L80xn/fyXSXF1hLgVT2teOR/6XWe7FmDv/SSrYi0oRopeY5dgDrzVpKp2j7+qx/yg== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.2.tgz#6606b71c0043e0a2e382ee07ee2de840ac12b545" - integrity sha512-oS2t9M6j4YI6QSETDZw67fqhpyvpWSpvC/RiuWvMhBKZOWyNPMT3b/42Fz2LI22xSODwNM7jaESEUbdo11PI3Q== +"@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.2" + "@abp/jquery-validation" "~8.3.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.2.tgz#028d9e6c1e94b1c1f9c64607f35d992857fe3121" - integrity sha512-8QmoVDQpbjl/ggfbsXPh1kf3XxFCtuyykeLdhCqYurLSw9UHejDtc/7lJA85L6eiFAjJs6VzbdP9ORnlWyOYgQ== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.2.tgz#4b40ace6d7e7331b1ff5fa41d9a7ce724def7808" - integrity sha512-HDUXVXrHa/HHbkhfLDwxIr6NNQLz+R9M/Gf8+UsxDnzevWZw9hzkwQnO3RWcK99hyaeURA2DEKLGSGa7ip3qfg== +"@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.2" + "@abp/core" "~8.3.0" jquery "~3.7.1" -"@abp/lodash@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.2.tgz#3d714095ac1985bb9688a4a2f7d2b6e439fbab50" - integrity sha512-fhjtXi7pWlNlCbayU2BqeLAbYyds5HlHF0jrqitXS6r07l6VIru5f5f1h1yd3T5RIwoA0ZT9ZrICqvxH9iQA/w== +"@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.2" + "@abp/core" "~8.3.0" lodash "^4.17.21" -"@abp/luxon@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.2.tgz#67e64aed26d7f521b76271656bed8ae19b3da00f" - integrity sha512-uajtkxqRlWK1jACB53lOhF7g8Rj+S9CCHSm2uNuAGcAK30kEZQfLEZTLzzOJ/evqDTiBay1hNYAPHnzY7Uigzw== +"@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.2" + "@abp/core" "~8.3.0" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.2.tgz#e3170cf9ed7a333040151bc1c70405d7e9269e80" - integrity sha512-GLPLnh89ebM6i3EyMjzSYtukT1lU5MSEJ/A18zIzDYgH9SUMFMe4yFJtGDngUtyzQA23hyuHcj3u1CIgPtKuGQ== +"@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.2" + "@abp/core" "~8.3.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.2.tgz#cfa76dba9731e03f24acabe8d254c077b683b99a" - integrity sha512-2JglkMbePjxoHRBjd52MGFMqWwzDdmer1hpPJ7BvznL4tklXtSg+Q7D2z7VB1bv+ZAe31cqI8IxwdxWf2eyOmw== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.3.0-rc.2.tgz#c12f71db1a398e0c644430b4ba8de8024e98daf7" - integrity sha512-Z9mmuKqpypw20g/ysYMBcxTN+D8qVnjm7GVRwxOE40y7NnUFLc6jjSKQFkrKWWbFHPrndUv5HlmDSUQq/199OQ== +"@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.2" + "@abp/core" "~8.3.0" "@popperjs/core" "^2.11.8" -"@abp/prismjs@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.2.tgz#bfdc7f12e8b51e321267bcb82500ffa9cb96f69c" - integrity sha512-LYYN6bqjVR/hsA2NJ5LQuPxgDsE/FTHxUVGIMk2TmFKnk8KUjQ7hDE/rllIwGWwxPtS96M6NPnzmrR8NDwI3cA== +"@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.2" - "@abp/core" "~8.3.0-rc.2" + "@abp/clipboard" "~8.3.0" + "@abp/core" "~8.3.0" prismjs "^1.29.0" -"@abp/select2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.2.tgz#ccf997047e75bfdf30b263201cbce6d2257c7348" - integrity sha512-ERQ/Zb8xzL704a2DLoM6ZD3IhH07MeIGn4UBhD/A3n14Yxu82Vi8qOdl+R6f0JhsDGmif/nuovxbUizFeSKmYg== +"@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.2" + "@abp/core" "~8.3.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.2.tgz#27afcabd6c3a10e76979102f5d143b404f38213c" - integrity sha512-ZloFEPOPWXiyKGdxtxyMGglamf8shTZAzhcUlxeqwRRsTlo342LI0iopOHDQ2Kfqmeua9xgj+nhX7zc6Kh0A0w== +"@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.2" + "@abp/core" "~8.3.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.2.tgz#1194a6f049b452141bd5714faff1e1fd8da20800" - integrity sha512-8Z82DPOZYEzfYevVELC1W5L4OdMHDGVZ00QAQqFv/XGTGjMVZeTvfpXKqpEcUYPMUVHcNWU3yLkIUZXGj1qXOw== +"@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.2" + "@abp/jquery" "~8.3.0" timeago "^1.6.7" -"@abp/toastr@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.2.tgz#ef5f08f894510516d055aa4ee2abf8f311a73879" - integrity sha512-syQJ87TVjkDegJBdsP+YfEK8I9zq3mDmLOQrEKRU2z3yX0qdc6zIRSCPTAkyBxf4C4gvdr4dNJJN/uKToaAo2Q== +"@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.2" + "@abp/jquery" "~8.3.0" toastr "^2.1.4" -"@abp/utils@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.2.tgz#9acb10e775c734dac2d4c48ade47c365448bbacc" - integrity sha512-jbXbkOWseh7tqqfX7jSsERFDr/Q89FUKz81rRx5jii2RuXnc9wG9E7BSG0wCQ6+o39dgpsSjKbQgwjnjBJrpJQ== +"@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" diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json index 15df3ae702..e46f6f929a 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Admin.Application.Contracts", - "hash": "100fbf697289f27c22d70a1f4eb45b5a", + "hash": "", "contents": [ { "namespace": "Volo.Docs.Admin", diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json index 2ceac5605f..777b36a3d0 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Admin.Application", - "hash": "9f9f4df9fb9f426b7c115abc968b99d1", + "hash": "", "contents": [ { "namespace": "Volo.Docs.Admin", @@ -146,6 +146,7 @@ "methods": [ { "returnType": "PagedResultDto", + "namespace": "Volo.Docs.Admin.Projects", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -162,6 +163,7 @@ }, { "returnType": "ProjectDto", + "namespace": "Volo.Docs.Admin.Projects", "name": "GetAsync", "summary": null, "isAsync": true, @@ -178,6 +180,7 @@ }, { "returnType": "ProjectDto", + "namespace": "Volo.Docs.Admin.Projects", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -194,6 +197,7 @@ }, { "returnType": "ProjectDto", + "namespace": "Volo.Docs.Admin.Projects", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -215,6 +219,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Admin.Projects", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -231,6 +236,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Admin.Projects", "name": "ReindexAsync", "summary": null, "isAsync": true, @@ -247,6 +253,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Admin.Projects", "name": "ReindexAllAsync", "summary": null, "isAsync": true, @@ -257,6 +264,7 @@ }, { "returnType": "List", + "namespace": "Volo.Docs.Admin.Projects", "name": "GetListWithoutDetailsAsync", "summary": null, "isAsync": true, @@ -337,6 +345,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Docs.Admin.Documents", "name": "ClearCacheAsync", "summary": null, "isAsync": true, @@ -353,6 +362,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Admin.Documents", "name": "PullAllAsync", "summary": null, "isAsync": true, @@ -369,6 +379,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Admin.Documents", "name": "PullAsync", "summary": null, "isAsync": true, @@ -385,6 +396,7 @@ }, { "returnType": "PagedResultDto", + "namespace": "Volo.Docs.Admin.Documents", "name": "GetAllAsync", "summary": null, "isAsync": true, @@ -401,6 +413,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Admin.Documents", "name": "RemoveFromCacheAsync", "summary": null, "isAsync": true, @@ -417,6 +430,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Admin.Documents", "name": "ReindexAsync", "summary": null, "isAsync": true, @@ -433,6 +447,7 @@ }, { "returnType": "List", + "namespace": "Volo.Docs.Admin.Documents", "name": "GetFilterItemsAsync", "summary": null, "isAsync": true, diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json index a516cd090d..0a847b9638 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Admin.HttpApi.Client", - "hash": "76183fefaf0abfaa267c1d6e05a08b82", + "hash": "", "contents": [ { "namespace": "Volo.Docs.Admin", diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json index a8db7612a7..0123d894fc 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Admin.HttpApi", - "hash": "6661b70996cefd1caa9f3072d98aeab3", + "hash": "", "contents": [ { "namespace": "Volo.Docs.Admin", @@ -63,6 +63,269 @@ "contentType": "abpModule", "name": "DocsAdminHttpApiModule", "summary": null + }, + { + "apis": [ + { + "path": "api/docs/admin/documents/ClearCache", + "method": "POST", + "groupName": "DocumentsAdmin", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "ClearCacheInput" + } + ] + }, + { + "path": "api/docs/admin/documents/PullAll", + "method": "POST", + "groupName": "DocumentsAdmin", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "PullAllDocumentInput" + } + ] + }, + { + "path": "api/docs/admin/documents/Pull", + "method": "POST", + "groupName": "DocumentsAdmin", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "PullDocumentInput" + } + ] + }, + { + "path": "api/docs/admin/documents/GetAll", + "method": "GET", + "groupName": "DocumentsAdmin", + "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Docs.Admin.Documents.DocumentDto]", + "responseTypeAsJson": "{\r\n \"totalCount\": 0,\r\n \"items\": [\r\n {\r\n \"projectId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"projectName\": \"string\",\r\n \"name\": \"string\",\r\n \"version\": \"string\",\r\n \"languageCode\": \"string\",\r\n \"fileName\": \"string\",\r\n \"format\": \"string\",\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"lastUpdatedTime\": \"0001-01-01T00:00:00\",\r\n \"lastSignificantUpdateTime\": null,\r\n \"lastCachedTime\": \"0001-01-01T00:00:00\",\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}", + "parameterDescriptions": [ + { + "name": "ProjectId", + "type": "Nullable" + }, + { + "name": "Name", + "type": "String" + }, + { + "name": "Version", + "type": "String" + }, + { + "name": "LanguageCode", + "type": "String" + }, + { + "name": "FileName", + "type": "String" + }, + { + "name": "Format", + "type": "String" + }, + { + "name": "CreationTimeMin", + "type": "Nullable" + }, + { + "name": "CreationTimeMax", + "type": "Nullable" + }, + { + "name": "LastUpdatedTimeMin", + "type": "Nullable" + }, + { + "name": "LastUpdatedTimeMax", + "type": "Nullable" + }, + { + "name": "LastSignificantUpdateTimeMin", + "type": "Nullable" + }, + { + "name": "LastSignificantUpdateTimeMax", + "type": "Nullable" + }, + { + "name": "LastCachedTimeMin", + "type": "Nullable" + }, + { + "name": "LastCachedTimeMax", + "type": "Nullable" + }, + { + "name": "Sorting", + "type": "String" + }, + { + "name": "SkipCount", + "type": "Int32" + }, + { + "name": "MaxResultCount", + "type": "Int32" + } + ] + }, + { + "path": "api/docs/admin/documents/RemoveDocumentFromCache", + "method": "PUT", + "groupName": "DocumentsAdmin", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "documentId", + "type": "Guid" + } + ] + }, + { + "path": "api/docs/admin/documents/ReindexDocument", + "method": "PUT", + "groupName": "DocumentsAdmin", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "documentId", + "type": "Guid" + } + ] + }, + { + "path": "api/docs/admin/documents/GetFilterItems", + "method": "GET", + "groupName": "DocumentsAdmin", + "responseType": "System.Collections.Generic.List`1[Volo.Docs.Admin.Documents.DocumentInfoDto]", + "responseTypeAsJson": "[\r\n {\r\n \"version\": \"string\",\r\n \"format\": \"string\",\r\n \"languageCode\": \"string\",\r\n \"projectId\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]", + "parameterDescriptions": [] + }, + { + "path": "api/docs/admin/projects", + "method": "GET", + "groupName": "ProjectsAdmin", + "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Docs.Admin.Projects.ProjectDto]", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "Sorting", + "type": "String" + }, + { + "name": "SkipCount", + "type": "Int32" + }, + { + "name": "MaxResultCount", + "type": "Int32" + } + ] + }, + { + "path": "api/docs/admin/projects/{id}", + "method": "GET", + "groupName": "ProjectsAdmin", + "responseType": "Volo.Docs.Admin.Projects.ProjectDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/docs/admin/projects", + "method": "POST", + "groupName": "ProjectsAdmin", + "responseType": "Volo.Docs.Admin.Projects.ProjectDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "CreateProjectDto" + } + ] + }, + { + "path": "api/docs/admin/projects/{id}", + "method": "PUT", + "groupName": "ProjectsAdmin", + "responseType": "Volo.Docs.Admin.Projects.ProjectDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + }, + { + "name": "input", + "type": "UpdateProjectDto" + } + ] + }, + { + "path": "api/docs/admin/projects", + "method": "DELETE", + "groupName": "ProjectsAdmin", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/docs/admin/projects/ReindexAll", + "method": "POST", + "groupName": "ProjectsAdmin", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [] + }, + { + "path": "api/docs/admin/projects/GetListProjectWithoutDetailsAsync", + "method": "GET", + "groupName": "ProjectsAdmin", + "responseType": "System.Collections.Generic.List`1[Volo.Docs.Admin.Projects.ProjectWithoutDetailsDto]", + "responseTypeAsJson": "[\r\n {\r\n \"id\": \"00000000-0000-0000-0000-000000000000\",\r\n \"name\": \"string\"\r\n }\r\n]", + "parameterDescriptions": [] + }, + { + "path": "api/docs/admin/projects/Reindex", + "method": "POST", + "groupName": "ProjectsAdmin", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "ReindexInput" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null } ] } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json index 0cd4f5a31e..d186a8cb22 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Admin.Web", - "hash": "46beda5e0ea0eec3abd53bd83b1ab711", + "hash": "", "contents": [ { "namespace": "Volo.Docs.Admin", @@ -63,6 +63,36 @@ "contentType": "abpModule", "name": "DocsAdminWebModule", "summary": null + }, + { + "namespace": "Volo.Docs.Admin.Pages.Docs.Admin.Projects", + "contentType": "webPage", + "name": "CreateModel", + "summary": null + }, + { + "namespace": "Volo.Docs.Admin.Pages.Docs.Admin.Projects", + "contentType": "webPage", + "name": "EditModel", + "summary": null + }, + { + "namespace": "Volo.Docs.Admin.Pages.Docs.Admin.Projects", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.Docs.Admin.Pages.Docs.Admin.Projects", + "contentType": "webPage", + "name": "PullModel", + "summary": null + }, + { + "namespace": "Volo.Docs.Admin.Pages.Docs.Admin.Documents", + "contentType": "webPage", + "name": "IndexModel", + "summary": null } ] } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json index 913486993a..72118d01a8 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Application.Contracts", - "hash": "77681b4bcac4f8661cfb9320e5a88586", + "hash": "", "contents": [ { "namespace": "Volo.Docs", diff --git a/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json index 62d9f908e0..86f06c124b 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Application", - "hash": "3ceeb88026645c5e1f479c66635735e1", + "hash": "", "contents": [ { "namespace": "Volo.Docs", @@ -146,6 +146,7 @@ "methods": [ { "returnType": "ListResultDto", + "namespace": "Volo.Docs.Projects", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -156,6 +157,7 @@ }, { "returnType": "ProjectDto", + "namespace": "Volo.Docs.Projects", "name": "GetAsync", "summary": null, "isAsync": true, @@ -172,6 +174,7 @@ }, { "returnType": "ListResultDto", + "namespace": "Volo.Docs.Projects", "name": "GetVersionsAsync", "summary": null, "isAsync": true, @@ -188,6 +191,7 @@ }, { "returnType": "LanguageConfig", + "namespace": "Volo.Docs.Projects", "name": "GetLanguageListAsync", "summary": null, "isAsync": true, @@ -209,6 +213,7 @@ }, { "returnType": "String", + "namespace": "Volo.Docs.Projects", "name": "GetDefaultLanguageCodeAsync", "summary": null, "isAsync": true, @@ -300,6 +305,7 @@ "methods": [ { "returnType": "DocumentWithDetailsDto", + "namespace": "Volo.Docs.Documents", "name": "GetAsync", "summary": null, "isAsync": true, @@ -316,6 +322,7 @@ }, { "returnType": "DocumentWithDetailsDto", + "namespace": "Volo.Docs.Documents", "name": "GetDefaultAsync", "summary": null, "isAsync": true, @@ -332,6 +339,7 @@ }, { "returnType": "NavigationNode", + "namespace": "Volo.Docs.Documents", "name": "GetNavigationAsync", "summary": null, "isAsync": true, @@ -348,6 +356,7 @@ }, { "returnType": "DocumentResourceDto", + "namespace": "Volo.Docs.Documents", "name": "GetResourceAsync", "summary": null, "isAsync": true, @@ -363,7 +372,8 @@ ] }, { - "returnType": "List", + "returnType": "PagedResultDto", + "namespace": "Volo.Docs.Documents", "name": "SearchAsync", "summary": null, "isAsync": true, @@ -380,6 +390,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Docs.Documents", "name": "FullSearchEnabledAsync", "summary": null, "isAsync": true, @@ -390,6 +401,7 @@ }, { "returnType": "List", + "namespace": "Volo.Docs.Documents", "name": "GetUrlsAsync", "summary": null, "isAsync": true, @@ -406,6 +418,7 @@ }, { "returnType": "DocumentParametersDto", + "namespace": "Volo.Docs.Documents", "name": "GetParametersAsync", "summary": null, "isAsync": true, diff --git a/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json index 99859ba391..f25d8b5f85 100644 --- a/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Domain.Shared", - "hash": "cde21886d0014f55d0917549fc979627", + "hash": "", "contents": [ { "namespace": "Volo.Docs", diff --git a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json index 27b92c495b..3e6a93851c 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Domain", - "hash": "5b3b84e3cbb3954883258e6ceb4c6f98", + "hash": "", "contents": [ { "namespace": "Volo.Docs", @@ -157,6 +157,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Docs.Projects", "name": "SetName", "summary": null, "isAsync": false, @@ -173,6 +174,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Projects", "name": "SetFormat", "summary": null, "isAsync": false, @@ -189,6 +191,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Projects", "name": "SetNavigationDocumentName", "summary": null, "isAsync": false, @@ -205,6 +208,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Projects", "name": "SetParametersDocumentName", "summary": null, "isAsync": false, @@ -221,6 +225,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Projects", "name": "SetDefaultDocumentName", "summary": null, "isAsync": false, @@ -350,6 +355,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Docs.Documents", "name": "AddContributor", "summary": null, "isAsync": false, @@ -381,6 +387,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Documents", "name": "RemoveAllContributors", "summary": null, "isAsync": false, @@ -391,6 +398,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Documents", "name": "RemoveContributor", "summary": null, "isAsync": false, @@ -417,6 +425,7 @@ }, { "returnType": "DocumentContributor", + "namespace": "Volo.Docs.Documents", "name": "FindContributor", "summary": null, "isAsync": false, @@ -550,6 +559,7 @@ "methods": [ { "returnType": "Document", + "namespace": "Volo.Docs.GitHub.Documents", "name": "GetDocumentAsync", "summary": null, "isAsync": true, @@ -586,6 +596,7 @@ }, { "returnType": "List", + "namespace": "Volo.Docs.GitHub.Documents", "name": "GetVersionsAsync", "summary": null, "isAsync": true, @@ -602,6 +613,7 @@ }, { "returnType": "DocumentResource", + "namespace": "Volo.Docs.GitHub.Documents", "name": "GetResource", "summary": null, "isAsync": true, @@ -633,6 +645,7 @@ }, { "returnType": "LanguageConfig", + "namespace": "Volo.Docs.GitHub.Documents", "name": "GetLanguageListAsync", "summary": null, "isAsync": true, @@ -688,6 +701,7 @@ "methods": [ { "returnType": "Boolean", + "namespace": "Volo.Docs.GitHub.Documents", "name": "HasPatchSignificantChanges", "summary": null, "isAsync": false, @@ -738,6 +752,7 @@ "methods": [ { "returnType": "Document", + "namespace": "Volo.Docs.FileSystem.Documents", "name": "GetDocumentAsync", "summary": null, "isAsync": true, @@ -774,6 +789,7 @@ }, { "returnType": "List", + "namespace": "Volo.Docs.FileSystem.Documents", "name": "GetVersionsAsync", "summary": null, "isAsync": true, @@ -790,6 +806,7 @@ }, { "returnType": "LanguageConfig", + "namespace": "Volo.Docs.FileSystem.Documents", "name": "GetLanguageListAsync", "summary": null, "isAsync": true, @@ -811,6 +828,7 @@ }, { "returnType": "DocumentResource", + "namespace": "Volo.Docs.FileSystem.Documents", "name": "GetResource", "summary": null, "isAsync": true, @@ -876,6 +894,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Docs.Documents.FullSearch.Elastic", "name": "CreateIndexIfNeededAsync", "summary": null, "isAsync": true, @@ -892,6 +911,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Documents.FullSearch.Elastic", "name": "AddOrUpdateAsync", "summary": null, "isAsync": true, @@ -913,6 +933,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Documents.FullSearch.Elastic", "name": "AddOrUpdateManyAsync", "summary": null, "isAsync": true, @@ -934,6 +955,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Documents.FullSearch.Elastic", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -955,6 +977,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Documents.FullSearch.Elastic", "name": "DeleteAllAsync", "summary": null, "isAsync": true, @@ -971,6 +994,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Documents.FullSearch.Elastic", "name": "DeleteAllByProjectIdAsync", "summary": null, "isAsync": true, @@ -991,7 +1015,8 @@ ] }, { - "returnType": "List", + "returnType": "EsDocumentResult", + "namespace": "Volo.Docs.Documents.FullSearch.Elastic", "name": "SearchAsync", "summary": null, "isAsync": true, @@ -1038,6 +1063,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Docs.Documents.FullSearch.Elastic", "name": "ValidateElasticSearchEnabled", "summary": null, "isAsync": false, @@ -1116,6 +1142,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Docs.Projects", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -1147,6 +1174,7 @@ }, { "returnType": "List", + "namespace": "Volo.Docs.Projects", "name": "GetListWithoutDetailsAsync", "summary": null, "isAsync": true, @@ -1163,6 +1191,7 @@ }, { "returnType": "Project", + "namespace": "Volo.Docs.Projects", "name": "GetByShortNameAsync", "summary": null, "isAsync": true, @@ -1184,6 +1213,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Docs.Projects", "name": "ShortNameExistsAsync", "summary": null, "isAsync": true, @@ -1241,6 +1271,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Docs.Documents", "name": "GetListWithoutDetailsByProjectId", "summary": null, "isAsync": true, @@ -1262,6 +1293,7 @@ }, { "returnType": "List", + "namespace": "Volo.Docs.Documents", "name": "GetUniqueListDocumentInfoAsync", "summary": null, "isAsync": true, @@ -1278,6 +1310,7 @@ }, { "returnType": "List", + "namespace": "Volo.Docs.Documents", "name": "GetListByProjectId", "summary": null, "isAsync": true, @@ -1297,8 +1330,90 @@ } ] }, + { + "returnType": "List", + "namespace": "Volo.Docs.Documents", + "name": "GetUniqueDocumentsByProjectIdPagedAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "projectId", + "isOptional": false + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": false + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "namespace": "Volo.Docs.Documents", + "name": "GetUniqueDocumentCountByProjectIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "projectId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.Docs.Documents", + "name": "UpdateProjectLastCachedTimeAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "projectId", + "isOptional": false + }, + { + "type": "DateTime", + "name": "cachedTime", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, { "returnType": "Document", + "namespace": "Volo.Docs.Documents", "name": "FindAsync", "summary": null, "isAsync": true, @@ -1338,8 +1453,51 @@ } ] }, + { + "returnType": "Document", + "namespace": "Volo.Docs.Documents", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "projectId", + "isOptional": false + }, + { + "type": "List", + "name": "possibleNames", + "isOptional": false + }, + { + "type": "String", + "name": "languageCode", + "isOptional": false + }, + { + "type": "String", + "name": "version", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, { "returnType": "Void", + "namespace": "Volo.Docs.Documents", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -1381,6 +1539,7 @@ }, { "returnType": "List", + "namespace": "Volo.Docs.Documents", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -1412,6 +1571,7 @@ }, { "returnType": "List", + "namespace": "Volo.Docs.Documents", "name": "GetAllAsync", "summary": null, "isAsync": true, @@ -1513,6 +1673,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Docs.Documents", "name": "GetAllCountAsync", "summary": null, "isAsync": true, @@ -1614,6 +1775,7 @@ }, { "returnType": "Document", + "namespace": "Volo.Docs.Documents", "name": "GetAsync", "summary": null, "isAsync": true, diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json index 1ee0fd3a6e..df487b23e9 100644 --- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.EntityFrameworkCore", - "hash": "cda98b30d45c0f9999f98a05e8368841", + "hash": "", "contents": [ { "namespace": "Volo.Docs.EntityFrameworkCore", @@ -67,27 +67,27 @@ { "namespace": "Volo.Docs.EntityFrameworkCore", "connectionStringName": "Docs", - "databaseTables": [ - { - "entityFullName": "Volo.Docs.Documents.Document", - "contentType": "databaseTable", - "name": "DocsDocuments", - "summary": null - }, - { - "entityFullName": "Volo.Docs.Documents.DocumentContributor", - "contentType": "databaseTable", - "name": "DocsDocumentContributors", - "summary": null - }, + "databaseTables": [], + "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ { - "entityFullName": "Volo.Docs.Projects.Project", - "contentType": "databaseTable", - "name": "DocsProjects", - "summary": null + "returnType": "Void", + "namespace": "Volo.Docs.EntityFrameworkCore", + "name": "ConfigureDocs", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] } ], - "replacedDbContexts": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -143,6 +143,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json index 7f356ba232..8f97c28e30 100644 --- a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.HttpApi.Client", - "hash": "551e49e8d7abd9c47376edaae70ab7f8", + "hash": "", "contents": [ { "namespace": "Volo.Docs", diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json index c9a125a359..cc16357478 100644 --- a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.HttpApi", - "hash": "26ffc9a7630f4d5dddf4eea1ac4c51cc", + "hash": "", "contents": [ { "namespace": "Volo.Docs", @@ -63,6 +63,228 @@ "contentType": "abpModule", "name": "DocsHttpApiModule", "summary": null + }, + { + "apis": [ + { + "path": "api/docs/projects", + "method": "GET", + "groupName": "DocsProject", + "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Docs.Projects.ProjectDto]", + "responseTypeAsJson": "", + "parameterDescriptions": [] + }, + { + "path": "api/docs/projects/{shortName}", + "method": "GET", + "groupName": "DocsProject", + "responseType": "Volo.Docs.Projects.ProjectDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "shortName", + "type": "String" + } + ] + }, + { + "path": "api/docs/projects/{shortName}/defaultLanguage", + "method": "GET", + "groupName": "DocsProject", + "responseType": "System.String", + "responseTypeAsJson": "\"string\"", + "parameterDescriptions": [ + { + "name": "shortName", + "type": "String" + }, + { + "name": "version", + "type": "String" + } + ] + }, + { + "path": "api/docs/projects/{shortName}/versions", + "method": "GET", + "groupName": "DocsProject", + "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Docs.Projects.VersionInfoDto]", + "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"displayName\": \"string\",\r\n \"name\": \"string\"\r\n }\r\n ]\r\n}", + "parameterDescriptions": [ + { + "name": "shortName", + "type": "String" + } + ] + }, + { + "path": "api/docs/projects/{shortName}/{version}/languageList", + "method": "GET", + "groupName": "DocsProject", + "responseType": "Volo.Docs.Documents.LanguageConfig", + "responseTypeAsJson": "{\r\n \"languages\": [\r\n {\r\n \"displayName\": \"string\",\r\n \"code\": \"string\",\r\n \"isDefault\": false\r\n }\r\n ]\r\n}", + "parameterDescriptions": [ + { + "name": "shortName", + "type": "String" + }, + { + "name": "version", + "type": "String" + } + ] + }, + { + "path": "api/docs/documents", + "method": "GET", + "groupName": "DocsDocument", + "responseType": "Volo.Docs.Documents.DocumentWithDetailsDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "ProjectId", + "type": "Guid" + }, + { + "name": "Name", + "type": "String" + }, + { + "name": "Version", + "type": "String" + }, + { + "name": "LanguageCode", + "type": "String" + } + ] + }, + { + "path": "api/docs/documents/default", + "method": "GET", + "groupName": "DocsDocument", + "responseType": "Volo.Docs.Documents.DocumentWithDetailsDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "ProjectId", + "type": "Guid" + }, + { + "name": "Version", + "type": "String" + }, + { + "name": "LanguageCode", + "type": "String" + } + ] + }, + { + "path": "api/docs/documents/navigation", + "method": "GET", + "groupName": "DocsDocument", + "responseType": "Volo.Docs.Documents.NavigationNode", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "ProjectId", + "type": "Guid" + }, + { + "name": "Version", + "type": "String" + }, + { + "name": "LanguageCode", + "type": "String" + } + ] + }, + { + "path": "api/docs/documents/resource", + "method": "GET", + "groupName": "DocsDocument", + "responseType": "Volo.Docs.Documents.DocumentResourceDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "ProjectId", + "type": "Guid" + }, + { + "name": "Name", + "type": "String" + }, + { + "name": "Version", + "type": "String" + }, + { + "name": "LanguageCode", + "type": "String" + } + ] + }, + { + "path": "api/docs/documents/search", + "method": "POST", + "groupName": "DocsDocument", + "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Docs.Documents.DocumentSearchOutput]", + "responseTypeAsJson": "{\r\n \"totalCount\": 0,\r\n \"items\": [\r\n {\r\n \"name\": \"string\",\r\n \"fileName\": \"string\",\r\n \"version\": \"string\",\r\n \"languageCode\": \"string\",\r\n \"highlight\": [\r\n \"string\"\r\n ]\r\n }\r\n ]\r\n}", + "parameterDescriptions": [ + { + "name": "input", + "type": "DocumentSearchInput" + } + ] + }, + { + "path": "api/docs/documents/full-search-enabled", + "method": "GET", + "groupName": "DocsDocument", + "responseType": "System.Boolean", + "responseTypeAsJson": "true", + "parameterDescriptions": [] + }, + { + "path": "api/docs/documents/links", + "method": "GET", + "groupName": "DocsDocument", + "responseType": "System.Collections.Generic.List`1[System.String]", + "responseTypeAsJson": "[\r\n \"string\"\r\n]", + "parameterDescriptions": [ + { + "name": "prefix", + "type": "String" + } + ] + }, + { + "path": "api/docs/documents/parameters", + "method": "GET", + "groupName": "DocsDocument", + "responseType": "Volo.Docs.Documents.DocumentParametersDto", + "responseTypeAsJson": "{\r\n \"parameters\": [\r\n {\r\n \"name\": \"string\",\r\n \"displayName\": \"string\",\r\n \"values\": {\r\n \"string\": \"string\"\r\n }\r\n }\r\n ]\r\n}", + "parameterDescriptions": [ + { + "name": "ProjectId", + "type": "Guid" + }, + { + "name": "Version", + "type": "String" + }, + { + "name": "LanguageCode", + "type": "String" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null } ] } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json b/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json index 287cbacf5b..e6dde9a37b 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.MongoDB", - "hash": "010d09056500caecfaeb5cbb7f049f0a", + "hash": "", "contents": [ { "namespace": "Volo.Docs.MongoDB", @@ -69,15 +69,15 @@ "connectionStringName": "Docs", "databaseCollections": [ { - "entityFullName": "Volo.Docs.Documents.Document", + "entityFullName": "Volo.Docs.Projects.Project", "contentType": "databaseCollection", - "name": "DocsDocumentS", + "name": "Projects", "summary": null }, { - "entityFullName": "Volo.Docs.Projects.Project", + "entityFullName": "Volo.Docs.Documents.Document", "contentType": "databaseCollection", - "name": "DocsProjects", + "name": "Documents", "summary": null } ], diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index d69d72f038..2f029fcfce 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -197,7 +197,6 @@ namespace Volo.Docs.Pages.Documents.Project await SetNavigationAsync(); SetLanguageSelectListItems(); - SetDocumentPageTitle(); return Page(); } @@ -472,7 +471,12 @@ namespace Volo.Docs.Pages.Documents.Project private void SetDocumentPageTitle() { - DocumentPageTitle = Navigation.FindNavigation(DocumentNameWithExtension)?.Text ?? DocumentName?.Replace("-", " "); + DocumentPageTitle = DocumentName?.Replace("-", " "); + var match = Regex.Match(Document.Content, @"#(?.+)"); + if (match.Success && match.Groups.TryGetValue("PageTitle", out var group)) + { + DocumentPageTitle = Regex.Replace(group.Value, "<.*?>", string.Empty).Trim(); + } } public string CreateVersionLink(VersionInfoViewModel latestVersion, string version, string documentName = null) @@ -508,6 +512,7 @@ namespace Volo.Docs.Pages.Documents.Project Document = await GetSpecificDocumentOrDefaultAsync(language); DocumentLanguageCode = language; DocumentNameWithExtension = Document.Name; + SetDocumentPageTitle(); await ConvertDocumentContentToHtmlAsync(); return true; } diff --git a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json index 8577f013a9..e05caa0b3c 100644 --- a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Docs.Web", - "hash": "6de1a5d8b7e07b55bd1fc1f98dad11d0", + "hash": "", "contents": [ { "namespace": "Volo.Docs", @@ -83,6 +83,44 @@ "contentType": "abpModule", "name": "DocsWebModule", "summary": null + }, + { + "apis": [ + { + "path": "document-resources", + "method": "GET", + "groupName": "DocumentResource", + "responseType": "Volo.Abp.Http.RemoteServiceErrorResponse", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "ProjectId", + "type": "Guid" + }, + { + "name": "Name", + "type": "String" + }, + { + "name": "Version", + "type": "String" + }, + { + "name": "LanguageCode", + "type": "String" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null + }, + { + "namespace": "Volo.Docs.Pages.Documents.Project", + "contentType": "webPage", + "name": "IndexModel", + "summary": null } ] } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json index 16b9522c12..fe7a26b081 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.FeatureManagement.Application.Contracts", - "hash": "a098bfbfeedbc75302632b819fbdd62c", + "hash": "", "contents": [ { "namespace": "Volo.Abp.FeatureManagement", @@ -75,7 +75,7 @@ "summary": null }, { - "displayName": "Manage Host features", + "displayName": "Manage host features", "isEnabled": true, "contentType": "permission", "name": "FeatureManagement.ManageHostFeatures", diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json index af78f2dc02..96e583a191 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.FeatureManagement.Application", - "hash": "a9ca2b4f663694fa5d258984dc689f56", + "hash": "", "contents": [ { "namespace": "Volo.Abp.FeatureManagement", @@ -136,6 +136,7 @@ "methods": [ { "returnType": "GetFeatureListResultDto", + "namespace": "Volo.Abp.FeatureManagement", "name": "GetAsync", "summary": null, "isAsync": true, @@ -157,6 +158,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.FeatureManagement", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -183,6 +185,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.FeatureManagement", "name": "DeleteAsync", "summary": null, "isAsync": true, diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.Server/Volo.Abp.FeatureManagement.Blazor.Server.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.Server/Volo.Abp.FeatureManagement.Blazor.Server.abppkg.analyze.json new file mode 100644 index 0000000000..1b85033b80 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.Server/Volo.Abp.FeatureManagement.Blazor.Server.abppkg.analyze.json @@ -0,0 +1,68 @@ +{ + "name": "Volo.Abp.FeatureManagement.Blazor.Server", + "hash": "", + "contents": [ + { + "namespace": "Volo.Abp.FeatureManagement.Blazor.Server", + "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.FeatureManagement.Blazor", + "namespace": "Volo.Abp.FeatureManagement.Blazor", + "name": "AbpFeatureManagementBlazorModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AspNetCore.Components.Server.Theming", + "namespace": "Volo.Abp.AspNetCore.Components.Server.Theming", + "name": "AbpAspNetCoreComponentsServerThemingModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "AbpFeatureManagementBlazorServerModule", + "summary": null + } + ] +} \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor index 6b5a16fbb0..feebe23119 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor @@ -5,7 +5,7 @@ - @L["Features"] + @L["Features"]@ProviderKeyDisplayName @if (Groups == null || !Groups.Any()) diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs index f8fe065bed..0d0728db71 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs @@ -31,6 +31,7 @@ public partial class FeatureManagementModal protected string ProviderName; protected string ProviderKey; + protected string ProviderKeyDisplayName; protected string SelectedTabName; @@ -40,7 +41,7 @@ public partial class FeatureManagementModal protected Dictionary SelectionStringValues; - public virtual async Task OpenAsync([NotNull] string providerName, string providerKey = null) + public virtual async Task OpenAsync([NotNull] string providerName, string providerKey = null, string providerKeyDisplayName = null) { try { @@ -50,6 +51,11 @@ public partial class FeatureManagementModal ToggleValues = new Dictionary(); SelectionStringValues = new Dictionary(); + if (!providerKeyDisplayName.IsNullOrWhiteSpace()) + { + ProviderKeyDisplayName = $" - {providerKeyDisplayName}"; + } + var result = await FeatureAppService.GetAsync(ProviderName, ProviderKey); Groups = result?.Groups ?? new List(); diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Volo.Abp.FeatureManagement.Blazor.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Volo.Abp.FeatureManagement.Blazor.abppkg.analyze.json new file mode 100644 index 0000000000..1332348464 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Volo.Abp.FeatureManagement.Blazor.abppkg.analyze.json @@ -0,0 +1,90 @@ +{ + "name": "Volo.Abp.FeatureManagement.Blazor", + "hash": "", + "contents": [ + { + "namespace": "Volo.Abp.FeatureManagement.Blazor", + "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.AspNetCore.Components.Web.Theming", + "namespace": "Volo.Abp.AspNetCore.Components.Web.Theming", + "name": "AbpAspNetCoreComponentsWebThemingModule" + }, + { + "declaringAssemblyName": "Volo.Abp.FeatureManagement.Application.Contracts", + "namespace": "Volo.Abp.FeatureManagement", + "name": "AbpFeatureManagementApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Features", + "namespace": "Volo.Abp.Features", + "name": "AbpFeaturesModule" + }, + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.Blazor", + "namespace": "Volo.Abp.SettingManagement.Blazor", + "name": "AbpSettingManagementBlazorModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "AbpFeatureManagementBlazorModule", + "summary": null + }, + { + "namespace": "Volo.Abp.FeatureManagement.Blazor.Components", + "contentType": "webPage", + "name": "FeatureManagementModal", + "summary": null + }, + { + "namespace": "Volo.Abp.FeatureManagement.Blazor.Components.FeatureSettingGroup", + "contentType": "webPage", + "name": "FeatureSettingManagementComponent", + "summary": null + } + ] +} \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.abppkg.analyze.json index a383a8f2d2..441f9df896 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.FeatureManagement.Domain.Shared", - "hash": "7cf1adab77763451880c93c2ce5de54d", + "hash": "", "contents": [ { "namespace": "Volo.Abp.FeatureManagement", diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json index e45b038fb4..3c2abaac23 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.FeatureManagement.Domain", - "hash": "7dc58fbace956cd5b28d943e0568d553", + "hash": "", "contents": [ { "namespace": "Volo.Abp.FeatureManagement", @@ -117,6 +117,7 @@ "methods": [ { "returnType": "Boolean", + "namespace": "Volo.Abp.FeatureManagement", "name": "HasSameData", "summary": null, "isAsync": false, @@ -133,6 +134,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.FeatureManagement", "name": "Patch", "summary": null, "isAsync": false, @@ -153,11 +155,6 @@ "namespace": "Volo.Abp.FeatureManagement", "primaryKeyType": "Guid", "properties": [ - { - "type": "System.Guid", - "name": "Id", - "summary": null - }, { "type": "System.String", "name": "GroupName", @@ -266,6 +263,7 @@ "methods": [ { "returnType": "Boolean", + "namespace": "Volo.Abp.FeatureManagement", "name": "HasSameData", "summary": null, "isAsync": false, @@ -282,6 +280,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.FeatureManagement", "name": "Patch", "summary": null, "isAsync": false, @@ -302,11 +301,6 @@ "namespace": "Volo.Abp.FeatureManagement", "primaryKeyType": "Guid", "properties": [ - { - "type": "System.Guid", - "name": "Id", - "summary": null - }, { "type": "System.String", "name": "Name", @@ -436,6 +430,7 @@ "methods": [ { "returnType": "FeatureDefinitionRecord", + "namespace": "Volo.Abp.FeatureManagement", "name": "FindByNameAsync", "summary": null, "isAsync": true, @@ -552,6 +547,7 @@ "methods": [ { "returnType": "FeatureValue", + "namespace": "Volo.Abp.FeatureManagement", "name": "FindAsync", "summary": null, "isAsync": true, @@ -583,6 +579,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.FeatureManagement", "name": "FindAllAsync", "summary": null, "isAsync": true, @@ -614,6 +611,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.FeatureManagement", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -640,6 +638,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.FeatureManagement", "name": "DeleteAsync", "summary": null, "isAsync": true, diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json index 5374e87d7b..39496c615c 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.FeatureManagement.EntityFrameworkCore", - "hash": "d23d13b3c72c26ef41eb0070ab00ac34", + "hash": "", "contents": [ { "namespace": "Volo.Abp.FeatureManagement.EntityFrameworkCore", @@ -67,27 +67,27 @@ { "namespace": "Volo.Abp.FeatureManagement.EntityFrameworkCore", "connectionStringName": "AbpFeatureManagement", - "databaseTables": [ - { - "entityFullName": "Volo.Abp.FeatureManagement.FeatureDefinitionRecord", - "contentType": "databaseTable", - "name": "AbpFeatures", - "summary": null - }, - { - "entityFullName": "Volo.Abp.FeatureManagement.FeatureGroupDefinitionRecord", - "contentType": "databaseTable", - "name": "AbpFeatureGroups", - "summary": null - }, + "databaseTables": [], + "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ { - "entityFullName": "Volo.Abp.FeatureManagement.FeatureValue", - "contentType": "databaseTable", - "name": "AbpFeatureValues", - "summary": null + "returnType": "Void", + "namespace": "Volo.Abp.FeatureManagement.EntityFrameworkCore", + "name": "ConfigureFeatureManagement", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] } ], - "replacedDbContexts": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -143,6 +143,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.abppkg.analyze.json index cdacabfb3a..ce50d5b83a 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.FeatureManagement.HttpApi.Client", - "hash": "f2c557d60cc7414ca67a85fd5295870d", + "hash": "", "contents": [ { "namespace": "Volo.Abp.FeatureManagement", diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json index 12fa8fd972..5f25516d3b 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.FeatureManagement.HttpApi", - "hash": "eaa44cd23162ceaf3ec1f00798ef4dd5", + "hash": "", "contents": [ { "namespace": "Volo.Abp.FeatureManagement", @@ -63,6 +63,68 @@ "contentType": "abpModule", "name": "AbpFeatureManagementHttpApiModule", "summary": null + }, + { + "apis": [ + { + "path": "api/feature-management/features", + "method": "GET", + "groupName": "Features", + "responseType": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "providerName", + "type": "String" + }, + { + "name": "providerKey", + "type": "String" + } + ] + }, + { + "path": "api/feature-management/features", + "method": "PUT", + "groupName": "Features", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "providerName", + "type": "String" + }, + { + "name": "providerKey", + "type": "String" + }, + { + "name": "input", + "type": "UpdateFeaturesDto" + } + ] + }, + { + "path": "api/feature-management/features", + "method": "DELETE", + "groupName": "Features", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "providerName", + "type": "String" + }, + { + "name": "providerKey", + "type": "String" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null } ] } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.abppkg.analyze.json index cec46992d3..db589c9c51 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.FeatureManagement.MongoDB", - "hash": "1287dca2b75f3753abc23921cc0263b4", + "hash": "", "contents": [ { "namespace": "Volo.Abp.FeatureManagement.MongoDB", @@ -69,21 +69,21 @@ "connectionStringName": "AbpFeatureManagement", "databaseCollections": [ { - "entityFullName": "Volo.Abp.FeatureManagement.FeatureValue", + "entityFullName": "Volo.Abp.FeatureManagement.FeatureGroupDefinitionRecord", "contentType": "databaseCollection", - "name": "AbpFeatureValues", + "name": "FeatureGroups", "summary": null }, { "entityFullName": "Volo.Abp.FeatureManagement.FeatureDefinitionRecord", "contentType": "databaseCollection", - "name": "AbpFeatures", + "name": "Features", "summary": null }, { - "entityFullName": "Volo.Abp.FeatureManagement.FeatureGroupDefinitionRecord", + "entityFullName": "Volo.Abp.FeatureManagement.FeatureValue", "contentType": "databaseCollection", - "name": "AbpFeatureGroups", + "name": "FeatureValues", "summary": null } ], diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml index 87d186d4ad..c29e77fcfc 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml @@ -1,4 +1,5 @@ @page +@using System.Web @using Microsoft.AspNetCore.Mvc.Localization @using Microsoft.Extensions.Localization @using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal @@ -23,7 +24,7 @@
- + @if (Model.FeatureListResultDto != null && Model.FeatureListResultDto.Groups.Any()) { var featureGroups = Model.FeatureListResultDto.Groups; diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs index 879b4f1676..f08d42cfd2 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; +using System.Web; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations; @@ -24,6 +25,10 @@ public class FeatureManagementModal : AbpPageModel [HiddenInput] [BindProperty(SupportsGet = true)] public string ProviderKey { get; set; } + + [HiddenInput] + [BindProperty(SupportsGet = true)] + public string ProviderKeyDisplayName { get; set; } [BindProperty] public List FeatureGroups { get; set; } @@ -51,7 +56,10 @@ public class FeatureManagementModal : AbpPageModel public virtual async Task OnGetAsync() { ValidateModel(); - + if (!ProviderKeyDisplayName.IsNullOrWhiteSpace()) + { + ProviderKeyDisplayName = " - " + HttpUtility.HtmlEncode(ProviderKeyDisplayName); + } FeatureListResultDto = await FeatureAppService.GetAsync(ProviderName, ProviderKey); return Page(); diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.abppkg.analyze.json index 53d44b8f79..905cfe0387 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.FeatureManagement.Web", - "hash": "448e16aaf1a76101ee1902adbe650fb1", + "hash": "", "contents": [ { "namespace": "Volo.Abp.FeatureManagement", @@ -68,6 +68,12 @@ "contentType": "abpModule", "name": "AbpFeatureManagementWebModule", "summary": null + }, + { + "namespace": "Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement", + "contentType": "webPage", + "name": "FeatureManagementModal", + "summary": null } ] } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json index 6f323d4671..ed9bd2c045 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json @@ -130,6 +130,13 @@ "name": "AbpIdentity.Users.Update", "summary": null }, + { + "displayName": "Manage roles", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.Users.Update.ManageRoles", + "summary": null + }, { "displayName": "Delete", "isEnabled": true, diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json index 603d2d9faf..51d711b151 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json @@ -183,6 +183,7 @@ "methods": [ { "returnType": "IdentityRoleDto", + "namespace": "Volo.Abp.Identity", "name": "GetAsync", "summary": null, "isAsync": true, @@ -199,6 +200,7 @@ }, { "returnType": "ListResultDto", + "namespace": "Volo.Abp.Identity", "name": "GetAllListAsync", "summary": null, "isAsync": true, @@ -209,6 +211,7 @@ }, { "returnType": "PagedResultDto", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -225,6 +228,7 @@ }, { "returnType": "IdentityRoleDto", + "namespace": "Volo.Abp.Identity", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -241,6 +245,7 @@ }, { "returnType": "IdentityRoleDto", + "namespace": "Volo.Abp.Identity", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -262,6 +267,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -390,6 +396,7 @@ "methods": [ { "returnType": "IdentityUserDto", + "namespace": "Volo.Abp.Identity", "name": "GetAsync", "summary": null, "isAsync": true, @@ -406,6 +413,7 @@ }, { "returnType": "PagedResultDto", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -422,6 +430,7 @@ }, { "returnType": "ListResultDto", + "namespace": "Volo.Abp.Identity", "name": "GetRolesAsync", "summary": null, "isAsync": true, @@ -438,6 +447,7 @@ }, { "returnType": "ListResultDto", + "namespace": "Volo.Abp.Identity", "name": "GetAssignableRolesAsync", "summary": null, "isAsync": true, @@ -448,6 +458,7 @@ }, { "returnType": "IdentityUserDto", + "namespace": "Volo.Abp.Identity", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -464,6 +475,7 @@ }, { "returnType": "IdentityUserDto", + "namespace": "Volo.Abp.Identity", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -485,6 +497,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -501,6 +514,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "UpdateRolesAsync", "summary": null, "isAsync": true, @@ -522,6 +536,7 @@ }, { "returnType": "IdentityUserDto", + "namespace": "Volo.Abp.Identity", "name": "FindByUsernameAsync", "summary": null, "isAsync": true, @@ -538,6 +553,7 @@ }, { "returnType": "IdentityUserDto", + "namespace": "Volo.Abp.Identity", "name": "FindByEmailAsync", "summary": null, "isAsync": true, @@ -624,6 +640,7 @@ "methods": [ { "returnType": "UserData", + "namespace": "Volo.Abp.Identity", "name": "FindByIdAsync", "summary": null, "isAsync": true, @@ -640,6 +657,7 @@ }, { "returnType": "UserData", + "namespace": "Volo.Abp.Identity", "name": "FindByUserNameAsync", "summary": null, "isAsync": true, @@ -656,6 +674,7 @@ }, { "returnType": "ListResultDto", + "namespace": "Volo.Abp.Identity", "name": "SearchAsync", "summary": null, "isAsync": true, @@ -672,6 +691,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.Identity", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -758,6 +778,7 @@ "methods": [ { "returnType": "String[]", + "namespace": "Volo.Abp.Identity.Integration", "name": "GetRoleNamesAsync", "summary": null, "isAsync": true, @@ -771,6 +792,74 @@ "isOptional": false } ] + }, + { + "returnType": "UserData", + "namespace": "Volo.Abp.Identity.Integration", + "name": "FindByIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + } + ] + }, + { + "returnType": "UserData", + "namespace": "Volo.Abp.Identity.Integration", + "name": "FindByUserNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "userName", + "isOptional": false + } + ] + }, + { + "returnType": "ListResultDto", + "namespace": "Volo.Abp.Identity.Integration", + "name": "SearchAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "UserLookupSearchInputDto", + "name": "input", + "isOptional": false + } + ] + }, + { + "returnType": "Int64", + "namespace": "Volo.Abp.Identity.Integration", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "UserLookupCountInputDto", + "name": "input", + "isOptional": false + } + ] } ], "contentType": "applicationService", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json index 9873e72b5f..1304d00eed 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json @@ -296,6 +296,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "SetName", "summary": null, "isAsync": false, @@ -492,6 +493,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddClaim", "summary": null, "isAsync": false, @@ -513,6 +515,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddClaims", "summary": null, "isAsync": false, @@ -534,6 +537,7 @@ }, { "returnType": "IdentityRoleClaim", + "namespace": "Volo.Abp.Identity", "name": "FindClaim", "summary": null, "isAsync": false, @@ -550,6 +554,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveClaim", "summary": null, "isAsync": false, @@ -566,6 +571,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "ChangeName", "summary": null, "isAsync": false, @@ -582,6 +588,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.Identity", "name": "ToString", "summary": null, "isAsync": false, @@ -776,6 +783,170 @@ "name": "IdentitySecurityLog", "summary": null }, + { + "baseClass": { + "name": "BasicAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.BasicAggregateRoot" + }, + "implementingInterfaces": [ + { + "name": "IEntity", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" + }, + { + "name": "IEntity", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" + }, + { + "name": "IAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" + }, + { + "name": "IAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" + }, + { + "name": "IGeneratesDomainEvents", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" + }, + { + "name": "IMultiTenant", + "namespace": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" + } + ], + "methods": [ + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "SetSignedInTime", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "DateTime", + "name": "signedIn", + "isOptional": false + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "UpdateLastAccessedTime", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "lastAccessed", + "isOptional": false + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "SetIpAddresses", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IEnumerable", + "name": "ipAddresses", + "isOptional": false + } + ] + }, + { + "returnType": "IEnumerable", + "namespace": "Volo.Abp.Identity", + "name": "GetIpAddresses", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [] + } + ], + "collectionProperties": {}, + "navigationProperties": {}, + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "SessionId", + "summary": null + }, + { + "type": "System.String", + "name": "Device", + "summary": "Web, Mobile ..." + }, + { + "type": "System.String", + "name": "DeviceInfo", + "summary": null + }, + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.Guid", + "name": "UserId", + "summary": null + }, + { + "type": "System.String", + "name": "ClientId", + "summary": null + }, + { + "type": "System.String", + "name": "IpAddresses", + "summary": null + }, + { + "type": "System.DateTime", + "name": "SignedIn", + "summary": null + }, + { + "type": "System.Nullable`1[System.DateTime]", + "name": "LastAccessed", + "summary": null + } + ], + "contentType": "aggregateRoot", + "name": "IdentitySession", + "summary": null + }, { "baseClass": { "name": "FullAuditedAggregateRoot", @@ -908,6 +1079,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddRole", "summary": null, "isAsync": false, @@ -924,6 +1096,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveRole", "summary": null, "isAsync": false, @@ -940,6 +1113,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", "name": "IsInRole", "summary": null, "isAsync": false, @@ -956,6 +1130,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddClaim", "summary": null, "isAsync": false, @@ -977,6 +1152,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddClaims", "summary": null, "isAsync": false, @@ -998,6 +1174,7 @@ }, { "returnType": "IdentityUserClaim", + "namespace": "Volo.Abp.Identity", "name": "FindClaim", "summary": null, "isAsync": false, @@ -1014,6 +1191,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "ReplaceClaim", "summary": null, "isAsync": false, @@ -1035,6 +1213,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveClaims", "summary": null, "isAsync": false, @@ -1051,6 +1230,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveClaim", "summary": null, "isAsync": false, @@ -1067,6 +1247,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddLogin", "summary": null, "isAsync": false, @@ -1083,6 +1264,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveLogin", "summary": null, "isAsync": false, @@ -1104,6 +1286,7 @@ }, { "returnType": "IdentityUserToken", + "namespace": "Volo.Abp.Identity", "name": "FindToken", "summary": null, "isAsync": false, @@ -1125,6 +1308,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "SetToken", "summary": null, "isAsync": false, @@ -1151,6 +1335,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveToken", "summary": null, "isAsync": false, @@ -1172,6 +1357,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddOrganizationUnit", "summary": null, "isAsync": false, @@ -1188,6 +1374,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveOrganizationUnit", "summary": null, "isAsync": false, @@ -1204,6 +1391,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", "name": "IsInOrganizationUnit", "summary": null, "isAsync": false, @@ -1220,6 +1408,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "SetEmailConfirmed", "summary": null, "isAsync": false, @@ -1236,6 +1425,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "SetPhoneNumberConfirmed", "summary": null, "isAsync": false, @@ -1252,6 +1442,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "SetPhoneNumber", "summary": null, "isAsync": false, @@ -1273,6 +1464,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "SetIsActive", "summary": null, "isAsync": false, @@ -1289,6 +1481,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "SetShouldChangePasswordOnNextLogin", "summary": null, "isAsync": false, @@ -1305,6 +1498,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "SetLastPasswordChangeTime", "summary": null, "isAsync": false, @@ -1321,6 +1515,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.Identity", "name": "ToString", "summary": null, "isAsync": false, @@ -1708,6 +1903,7 @@ "methods": [ { "returnType": "String", + "namespace": "Volo.Abp.Identity", "name": "CreateCode", "summary": null, "isAsync": false, @@ -1724,6 +1920,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.Identity", "name": "AppendCode", "summary": null, "isAsync": false, @@ -1745,6 +1942,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.Identity", "name": "GetRelativeCode", "summary": null, "isAsync": false, @@ -1766,6 +1964,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.Identity", "name": "CalculateNextCode", "summary": null, "isAsync": false, @@ -1782,6 +1981,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.Identity", "name": "GetLastUnitCode", "summary": null, "isAsync": false, @@ -1798,6 +1998,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.Identity", "name": "GetParentCode", "summary": null, "isAsync": false, @@ -1814,6 +2015,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddRole", "summary": null, "isAsync": false, @@ -1830,6 +2032,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveRole", "summary": null, "isAsync": false, @@ -1846,6 +2049,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", "name": "IsInRole", "summary": null, "isAsync": false, @@ -1919,6 +2123,7 @@ "methods": [ { "returnType": "IdentityClaimType", + "namespace": "Volo.Abp.Identity", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -1935,6 +2140,7 @@ }, { "returnType": "IdentityClaimType", + "namespace": "Volo.Abp.Identity", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -1948,6 +2154,23 @@ "isOptional": false } ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "DeleteAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + } + ] } ], "implementingInterfaces": [ @@ -1979,6 +2202,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -2005,6 +2229,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "LinkAsync", "summary": null, "isAsync": true, @@ -2031,6 +2256,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", "name": "IsLinkedAsync", "summary": null, "isAsync": true, @@ -2062,6 +2288,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "UnlinkAsync", "summary": null, "isAsync": true, @@ -2088,6 +2315,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.Identity", "name": "GenerateLinkTokenAsync", "summary": null, "isAsync": true, @@ -2114,6 +2342,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", "name": "VerifyLinkTokenAsync", "summary": null, "isAsync": true, @@ -2173,6 +2402,7 @@ "methods": [ { "returnType": "IdentityRole", + "namespace": "Volo.Abp.Identity", "name": "GetByIdAsync", "summary": null, "isAsync": true, @@ -2189,6 +2419,7 @@ }, { "returnType": "IdentityResult", + "namespace": "Volo.Abp.Identity", "name": "SetRoleNameAsync", "summary": null, "isAsync": true, @@ -2210,6 +2441,7 @@ }, { "returnType": "IdentityResult", + "namespace": "Volo.Abp.Identity", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -2260,6 +2492,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -2286,6 +2519,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetActiveDelegationsAsync", "summary": null, "isAsync": true, @@ -2307,6 +2541,7 @@ }, { "returnType": "IdentityUserDelegation", + "namespace": "Volo.Abp.Identity", "name": "FindActiveDelegationByIdAsync", "summary": null, "isAsync": true, @@ -2328,6 +2563,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "DelegateNewUserAsync", "summary": null, "isAsync": true, @@ -2364,6 +2600,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "DeleteDelegationAsync", "summary": null, "isAsync": true, @@ -2418,6 +2655,7 @@ "methods": [ { "returnType": "IdentityResult", + "namespace": "Volo.Abp.Identity", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -2442,8 +2680,26 @@ } ] }, + { + "returnType": "IdentityResult", + "namespace": "Volo.Abp.Identity", + "name": "DeleteAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IdentityUser", + "name": "user", + "isOptional": false + } + ] + }, { "returnType": "IdentityUser", + "namespace": "Volo.Abp.Identity", "name": "GetByIdAsync", "summary": null, "isAsync": true, @@ -2460,6 +2716,7 @@ }, { "returnType": "IdentityResult", + "namespace": "Volo.Abp.Identity", "name": "SetRolesAsync", "summary": null, "isAsync": true, @@ -2481,6 +2738,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", "name": "IsInOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -2502,6 +2760,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", "name": "IsInOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -2523,6 +2782,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddToOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -2544,6 +2804,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddToOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -2565,6 +2826,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveFromOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -2586,6 +2848,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveFromOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -2607,6 +2870,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "SetOrganizationUnitsAsync", "summary": null, "isAsync": true, @@ -2628,6 +2892,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "SetOrganizationUnitsAsync", "summary": null, "isAsync": true, @@ -2649,6 +2914,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetOrganizationUnitsAsync", "summary": null, "isAsync": true, @@ -2670,6 +2936,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetUsersInOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -2691,6 +2958,7 @@ }, { "returnType": "IdentityResult", + "namespace": "Volo.Abp.Identity", "name": "AddDefaultRolesAsync", "summary": null, "isAsync": true, @@ -2707,6 +2975,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", "name": "ShouldPeriodicallyChangePasswordAsync", "summary": null, "isAsync": true, @@ -2723,6 +2992,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "ResetRecoveryCodesAsync", "summary": null, "isAsync": true, @@ -2736,9 +3006,153 @@ "isOptional": false } ] - } - ], - "implementingInterfaces": [ + }, + { + "returnType": "IdentityResult", + "namespace": "Volo.Abp.Identity", + "name": "SetEmailAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IdentityUser", + "name": "user", + "isOptional": false + }, + { + "type": "String", + "name": "email", + "isOptional": false + } + ] + }, + { + "returnType": "IdentityResult", + "namespace": "Volo.Abp.Identity", + "name": "SetUserNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IdentityUser", + "name": "user", + "isOptional": false + }, + { + "type": "String", + "name": "userName", + "isOptional": false + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "UpdateRoleAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "sourceRoleId", + "isOptional": false + }, + { + "type": "Nullable", + "name": "targetRoleId", + "isOptional": false + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "UpdateOrganizationAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "sourceOrganizationId", + "isOptional": false + }, + { + "type": "Nullable", + "name": "targetOrganizationId", + "isOptional": false + } + ] + }, + { + "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", + "name": "ValidateUserNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "userName", + "isOptional": false + }, + { + "type": "Nullable", + "name": "userId", + "isOptional": true + } + ] + }, + { + "returnType": "String", + "namespace": "Volo.Abp.Identity", + "name": "GetRandomUserNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Int32", + "name": "length", + "isOptional": false + } + ] + }, + { + "returnType": "String", + "namespace": "Volo.Abp.Identity", + "name": "GetUserNameFromEmailAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "email", + "isOptional": false + } + ] + } + ], + "implementingInterfaces": [ { "name": "IDisposable", "namespace": "System", @@ -2773,6 +3187,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -2789,6 +3204,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -2805,6 +3221,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.Identity", "name": "GetNextChildCodeAsync", "summary": null, "isAsync": true, @@ -2821,6 +3238,7 @@ }, { "returnType": "OrganizationUnit", + "namespace": "Volo.Abp.Identity", "name": "GetLastChildOrNullAsync", "summary": null, "isAsync": true, @@ -2837,6 +3255,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -2853,6 +3272,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "MoveAsync", "summary": null, "isAsync": true, @@ -2874,6 +3294,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.Identity", "name": "GetCodeOrDefaultAsync", "summary": null, "isAsync": true, @@ -2890,6 +3311,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "FindChildrenAsync", "summary": null, "isAsync": true, @@ -2911,6 +3333,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", "name": "IsInOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -2932,6 +3355,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddRoleToOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -2953,6 +3377,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "AddRoleToOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -2974,6 +3399,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveRoleFromOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -2995,6 +3421,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveRoleFromOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -3013,6 +3440,23 @@ "isOptional": false } ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "RemoveDynamicClaimCacheAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "OrganizationUnit", + "name": "organizationUnit", + "isOptional": false + } + ] } ], "implementingInterfaces": [ @@ -3078,6 +3522,7 @@ "methods": [ { "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", "name": "AnyAsync", "summary": null, "isAsync": true, @@ -3104,6 +3549,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -3140,6 +3586,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.Identity", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -3158,6 +3605,28 @@ "isOptional": true } ] + }, + { + "returnType": "List", + "namespace": "Volo.Abp.Identity", + "name": "GetListByNamesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IEnumerable", + "name": "names", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] } ], "contentType": "repositoryInterface", @@ -3209,6 +3678,7 @@ "methods": [ { "returnType": "IdentityLinkUser", + "namespace": "Volo.Abp.Identity", "name": "FindAsync", "summary": null, "isAsync": true, @@ -3235,6 +3705,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -3261,6 +3732,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -3330,6 +3802,7 @@ "methods": [ { "returnType": "IdentityRole", + "namespace": "Volo.Abp.Identity", "name": "FindByNormalizedNameAsync", "summary": null, "isAsync": true, @@ -3354,8 +3827,51 @@ } ] }, + { + "returnType": "List", + "namespace": "Volo.Abp.Identity", + "name": "GetListWithUserCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "String", + "name": "filter", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -3397,6 +3913,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -3418,6 +3935,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetDefaultOnesAsync", "summary": null, "isAsync": true, @@ -3439,6 +3957,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.Identity", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -3457,31 +3976,58 @@ "isOptional": true } ] - } - ], - "contentType": "repositoryInterface", - "name": "IIdentityRoleRepository", - "summary": null - }, - { - "namespace": "Volo.Abp.Identity", - "entityAnalyzeModel": { - "namespace": "Volo.Abp.Identity", - "primaryKeyType": "Guid", - "properties": [], - "contentType": "entity", - "name": "IdentitySecurityLog", - "summary": null - }, - "implementingInterfaces": [ - { - "name": "IBasicRepository", - "namespace": "Volo.Abp.Domain.Repositories", - "declaringAssemblyName": "Volo.Abp.Ddd.Domain", - "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" }, { - "name": "IBasicRepository", + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "RemoveClaimFromAllRolesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "claimType", + "isOptional": false + }, + { + "type": "Boolean", + "name": "autoSave", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IIdentityRoleRepository", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity", + "entityAnalyzeModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "IdentitySecurityLog", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", "namespace": "Volo.Abp.Domain.Repositories", "declaringAssemblyName": "Volo.Abp.Ddd.Domain", "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" @@ -3508,6 +4054,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -3589,6 +4136,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.Identity", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -3637,8 +4185,314 @@ "isOptional": true }, { - "type": "String", - "name": "correlationId", + "type": "String", + "name": "correlationId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "IdentitySecurityLog", + "namespace": "Volo.Abp.Identity", + "name": "GetByUserIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "Guid", + "name": "userId", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IIdentitySecurityLogRepository", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity", + "entityAnalyzeModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "IdentitySession", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "IdentitySession", + "namespace": "Volo.Abp.Identity", + "name": "FindAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sessionId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "IdentitySession", + "namespace": "Volo.Abp.Identity", + "name": "GetAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sessionId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", + "name": "ExistAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Boolean", + "namespace": "Volo.Abp.Identity", + "name": "ExistAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sessionId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "namespace": "Volo.Abp.Identity", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "Nullable", + "name": "userId", + "isOptional": true + }, + { + "type": "String", + "name": "device", + "isOptional": true + }, + { + "type": "String", + "name": "clientId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Int64", + "namespace": "Volo.Abp.Identity", + "name": "GetCountAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "userId", + "isOptional": true + }, + { + "type": "String", + "name": "device", + "isOptional": true + }, + { + "type": "String", + "name": "clientId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "DeleteAllAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "userId", + "isOptional": false + }, + { + "type": "Nullable", + "name": "exceptSessionId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "DeleteAllAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "userId", + "isOptional": false + }, + { + "type": "String", + "name": "device", + "isOptional": false + }, + { + "type": "Nullable", + "name": "exceptSessionId", "isOptional": true }, { @@ -3649,8 +4503,9 @@ ] }, { - "returnType": "IdentitySecurityLog", - "name": "GetByUserIdAsync", + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "DeleteAllAsync", "summary": null, "isAsync": true, "isPublic": true, @@ -3658,20 +4513,10 @@ "isStatic": false, "parameters": [ { - "type": "Guid", - "name": "id", - "isOptional": false - }, - { - "type": "Guid", - "name": "userId", + "type": "TimeSpan", + "name": "inactiveTimeSpan", "isOptional": false }, - { - "type": "Boolean", - "name": "includeDetails", - "isOptional": true - }, { "type": "CancellationToken", "name": "cancellationToken", @@ -3681,7 +4526,7 @@ } ], "contentType": "repositoryInterface", - "name": "IIdentitySecurityLogRepository", + "name": "IIdentitySessionRepository", "summary": null }, { @@ -3729,6 +4574,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -3755,6 +4601,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetActiveDelegationsAsync", "summary": null, "isAsync": true, @@ -3776,6 +4623,7 @@ }, { "returnType": "IdentityUserDelegation", + "namespace": "Volo.Abp.Identity", "name": "FindActiveDelegationByIdAsync", "summary": null, "isAsync": true, @@ -3845,6 +4693,7 @@ "methods": [ { "returnType": "IdentityUser", + "namespace": "Volo.Abp.Identity", "name": "FindByNormalizedUserNameAsync", "summary": null, "isAsync": true, @@ -3871,6 +4720,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetRoleNamesAsync", "summary": null, "isAsync": true, @@ -3892,6 +4742,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetRoleNamesInOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -3913,6 +4764,7 @@ }, { "returnType": "IdentityUser", + "namespace": "Volo.Abp.Identity", "name": "FindByLoginAsync", "summary": null, "isAsync": true, @@ -3944,6 +4796,7 @@ }, { "returnType": "IdentityUser", + "namespace": "Volo.Abp.Identity", "name": "FindByNormalizedEmailAsync", "summary": null, "isAsync": true, @@ -3970,6 +4823,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListByClaimAsync", "summary": null, "isAsync": true, @@ -3994,8 +4848,36 @@ } ] }, + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "RemoveClaimFromAllUsersAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "claimType", + "isOptional": false + }, + { + "type": "Boolean", + "name": "autoSave", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListByNormalizedRoleNameAsync", "summary": null, "isAsync": true, @@ -4020,8 +4902,31 @@ } ] }, + { + "returnType": "List", + "namespace": "Volo.Abp.Identity", + "name": "GetUserIdListByRoleIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "roleId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -4138,6 +5043,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetRolesAsync", "summary": null, "isAsync": true, @@ -4164,6 +5070,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetOrganizationUnitsAsync", "summary": null, "isAsync": true, @@ -4190,6 +5097,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetUsersInOrganizationUnitAsync", "summary": null, "isAsync": true, @@ -4211,6 +5119,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetUsersInOrganizationsListAsync", "summary": null, "isAsync": true, @@ -4232,6 +5141,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetUsersInOrganizationUnitWithChildrenAsync", "summary": null, "isAsync": true, @@ -4253,6 +5163,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.Identity", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -4349,6 +5260,7 @@ }, { "returnType": "IdentityUser", + "namespace": "Volo.Abp.Identity", "name": "FindByTenantIdAndUserNameAsync", "summary": null, "isAsync": true, @@ -4380,6 +5292,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListByIdsAsync", "summary": null, "isAsync": true, @@ -4403,6 +5316,82 @@ "isOptional": true } ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "UpdateRoleAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "sourceRoleId", + "isOptional": false + }, + { + "type": "Nullable", + "name": "targetRoleId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity", + "name": "UpdateOrganizationAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "sourceOrganizationId", + "isOptional": false + }, + { + "type": "Nullable", + "name": "targetOrganizationId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "namespace": "Volo.Abp.Identity", + "name": "GetRoleNamesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IEnumerable", + "name": "userIds", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] } ], "contentType": "repositoryInterface", @@ -4454,6 +5443,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetChildrenAsync", "summary": null, "isAsync": true, @@ -4480,6 +5470,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetAllChildrenWithParentCodeAsync", "summary": null, "isAsync": true, @@ -4511,6 +5502,7 @@ }, { "returnType": "OrganizationUnit", + "namespace": "Volo.Abp.Identity", "name": "GetAsync", "summary": null, "isAsync": true, @@ -4537,6 +5529,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -4573,6 +5566,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -4597,8 +5591,36 @@ } ] }, + { + "returnType": "List", + "namespace": "Volo.Abp.Identity", + "name": "GetListByRoleIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "roleId", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetRolesAsync", "summary": null, "isAsync": true, @@ -4638,8 +5660,51 @@ } ] }, + { + "returnType": "List", + "namespace": "Volo.Abp.Identity", + "name": "GetRolesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid[]", + "name": "organizationUnitIds", + "isOptional": false + }, + { + "type": "String", + "name": "sorting", + "isOptional": true + }, + { + "type": "Int32", + "name": "maxResultCount", + "isOptional": true + }, + { + "type": "Int32", + "name": "skipCount", + "isOptional": true + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, { "returnType": "Int32", + "namespace": "Volo.Abp.Identity", "name": "GetRolesCountAsync", "summary": null, "isAsync": true, @@ -4661,6 +5726,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetUnaddedRolesAsync", "summary": null, "isAsync": true, @@ -4707,6 +5773,7 @@ }, { "returnType": "Int32", + "namespace": "Volo.Abp.Identity", "name": "GetUnaddedRolesCountAsync", "summary": null, "isAsync": true, @@ -4733,6 +5800,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetMembersAsync", "summary": null, "isAsync": true, @@ -4777,8 +5845,31 @@ } ] }, + { + "returnType": "List", + "namespace": "Volo.Abp.Identity", + "name": "GetMemberIdsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, { "returnType": "Int32", + "namespace": "Volo.Abp.Identity", "name": "GetMembersCountAsync", "summary": null, "isAsync": true, @@ -4805,6 +5896,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.Identity", "name": "GetUnaddedUsersAsync", "summary": null, "isAsync": true, @@ -4851,6 +5943,7 @@ }, { "returnType": "Int32", + "namespace": "Volo.Abp.Identity", "name": "GetUnaddedUsersCountAsync", "summary": null, "isAsync": true, @@ -4877,6 +5970,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveAllRolesAsync", "summary": null, "isAsync": true, @@ -4898,6 +5992,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.Identity", "name": "RemoveAllMembersAsync", "summary": null, "isAsync": true, diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityUserValidator.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityUserValidator.cs index c7507c6e36..149ff3bf31 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityUserValidator.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityUserValidator.cs @@ -41,6 +41,24 @@ namespace Volo.Abp.Identity }); } } + + var email = await manager.GetEmailAsync(user); + if (email == null) + { + errors.Add(describer.InvalidEmail(null)); + } + else + { + var owner = await manager.FindByNameAsync(email); + if (owner != null && !string.Equals(await manager.GetUserIdAsync(owner), await manager.GetUserIdAsync(user))) + { + errors.Add(new IdentityError + { + Code = "InvalidEmail", + Description = Localizer["Volo.Abp.Identity:InvalidEmail", email] + }); + } + } return errors.Count > 0 ? IdentityResult.Failed(errors.ToArray()) : IdentityResult.Success; } diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json index 7889d66fe1..06cd2fea51 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json @@ -69,6 +69,25 @@ "connectionStringName": "AbpIdentity", "databaseTables": [], "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ + { + "returnType": "Void", + "namespace": "Volo.Abp.Identity.EntityFrameworkCore", + "name": "ConfigureIdentity", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] + } + ], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -124,6 +143,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json index d3029541cf..60e2d18f17 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json @@ -96,6 +96,10 @@ { "name": "MaxResultCount", "type": "Int32" + }, + { + "name": "ExtraProperties", + "type": "ExtraPropertyDictionary" } ] }, @@ -190,6 +194,10 @@ { "name": "MaxResultCount", "type": "Int32" + }, + { + "name": "ExtraProperties", + "type": "ExtraPropertyDictionary" } ] }, @@ -348,6 +356,10 @@ { "name": "MaxResultCount", "type": "Int32" + }, + { + "name": "ExtraProperties", + "type": "ExtraPropertyDictionary" } ] }, diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json index 16c91703aa..57087c93c4 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json @@ -69,45 +69,51 @@ "connectionStringName": "AbpIdentity", "databaseCollections": [ { - "entityFullName": "Volo.Abp.Identity.IdentityLinkUser", + "entityFullName": "Volo.Abp.Identity.IdentityUser", "contentType": "databaseCollection", - "name": "AbpLinkUsers", + "name": "Users", "summary": null }, { - "entityFullName": "Volo.Abp.Identity.IdentityUserDelegation", + "entityFullName": "Volo.Abp.Identity.IdentityRole", "contentType": "databaseCollection", - "name": "AbpUserDelegations", + "name": "Roles", "summary": null }, { "entityFullName": "Volo.Abp.Identity.IdentityClaimType", "contentType": "databaseCollection", - "name": "AbpClaimTypes", + "name": "ClaimTypes", "summary": null }, { "entityFullName": "Volo.Abp.Identity.OrganizationUnit", "contentType": "databaseCollection", - "name": "AbpOrganizationUnits", + "name": "OrganizationUnits", "summary": null }, { "entityFullName": "Volo.Abp.Identity.IdentitySecurityLog", "contentType": "databaseCollection", - "name": "AbpSecurityLogs", + "name": "SecurityLogs", "summary": null }, { - "entityFullName": "Volo.Abp.Identity.IdentityRole", + "entityFullName": "Volo.Abp.Identity.IdentityLinkUser", "contentType": "databaseCollection", - "name": "AbpRoles", + "name": "LinkUsers", "summary": null }, { - "entityFullName": "Volo.Abp.Identity.IdentityUser", + "entityFullName": "Volo.Abp.Identity.IdentityUserDelegation", + "contentType": "databaseCollection", + "name": "UserDelegations", + "summary": null + }, + { + "entityFullName": "Volo.Abp.Identity.IdentitySession", "contentType": "databaseCollection", - "name": "AbpUsers", + "name": "Sessions", "summary": null } ], diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json index 3ab45eaadb..61e3708272 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json @@ -74,12 +74,6 @@ "name": "AbpIdentityWebModule", "summary": null }, - { - "apis": [], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null - }, { "namespace": "Volo.Abp.Identity.Web.Pages.Identity.Users", "contentType": "webPage", diff --git a/modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo/Abp/Identity/AspNetCore/AbpIdentityUserValidator_Tests.cs b/modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo/Abp/Identity/AspNetCore/AbpIdentityUserValidator_Tests.cs index ef9cfb53d3..0333ad7dec 100644 --- a/modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo/Abp/Identity/AspNetCore/AbpIdentityUserValidator_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo/Abp/Identity/AspNetCore/AbpIdentityUserValidator_Tests.cs @@ -33,4 +33,19 @@ public class AbpIdentityUserValidator_Tests : AbpIdentityAspNetCoreTestBase identityResult.Errors.First().Code.ShouldBe("InvalidUserName"); identityResult.Errors.First().Description.ShouldBe(Localizer["InvalidUserName", "user1@volosoft.com"]); } + + [Fact] + public async Task Can_Not_Use_Another_Users_Name_As_Your_Email_Test() + { + var user1 = new IdentityUser(Guid.NewGuid(), "user1@volosoft.com", "user@volosoft.com"); + var identityResult = await _identityUserManager.CreateAsync(user1); + identityResult.Succeeded.ShouldBeTrue(); + + var user2 = new IdentityUser(Guid.NewGuid(), "user2", "user1@volosoft.com"); + identityResult = await _identityUserManager.CreateAsync(user2); + identityResult.Succeeded.ShouldBeFalse(); + identityResult.Errors.Count().ShouldBe(1); + identityResult.Errors.First().Code.ShouldBe("InvalidEmail"); + identityResult.Errors.First().Description.ShouldBe(Localizer["Volo.Abp.Identity:InvalidEmail", "user1@volosoft.com"]); + } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.abppkg.analyze.json index db6116bba5..5887cf0c27 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.abppkg.analyze.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.IdentityServer.Domain.Shared", - "hash": "4c08d52a7966ddf0249ea9b228f5019b", + "hash": "", "contents": [ { "namespace": "Volo.Abp.IdentityServer", diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json index 25b8ab9746..ee8a8e35db 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.IdentityServer.Domain", - "hash": "e92e0873e411d6a1c141aa10c5cfad37", + "hash": "", "contents": [ { "namespace": "Volo.Abp.IdentityServer", @@ -526,6 +526,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "AddUserClaim", "summary": null, "isAsync": false, @@ -542,6 +543,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "RemoveAllUserClaims", "summary": null, "isAsync": false, @@ -552,6 +554,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "RemoveUserClaim", "summary": null, "isAsync": false, @@ -568,6 +571,7 @@ }, { "returnType": "IdentityResourceClaim", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "FindUserClaim", "summary": null, "isAsync": false, @@ -584,6 +588,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "AddProperty", "summary": null, "isAsync": false, @@ -605,6 +610,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "RemoveAllProperties", "summary": null, "isAsync": false, @@ -615,6 +621,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "RemoveProperty", "summary": null, "isAsync": false, @@ -631,6 +638,7 @@ }, { "returnType": "IdentityResourceProperty", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "FindProperty", "summary": null, "isAsync": false, @@ -1060,6 +1068,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "AddGrantType", "summary": null, "isAsync": false, @@ -1076,6 +1085,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveAllAllowedGrantTypes", "summary": null, "isAsync": false, @@ -1086,6 +1096,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveGrantType", "summary": null, "isAsync": false, @@ -1102,6 +1113,7 @@ }, { "returnType": "ClientGrantType", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "FindGrantType", "summary": null, "isAsync": false, @@ -1118,6 +1130,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "AddSecret", "summary": null, "isAsync": false, @@ -1149,6 +1162,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveSecret", "summary": null, "isAsync": false, @@ -1170,6 +1184,7 @@ }, { "returnType": "ClientSecret", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "FindSecret", "summary": null, "isAsync": false, @@ -1191,6 +1206,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "AddScope", "summary": null, "isAsync": false, @@ -1207,6 +1223,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveAllScopes", "summary": null, "isAsync": false, @@ -1217,6 +1234,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveScope", "summary": null, "isAsync": false, @@ -1233,6 +1251,7 @@ }, { "returnType": "ClientScope", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "FindScope", "summary": null, "isAsync": false, @@ -1249,6 +1268,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "AddCorsOrigin", "summary": null, "isAsync": false, @@ -1265,6 +1285,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "AddRedirectUri", "summary": null, "isAsync": false, @@ -1281,6 +1302,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "AddPostLogoutRedirectUri", "summary": null, "isAsync": false, @@ -1297,6 +1319,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveAllCorsOrigins", "summary": null, "isAsync": false, @@ -1307,6 +1330,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveCorsOrigin", "summary": null, "isAsync": false, @@ -1323,6 +1347,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveAllRedirectUris", "summary": null, "isAsync": false, @@ -1333,6 +1358,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveRedirectUri", "summary": null, "isAsync": false, @@ -1349,6 +1375,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveAllPostLogoutRedirectUris", "summary": null, "isAsync": false, @@ -1359,6 +1386,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemovePostLogoutRedirectUri", "summary": null, "isAsync": false, @@ -1375,6 +1403,7 @@ }, { "returnType": "ClientCorsOrigin", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "FindCorsOrigin", "summary": null, "isAsync": false, @@ -1391,6 +1420,7 @@ }, { "returnType": "ClientRedirectUri", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "FindRedirectUri", "summary": null, "isAsync": false, @@ -1407,6 +1437,7 @@ }, { "returnType": "ClientPostLogoutRedirectUri", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "FindPostLogoutRedirectUri", "summary": null, "isAsync": false, @@ -1423,6 +1454,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "AddProperty", "summary": null, "isAsync": false, @@ -1444,6 +1476,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveAllProperties", "summary": null, "isAsync": false, @@ -1454,6 +1487,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveProperty", "summary": null, "isAsync": false, @@ -1470,6 +1504,7 @@ }, { "returnType": "ClientProperty", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "FindProperty", "summary": null, "isAsync": false, @@ -1486,6 +1521,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "AddClaim", "summary": null, "isAsync": false, @@ -1507,6 +1543,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveAllClaims", "summary": null, "isAsync": false, @@ -1517,6 +1554,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveClaim", "summary": null, "isAsync": false, @@ -1533,6 +1571,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveClaim", "summary": null, "isAsync": false, @@ -1554,6 +1593,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "FindClaims", "summary": null, "isAsync": false, @@ -1570,6 +1610,7 @@ }, { "returnType": "ClientClaim", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "FindClaim", "summary": null, "isAsync": false, @@ -1591,6 +1632,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "AddIdentityProviderRestriction", "summary": null, "isAsync": false, @@ -1607,6 +1649,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveAllIdentityProviderRestrictions", "summary": null, "isAsync": false, @@ -1617,6 +1660,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "RemoveIdentityProviderRestriction", "summary": null, "isAsync": false, @@ -1633,6 +1677,7 @@ }, { "returnType": "ClientIdPRestriction", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "FindIdentityProviderRestriction", "summary": null, "isAsync": false, @@ -2067,6 +2112,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "AddUserClaim", "summary": null, "isAsync": false, @@ -2083,6 +2129,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "RemoveAllUserClaims", "summary": null, "isAsync": false, @@ -2093,6 +2140,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "RemoveClaim", "summary": null, "isAsync": false, @@ -2109,6 +2157,7 @@ }, { "returnType": "ApiScopeClaim", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "FindClaim", "summary": null, "isAsync": false, @@ -2125,6 +2174,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "AddProperty", "summary": null, "isAsync": false, @@ -2146,6 +2196,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "RemoveAllProperties", "summary": null, "isAsync": false, @@ -2156,6 +2207,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "RemoveProperty", "summary": null, "isAsync": false, @@ -2172,6 +2224,7 @@ }, { "returnType": "ApiScopeProperty", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "FindProperty", "summary": null, "isAsync": false, @@ -2369,6 +2422,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "AddSecret", "summary": null, "isAsync": false, @@ -2400,6 +2454,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "RemoveSecret", "summary": null, "isAsync": false, @@ -2421,6 +2476,7 @@ }, { "returnType": "ApiResourceSecret", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "FindSecret", "summary": null, "isAsync": false, @@ -2442,6 +2498,7 @@ }, { "returnType": "ApiResourceScope", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "AddScope", "summary": null, "isAsync": false, @@ -2458,6 +2515,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "AddUserClaim", "summary": null, "isAsync": false, @@ -2474,6 +2532,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "RemoveAllUserClaims", "summary": null, "isAsync": false, @@ -2484,6 +2543,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "RemoveClaim", "summary": null, "isAsync": false, @@ -2500,6 +2560,7 @@ }, { "returnType": "ApiResourceClaim", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "FindClaim", "summary": null, "isAsync": false, @@ -2516,6 +2577,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "RemoveAllSecrets", "summary": null, "isAsync": false, @@ -2526,6 +2588,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "RemoveAllScopes", "summary": null, "isAsync": false, @@ -2536,6 +2599,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "RemoveScope", "summary": null, "isAsync": false, @@ -2552,6 +2616,7 @@ }, { "returnType": "ApiResourceScope", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "FindScope", "summary": null, "isAsync": false, @@ -2568,6 +2633,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "AddProperty", "summary": null, "isAsync": false, @@ -2589,6 +2655,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "RemoveAllProperties", "summary": null, "isAsync": false, @@ -2599,6 +2666,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "RemoveProperty", "summary": null, "isAsync": false, @@ -2615,6 +2683,7 @@ }, { "returnType": "ApiResourceProperty", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "FindProperty", "summary": null, "isAsync": false, @@ -2760,6 +2829,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "GetListByScopeNameAsync", "summary": null, "isAsync": true, @@ -2786,6 +2856,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -2827,6 +2898,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -2848,6 +2920,7 @@ }, { "returnType": "IdentityResource", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "FindByNameAsync", "summary": null, "isAsync": true, @@ -2874,6 +2947,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", "name": "CheckNameExistAsync", "summary": null, "isAsync": true, @@ -2948,6 +3022,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.Grants", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -2989,6 +3064,7 @@ }, { "returnType": "PersistedGrant", + "namespace": "Volo.Abp.IdentityServer.Grants", "name": "FindByKeyAsync", "summary": null, "isAsync": true, @@ -3010,6 +3086,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.Grants", "name": "GetListBySubjectIdAsync", "summary": null, "isAsync": true, @@ -3031,6 +3108,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.Grants", "name": "GetListByExpirationAsync", "summary": null, "isAsync": true, @@ -3057,6 +3135,29 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Grants", + "name": "DeleteExpirationAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "DateTime", + "name": "maxExpirationDate", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Grants", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -3141,6 +3242,7 @@ "methods": [ { "returnType": "DeviceFlowCodes", + "namespace": "Volo.Abp.IdentityServer.Devices", "name": "FindByUserCodeAsync", "summary": null, "isAsync": true, @@ -3162,6 +3264,7 @@ }, { "returnType": "DeviceFlowCodes", + "namespace": "Volo.Abp.IdentityServer.Devices", "name": "FindByDeviceCodeAsync", "summary": null, "isAsync": true, @@ -3183,6 +3286,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.Devices", "name": "GetListByExpirationAsync", "summary": null, "isAsync": true, @@ -3206,6 +3310,28 @@ "isOptional": true } ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.Devices", + "name": "DeleteExpirationAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "DateTime", + "name": "maxExpirationDate", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] } ], "contentType": "repositoryInterface", @@ -3257,6 +3383,7 @@ "methods": [ { "returnType": "Client", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "FindByClientIdAsync", "summary": null, "isAsync": true, @@ -3283,6 +3410,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -3324,6 +3452,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -3345,6 +3474,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "GetAllDistinctAllowedCorsOriginsAsync", "summary": null, "isAsync": true, @@ -3361,6 +3491,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.IdentityServer.Clients", "name": "CheckClientIdExistAsync", "summary": null, "isAsync": true, @@ -3435,6 +3566,7 @@ "methods": [ { "returnType": "ApiScope", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "FindByNameAsync", "summary": null, "isAsync": true, @@ -3461,6 +3593,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "GetListByNameAsync", "summary": null, "isAsync": true, @@ -3487,6 +3620,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -3528,6 +3662,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -3549,6 +3684,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", "name": "CheckNameExistAsync", "summary": null, "isAsync": true, @@ -3623,6 +3759,7 @@ "methods": [ { "returnType": "ApiResource", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "FindByNameAsync", "summary": null, "isAsync": true, @@ -3649,6 +3786,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "FindByNameAsync", "summary": null, "isAsync": true, @@ -3675,6 +3813,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "GetListByScopesAsync", "summary": null, "isAsync": true, @@ -3701,6 +3840,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -3742,6 +3882,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -3763,6 +3904,7 @@ }, { "returnType": "Boolean", + "namespace": "Volo.Abp.IdentityServer.ApiResources", "name": "CheckNameExistAsync", "summary": null, "isAsync": true, diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json index a266ed41b3..6e763e3e8b 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.IdentityServer.EntityFrameworkCore", - "hash": "17dbfc67f1fd967841f05d2c9df3cbbf", + "hash": "", "contents": [ { "namespace": "Volo.Abp.IdentityServer.EntityFrameworkCore", @@ -67,147 +67,27 @@ { "namespace": "Volo.Abp.IdentityServer.EntityFrameworkCore", "connectionStringName": "AbpIdentityServer", - "databaseTables": [ - { - "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResource", - "contentType": "databaseTable", - "name": "IdentityServerApiResources", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", - "contentType": "databaseTable", - "name": "IdentityServerApiResourceClaims", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", - "contentType": "databaseTable", - "name": "IdentityServerApiResourceProperties", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", - "contentType": "databaseTable", - "name": "IdentityServerApiResourceScopes", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", - "contentType": "databaseTable", - "name": "IdentityServerApiResourceSecrets", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScope", - "contentType": "databaseTable", - "name": "IdentityServerApiScopes", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", - "contentType": "databaseTable", - "name": "IdentityServerApiScopeClaims", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", - "contentType": "databaseTable", - "name": "IdentityServerApiScopeProperties", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Clients.Client", - "contentType": "databaseTable", - "name": "IdentityServerClients", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientClaim", - "contentType": "databaseTable", - "name": "IdentityServerClientClaims", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", - "contentType": "databaseTable", - "name": "IdentityServerClientCorsOrigins", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientGrantType", - "contentType": "databaseTable", - "name": "IdentityServerClientGrantTypes", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", - "contentType": "databaseTable", - "name": "IdentityServerClientIdPRestrictions", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", - "contentType": "databaseTable", - "name": "IdentityServerClientPostLogoutRedirectUris", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientProperty", - "contentType": "databaseTable", - "name": "IdentityServerClientProperties", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientRedirectUri", - "contentType": "databaseTable", - "name": "IdentityServerClientRedirectUris", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientScope", - "contentType": "databaseTable", - "name": "IdentityServerClientScopes", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientSecret", - "contentType": "databaseTable", - "name": "IdentityServerClientSecrets", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", - "contentType": "databaseTable", - "name": "IdentityServerDeviceFlowCodes", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.Grants.PersistedGrant", - "contentType": "databaseTable", - "name": "IdentityServerPersistedGrants", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.IdentityResources.IdentityResource", - "contentType": "databaseTable", - "name": "IdentityServerIdentityResources", - "summary": null - }, - { - "entityFullName": "Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", - "contentType": "databaseTable", - "name": "IdentityServerIdentityResourceClaims", - "summary": null - }, + "databaseTables": [], + "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ { - "entityFullName": "Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", - "contentType": "databaseTable", - "name": "IdentityServerIdentityResourceProperties", - "summary": null + "returnType": "Void", + "namespace": "Volo.Abp.IdentityServer.EntityFrameworkCore", + "name": "ConfigureIdentityServer", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] } ], - "replacedDbContexts": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -263,6 +143,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.abppkg.analyze.json index 7e7ef739ee..a425647a3c 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.abppkg.analyze.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.IdentityServer.MongoDB", - "hash": "78375f5eb62811a80c4e7897e2f327df", + "hash": "", "contents": [ { "namespace": "Volo.Abp.IdentityServer.MongoDB", @@ -71,37 +71,37 @@ { "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResource", "contentType": "databaseCollection", - "name": "IdentityServerApiResources", + "name": "ApiResources", "summary": null }, { - "entityFullName": "Volo.Abp.IdentityServer.Clients.Client", + "entityFullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScope", "contentType": "databaseCollection", - "name": "IdentityServerClients", + "name": "ApiScopes", "summary": null }, { - "entityFullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScope", + "entityFullName": "Volo.Abp.IdentityServer.Clients.Client", "contentType": "databaseCollection", - "name": "IdentityServerApiScopes", + "name": "Clients", "summary": null }, { "entityFullName": "Volo.Abp.IdentityServer.IdentityResources.IdentityResource", "contentType": "databaseCollection", - "name": "IdentityServerIdentityResources", + "name": "IdentityResources", "summary": null }, { - "entityFullName": "Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", + "entityFullName": "Volo.Abp.IdentityServer.Grants.PersistedGrant", "contentType": "databaseCollection", - "name": "IdentityServerDeviceFlowCodes", + "name": "PersistedGrants", "summary": null }, { - "entityFullName": "Volo.Abp.IdentityServer.Grants.PersistedGrant", + "entityFullName": "Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", "contentType": "databaseCollection", - "name": "IdentityServerPersistedGrants", + "name": "DeviceFlowCodes", "summary": null } ], diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/package.json b/modules/openiddict/app/OpenIddict.Demo.Server/package.json index c3d9ed3ec4..7dad1fc3e2 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/package.json +++ b/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.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" } } diff --git a/modules/openiddict/app/angular/package.json b/modules/openiddict/app/angular/package.json index a4eef0eb86..8399146544 100644 --- a/modules/openiddict/app/angular/package.json +++ b/modules/openiddict/app/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.3.0-rc.2", - "@abp/ng.components": "~8.3.0-rc.2", - "@abp/ng.core": "~8.3.0-rc.2", - "@abp/ng.oauth": "~8.3.0-rc.2", - "@abp/ng.identity": "~8.3.0-rc.2", - "@abp/ng.setting-management": "~8.3.0-rc.2", - "@abp/ng.tenant-management": "~8.3.0-rc.2", - "@abp/ng.theme.shared": "~8.3.0-rc.2", - "@abp/ng.theme.lepton-x": "~3.3.0-rc.2", + "@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.2", + "@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", diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Microsoft/Extensions/DependencyInjection/OpenIddictServerBuilderExtensions.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Microsoft/Extensions/DependencyInjection/OpenIddictServerBuilderExtensions.cs index c99ce5e245..7ba0fc9340 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Microsoft/Extensions/DependencyInjection/OpenIddictServerBuilderExtensions.cs +++ b/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; diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs index 23f41900b5..1b8fb5d39c 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs @@ -5,6 +5,7 @@ using OpenIddict.Server; using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.Modularity; +using Volo.Abp.OpenIddict.Globalization; using Volo.Abp.OpenIddict.Scopes; using Volo.Abp.OpenIddict.WildcardDomains; using Volo.Abp.Security.Claims; @@ -135,6 +136,7 @@ public class AbpOpenIddictAspNetCoreModule : AbpModule builder.AddEventHandler(RemoveClaimsFromClientCredentialsGrantType.Descriptor); builder.AddEventHandler(AttachScopes.Descriptor); + builder.AddEventHandler(AttachCultureInfo.Descriptor); services.ExecutePreConfiguredActions(builder); }); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictOptions.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictOptions.cs index 475c13e447..84149e9b0b 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictOptions.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictOptions.cs @@ -15,4 +15,9 @@ public class AbpOpenIddictAspNetCoreOptions /// Default: true. /// public bool AddDevelopmentEncryptionAndSigningCertificate { get; set; } = true; + + /// + /// Attach auth server current culture info to response. + /// + public bool AttachCultureInfo { get; set; } = true; } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Globalization/AttachCultureInfo.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Globalization/AttachCultureInfo.cs new file mode 100644 index 0000000000..5bc093244d --- /dev/null +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Globalization/AttachCultureInfo.cs @@ -0,0 +1,43 @@ +using System.Globalization; +using System.Threading.Tasks; +using Microsoft.Extensions.Options; +using OpenIddict.Server; + +namespace Volo.Abp.OpenIddict.Globalization; + +public class AttachCultureInfo : IOpenIddictServerHandler +{ + public static OpenIddictServerHandlerDescriptor Descriptor { get; } + = OpenIddictServerHandlerDescriptor.CreateBuilder() + .UseSingletonHandler() + .SetOrder(OpenIddictServerHandlers.Authentication.AttachIssuer.Descriptor.Order + 1_000) + .SetType(OpenIddictServerHandlerType.Custom) + .Build(); + + protected IOptions Options { get; } + + public AttachCultureInfo(IOptions options) + { + Options = options; + } + + public ValueTask HandleAsync(OpenIddictServerEvents.ApplyAuthorizationResponseContext context) + { + Check.NotNull(context, nameof(context)); + + if (Options.Value.AttachCultureInfo) + { + if (!context.Response.HasParameter("culture")) + { + context.Response.SetParameter("culture", CultureInfo.CurrentCulture.Name); + } + + if (!context.Response.HasParameter("ui-culture")) + { + context.Response.SetParameter("ui-culture", CultureInfo.CurrentUICulture.Name); + } + } + + return default; + } +} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo.Abp.OpenIddict.Domain.Shared.abppkg.analyze.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo.Abp.OpenIddict.Domain.Shared.abppkg.analyze.json index a374653fc6..5778ee3f66 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo.Abp.OpenIddict.Domain.Shared.abppkg.analyze.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo.Abp.OpenIddict.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.OpenIddict.Domain.Shared", - "hash": "f6dd4c13b9e54fc791d6feb622b6bf26", + "hash": "", "contents": [ { "namespace": "Volo.Abp.OpenIddict", diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo.Abp.OpenIddict.Domain.abppkg.analyze.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo.Abp.OpenIddict.Domain.abppkg.analyze.json index 633f7567dd..6475807654 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo.Abp.OpenIddict.Domain.abppkg.analyze.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo.Abp.OpenIddict.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.OpenIddict.Domain", - "hash": "7bc7931189c97d5bef0fed5dbd107b10", + "hash": "", "contents": [ { "namespace": "Volo.Abp.OpenIddict", @@ -692,6 +692,11 @@ "namespace": "Volo.Abp.OpenIddict.Applications", "primaryKeyType": "Guid", "properties": [ + { + "type": "System.String", + "name": "ApplicationType", + "summary": "Gets or sets the application type associated with the application." + }, { "type": "System.String", "name": "ClientId", @@ -702,6 +707,11 @@ "name": "ClientSecret", "summary": "Gets or sets the client secret associated with the current application.\r\n Note: depending on the application manager used to create this instance,\r\n this property may be hashed or encrypted for security reasons." }, + { + "type": "System.String", + "name": "ClientType", + "summary": "Gets or sets the client type associated with the application." + }, { "type": "System.String", "name": "ConsentType", @@ -717,6 +727,11 @@ "name": "DisplayNames", "summary": "Gets or sets the localized display names\r\n associated with the current application,\r\n serialized as a JSON object." }, + { + "type": "System.String", + "name": "JsonWebKeySet", + "summary": "Gets or sets the JSON Web Key Set associated with\r\n the application, serialized as a JSON object." + }, { "type": "System.String", "name": "Permissions", @@ -744,8 +759,8 @@ }, { "type": "System.String", - "name": "Type", - "summary": "Gets or sets the application type associated with the current application." + "name": "Settings", + "summary": "Gets or sets the settings serialized as a JSON object." }, { "type": "System.String", @@ -807,6 +822,7 @@ "methods": [ { "returnType": "Void", + "namespace": "Volo.Abp.OpenIddict.Tokens", "name": "DeleteManyByApplicationIdAsync", "summary": null, "isAsync": true, @@ -833,6 +849,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.OpenIddict.Tokens", "name": "DeleteManyByAuthorizationIdAsync", "summary": null, "isAsync": true, @@ -857,8 +874,36 @@ } ] }, + { + "returnType": "Void", + "namespace": "Volo.Abp.OpenIddict.Tokens", + "name": "DeleteManyByAuthorizationIdsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid[]", + "name": "authorizationIds", + "isOptional": false + }, + { + "type": "Boolean", + "name": "autoSave", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Tokens", "name": "FindAsync", "summary": null, "isAsync": true, @@ -885,6 +930,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Tokens", "name": "FindAsync", "summary": null, "isAsync": true, @@ -916,6 +962,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Tokens", "name": "FindAsync", "summary": null, "isAsync": true, @@ -952,6 +999,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Tokens", "name": "FindByApplicationIdAsync", "summary": null, "isAsync": true, @@ -973,6 +1021,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Tokens", "name": "FindByAuthorizationIdAsync", "summary": null, "isAsync": true, @@ -994,6 +1043,7 @@ }, { "returnType": "OpenIddictToken", + "namespace": "Volo.Abp.OpenIddict.Tokens", "name": "FindByIdAsync", "summary": null, "isAsync": true, @@ -1015,6 +1065,7 @@ }, { "returnType": "OpenIddictToken", + "namespace": "Volo.Abp.OpenIddict.Tokens", "name": "FindByReferenceIdAsync", "summary": null, "isAsync": true, @@ -1036,6 +1087,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Tokens", "name": "FindBySubjectAsync", "summary": null, "isAsync": true, @@ -1057,6 +1109,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Tokens", "name": "ListAsync", "summary": null, "isAsync": true, @@ -1082,8 +1135,9 @@ ] }, { - "returnType": "List", - "name": "GetPruneListAsync", + "returnType": "Int64", + "namespace": "Volo.Abp.OpenIddict.Tokens", + "name": "PruneAsync", "summary": null, "isAsync": true, "isPublic": true, @@ -1096,14 +1150,31 @@ "isOptional": false }, { - "type": "Int32", - "name": "count", + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "ValueTask", + "namespace": "Volo.Abp.OpenIddict.Tokens", + "name": "RevokeByAuthorizationIdAsync", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", "isOptional": false }, { "type": "CancellationToken", "name": "cancellationToken", - "isOptional": true + "isOptional": false } ] } @@ -1157,6 +1228,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Scopes", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -1193,6 +1265,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.OpenIddict.Scopes", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -1214,6 +1287,7 @@ }, { "returnType": "OpenIddictScope", + "namespace": "Volo.Abp.OpenIddict.Scopes", "name": "FindByIdAsync", "summary": null, "isAsync": true, @@ -1235,6 +1309,7 @@ }, { "returnType": "OpenIddictScope", + "namespace": "Volo.Abp.OpenIddict.Scopes", "name": "FindByNameAsync", "summary": null, "isAsync": true, @@ -1256,6 +1331,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Scopes", "name": "FindByNamesAsync", "summary": null, "isAsync": true, @@ -1277,6 +1353,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Scopes", "name": "FindByResourceAsync", "summary": null, "isAsync": true, @@ -1298,6 +1375,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Scopes", "name": "ListAsync", "summary": null, "isAsync": true, @@ -1372,6 +1450,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Authorizations", "name": "FindAsync", "summary": null, "isAsync": true, @@ -1398,6 +1477,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Authorizations", "name": "FindAsync", "summary": null, "isAsync": true, @@ -1429,6 +1509,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Authorizations", "name": "FindAsync", "summary": null, "isAsync": true, @@ -1465,6 +1546,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Authorizations", "name": "FindByApplicationIdAsync", "summary": null, "isAsync": true, @@ -1486,6 +1568,7 @@ }, { "returnType": "OpenIddictAuthorization", + "namespace": "Volo.Abp.OpenIddict.Authorizations", "name": "FindByIdAsync", "summary": null, "isAsync": true, @@ -1507,6 +1590,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Authorizations", "name": "FindBySubjectAsync", "summary": null, "isAsync": true, @@ -1528,6 +1612,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Authorizations", "name": "ListAsync", "summary": null, "isAsync": true, @@ -1553,8 +1638,9 @@ ] }, { - "returnType": "List", - "name": "GetPruneListAsync", + "returnType": "Int64", + "namespace": "Volo.Abp.OpenIddict.Authorizations", + "name": "PruneAsync", "summary": null, "isAsync": true, "isPublic": true, @@ -1566,11 +1652,6 @@ "name": "date", "isOptional": false }, - { - "type": "Int32", - "name": "count", - "isOptional": false - }, { "type": "CancellationToken", "name": "cancellationToken", @@ -1628,6 +1709,7 @@ "methods": [ { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Applications", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -1664,6 +1746,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.OpenIddict.Applications", "name": "GetCountAsync", "summary": null, "isAsync": true, @@ -1685,6 +1768,7 @@ }, { "returnType": "OpenIddictApplication", + "namespace": "Volo.Abp.OpenIddict.Applications", "name": "FindByClientIdAsync", "summary": null, "isAsync": true, @@ -1706,6 +1790,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Applications", "name": "FindByPostLogoutRedirectUriAsync", "summary": null, "isAsync": true, @@ -1727,6 +1812,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Applications", "name": "FindByRedirectUriAsync", "summary": null, "isAsync": true, @@ -1748,6 +1834,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.OpenIddict.Applications", "name": "ListAsync", "summary": null, "isAsync": true, diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo.Abp.OpenIddict.EntityFrameworkCore.abppkg.analyze.json b/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo.Abp.OpenIddict.EntityFrameworkCore.abppkg.analyze.json index cda46414df..6978ff01a7 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo.Abp.OpenIddict.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo.Abp.OpenIddict.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.OpenIddict.EntityFrameworkCore", - "hash": "15ae177e740932706726e9ba9e5e8b3e", + "hash": "", "contents": [ { "namespace": "Volo.Abp.OpenIddict.EntityFrameworkCore", @@ -67,33 +67,27 @@ { "namespace": "Volo.Abp.OpenIddict.EntityFrameworkCore", "connectionStringName": "AbpOpenIddict", - "databaseTables": [ - { - "entityFullName": "Volo.Abp.OpenIddict.Applications.OpenIddictApplication", - "contentType": "databaseTable", - "name": "OpenIddictApplications", - "summary": null - }, - { - "entityFullName": "Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", - "contentType": "databaseTable", - "name": "OpenIddictAuthorizations", - "summary": null - }, - { - "entityFullName": "Volo.Abp.OpenIddict.Scopes.OpenIddictScope", - "contentType": "databaseTable", - "name": "OpenIddictScopes", - "summary": null - }, + "databaseTables": [], + "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ { - "entityFullName": "Volo.Abp.OpenIddict.Tokens.OpenIddictToken", - "contentType": "databaseTable", - "name": "OpenIddictTokens", - "summary": null + "returnType": "Void", + "namespace": "Volo.Abp.OpenIddict.EntityFrameworkCore", + "name": "ConfigureOpenIddict", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] } ], - "replacedDbContexts": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -149,6 +143,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo.Abp.OpenIddict.MongoDB.abppkg.analyze.json b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo.Abp.OpenIddict.MongoDB.abppkg.analyze.json index 3ed6e04f73..98bae6abd8 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo.Abp.OpenIddict.MongoDB.abppkg.analyze.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo.Abp.OpenIddict.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.OpenIddict.MongoDB", - "hash": "c523d1992cdfef4210763a2d4609779e", + "hash": "", "contents": [ { "namespace": "Volo.Abp.OpenIddict.MongoDB", @@ -69,27 +69,27 @@ "connectionStringName": "AbpOpenIddict", "databaseCollections": [ { - "entityFullName": "Volo.Abp.OpenIddict.Scopes.OpenIddictScope", + "entityFullName": "Volo.Abp.OpenIddict.Applications.OpenIddictApplication", "contentType": "databaseCollection", - "name": "OpenIddictScopes", + "name": "Applications", "summary": null }, { "entityFullName": "Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", "contentType": "databaseCollection", - "name": "OpenIddictAuthorizations", + "name": "Authorizations", "summary": null }, { - "entityFullName": "Volo.Abp.OpenIddict.Tokens.OpenIddictToken", + "entityFullName": "Volo.Abp.OpenIddict.Scopes.OpenIddictScope", "contentType": "databaseCollection", - "name": "OpenIddictTokens", + "name": "Scopes", "summary": null }, { - "entityFullName": "Volo.Abp.OpenIddict.Applications.OpenIddictApplication", + "entityFullName": "Volo.Abp.OpenIddict.Tokens.OpenIddictToken", "contentType": "databaseCollection", - "name": "OpenIddictApplications", + "name": "Tokens", "summary": null } ], diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo.Abp.PermissionManagement.Application.Contracts.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo.Abp.PermissionManagement.Application.Contracts.abppkg.analyze.json index 5adbe608d9..bbfdbd10d9 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo.Abp.PermissionManagement.Application.Contracts.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo.Abp.PermissionManagement.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.Application.Contracts", - "hash": "ff59ff5b2d869012729f9c27ff07fa59", + "hash": "", "contents": [ { "namespace": "Volo.Abp.PermissionManagement", diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo.Abp.PermissionManagement.Application.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo.Abp.PermissionManagement.Application.abppkg.analyze.json index 25cbab98c0..bc689ccd41 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo.Abp.PermissionManagement.Application.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo.Abp.PermissionManagement.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.Application", - "hash": "79a7cac0023cd7e3a88b63544271c8e0", + "hash": "", "contents": [ { "namespace": "Volo.Abp.PermissionManagement", @@ -136,6 +136,7 @@ "methods": [ { "returnType": "GetPermissionListResultDto", + "namespace": "Volo.Abp.PermissionManagement", "name": "GetAsync", "summary": null, "isAsync": true, @@ -157,6 +158,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.PermissionManagement", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -185,6 +187,93 @@ "contentType": "applicationService", "name": "PermissionAppService", "summary": null + }, + { + "namespace": "Volo.Abp.PermissionManagement.Integration", + "baseClass": { + "name": "ApplicationService", + "namespace": "Volo.Abp.Application.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Application", + "fullName": "Volo.Abp.Application.Services.ApplicationService" + }, + "implementingInterfaces": [ + { + "name": "IApplicationService", + "namespace": "Volo.Abp.Application.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" + }, + { + "name": "IRemoteService", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" + }, + { + "name": "IAvoidDuplicateCrossCuttingConcerns", + "namespace": "Volo.Abp.Aspects", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" + }, + { + "name": "IValidationEnabled", + "namespace": "Volo.Abp.Validation", + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" + }, + { + "name": "IUnitOfWorkEnabled", + "namespace": "Volo.Abp.Uow", + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" + }, + { + "name": "IAuditingEnabled", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" + }, + { + "name": "IGlobalFeatureCheckingEnabled", + "namespace": "Volo.Abp.GlobalFeatures", + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IPermissionIntegrationService", + "namespace": "Volo.Abp.PermissionManagement.Integration", + "declaringAssemblyName": "Volo.Abp.PermissionManagement.Application.Contracts", + "fullName": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService" + } + ], + "methods": [ + { + "returnType": "ListResultDto", + "namespace": "Volo.Abp.PermissionManagement.Integration", + "name": "IsGrantedAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "List", + "name": "input", + "isOptional": false + } + ] + } + ], + "contentType": "applicationService", + "name": "PermissionIntegrationService", + "summary": null } ] } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.Server/Volo.Abp.PermissionManagement.Blazor.Server.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.Server/Volo.Abp.PermissionManagement.Blazor.Server.abppkg.analyze.json new file mode 100644 index 0000000000..b374423a34 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.Server/Volo.Abp.PermissionManagement.Blazor.Server.abppkg.analyze.json @@ -0,0 +1,68 @@ +{ + "name": "Volo.Abp.PermissionManagement.Blazor.Server", + "hash": "", + "contents": [ + { + "namespace": "Volo.Abp.PermissionManagement.Blazor.Server", + "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.Blazor", + "namespace": "Volo.Abp.PermissionManagement.Blazor", + "name": "AbpPermissionManagementBlazorModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AspNetCore.Components.Server.Theming", + "namespace": "Volo.Abp.AspNetCore.Components.Server.Theming", + "name": "AbpAspNetCoreComponentsServerThemingModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "AbpPermissionManagementBlazorServerModule", + "summary": null + } + ] +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Volo.Abp.PermissionManagement.Blazor.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Volo.Abp.PermissionManagement.Blazor.abppkg.analyze.json new file mode 100644 index 0000000000..da772e4123 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Volo.Abp.PermissionManagement.Blazor.abppkg.analyze.json @@ -0,0 +1,79 @@ +{ + "name": "Volo.Abp.PermissionManagement.Blazor", + "hash": "", + "contents": [ + { + "namespace": "Volo.Abp.PermissionManagement.Blazor", + "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.AspNetCore.Components.Web.Theming", + "namespace": "Volo.Abp.AspNetCore.Components.Web.Theming", + "name": "AbpAspNetCoreComponentsWebThemingModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AutoMapper", + "namespace": "Volo.Abp.AutoMapper", + "name": "AbpAutoMapperModule" + }, + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.Application.Contracts", + "namespace": "Volo.Abp.PermissionManagement", + "name": "AbpPermissionManagementApplicationContractsModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "AbpPermissionManagementBlazorModule", + "summary": null + }, + { + "namespace": "Volo.Abp.PermissionManagement.Blazor.Components", + "contentType": "webPage", + "name": "PermissionManagementModal", + "summary": null + } + ] +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.abppkg.analyze.json index d52d0be711..3d2c25d8c3 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.Domain.Shared", - "hash": "8d71916b9616b7e4dedfd03b7468a1b8", + "hash": "", "contents": [ { "namespace": "Volo.Abp.PermissionManagement", diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.abppkg.analyze.json index 97a9c45861..a6f3e6528d 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.Domain", - "hash": "5fdb46829763b28e9bc9a5be7d3965aa", + "hash": "", "contents": [ { "namespace": "Volo.Abp.PermissionManagement", @@ -156,6 +156,7 @@ "methods": [ { "returnType": "Boolean", + "namespace": "Volo.Abp.PermissionManagement", "name": "HasSameData", "summary": null, "isAsync": false, @@ -172,6 +173,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.PermissionManagement", "name": "Patch", "summary": null, "isAsync": false, @@ -192,11 +194,6 @@ "namespace": "Volo.Abp.PermissionManagement", "primaryKeyType": "Guid", "properties": [ - { - "type": "System.Guid", - "name": "Id", - "summary": null - }, { "type": "System.String", "name": "GroupName", @@ -295,6 +292,7 @@ "methods": [ { "returnType": "Boolean", + "namespace": "Volo.Abp.PermissionManagement", "name": "HasSameData", "summary": null, "isAsync": false, @@ -311,6 +309,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.PermissionManagement", "name": "Patch", "summary": null, "isAsync": false, @@ -331,11 +330,6 @@ "namespace": "Volo.Abp.PermissionManagement", "primaryKeyType": "Guid", "properties": [ - { - "type": "System.Guid", - "name": "Id", - "summary": null - }, { "type": "System.String", "name": "Name", @@ -401,6 +395,7 @@ "methods": [ { "returnType": "PermissionDefinitionRecord", + "namespace": "Volo.Abp.PermissionManagement", "name": "FindByNameAsync", "summary": null, "isAsync": true, @@ -470,6 +465,7 @@ "methods": [ { "returnType": "PermissionGrant", + "namespace": "Volo.Abp.PermissionManagement", "name": "FindAsync", "summary": null, "isAsync": true, @@ -501,6 +497,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.PermissionManagement", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -527,6 +524,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.PermissionManagement", "name": "GetListAsync", "summary": null, "isAsync": true, diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.abppkg.analyze.json index a6e55276a6..099ce4d6cc 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.EntityFrameworkCore", - "hash": "0dd0efed5fec2360dd19217eb02c8343", + "hash": "", "contents": [ { "namespace": "Volo.Abp.PermissionManagement.EntityFrameworkCore", @@ -67,27 +67,27 @@ { "namespace": "Volo.Abp.PermissionManagement.EntityFrameworkCore", "connectionStringName": "AbpPermissionManagement", - "databaseTables": [ - { - "entityFullName": "Volo.Abp.PermissionManagement.PermissionDefinitionRecord", - "contentType": "databaseTable", - "name": "AbpPermissions", - "summary": null - }, - { - "entityFullName": "Volo.Abp.PermissionManagement.PermissionGrant", - "contentType": "databaseTable", - "name": "AbpPermissionGrants", - "summary": null - }, + "databaseTables": [], + "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ { - "entityFullName": "Volo.Abp.PermissionManagement.PermissionGroupDefinitionRecord", - "contentType": "databaseTable", - "name": "AbpPermissionGroups", - "summary": null + "returnType": "Void", + "namespace": "Volo.Abp.PermissionManagement.EntityFrameworkCore", + "name": "ConfigurePermissionManagement", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] } ], - "replacedDbContexts": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -143,6 +143,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.abppkg.analyze.json index d6e743f841..bad2a3d1b1 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.HttpApi.Client", - "hash": "d148a3deb0693369b6ac043923b7dd6a", + "hash": "", "contents": [ { "namespace": "Volo.Abp.PermissionManagement", diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.abppkg.analyze.json index c9314a1775..951b30cdbd 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.HttpApi", - "hash": "7250e0a57ae6777cf200341791f24bdd", + "hash": "", "contents": [ { "namespace": "Volo.Abp.PermissionManagement.HttpApi", @@ -63,6 +63,51 @@ "contentType": "abpModule", "name": "AbpPermissionManagementHttpApiModule", "summary": null + }, + { + "apis": [ + { + "path": "api/permission-management/permissions", + "method": "GET", + "groupName": "Permissions", + "responseType": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "responseTypeAsJson": "{\r\n \"entityDisplayName\": \"string\",\r\n \"groups\": [\r\n {\r\n \"name\": \"string\",\r\n \"displayName\": \"string\",\r\n \"displayNameKey\": \"string\",\r\n \"displayNameResource\": \"string\",\r\n \"permissions\": [\r\n {\r\n \"name\": \"string\",\r\n \"displayName\": \"string\",\r\n \"parentName\": \"string\",\r\n \"isGranted\": false,\r\n \"allowedProviders\": [\r\n \"string\"\r\n ],\r\n \"grantedProviders\": [\r\n {\r\n \"providerName\": \"string\",\r\n \"providerKey\": \"string\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", + "parameterDescriptions": [ + { + "name": "providerName", + "type": "String" + }, + { + "name": "providerKey", + "type": "String" + } + ] + }, + { + "path": "api/permission-management/permissions", + "method": "PUT", + "groupName": "Permissions", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "providerName", + "type": "String" + }, + { + "name": "providerKey", + "type": "String" + }, + { + "name": "input", + "type": "UpdatePermissionsDto" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null } ] } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.abppkg.analyze.json index a86ff5892d..ab836e4108 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.MongoDB", - "hash": "33af874bb56ed9db03c5e7b77e15f321", + "hash": "", "contents": [ { "namespace": "Volo.Abp.PermissionManagement.MongoDB", @@ -71,19 +71,19 @@ { "entityFullName": "Volo.Abp.PermissionManagement.PermissionGroupDefinitionRecord", "contentType": "databaseCollection", - "name": "AbpPermissionGroups", + "name": "PermissionGroups", "summary": null }, { "entityFullName": "Volo.Abp.PermissionManagement.PermissionDefinitionRecord", "contentType": "databaseCollection", - "name": "AbpPermissions", + "name": "Permissions", "summary": null }, { "entityFullName": "Volo.Abp.PermissionManagement.PermissionGrant", "contentType": "databaseCollection", - "name": "AbpPermissionGrants", + "name": "PermissionGrants", "summary": null } ], diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.abppkg.analyze.json index 0213be3e83..0b6bbe7fa9 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.PermissionManagement.Web", - "hash": "0499a3058051b1ccbf1cb53b7731f1c8", + "hash": "", "contents": [ { "namespace": "Volo.Abp.PermissionManagement.Web", @@ -68,6 +68,12 @@ "contentType": "abpModule", "name": "AbpPermissionManagementWebModule", "summary": null + }, + { + "namespace": "Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement", + "contentType": "webPage", + "name": "PermissionManagementModal", + "summary": null } ] } \ No newline at end of file diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json index 927838e3ad..78fa030754 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json +++ b/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.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock index 5882b2ed65..d19b65bc24 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock +++ b/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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.2.tgz#8699581833e045c1a0e0d402c793c6fe47c8c4aa" - integrity sha512-DLVzeMAaa/1Q6ej4hOjRGYBBkuNMqmIu0ko6g8kYHutqveffUL7wyf+Dc1BJHyHlUSiL/LE0zbeaGjmG1TOVwQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.2.tgz#eacc811b84cec3be59723c629f8dc7116547b9b2" - integrity sha512-1MT2cBQyrp8/pzdvpQgn7n4JafyKoclZlSaYebGt5JmKa1rDp66pAw0zrIrRVdwfojhYbZxsZ3uvsfmbpiRo9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0-rc.2" - "@abp/bootstrap" "~8.3.0-rc.2" - "@abp/bootstrap-datepicker" "~8.3.0-rc.2" - "@abp/bootstrap-daterangepicker" "~8.3.0-rc.2" - "@abp/datatables.net-bs5" "~8.3.0-rc.2" - "@abp/font-awesome" "~8.3.0-rc.2" - "@abp/jquery-form" "~8.3.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~8.3.0-rc.2" - "@abp/lodash" "~8.3.0-rc.2" - "@abp/luxon" "~8.3.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.2" - "@abp/moment" "~8.3.0-rc.2" - "@abp/select2" "~8.3.0-rc.2" - "@abp/sweetalert2" "~8.3.0-rc.2" - "@abp/timeago" "~8.3.0-rc.2" - "@abp/toastr" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.2.tgz#58372b05fd1765a384e57ee53088b3ace4873e53" - integrity sha512-jswnQx7JoOGmfrqGnS8U+dP7trdxHtM4ZJUvlz/SLQb8OeRxoQyLr4YQhpNa4cnKzN4hrXDlITp22Z3Pn3kQ9g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.2.tgz#22d4944c20b85502e3b40a20e4f3a7085ca43c20" - integrity sha512-PO6xa7ss5YyZN9ofWlMkLr8f5hto/hHNz3x8yJma2he8zaoqMz85DByYPaH1yM5CiVN+RtEUCD9MLHmDwvaLZA== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.2.tgz#fc5d920b16a126b5d4c492f2aa807d3bb5b74cec" - integrity sha512-WrB8XeiYrFyiCWpWlWW2OUEu2MP8ZGPVRnHrTcNLe6rcp8Kj7dlzOrp6MpyJH7/lhgCTVqujoBCvphD9OOS33g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.2.tgz#07feafd950bb88971a8d3d5c1fdfc170d84fe13a" - integrity sha512-1v/nIxwb//tuI1ieGixxvfkcFvVvy1pXIOtL74d99iY7jU4gdNZcIO22qtmS9kTd55dI0FbOS7bERo4pozR+3g== +"@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.2" + "@abp/core" "~8.3.0" bootstrap "^5.3.3" -"@abp/core@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.2.tgz#63455a6bff294ee93fd8cbec5f0f9a994cf35322" - integrity sha512-RoYUz1y2ZMdAzO6nSZirtYSsEqeW5uBJxnzREkT0DFj1LrB6ywnzdV05GCKbhBcNhp2gDKEGHqCPS4HOMb2uWg== +"@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.2" + "@abp/utils" "~8.3.0" -"@abp/datatables.net-bs5@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.2.tgz#eb75b855595e264510b29adc4e2d01820752d4a3" - integrity sha512-/OTF0rsGqGXCSL+Nec07IP4O0oqdMgAXxgu6gxsjCnjGodhDtQioUbFC8SI8H8aOYBerVHWfMSMLgpJbGbS8eA== +"@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.2" + "@abp/datatables.net" "~8.3.0" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.2.tgz#38f510bb294650881b494798fe33ce9b0c0376ef" - integrity sha512-GFV343oOGwIC3giAuTuKWzuDmIDyQkn+Sr+wLCCExn3gq9OIJI5COCCD1RIp7L9SU4t3CnzJGjvi5Qzq8iLbtQ== +"@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.2" + "@abp/jquery" "~8.3.0" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.2.tgz#c97d656e1a1df8081180d9644d4734da36787c15" - integrity sha512-dUQXDxvAolfksLOIj71gSi+L8L4gvri6Wi8F3CDTgRKDEPRQ9RN0T4bqkMfeTioTeXCHpeqR4YftmmxylOWQhQ== +"@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.2" + "@abp/core" "~8.3.0" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.2.tgz#eecc01b21cb2b8ad0f889662175ca66c6d8f2fe4" - integrity sha512-ng5QHRxGE/aYzSjSXTI84L80xn/fyXSXF1hLgVT2teOR/6XWe7FmDv/SSrYi0oRopeY5dgDrzVpKp2j7+qx/yg== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.2.tgz#6606b71c0043e0a2e382ee07ee2de840ac12b545" - integrity sha512-oS2t9M6j4YI6QSETDZw67fqhpyvpWSpvC/RiuWvMhBKZOWyNPMT3b/42Fz2LI22xSODwNM7jaESEUbdo11PI3Q== +"@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.2" + "@abp/jquery-validation" "~8.3.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.2.tgz#028d9e6c1e94b1c1f9c64607f35d992857fe3121" - integrity sha512-8QmoVDQpbjl/ggfbsXPh1kf3XxFCtuyykeLdhCqYurLSw9UHejDtc/7lJA85L6eiFAjJs6VzbdP9ORnlWyOYgQ== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.2.tgz#4b40ace6d7e7331b1ff5fa41d9a7ce724def7808" - integrity sha512-HDUXVXrHa/HHbkhfLDwxIr6NNQLz+R9M/Gf8+UsxDnzevWZw9hzkwQnO3RWcK99hyaeURA2DEKLGSGa7ip3qfg== +"@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.2" + "@abp/core" "~8.3.0" jquery "~3.7.1" -"@abp/lodash@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.2.tgz#3d714095ac1985bb9688a4a2f7d2b6e439fbab50" - integrity sha512-fhjtXi7pWlNlCbayU2BqeLAbYyds5HlHF0jrqitXS6r07l6VIru5f5f1h1yd3T5RIwoA0ZT9ZrICqvxH9iQA/w== +"@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.2" + "@abp/core" "~8.3.0" lodash "^4.17.21" -"@abp/luxon@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.2.tgz#67e64aed26d7f521b76271656bed8ae19b3da00f" - integrity sha512-uajtkxqRlWK1jACB53lOhF7g8Rj+S9CCHSm2uNuAGcAK30kEZQfLEZTLzzOJ/evqDTiBay1hNYAPHnzY7Uigzw== +"@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.2" + "@abp/core" "~8.3.0" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.2.tgz#e3170cf9ed7a333040151bc1c70405d7e9269e80" - integrity sha512-GLPLnh89ebM6i3EyMjzSYtukT1lU5MSEJ/A18zIzDYgH9SUMFMe4yFJtGDngUtyzQA23hyuHcj3u1CIgPtKuGQ== +"@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.2" + "@abp/core" "~8.3.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.2.tgz#cfa76dba9731e03f24acabe8d254c077b683b99a" - integrity sha512-2JglkMbePjxoHRBjd52MGFMqWwzDdmer1hpPJ7BvznL4tklXtSg+Q7D2z7VB1bv+ZAe31cqI8IxwdxWf2eyOmw== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.2.tgz#ccf997047e75bfdf30b263201cbce6d2257c7348" - integrity sha512-ERQ/Zb8xzL704a2DLoM6ZD3IhH07MeIGn4UBhD/A3n14Yxu82Vi8qOdl+R6f0JhsDGmif/nuovxbUizFeSKmYg== +"@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.2" + "@abp/core" "~8.3.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.2.tgz#27afcabd6c3a10e76979102f5d143b404f38213c" - integrity sha512-ZloFEPOPWXiyKGdxtxyMGglamf8shTZAzhcUlxeqwRRsTlo342LI0iopOHDQ2Kfqmeua9xgj+nhX7zc6Kh0A0w== +"@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.2" + "@abp/core" "~8.3.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.2.tgz#1194a6f049b452141bd5714faff1e1fd8da20800" - integrity sha512-8Z82DPOZYEzfYevVELC1W5L4OdMHDGVZ00QAQqFv/XGTGjMVZeTvfpXKqpEcUYPMUVHcNWU3yLkIUZXGj1qXOw== +"@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.2" + "@abp/jquery" "~8.3.0" timeago "^1.6.7" -"@abp/toastr@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.2.tgz#ef5f08f894510516d055aa4ee2abf8f311a73879" - integrity sha512-syQJ87TVjkDegJBdsP+YfEK8I9zq3mDmLOQrEKRU2z3yX0qdc6zIRSCPTAkyBxf4C4gvdr4dNJJN/uKToaAo2Q== +"@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.2" + "@abp/jquery" "~8.3.0" toastr "^2.1.4" -"@abp/utils@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.2.tgz#9acb10e775c734dac2d4c48ade47c365448bbacc" - integrity sha512-jbXbkOWseh7tqqfX7jSsERFDr/Q89FUKz81rRx5jii2RuXnc9wG9E7BSG0wCQ6+o39dgpsSjKbQgwjnjBJrpJQ== +"@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" diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo.Abp.SettingManagement.Application.Contracts.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo.Abp.SettingManagement.Application.Contracts.abppkg.analyze.json index f08e228750..a366802a26 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo.Abp.SettingManagement.Application.Contracts.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo.Abp.SettingManagement.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.Application.Contracts", - "hash": "212ba33f01b4091ceedd07b742d142bb", + "hash": "", "contents": [ { "namespace": "Volo.Abp.SettingManagement", @@ -82,6 +82,13 @@ "contentType": "permission", "name": "SettingManagement.Emailing.Test", "summary": null + }, + { + "displayName": "Time zone", + "isEnabled": true, + "contentType": "permission", + "name": "SettingManagement.TimeZone", + "summary": null } ] } \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json index 8476bfee4c..47160bc535 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.Application", - "hash": "e101768281ffae14eab8cdfd970a3b0f", + "hash": "", "contents": [ { "namespace": "Volo.Abp.SettingManagement", @@ -24,6 +24,16 @@ "declaringAssemblyName": "Volo.Abp.Emailing", "namespace": "Volo.Abp.Emailing", "name": "AbpEmailingModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Timing", + "namespace": "Volo.Abp.Timing", + "name": "AbpTimingModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Users.Abstractions", + "namespace": "Volo.Abp.Users", + "name": "AbpUsersAbstractionModule" } ], "implementingInterfaces": [ @@ -141,6 +151,7 @@ "methods": [ { "returnType": "EmailSettingsDto", + "namespace": "Volo.Abp.SettingManagement", "name": "GetAsync", "summary": null, "isAsync": true, @@ -151,6 +162,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.SettingManagement", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -167,6 +179,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.SettingManagement", "name": "SendTestEmailAsync", "summary": null, "isAsync": true, @@ -185,6 +198,115 @@ "contentType": "applicationService", "name": "EmailSettingsAppService", "summary": null + }, + { + "namespace": "Volo.Abp.SettingManagement", + "baseClass": { + "name": "SettingManagementAppServiceBase", + "namespace": "Volo.Abp.SettingManagement", + "declaringAssemblyName": "Volo.Abp.SettingManagement.Application", + "fullName": "Volo.Abp.SettingManagement.SettingManagementAppServiceBase" + }, + "implementingInterfaces": [ + { + "name": "IApplicationService", + "namespace": "Volo.Abp.Application.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" + }, + { + "name": "IRemoteService", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" + }, + { + "name": "IAvoidDuplicateCrossCuttingConcerns", + "namespace": "Volo.Abp.Aspects", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" + }, + { + "name": "IValidationEnabled", + "namespace": "Volo.Abp.Validation", + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" + }, + { + "name": "IUnitOfWorkEnabled", + "namespace": "Volo.Abp.Uow", + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" + }, + { + "name": "IAuditingEnabled", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" + }, + { + "name": "IGlobalFeatureCheckingEnabled", + "namespace": "Volo.Abp.GlobalFeatures", + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "ITimeZoneSettingsAppService", + "namespace": "Volo.Abp.SettingManagement", + "declaringAssemblyName": "Volo.Abp.SettingManagement.Application.Contracts", + "fullName": "Volo.Abp.SettingManagement.ITimeZoneSettingsAppService" + } + ], + "methods": [ + { + "returnType": "String", + "namespace": "Volo.Abp.SettingManagement", + "name": "GetAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [] + }, + { + "returnType": "List", + "namespace": "Volo.Abp.SettingManagement", + "name": "GetTimezonesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.SettingManagement", + "name": "UpdateAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "timezone", + "isOptional": false + } + ] + } + ], + "contentType": "applicationService", + "name": "TimeZoneSettingsAppService", + "summary": null } ] } \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs index 2d15cb09fb..9cc6aa5bd0 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs @@ -1,6 +1,7 @@ using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.Logging; using Volo.Abp.Emailing; using Volo.Abp.MultiTenancy; using Volo.Abp.Features; @@ -68,7 +69,15 @@ public class EmailSettingsAppService : SettingManagementAppServiceBase, IEmailSe { await CheckFeatureAsync(); - await EmailSender.SendAsync(input.SenderEmailAddress, input.TargetEmailAddress, input.Subject, input.Body); + try + { + await EmailSender.SendAsync(input.SenderEmailAddress, input.TargetEmailAddress, input.Subject, input.Body); + } + catch (Exception e) + { + Logger.LogError("Error sending test email: " + e); + throw new UserFriendlyException(L["MailSendingFailed"]); + } } protected virtual async Task CheckFeatureAsync() diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.Server/Volo.Abp.SettingManagement.Blazor.Server.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.Server/Volo.Abp.SettingManagement.Blazor.Server.abppkg.analyze.json new file mode 100644 index 0000000000..6854bbe6ab --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.Server/Volo.Abp.SettingManagement.Blazor.Server.abppkg.analyze.json @@ -0,0 +1,68 @@ +{ + "name": "Volo.Abp.SettingManagement.Blazor.Server", + "hash": "", + "contents": [ + { + "namespace": "Volo.Abp.SettingManagement.Blazor.Server", + "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.Blazor", + "namespace": "Volo.Abp.SettingManagement.Blazor", + "name": "AbpSettingManagementBlazorModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AspNetCore.Components.Server.Theming", + "namespace": "Volo.Abp.AspNetCore.Components.Server.Theming", + "name": "AbpAspNetCoreComponentsServerThemingModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "AbpSettingManagementBlazorServerModule", + "summary": null + } + ] +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Volo.Abp.SettingManagement.Blazor.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Volo.Abp.SettingManagement.Blazor.abppkg.analyze.json new file mode 100644 index 0000000000..e9362aea97 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Volo.Abp.SettingManagement.Blazor.abppkg.analyze.json @@ -0,0 +1,85 @@ +{ + "name": "Volo.Abp.SettingManagement.Blazor", + "hash": "", + "contents": [ + { + "namespace": "Volo.Abp.SettingManagement.Blazor", + "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.AutoMapper", + "namespace": "Volo.Abp.AutoMapper", + "name": "AbpAutoMapperModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AspNetCore.Components.Web.Theming", + "namespace": "Volo.Abp.AspNetCore.Components.Web.Theming", + "name": "AbpAspNetCoreComponentsWebThemingModule" + }, + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.Application.Contracts", + "namespace": "Volo.Abp.SettingManagement", + "name": "AbpSettingManagementApplicationContractsModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "AbpSettingManagementBlazorModule", + "summary": null + }, + { + "namespace": "Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement.TimeZoneSettingGroup", + "contentType": "webPage", + "name": "TimeZoneSettingGroupViewComponent", + "summary": null + }, + { + "namespace": "Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement.EmailSettingGroup", + "contentType": "webPage", + "name": "EmailSettingGroupViewComponent", + "summary": null + } + ] +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.abppkg.analyze.json index 9879af1346..3fffa604d6 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.Domain.Shared", - "hash": "2f93f4bc80c473a7680b5edd11fe138a", + "hash": "", "contents": [ { "namespace": "Volo.Abp.SettingManagement", @@ -84,7 +84,7 @@ "valueType": "ToggleStringValueType", "defaultValue": "false", "displayName": "Allow changing email settings.", - "description": null, + "description": "", "isAvailableToHost": false, "isVisibleToClients": true, "contentType": "feature", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json index ffddca67f0..0ca180a665 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ar.json @@ -15,6 +15,7 @@ "TestEmailSubject": "اختبار البريد الإلكتروني {0}", "TestEmailBody": "اختبار نص رسالة البريد الإلكتروني هنا", "SuccessfullySent": "أرسلت بنجاح", + "MailSendingFailed": "فشل إرسال البريد ، يرجى التحقق من تكوين البريد الإلكتروني الخاص بك والمحاولة مرة أخرى.", "Send": "يرسل", "Menu:Emailing": "إرسال بالبريد الإلكتروني", "Menu:TimeZone": "وحدة زمنية", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json index db40a302ab..898fbfe841 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/cs.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Testovací e-mail {0}", "TestEmailBody": "Test těla e-mailové zprávy zde", "SuccessfullySent": "Úspěšně odesláno", + "MailSendingFailed": "Odesílání e-mailu se nezdařilo. Zkontrolujte konfiguraci e-mailu a zkuste to znovu.", "Send": "Poslat", "Menu:Emailing": "Zasílání e-mailem", "Menu:TimeZone": "Časové Pásmo", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json index 486208a35a..3653f69a92 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de-DE.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Test E-Mail {0}", "TestEmailBody": "Test E-Mail Nachricht hier eingeben", "SuccessfullySent": "Erfolgreich gesendet", + "MailSendingFailed": "E-Mail-Versand fehlgeschlagen. Bitte überprüfen Sie Ihre E-Mail-Konfiguration und versuchen Sie es erneut.", "Send": "Senden", "Menu:Emailing": "E-Mail", "Menu:TimeZone": "Zeitzone", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json index e908e08d2d..211100a71f 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/de.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Test-E-Mail {0}", "TestEmailBody": "Testen Sie hier die E-Mail-Textnachricht", "SuccessfullySent": "Erfolgreich gesendet", + "MailSendingFailed": "E-Mail-Versand fehlgeschlagen. Bitte überprüfen Sie Ihre E-Mail-Konfiguration und versuchen Sie es erneut.", "Send": "Schicken", "Menu:Emailing": "E-Mail senden", "Menu:TimeZone": "Zeitzone", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json index a6a6cbf6af..29ec725ae5 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/el.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Δοκιμαστικό email {0}", "TestEmailBody": "Δοκιμαστικό κείμενο email εδώ", "SuccessfullySent": "Στάλθηκε με επιτυχία", + "MailSendingFailed": "Αποτυχία αποστολής email. Ελέγξτε τη διαμόρφωση του email σας και δοκιμάστε ξανά.", "Send": "Αποστολή", "Menu:Emailing": "Αποστολή email", "SmtpHost": "Διακομιστής", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json index 09d52cf468..7c672ee019 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Test email {0}", "TestEmailBody": "Test email body message here", "SuccessfullySent": "Successfully sent", + "MailSendingFailed": "Mail sending failed, please check your email configuration and try again.", "Send": "Send", "Menu:Emailing": "Emailing", "Menu:TimeZone": "Time Zone", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json index f194b92c3c..75ed8ac019 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/es.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Correo electrónico de prueba {0}", "TestEmailBody": "Pruebe el cuerpo del mensaje de correo electrónico aquí", "SuccessfullySent": "Enviado exitosamente", + "MailSendingFailed": "Error al enviar el correo, por favor revise su configuración de correo y vuelva a intentarlo.", "Send": "Enviar", "Menu:Emailing": "Configuración", "Menu:TimeZone": "Zona Horaria", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json index 2d96634dd1..bedcaceb67 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fi.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Testisähköposti {0}", "TestEmailBody": "Testaa sähköpostiviestiä täällä", "SuccessfullySent": "Lähetetty onnistuneesti", + "MailSendingFailed": "Sähköpostin lähetys epäonnistui. Tarkista sähköpostiasetuksesi ja yritä uudelleen.", "Send": "Lähetä", "Menu:Emailing": "Sähköpostiviestit", "Menu:TimeZone": "Aikavyöhyke", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json index a9ed890fff..ec4af0e774 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/fr.json @@ -15,6 +15,7 @@ "TestEmailSubject": "E-mail test {0}", "TestEmailBody": "Testez le corps du message ici", "SuccessfullySent": "Envoyé avec succès", + "MailSendingFailed": "L'envoi de courrier a échoué, veuillez vérifier votre configuration de courrier électronique et réessayer.", "Send": "Envoyer", "Menu:Emailing": "Envoi par e-mail", "Menu:TimeZone": "Fuseau Horaire", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json index 276690e1d4..84ea888203 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hi.json @@ -15,6 +15,7 @@ "TestEmailSubject": "परीक्षण ईमेल {0}", "TestEmailBody": "यहां ईमेल बॉडी संदेश का परीक्षण करें", "SuccessfullySent": "सफलतापूर्वक भेजा", + "MailSendingFailed": "मेल भेजने में विफल, कृपया अपनी ईमेल विन्यास की जाँच करें और पुनः प्रयास करें।", "Send": "भेजना", "Menu:Emailing": "ईमेल से भेजना", "Menu:TimeZone": "समय क्षेत्र", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json index 038d8f10b4..328bd37e74 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hr.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Probna e-pošta {0}", "TestEmailBody": "Testirajte tijelo poruke e-pošte ovdje", "SuccessfullySent": "Uspješno poslano", + "MailSendingFailed": "Slanje e-pošte nije uspjelo, provjerite konfiguraciju e-pošte i pokušajte ponovo.", "Send": "Poslati", "Menu:Emailing": "Slanje e-poštom", "Menu:TimeZone": "Vremenska Zona", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json index b58a9315b2..bd1470a82b 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/hu.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Teszt e-mail {0}", "TestEmailBody": "Itt tesztelheti az e-mail törzsüzenetét", "SuccessfullySent": "Sikeresen elküldve", + "MailSendingFailed": "Az e-mail küldése sikertelen, ellenőrizze az e-mail konfigurációját, és próbálja újra.", "Send": "Küld", "Menu:Emailing": "E-mailezés", "Menu:TimeZone": "Időzóna", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json index 96cc57b8b9..e00b26a892 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/is.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Prófunartölvupóstur {0}", "TestEmailBody": "Prófaðu meginmál tölvupósts hér", "SuccessfullySent": "Tókst sent", + "MailSendingFailed": "Tölvupóstur sendist ekki. Athugaðu tölvupóst stillingar þínar og reyndu aftur.", "Send": "Senda", "Menu:Emailing": "Senda tölvupóst", "Menu:TimeZone": "Tímabelti", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json index 4b85d89552..5d68f59a0c 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/it.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Prova l'e-mail {0}", "TestEmailBody": "Prova il corpo del messaggio email qui", "SuccessfullySent": "Inviato con successo", + "MailSendingFailed": "Invio della posta fallito, controlla la tua configurazione email e riprova.", "Send": "Inviare", "Menu:Emailing": "Invio di e-mail", "Menu:TimeZone": "Fuso Orario", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json index 4cba0f5c21..bf8467dc9d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/nl.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Test-e-mail {0}", "TestEmailBody": "Test hier het hoofdbericht van de e-mail", "SuccessfullySent": "Succesvol verzonden", + "MailSendingFailed": "E-mail verzenden mislukt. Controleer uw e-mailconfiguratie en probeer het opnieuw.", "Send": "Versturen", "Menu:Emailing": "E-mail", "Menu:TimeZone": "Tijdzone", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json index c1d2af54dd..5880daaf3c 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pl-PL.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Testowy e-mail {0}", "TestEmailBody": "Tutaj przetestuj treść wiadomości e-mail", "SuccessfullySent": "Pomyślnie wysłane", + "MailSendingFailed": "Wysyłanie e-maila nie powiodło się. Sprawdź konfigurację e-maila i spróbuj ponownie.", "Send": "Wysłać", "Menu:Emailing": "Wysyłanie e-maili", "Menu:TimeZone": "Strefa Czasowa", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json index 6ea5d05c1d..1075ef4282 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/pt-BR.json @@ -15,6 +15,7 @@ "TestEmailSubject": "E-mail teste {0}", "TestEmailBody": "Corpo de e-mail de teste aqui", "SuccessfullySent": "Enviado com sucesso", + "MailSendingFailed": "Falha no envio de e-mail, verifique sua configuração de e-mail e tente novamente.", "Send": "Enviar", "Menu:Emailing": "Enviando por e-mail", "Menu:TimeZone": "Fuso Horário", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json index a3b10ffb4d..7e52d92a0e 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ro-RO.json @@ -15,6 +15,7 @@ "TestEmailSubject": "E-mail de testare {0}", "TestEmailBody": "Testați corpul mesajului de e-mail aici", "SuccessfullySent": "Trimis cu succes", + "MailSendingFailed": "Trimiterea e-mailului a eșuat. Verificați configurația e-mailului și încercați din nou.", "Send": "Trimite", "Menu:Emailing": "Emailing", "Menu:TimeZone": "Fus Orar", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json index 2b60f7981a..bceff4b9b0 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/ru.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Тестовое письмо {0}", "TestEmailBody": "Проверьте текст сообщения электронной почты здесь", "SuccessfullySent": "Успешно отправлено", + "MailSendingFailed": "Не удалось отправить письмо. Пожалуйста, проверьте настройки электронной почты и повторите попытку.", "Send": "Отправлять", "Menu:Emailing": "Отправка по электронной почте", "Menu:TimeZone": "Часовой пояс", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json index 962f6de4e9..4facd0d356 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sk.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Testovací e-mail {0}", "TestEmailBody": "Tu otestujte telo e-mailu", "SuccessfullySent": "Úspešne odoslané", + "MailSendingFailed": "Odoslanie emailu zlyhalo. Skontrolujte konfiguráciu emailu a skúste to znova.", "Send": "Odoslať", "Menu:Emailing": "Posielanie emailov", "Menu:TimeZone": "Časové Pásmo", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json index 6f3faabfee..64f6e69cce 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/sl.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Preskusno e-poštno sporočilo {0}", "TestEmailBody": "Tukaj preizkusite telo e-poštnega sporočila", "SuccessfullySent": "Uspešno poslano", + "MailSendingFailed": "Pošiljanje e-pošte ni uspelo, preverite konfiguracijo e-pošte in poskusite znova.", "Send": "Pošlji", "Menu:Emailing": "Pošiljanje po e-pošti", "Menu:TimeZone": "Časovni Pas", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json index 2042c4ec6a..50f5fccbd2 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Test email {0}", "TestEmailBody": "E-posta gövdesi mesajını burada test edin", "SuccessfullySent": "Başarıyla gönderildi", + "MailSendingFailed": "E-posta gönderme başarısız, lütfen e-posta yapılandırmanızı kontrol edin ve tekrar deneyin.", "Send": "Gönder", "Menu:Emailing": "Email", "Menu:TimeZone": "Zaman Dilimi", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json index d843b37714..f553ed7876 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/vi.json @@ -15,6 +15,7 @@ "TestEmailSubject": "Kiểm tra email {0}", "TestEmailBody": "Kiểm tra nội dung email tại đây", "SuccessfullySent": "Đã gửi thành công", + "MailSendingFailed": "Gửi email thất bại. Vui lòng kiểm tra cấu hình email của bạn và thử lại.", "Send": "Gửi", "Menu:Emailing": "Gửi email", "Menu:TimeZone": "Múi Giờ", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json index a01cd3bc14..13219450a6 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json @@ -15,6 +15,7 @@ "TestEmailSubject": "测试邮件 {0}", "TestEmailBody": "测试邮件内容", "SuccessfullySent": "发送成功", + "MailSendingFailed": "邮件发送失败,请检查您的电子邮件配置并重试。", "Send": "发送", "Menu:Emailing": "邮件", "Menu:TimeZone": "时区", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json index fe219f36e9..958a94528d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json @@ -15,6 +15,7 @@ "TestEmailSubject": "測試郵件 {0}", "TestEmailBody": "測試郵件內容", "SuccessfullySent": "成功發送", + "MailSendingFailed": "郵件發送失敗,請檢查你的郵件配置並重試.", "Send": "發送", "Menu:Emailing": "信箱", "Menu:TimeZone": "時區", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json index 1b8fbc33ea..c3b545a078 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.Domain", - "hash": "3fb2486bb7c8da0747093a314bde80a6", + "hash": "", "contents": [ { "namespace": "Volo.Abp.SettingManagement", @@ -110,6 +110,7 @@ "methods": [ { "returnType": "String", + "namespace": "Volo.Abp.SettingManagement", "name": "ToString", "summary": null, "isAsync": false, @@ -149,6 +150,212 @@ "name": "Setting", "summary": null }, + { + "baseClass": { + "name": "BasicAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.BasicAggregateRoot" + }, + "implementingInterfaces": [ + { + "name": "IEntity", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" + }, + { + "name": "IEntity", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" + }, + { + "name": "IAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" + }, + { + "name": "IAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" + }, + { + "name": "IGeneratesDomainEvents", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" + }, + { + "name": "IHasExtraProperties", + "namespace": "Volo.Abp.Data", + "declaringAssemblyName": "Volo.Abp.ObjectExtending", + "fullName": "Volo.Abp.Data.IHasExtraProperties" + } + ], + "methods": [ + { + "returnType": "Boolean", + "namespace": "Volo.Abp.SettingManagement", + "name": "HasSameData", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "SettingDefinitionRecord", + "name": "otherRecord", + "isOptional": false + } + ] + }, + { + "returnType": "Void", + "namespace": "Volo.Abp.SettingManagement", + "name": "Patch", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "SettingDefinitionRecord", + "name": "otherRecord", + "isOptional": false + } + ] + } + ], + "collectionProperties": {}, + "navigationProperties": {}, + "namespace": "Volo.Abp.SettingManagement", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.String", + "name": "Name", + "summary": "Unique name of the setting." + }, + { + "type": "System.String", + "name": "DisplayName", + "summary": null + }, + { + "type": "System.String", + "name": "Description", + "summary": null + }, + { + "type": "System.String", + "name": "DefaultValue", + "summary": "Default value of the setting." + }, + { + "type": "System.Boolean", + "name": "IsVisibleToClients", + "summary": "Can clients see this setting and it's value.\r\n It maybe dangerous for some settings to be visible to clients (such as an email server password).\r\n Default: false." + }, + { + "type": "System.String", + "name": "Providers", + "summary": "Comma separated list of provider names." + }, + { + "type": "System.Boolean", + "name": "IsInherited", + "summary": "Is this setting inherited from parent scopes.\r\n Default: True." + }, + { + "type": "System.Boolean", + "name": "IsEncrypted", + "summary": "Is this setting stored as encrypted in the data source.\r\n Default: False." + }, + { + "type": "Volo.Abp.Data.ExtraPropertyDictionary", + "name": "ExtraProperties", + "summary": null + } + ], + "contentType": "aggregateRoot", + "name": "SettingDefinitionRecord", + "summary": null + }, + { + "namespace": "Volo.Abp.SettingManagement", + "entityAnalyzeModel": { + "namespace": "Volo.Abp.SettingManagement", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "SettingDefinitionRecord", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "SettingDefinitionRecord", + "namespace": "Volo.Abp.SettingManagement", + "name": "FindByNameAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "String", + "name": "name", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "ISettingDefinitionRecordRepository", + "summary": null + }, { "namespace": "Volo.Abp.SettingManagement", "entityAnalyzeModel": { @@ -194,6 +401,7 @@ "methods": [ { "returnType": "Setting", + "namespace": "Volo.Abp.SettingManagement", "name": "FindAsync", "summary": null, "isAsync": true, @@ -225,6 +433,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.SettingManagement", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -251,6 +460,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.SettingManagement", "name": "GetListAsync", "summary": null, "isAsync": true, diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DynamicSettingDefinitionStoreInMemoryCache.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DynamicSettingDefinitionStoreInMemoryCache.cs index e682e7a085..ca46f58a65 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DynamicSettingDefinitionStoreInMemoryCache.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DynamicSettingDefinitionStoreInMemoryCache.cs @@ -41,6 +41,11 @@ public class DynamicSettingDefinitionStoreInMemoryCache : IDynamicSettingDefinit record.IsInherited, record.IsEncrypted); + if (!record.Providers.IsNullOrWhiteSpace()) + { + settingDefinition.Providers.AddRange(record.Providers.Split(',')); + } + foreach (var property in record.ExtraProperties) { settingDefinition.WithProperty(property.Key, property.Value); diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json index 6289a82aab..82d123d7cf 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.EntityFrameworkCore", - "hash": "05cb2df7469683b6e1c25cce3b82f5fc", + "hash": "", "contents": [ { "namespace": "Volo.Abp.SettingManagement.EntityFrameworkCore", @@ -67,15 +67,27 @@ { "namespace": "Volo.Abp.SettingManagement.EntityFrameworkCore", "connectionStringName": "AbpSettingManagement", - "databaseTables": [ + "databaseTables": [], + "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ { - "entityFullName": "Volo.Abp.SettingManagement.Setting", - "contentType": "databaseTable", - "name": "AbpSettings", - "summary": null + "returnType": "Void", + "namespace": "Volo.Abp.SettingManagement.EntityFrameworkCore", + "name": "ConfigureSettingManagement", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] } ], - "replacedDbContexts": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -131,6 +143,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo.Abp.SettingManagement.HttpApi.Client.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo.Abp.SettingManagement.HttpApi.Client.abppkg.analyze.json index 874c264584..a65ff634f1 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo.Abp.SettingManagement.HttpApi.Client.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo.Abp.SettingManagement.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.HttpApi.Client", - "hash": "e808131c7d2271d8fe47b855225c6226", + "hash": "", "contents": [ { "namespace": "Volo.Abp.SettingManagement", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json index 11ee7889e6..c448c0450e 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.HttpApi", - "hash": "c1ea0544950c8b5fb8fa33c66533554b", + "hash": "", "contents": [ { "namespace": "Volo.Abp.SettingManagement", @@ -63,6 +63,76 @@ "contentType": "abpModule", "name": "AbpSettingManagementHttpApiModule", "summary": null + }, + { + "apis": [ + { + "path": "api/setting-management/emailing", + "method": "GET", + "groupName": "EmailSettings", + "responseType": "Volo.Abp.SettingManagement.EmailSettingsDto", + "responseTypeAsJson": "{\r\n \"smtpHost\": \"string\",\r\n \"smtpPort\": 0,\r\n \"smtpUserName\": \"string\",\r\n \"smtpPassword\": \"string\",\r\n \"smtpDomain\": \"string\",\r\n \"smtpEnableSsl\": false,\r\n \"smtpUseDefaultCredentials\": false,\r\n \"defaultFromAddress\": \"string\",\r\n \"defaultFromDisplayName\": \"string\"\r\n}", + "parameterDescriptions": [] + }, + { + "path": "api/setting-management/emailing", + "method": "POST", + "groupName": "EmailSettings", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "UpdateEmailSettingsDto" + } + ] + }, + { + "path": "api/setting-management/emailing/send-test-email", + "method": "POST", + "groupName": "EmailSettings", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "SendTestEmailInput" + } + ] + }, + { + "path": "api/setting-management/timezone", + "method": "GET", + "groupName": "TimeZoneSettings", + "responseType": "System.String", + "responseTypeAsJson": "\"string\"", + "parameterDescriptions": [] + }, + { + "path": "api/setting-management/timezone/timezones", + "method": "GET", + "groupName": "TimeZoneSettings", + "responseType": "System.Collections.Generic.List`1[Volo.Abp.NameValue]", + "responseTypeAsJson": "[\r\n {\r\n \"name\": \"string\",\r\n \"value\": \"string\"\r\n }\r\n]", + "parameterDescriptions": [] + }, + { + "path": "api/setting-management/timezone", + "method": "POST", + "groupName": "TimeZoneSettings", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "timezone", + "type": "String" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null } ] } \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.abppkg.analyze.json index e96ca54b0e..c2d39b1a14 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.MongoDB", - "hash": "3171fe44d81aa843b693ea20310d7ada", + "hash": "", "contents": [ { "namespace": "Volo.Abp.SettingManagement.MongoDB", @@ -71,7 +71,13 @@ { "entityFullName": "Volo.Abp.SettingManagement.Setting", "contentType": "databaseCollection", - "name": "AbpSettings", + "name": "Settings", + "summary": null + }, + { + "entityFullName": "Volo.Abp.SettingManagement.SettingDefinitionRecord", + "contentType": "databaseCollection", + "name": "SettingDefinitionRecords", "summary": null } ], diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.abppkg.analyze.json index 1ecad9fea9..79035880e2 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.SettingManagement.Web", - "hash": "535a8e561ef369beac7b706d17493489", + "hash": "", "contents": [ { "namespace": "Volo.Abp.SettingManagement.Web", @@ -73,6 +73,18 @@ "contentType": "abpModule", "name": "AbpSettingManagementWebModule", "summary": null + }, + { + "namespace": "Volo.Abp.SettingManagement.Web.Pages.SettingManagement", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.Abp.SettingManagement.Web.Pages.SettingManagement.Components.EmailSettingGroup", + "contentType": "webPage", + "name": "SendTestEmailModal", + "summary": null } ] } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.analyze.json index b04a748fb6..23e71f33a6 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.Application.Contracts", - "hash": "e1f3dac6048d2ca6284ea045f63842a6", + "hash": "", "contents": [ { "namespace": "Volo.Abp.TenantManagement", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.analyze.json index df4860923c..00ccf9c37a 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.Application", - "hash": "688edf873e866db07c39a080b1d040f4", + "hash": "", "contents": [ { "namespace": "Volo.Abp.TenantManagement", @@ -178,6 +178,7 @@ "methods": [ { "returnType": "TenantDto", + "namespace": "Volo.Abp.TenantManagement", "name": "GetAsync", "summary": null, "isAsync": true, @@ -194,6 +195,7 @@ }, { "returnType": "PagedResultDto", + "namespace": "Volo.Abp.TenantManagement", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -210,6 +212,7 @@ }, { "returnType": "TenantDto", + "namespace": "Volo.Abp.TenantManagement", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -226,6 +229,7 @@ }, { "returnType": "TenantDto", + "namespace": "Volo.Abp.TenantManagement", "name": "UpdateAsync", "summary": null, "isAsync": true, @@ -247,6 +251,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.TenantManagement", "name": "DeleteAsync", "summary": null, "isAsync": true, @@ -263,6 +268,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.TenantManagement", "name": "GetDefaultConnectionStringAsync", "summary": null, "isAsync": true, @@ -279,6 +285,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.TenantManagement", "name": "UpdateDefaultConnectionStringAsync", "summary": null, "isAsync": true, @@ -300,6 +307,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.TenantManagement", "name": "DeleteDefaultConnectionStringAsync", "summary": null, "isAsync": true, diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.Server/Volo.Abp.TenantManagement.Blazor.Server.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.Server/Volo.Abp.TenantManagement.Blazor.Server.abppkg.analyze.json index fe0a801b11..f51c1b20fd 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.Server/Volo.Abp.TenantManagement.Blazor.Server.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.Server/Volo.Abp.TenantManagement.Blazor.Server.abppkg.analyze.json @@ -1,11 +1,20 @@ { "name": "Volo.Abp.TenantManagement.Blazor.Server", - "hash": "3cee9d89359b00bd39be9e09f6036218", + "hash": "", "contents": [ { "namespace": "Volo.Abp.TenantManagement.Blazor.Server", "dependsOnModules": [ - + { + "declaringAssemblyName": "Volo.Abp.TenantManagement.Blazor", + "namespace": "Volo.Abp.TenantManagement.Blazor", + "name": "AbpTenantManagementBlazorModule" + }, + { + "declaringAssemblyName": "Volo.Abp.FeatureManagement.Blazor.Server", + "namespace": "Volo.Abp.FeatureManagement.Blazor.Server", + "name": "AbpFeatureManagementBlazorServerModule" + } ], "implementingInterfaces": [ { diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs index ee1f339d5d..cea9267f00 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs @@ -87,7 +87,7 @@ public partial class TenantManagement Clicked = async (data) => { var tenant = data.As(); - await FeatureManagementModal.OpenAsync(FeatureProviderName, tenant.Id.ToString()); + await FeatureManagementModal.OpenAsync(FeatureProviderName, tenant.Id.ToString(), tenant.Name); } }, new EntityAction diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.abppkg.analyze.json new file mode 100644 index 0000000000..908261e0c3 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.abppkg.analyze.json @@ -0,0 +1,79 @@ +{ + "name": "Volo.Abp.TenantManagement.Blazor", + "hash": "", + "contents": [ + { + "namespace": "Volo.Abp.TenantManagement.Blazor", + "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.AutoMapper", + "namespace": "Volo.Abp.AutoMapper", + "name": "AbpAutoMapperModule" + }, + { + "declaringAssemblyName": "Volo.Abp.TenantManagement.Application.Contracts", + "namespace": "Volo.Abp.TenantManagement", + "name": "AbpTenantManagementApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.FeatureManagement.Blazor", + "namespace": "Volo.Abp.FeatureManagement.Blazor", + "name": "AbpFeatureManagementBlazorModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "AbpTenantManagementBlazorModule", + "summary": null + }, + { + "namespace": "Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement", + "contentType": "webPage", + "name": "TenantManagement", + "summary": null + } + ] +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.analyze.json index bc7b75e6db..1492d48c29 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.Domain.Shared", - "hash": "3f7377330e647dfcc3894752e2f60b77", + "hash": "", "contents": [ { "namespace": "Volo.Abp.TenantManagement", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json index 08b8c1320d..aeb603a65d 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.Domain", - "hash": "3cee9d89359b00bd39be9e09f6036218", + "hash": "", "contents": [ { "namespace": "Volo.Abp.TenantManagement", @@ -217,11 +217,18 @@ "namespace": "Volo.Abp", "declaringAssemblyName": "Volo.Abp.Core", "fullName": "Volo.Abp.ISoftDelete" + }, + { + "name": "IHasEntityVersion", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasEntityVersion" } ], "methods": [ { "returnType": "String", + "namespace": "Volo.Abp.TenantManagement", "name": "FindDefaultConnectionString", "summary": null, "isAsync": false, @@ -232,6 +239,7 @@ }, { "returnType": "String", + "namespace": "Volo.Abp.TenantManagement", "name": "FindConnectionString", "summary": null, "isAsync": false, @@ -248,6 +256,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.TenantManagement", "name": "SetDefaultConnectionString", "summary": null, "isAsync": false, @@ -264,6 +273,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.TenantManagement", "name": "SetConnectionString", "summary": null, "isAsync": false, @@ -285,6 +295,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.TenantManagement", "name": "RemoveDefaultConnectionString", "summary": null, "isAsync": false, @@ -295,6 +306,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.TenantManagement", "name": "RemoveConnectionString", "summary": null, "isAsync": false, @@ -327,6 +339,16 @@ "name": "Name", "summary": null }, + { + "type": "System.String", + "name": "NormalizedName", + "summary": null + }, + { + "type": "System.Int32", + "name": "EntityVersion", + "summary": null + }, { "type": "System.Collections.Generic.List`1[Volo.Abp.TenantManagement.TenantConnectionString]", "name": "ConnectionStrings", @@ -348,6 +370,7 @@ "methods": [ { "returnType": "Tenant", + "namespace": "Volo.Abp.TenantManagement", "name": "CreateAsync", "summary": null, "isAsync": true, @@ -364,6 +387,7 @@ }, { "returnType": "Void", + "namespace": "Volo.Abp.TenantManagement", "name": "ChangeNameAsync", "summary": null, "isAsync": true, @@ -453,6 +477,7 @@ "methods": [ { "returnType": "Tenant", + "namespace": "Volo.Abp.TenantManagement", "name": "FindByNameAsync", "summary": null, "isAsync": true, @@ -462,7 +487,7 @@ "parameters": [ { "type": "String", - "name": "name", + "name": "normalizedName", "isOptional": false }, { @@ -479,6 +504,7 @@ }, { "returnType": "Tenant", + "namespace": "Volo.Abp.TenantManagement", "name": "FindByName", "summary": null, "isAsync": false, @@ -488,7 +514,7 @@ "parameters": [ { "type": "String", - "name": "name", + "name": "normalizedName", "isOptional": false }, { @@ -500,6 +526,7 @@ }, { "returnType": "Tenant", + "namespace": "Volo.Abp.TenantManagement", "name": "FindById", "summary": null, "isAsync": false, @@ -521,6 +548,7 @@ }, { "returnType": "List", + "namespace": "Volo.Abp.TenantManagement", "name": "GetListAsync", "summary": null, "isAsync": true, @@ -562,6 +590,7 @@ }, { "returnType": "Int64", + "namespace": "Volo.Abp.TenantManagement", "name": "GetCountAsync", "summary": null, "isAsync": true, diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json index 45f69efbd7..9fa4137df7 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.EntityFrameworkCore", - "hash": "eb61591475ebf7d3ac246f0c25e300ce", + "hash": "", "contents": [ { "namespace": "Volo.Abp.TenantManagement.EntityFrameworkCore", @@ -67,21 +67,27 @@ { "namespace": "Volo.Abp.TenantManagement.EntityFrameworkCore", "connectionStringName": "AbpTenantManagement", - "databaseTables": [ - { - "entityFullName": "Volo.Abp.TenantManagement.Tenant", - "contentType": "databaseTable", - "name": "AbpTenants", - "summary": null - }, + "databaseTables": [], + "replacedDbContexts": [], + "modelBuilderExtensionMethods": [ { - "entityFullName": "Volo.Abp.TenantManagement.TenantConnectionString", - "contentType": "databaseTable", - "name": "AbpTenantConnectionStrings", - "summary": null + "returnType": "Void", + "namespace": "Volo.Abp.TenantManagement.EntityFrameworkCore", + "name": "ConfigureTenantManagement", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": true, + "parameters": [ + { + "type": "ModelBuilder", + "name": "builder", + "isOptional": false + } + ] } ], - "replacedDbContexts": [], "implementingInterfaces": [ { "name": "IInfrastructure", @@ -137,6 +143,12 @@ "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", "fullName": "Volo.Abp.EntityFrameworkCore.IEfCoreDbContext" }, + { + "name": "IAbpEfCoreDbFunctionContext", + "namespace": "Volo.Abp.EntityFrameworkCore.GlobalFilters", + "declaringAssemblyName": "Volo.Abp.EntityFrameworkCore", + "fullName": "Volo.Abp.EntityFrameworkCore.GlobalFilters.IAbpEfCoreDbFunctionContext" + }, { "name": "ITransientDependency", "namespace": "Volo.Abp.DependencyInjection", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.analyze.json index 99ab6efc48..cecbad39d3 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.HttpApi.Client", - "hash": "480c1662d374db4e0c6a8cb9de911f2b", + "hash": "", "contents": [ { "namespace": "Volo.Abp.TenantManagement", diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json index dff20d2597..43cb2a091f 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.HttpApi", - "hash": "ac5f94dc37adf0b83aaf38cb220ee0f1", + "hash": "", "contents": [ { "namespace": "Volo.Abp.TenantManagement", @@ -68,6 +68,137 @@ "contentType": "abpModule", "name": "AbpTenantManagementHttpApiModule", "summary": null + }, + { + "apis": [ + { + "path": "api/multi-tenancy/tenants/{id}", + "method": "GET", + "groupName": "Tenant", + "responseType": "Volo.Abp.TenantManagement.TenantDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/multi-tenancy/tenants", + "method": "GET", + "groupName": "Tenant", + "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Abp.TenantManagement.TenantDto]", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "Filter", + "type": "String" + }, + { + "name": "Sorting", + "type": "String" + }, + { + "name": "SkipCount", + "type": "Int32" + }, + { + "name": "MaxResultCount", + "type": "Int32" + } + ] + }, + { + "path": "api/multi-tenancy/tenants", + "method": "POST", + "groupName": "Tenant", + "responseType": "Volo.Abp.TenantManagement.TenantDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "TenantCreateDto" + } + ] + }, + { + "path": "api/multi-tenancy/tenants/{id}", + "method": "PUT", + "groupName": "Tenant", + "responseType": "Volo.Abp.TenantManagement.TenantDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + }, + { + "name": "input", + "type": "TenantUpdateDto" + } + ] + }, + { + "path": "api/multi-tenancy/tenants/{id}", + "method": "DELETE", + "groupName": "Tenant", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/multi-tenancy/tenants/{id}/default-connection-string", + "method": "GET", + "groupName": "Tenant", + "responseType": "System.String", + "responseTypeAsJson": "\"string\"", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/multi-tenancy/tenants/{id}/default-connection-string", + "method": "PUT", + "groupName": "Tenant", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + }, + { + "name": "defaultConnectionString", + "type": "String" + } + ] + }, + { + "path": "api/multi-tenancy/tenants/{id}/default-connection-string", + "method": "DELETE", + "groupName": "Tenant", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null } ] } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.analyze.json index c64187c410..8568728f30 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.MongoDB", - "hash": "c1aa3fe8ddd85fb93f1c2d76eddb273a", + "hash": "", "contents": [ { "namespace": "Volo.Abp.TenantManagement.MongoDB", @@ -71,7 +71,7 @@ { "entityFullName": "Volo.Abp.TenantManagement.Tenant", "contentType": "databaseCollection", - "name": "AbpTenants", + "name": "Tenants", "summary": null } ], diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js index f202494dd4..b573ada9d7 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js @@ -38,6 +38,7 @@ _featuresModal.open({ providerName: 'T', providerKey: data.record.id, + providerKeyDisplayName: data.record.name, }); }, }, diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.abppkg.analyze.json index 533ac19881..d605081e6d 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.TenantManagement.Web", - "hash": "2870a361082a3b19907bdf95db3a74a8", + "hash": "", "contents": [ { "namespace": "Volo.Abp.TenantManagement.Web", @@ -73,6 +73,24 @@ "contentType": "abpModule", "name": "AbpTenantManagementWebModule", "summary": null + }, + { + "namespace": "Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants", + "contentType": "webPage", + "name": "CreateModalModel", + "summary": null + }, + { + "namespace": "Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants", + "contentType": "webPage", + "name": "EditModalModel", + "summary": null + }, + { + "namespace": "Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants", + "contentType": "webPage", + "name": "IndexModel", + "summary": null } ] } \ No newline at end of file diff --git a/modules/users/src/Volo.Abp.Users.Domain.Shared/Volo.Abp.Users.Domain.Shared.abppkg.analyze.json b/modules/users/src/Volo.Abp.Users.Domain.Shared/Volo.Abp.Users.Domain.Shared.abppkg.analyze.json index c01961d614..f001d30c53 100644 --- a/modules/users/src/Volo.Abp.Users.Domain.Shared/Volo.Abp.Users.Domain.Shared.abppkg.analyze.json +++ b/modules/users/src/Volo.Abp.Users.Domain.Shared/Volo.Abp.Users.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Users.Domain.Shared", - "hash": "f13b103d9a1de0a275ce797073c6311a", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Users", diff --git a/modules/users/src/Volo.Abp.Users.Domain/Volo.Abp.Users.Domain.abppkg.analyze.json b/modules/users/src/Volo.Abp.Users.Domain/Volo.Abp.Users.Domain.abppkg.analyze.json index 9f37a4213d..d836422562 100644 --- a/modules/users/src/Volo.Abp.Users.Domain/Volo.Abp.Users.Domain.abppkg.analyze.json +++ b/modules/users/src/Volo.Abp.Users.Domain/Volo.Abp.Users.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Users.Domain", - "hash": "72e2b3b29257e18485fa49e93d4cfa67", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Users", diff --git a/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.abppkg.analyze.json b/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.abppkg.analyze.json index bfd574aa77..d6daa7b3e7 100644 --- a/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Users.EntityFrameworkCore", - "hash": "65424b5b14baadc11902735eda05d600", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Users.EntityFrameworkCore", diff --git a/modules/users/src/Volo.Abp.Users.MongoDB/Volo.Abp.Users.MongoDB.abppkg.analyze.json b/modules/users/src/Volo.Abp.Users.MongoDB/Volo.Abp.Users.MongoDB.abppkg.analyze.json index 0eb90d3bbc..79dd021405 100644 --- a/modules/users/src/Volo.Abp.Users.MongoDB/Volo.Abp.Users.MongoDB.abppkg.analyze.json +++ b/modules/users/src/Volo.Abp.Users.MongoDB/Volo.Abp.Users.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Users.MongoDB", - "hash": "9c292e59ebd9d93e0caa335c86132208", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Users.MongoDB", diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json index 55f00b9b5e..1579c94398 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json +++ b/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.2", - "@abp/virtual-file-explorer": "~8.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", + "@abp/virtual-file-explorer": "~8.3.0" } } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock index 2eec7f9a11..4d83a17c81 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock +++ b/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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.3.0-rc.2.tgz#8699581833e045c1a0e0d402c793c6fe47c8c4aa" - integrity sha512-DLVzeMAaa/1Q6ej4hOjRGYBBkuNMqmIu0ko6g8kYHutqveffUL7wyf+Dc1BJHyHlUSiL/LE0zbeaGjmG1TOVwQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.3.0-rc.2.tgz#eacc811b84cec3be59723c629f8dc7116547b9b2" - integrity sha512-1MT2cBQyrp8/pzdvpQgn7n4JafyKoclZlSaYebGt5JmKa1rDp66pAw0zrIrRVdwfojhYbZxsZ3uvsfmbpiRo9Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~8.3.0-rc.2" - "@abp/bootstrap" "~8.3.0-rc.2" - "@abp/bootstrap-datepicker" "~8.3.0-rc.2" - "@abp/bootstrap-daterangepicker" "~8.3.0-rc.2" - "@abp/datatables.net-bs5" "~8.3.0-rc.2" - "@abp/font-awesome" "~8.3.0-rc.2" - "@abp/jquery-form" "~8.3.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~8.3.0-rc.2" - "@abp/lodash" "~8.3.0-rc.2" - "@abp/luxon" "~8.3.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~8.3.0-rc.2" - "@abp/moment" "~8.3.0-rc.2" - "@abp/select2" "~8.3.0-rc.2" - "@abp/sweetalert2" "~8.3.0-rc.2" - "@abp/timeago" "~8.3.0-rc.2" - "@abp/toastr" "~8.3.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.3.0-rc.2.tgz#58372b05fd1765a384e57ee53088b3ace4873e53" - integrity sha512-jswnQx7JoOGmfrqGnS8U+dP7trdxHtM4ZJUvlz/SLQb8OeRxoQyLr4YQhpNa4cnKzN4hrXDlITp22Z3Pn3kQ9g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.3.0-rc.2.tgz#22d4944c20b85502e3b40a20e4f3a7085ca43c20" - integrity sha512-PO6xa7ss5YyZN9ofWlMkLr8f5hto/hHNz3x8yJma2he8zaoqMz85DByYPaH1yM5CiVN+RtEUCD9MLHmDwvaLZA== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.3.0-rc.2.tgz#fc5d920b16a126b5d4c492f2aa807d3bb5b74cec" - integrity sha512-WrB8XeiYrFyiCWpWlWW2OUEu2MP8ZGPVRnHrTcNLe6rcp8Kj7dlzOrp6MpyJH7/lhgCTVqujoBCvphD9OOS33g== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.3.0-rc.2.tgz#07feafd950bb88971a8d3d5c1fdfc170d84fe13a" - integrity sha512-1v/nIxwb//tuI1ieGixxvfkcFvVvy1pXIOtL74d99iY7jU4gdNZcIO22qtmS9kTd55dI0FbOS7bERo4pozR+3g== +"@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.2" + "@abp/core" "~8.3.0" bootstrap "^5.3.3" -"@abp/clipboard@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.3.0-rc.2.tgz#ed6955b215c1591aa226373b06e329d64b45bc0c" - integrity sha512-swA/ipl31FhEvQspgkZO+FYVfeFXsbhnVQ0aO9S7r0bsWDUA+3rbcpC2oOjRwzzE+qF2vr97f2WO/iR/o6SqpA== +"@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.2" + "@abp/core" "~8.3.0" clipboard "^2.0.11" -"@abp/core@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.3.0-rc.2.tgz#63455a6bff294ee93fd8cbec5f0f9a994cf35322" - integrity sha512-RoYUz1y2ZMdAzO6nSZirtYSsEqeW5uBJxnzREkT0DFj1LrB6ywnzdV05GCKbhBcNhp2gDKEGHqCPS4HOMb2uWg== +"@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.2" + "@abp/utils" "~8.3.0" -"@abp/datatables.net-bs5@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.3.0-rc.2.tgz#eb75b855595e264510b29adc4e2d01820752d4a3" - integrity sha512-/OTF0rsGqGXCSL+Nec07IP4O0oqdMgAXxgu6gxsjCnjGodhDtQioUbFC8SI8H8aOYBerVHWfMSMLgpJbGbS8eA== +"@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.2" + "@abp/datatables.net" "~8.3.0" datatables.net-bs5 "^2.0.8" -"@abp/datatables.net@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.3.0-rc.2.tgz#38f510bb294650881b494798fe33ce9b0c0376ef" - integrity sha512-GFV343oOGwIC3giAuTuKWzuDmIDyQkn+Sr+wLCCExn3gq9OIJI5COCCD1RIp7L9SU4t3CnzJGjvi5Qzq8iLbtQ== +"@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.2" + "@abp/jquery" "~8.3.0" datatables.net "^2.0.8" -"@abp/font-awesome@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.3.0-rc.2.tgz#c97d656e1a1df8081180d9644d4734da36787c15" - integrity sha512-dUQXDxvAolfksLOIj71gSi+L8L4gvri6Wi8F3CDTgRKDEPRQ9RN0T4bqkMfeTioTeXCHpeqR4YftmmxylOWQhQ== +"@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.2" + "@abp/core" "~8.3.0" "@fortawesome/fontawesome-free" "^6.5.2" -"@abp/jquery-form@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.3.0-rc.2.tgz#eecc01b21cb2b8ad0f889662175ca66c6d8f2fe4" - integrity sha512-ng5QHRxGE/aYzSjSXTI84L80xn/fyXSXF1hLgVT2teOR/6XWe7FmDv/SSrYi0oRopeY5dgDrzVpKp2j7+qx/yg== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.3.0-rc.2.tgz#6606b71c0043e0a2e382ee07ee2de840ac12b545" - integrity sha512-oS2t9M6j4YI6QSETDZw67fqhpyvpWSpvC/RiuWvMhBKZOWyNPMT3b/42Fz2LI22xSODwNM7jaESEUbdo11PI3Q== +"@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.2" + "@abp/jquery-validation" "~8.3.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.3.0-rc.2.tgz#028d9e6c1e94b1c1f9c64607f35d992857fe3121" - integrity sha512-8QmoVDQpbjl/ggfbsXPh1kf3XxFCtuyykeLdhCqYurLSw9UHejDtc/7lJA85L6eiFAjJs6VzbdP9ORnlWyOYgQ== +"@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.2" + "@abp/jquery" "~8.3.0" jquery-validation "^1.20.1" -"@abp/jquery@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.3.0-rc.2.tgz#4b40ace6d7e7331b1ff5fa41d9a7ce724def7808" - integrity sha512-HDUXVXrHa/HHbkhfLDwxIr6NNQLz+R9M/Gf8+UsxDnzevWZw9hzkwQnO3RWcK99hyaeURA2DEKLGSGa7ip3qfg== +"@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.2" + "@abp/core" "~8.3.0" jquery "~3.7.1" -"@abp/lodash@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.3.0-rc.2.tgz#3d714095ac1985bb9688a4a2f7d2b6e439fbab50" - integrity sha512-fhjtXi7pWlNlCbayU2BqeLAbYyds5HlHF0jrqitXS6r07l6VIru5f5f1h1yd3T5RIwoA0ZT9ZrICqvxH9iQA/w== +"@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.2" + "@abp/core" "~8.3.0" lodash "^4.17.21" -"@abp/luxon@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.3.0-rc.2.tgz#67e64aed26d7f521b76271656bed8ae19b3da00f" - integrity sha512-uajtkxqRlWK1jACB53lOhF7g8Rj+S9CCHSm2uNuAGcAK30kEZQfLEZTLzzOJ/evqDTiBay1hNYAPHnzY7Uigzw== +"@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.2" + "@abp/core" "~8.3.0" luxon "^3.4.4" -"@abp/malihu-custom-scrollbar-plugin@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.3.0-rc.2.tgz#e3170cf9ed7a333040151bc1c70405d7e9269e80" - integrity sha512-GLPLnh89ebM6i3EyMjzSYtukT1lU5MSEJ/A18zIzDYgH9SUMFMe4yFJtGDngUtyzQA23hyuHcj3u1CIgPtKuGQ== +"@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.2" + "@abp/core" "~8.3.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.3.0-rc.2.tgz#cfa76dba9731e03f24acabe8d254c077b683b99a" - integrity sha512-2JglkMbePjxoHRBjd52MGFMqWwzDdmer1hpPJ7BvznL4tklXtSg+Q7D2z7VB1bv+ZAe31cqI8IxwdxWf2eyOmw== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.3.0-rc.2.tgz#bfdc7f12e8b51e321267bcb82500ffa9cb96f69c" - integrity sha512-LYYN6bqjVR/hsA2NJ5LQuPxgDsE/FTHxUVGIMk2TmFKnk8KUjQ7hDE/rllIwGWwxPtS96M6NPnzmrR8NDwI3cA== +"@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.2" - "@abp/core" "~8.3.0-rc.2" + "@abp/clipboard" "~8.3.0" + "@abp/core" "~8.3.0" prismjs "^1.29.0" -"@abp/select2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.3.0-rc.2.tgz#ccf997047e75bfdf30b263201cbce6d2257c7348" - integrity sha512-ERQ/Zb8xzL704a2DLoM6ZD3IhH07MeIGn4UBhD/A3n14Yxu82Vi8qOdl+R6f0JhsDGmif/nuovxbUizFeSKmYg== +"@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.2" + "@abp/core" "~8.3.0" select2 "^4.0.13" -"@abp/sweetalert2@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.3.0-rc.2.tgz#27afcabd6c3a10e76979102f5d143b404f38213c" - integrity sha512-ZloFEPOPWXiyKGdxtxyMGglamf8shTZAzhcUlxeqwRRsTlo342LI0iopOHDQ2Kfqmeua9xgj+nhX7zc6Kh0A0w== +"@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.2" + "@abp/core" "~8.3.0" sweetalert2 "^11.3.6" -"@abp/timeago@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.3.0-rc.2.tgz#1194a6f049b452141bd5714faff1e1fd8da20800" - integrity sha512-8Z82DPOZYEzfYevVELC1W5L4OdMHDGVZ00QAQqFv/XGTGjMVZeTvfpXKqpEcUYPMUVHcNWU3yLkIUZXGj1qXOw== +"@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.2" + "@abp/jquery" "~8.3.0" timeago "^1.6.7" -"@abp/toastr@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.3.0-rc.2.tgz#ef5f08f894510516d055aa4ee2abf8f311a73879" - integrity sha512-syQJ87TVjkDegJBdsP+YfEK8I9zq3mDmLOQrEKRU2z3yX0qdc6zIRSCPTAkyBxf4C4gvdr4dNJJN/uKToaAo2Q== +"@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.2" + "@abp/jquery" "~8.3.0" toastr "^2.1.4" -"@abp/utils@~8.3.0-rc.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.3.0-rc.2.tgz#9acb10e775c734dac2d4c48ade47c365448bbacc" - integrity sha512-jbXbkOWseh7tqqfX7jSsERFDr/Q89FUKz81rRx5jii2RuXnc9wG9E7BSG0wCQ6+o39dgpsSjKbQgwjnjBJrpJQ== +"@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.2": - version "8.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-8.3.0-rc.2.tgz#e8994da12c39ee794807c8950fddb1a5bf27943a" - integrity sha512-sOLtABNKXVwQNADtLA4U31Ix19Fa+ucnDWOKkfWBBTTL6SBEHX5wr01bfEhPIpvlzDIycyVaW/hA79H7jPJMfw== +"@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.2" - "@abp/prismjs" "~8.3.0-rc.2" + "@abp/clipboard" "~8.3.0" + "@abp/prismjs" "~8.3.0" "@fortawesome/fontawesome-free@^6.5.2": version "6.6.0" diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.abppkg.analyze.json b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.abppkg.analyze.json index b5f54bbc17..8665e359e5 100644 --- a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.abppkg.analyze.json +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.VirtualFileExplorer.Web", - "hash": "f1492ce429d5cb7008824a7ebb1fb435", + "hash": "", "contents": [ { "namespace": "Volo.Abp.VirtualFileExplorer.Web", @@ -63,6 +63,12 @@ "contentType": "abpModule", "name": "AbpVirtualFileExplorerWebModule", "summary": null + }, + { + "namespace": "Volo.Abp.VirtualFileExplorer.Web.Pages.VirtualFileExplorer", + "contentType": "webPage", + "name": "IndexModel", + "summary": null } ] } \ No newline at end of file diff --git a/npm/lerna.json b/npm/lerna.json index 076c091cf9..7ee07a5e0a 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index c5415e5f16..5392dd31a1 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -44,8 +44,8 @@ }, "private": true, "devDependencies": { - "@abp/ng.theme.lepton-x": "~3.3.0-rc.2", - "@abp/utils": "~8.3.0-rc.2", + "@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", diff --git a/npm/ng-packs/packages/account-core/package.json b/npm/ng-packs/packages/account-core/package.json index d38b5fd9b9..3ad5145166 100644 --- a/npm/ng-packs/packages/account-core/package.json +++ b/npm/ng-packs/packages/account-core/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account.core", - "version": "8.3.0-rc.2", + "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.2", - "@abp/ng.theme.shared": "~8.3.0-rc.2", + "@abp/ng.core": "~8.3.0", + "@abp/ng.theme.shared": "~8.3.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index 4e38a3fd6f..a8b2ac221d 100644 --- a/npm/ng-packs/packages/account/package.json +++ b/npm/ng-packs/packages/account/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account", - "version": "8.3.0-rc.2", + "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.2", - "@abp/ng.theme.shared": "~8.3.0-rc.2", + "@abp/ng.account.core": "~8.3.0", + "@abp/ng.theme.shared": "~8.3.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index 5859578ddd..c160b8a7a9 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.components", - "version": "8.3.0-rc.2", + "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.2", - "@abp/ng.theme.shared": ">=8.3.0-rc.2" + "@abp/ng.core": ">=8.3.0", + "@abp/ng.theme.shared": ">=8.3.0" }, "dependencies": { "chart.js": "^3.5.1", diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index e067de0221..d359ae4e3b 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "8.3.0-rc.2", + "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.2", + "@abp/utils": "~8.3.0", "just-clone": "^6.0.0", "just-compare": "^2.0.0", "ts-toolbelt": "^9.0.0", diff --git a/npm/ng-packs/packages/core/src/lib/utils/generator-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/generator-utils.ts index ed58ba97ef..5c75da0db0 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/generator-utils.ts +++ b/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 = configState.getSettings('Identity.Password'); + return Number(passwordRules['Abp.Identity.Password.RequiredLength']) || 8; +} diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index d4c5c39423..c0eb03d2c0 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "8.3.0-rc.2", + "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.2", + "@abp/ng.theme.shared": "~8.3.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/generators/package.json b/npm/ng-packs/packages/generators/package.json index cfdc72789a..28b79e08e7 100644 --- a/npm/ng-packs/packages/generators/package.json +++ b/npm/ng-packs/packages/generators/package.json @@ -1,6 +1,6 @@ { "name": "@abp/nx.generators", - "version": "8.3.0-rc.2", + "version": "8.3.0", "homepage": "https://abp.io", "generators": "./generators.json", "type": "commonjs", diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index ceedca9774..cd2617105d 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,15 +1,15 @@ { "name": "@abp/ng.identity", - "version": "8.3.0-rc.2", + "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.2", - "@abp/ng.permission-management": "~8.3.0-rc.2", - "@abp/ng.theme.shared": "~8.3.0-rc.2", + "@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": { diff --git a/npm/ng-packs/packages/oauth/package.json b/npm/ng-packs/packages/oauth/package.json index 2a129815a1..89b8ed1ad7 100644 --- a/npm/ng-packs/packages/oauth/package.json +++ b/npm/ng-packs/packages/oauth/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.oauth", - "version": "8.3.0-rc.2", + "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.2", - "@abp/utils": "~8.3.0-rc.2", + "@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", diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index 8a4dc447df..862c04870e 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "8.3.0-rc.2", + "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.2", + "@abp/ng.theme.shared": "~8.3.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts index 8503a2bd81..8ad2fd2320 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts +++ b/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, diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index aba41adfeb..edc2aadf71 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "8.3.0-rc.2", + "version": "8.3.0", "author": "", "schematics": "./collection.json", "dependencies": { diff --git a/npm/ng-packs/packages/schematics/src/commands/change-theme/style-map.ts b/npm/ng-packs/packages/schematics/src/commands/change-theme/style-map.ts index 0b9f724e57..4bf4300a2b 100644 --- a/npm/ng-packs/packages/schematics/src/commands/change-theme/style-map.ts +++ b/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, [ { diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index ab2b8d1142..2e04e52d72 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.setting-management", - "version": "8.3.0-rc.2", + "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.2", - "@abp/ng.theme.shared": "~8.3.0-rc.2", + "@abp/ng.components": "~8.3.0", + "@abp/ng.theme.shared": "~8.3.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index 9cc6a8dfd7..d4923aac88 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "8.3.0-rc.2", + "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.2", - "@abp/ng.theme.shared": "~8.3.0-rc.2", + "@abp/ng.feature-management": "~8.3.0", + "@abp/ng.theme.shared": "~8.3.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index c09614b9ba..4685fdff0f 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.theme.basic", - "version": "8.3.0-rc.2", + "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.2", - "@abp/ng.theme.shared": "~8.3.0-rc.2", + "@abp/ng.account.core": "~8.3.0", + "@abp/ng.theme.shared": "~8.3.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.html b/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.html index 2559e52161..0da02b7fe3 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.html +++ b/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.html @@ -56,9 +56,7 @@ } @else { - - {{ - 'AbpAccount::Login' | abpLocalization - }} - + + {{ 'AbpAccount::Login' | abpLocalization }} + } diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 1c3f6d5118..73ae5ab3fa 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "8.3.0-rc.2", + "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.2", + "@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", diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index 87a254f31c..fd89d404e0 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "anchor-js": "^5.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/aspnetcore.components.server.basictheme/package.json b/npm/packs/aspnetcore.components.server.basictheme/package.json index a64ad94daa..0012af2931 100644 --- a/npm/packs/aspnetcore.components.server.basictheme/package.json +++ b/npm/packs/aspnetcore.components.server.basictheme/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/aspnetcore.components.server.basictheme", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.components.server.theming": "~8.3.0-rc.2" + "@abp/aspnetcore.components.server.theming": "~8.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.components.server.theming/package.json b/npm/packs/aspnetcore.components.server.theming/package.json index 71a93868e0..33703c8b11 100644 --- a/npm/packs/aspnetcore.components.server.theming/package.json +++ b/npm/packs/aspnetcore.components.server.theming/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/aspnetcore.components.server.theming", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/bootstrap": "~8.3.0-rc.2", - "@abp/font-awesome": "~8.3.0-rc.2" + "@abp/bootstrap": "~8.3.0", + "@abp/font-awesome": "~8.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index 1feacad583..3f07ddc20a 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index 312ba6bdbe..a413a66478 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "repository": { "type": "git", @@ -10,22 +10,22 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~8.3.0-rc.2", - "@abp/bootstrap": "~8.3.0-rc.2", - "@abp/bootstrap-datepicker": "~8.3.0-rc.2", - "@abp/bootstrap-daterangepicker": "~8.3.0-rc.2", - "@abp/datatables.net-bs5": "~8.3.0-rc.2", - "@abp/font-awesome": "~8.3.0-rc.2", - "@abp/jquery-form": "~8.3.0-rc.2", - "@abp/jquery-validation-unobtrusive": "~8.3.0-rc.2", - "@abp/lodash": "~8.3.0-rc.2", - "@abp/luxon": "~8.3.0-rc.2", - "@abp/malihu-custom-scrollbar-plugin": "~8.3.0-rc.2", - "@abp/moment": "~8.3.0-rc.2", - "@abp/select2": "~8.3.0-rc.2", - "@abp/sweetalert2": "~8.3.0-rc.2", - "@abp/timeago": "~8.3.0-rc.2", - "@abp/toastr": "~8.3.0-rc.2" + "@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" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index bf33430f1b..7f2e9dafab 100644 --- a/npm/packs/aspnetcore.mvc.ui/package-lock.json +++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "@abp/aspnetcore.mvc.ui", - "version": "8.3.0-rc.2", + "version": "8.3.0", "lockfileVersion": 1, "requires": true, "packages": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index d0cc603276..65e95b0e54 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/aspnetcore.mvc.ui", "repository": { "type": "git", diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index a40760d632..2ef191542f 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~8.3.0-rc.2", - "@abp/owl.carousel": "~8.3.0-rc.2", - "@abp/prismjs": "~8.3.0-rc.2", - "@abp/tui-editor": "~8.3.0-rc.2" + "@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" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index b68424c0b3..ca23ca04c7 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/bootstrap-datepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap-daterangepicker/package.json b/npm/packs/bootstrap-daterangepicker/package.json index 5312fc417c..4c21c29f88 100644 --- a/npm/packs/bootstrap-daterangepicker/package.json +++ b/npm/packs/bootstrap-daterangepicker/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/bootstrap-daterangepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index d2034d22f9..3f33c9d6a4 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/bootstrap", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "bootstrap": "^5.3.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index d8dbfefdba..540b145fba 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index 6704a5eee6..647f1aa46c 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "clipboard": "^2.0.11" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/cms-kit.admin/package.json b/npm/packs/cms-kit.admin/package.json index 4244b4b13f..80f1fa2736 100644 --- a/npm/packs/cms-kit.admin/package.json +++ b/npm/packs/cms-kit.admin/package.json @@ -1,16 +1,16 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/cms-kit.admin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~8.3.0-rc.2", - "@abp/jstree": "~8.3.0-rc.2", - "@abp/markdown-it": "~8.3.0-rc.2", - "@abp/slugify": "~8.3.0-rc.2", - "@abp/tui-editor": "~8.3.0-rc.2", - "@abp/uppy": "~8.3.0-rc.2" + "@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" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cms-kit.public/package.json b/npm/packs/cms-kit.public/package.json index 462e974890..bd1e2c0bd5 100644 --- a/npm/packs/cms-kit.public/package.json +++ b/npm/packs/cms-kit.public/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/cms-kit.public", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/highlight.js": "~8.3.0-rc.2", - "@abp/star-rating-svg": "~8.3.0-rc.2" + "@abp/highlight.js": "~8.3.0", + "@abp/star-rating-svg": "~8.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index 448b6fabeb..4a51bb35a5 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/cms-kit.admin": "~8.3.0-rc.2", - "@abp/cms-kit.public": "~8.3.0-rc.2" + "@abp/cms-kit.admin": "~8.3.0", + "@abp/cms-kit.public": "~8.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index d7ee1ea8f1..a9c78e009a 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "codemirror": "^6.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index fcb7478721..2aa9201d27 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/core", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/utils": "~8.3.0-rc.2" + "@abp/utils": "~8.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index 6c803065de..f96c0e2610 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "cropperjs": "^1.6.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index d65637b52a..a3fc1c5423 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/datatables.net-bs4", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/datatables.net": "~8.3.0-rc.2", + "@abp/datatables.net": "~8.3.0", "datatables.net-bs4": "^2.0.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net-bs5/package.json b/npm/packs/datatables.net-bs5/package.json index 98ea97556a..d4d5e9a279 100644 --- a/npm/packs/datatables.net-bs5/package.json +++ b/npm/packs/datatables.net-bs5/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/datatables.net-bs5", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~8.3.0-rc.2", + "@abp/datatables.net": "~8.3.0", "datatables.net-bs5": "^2.0.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index 443ea6b6af..68324d0f9d 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/datatables.net", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0-rc.2", + "@abp/jquery": "~8.3.0", "datatables.net": "^2.0.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index 8879728d18..36d50dea63 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~8.3.0-rc.2", - "@abp/clipboard": "~8.3.0-rc.2", - "@abp/malihu-custom-scrollbar-plugin": "~8.3.0-rc.2", - "@abp/popper.js": "~8.3.0-rc.2", - "@abp/prismjs": "~8.3.0-rc.2" + "@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" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index 64077e22bb..a191804b85 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/flag-icons/package.json b/npm/packs/flag-icons/package.json index d2460df9ff..900dc2df88 100644 --- a/npm/packs/flag-icons/package.json +++ b/npm/packs/flag-icons/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/flag-icons", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index 38a87d6794..82a85c21e9 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/font-awesome", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "@fortawesome/fontawesome-free": "^6.5.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index 515e281c5f..904dfc6554 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "@highlightjs/cdn-assets": "~11.9.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index 38637d1505..36a3a1dcea 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/jquery-form", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0-rc.2", + "@abp/jquery": "~8.3.0", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index e7914ba634..ace2ea9270 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/jquery-validation-unobtrusive", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~8.3.0-rc.2", + "@abp/jquery-validation": "~8.3.0", "jquery-validation-unobtrusive": "^4.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 5a63614ef5..4aef5ae19f 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/jquery-validation", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0-rc.2", + "@abp/jquery": "~8.3.0", "jquery-validation": "^1.20.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index 08542c9c4d..8774c94075 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/jquery", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "jquery": "~3.7.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index 2eb4b7f036..4923ca3fdb 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0-rc.2", + "@abp/jquery": "~8.3.0", "jstree": "^3.3.16" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index 0cdb114ab5..4f3a512eff 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/lodash", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "lodash": "^4.17.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index 007d0469d9..a7255dd2ad 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/luxon", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "luxon": "^3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index eb187ac118..2103a1040f 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/malihu-custom-scrollbar-plugin", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index c38962557d..4146b4b7e5 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "markdown-it": "^14.1.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/moment/package.json b/npm/packs/moment/package.json index 85972d3004..5f906b4cd9 100644 --- a/npm/packs/moment/package.json +++ b/npm/packs/moment/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/moment", "repository": { "type": "git", diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index 5f18afeac6..0b667ecb41 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index 519dbad524..fa1a86b6a6 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "@popperjs/core": "^2.11.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 3a840abc47..af5671f7f5 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~8.3.0-rc.2", - "@abp/core": "~8.3.0-rc.2", + "@abp/clipboard": "~8.3.0", + "@abp/core": "~8.3.0", "prismjs": "^1.29.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/qrcode/package.json b/npm/packs/qrcode/package.json index 14677fd65d..0725fff12d 100644 --- a/npm/packs/qrcode/package.json +++ b/npm/packs/qrcode/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/qrcode", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2" + "@abp/core": "~8.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index ba51fe360b..4af92ff2e9 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/select2", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index 83d9d332c2..8c9363b193 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "@microsoft/signalr": "~8.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/slugify/package.json b/npm/packs/slugify/package.json index 1d09e6d1a2..e03b21ac8b 100644 --- a/npm/packs/slugify/package.json +++ b/npm/packs/slugify/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/slugify", "publishConfig": { "access": "public" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index e6f8b771c1..d3651a533e 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0-rc.2", + "@abp/jquery": "~8.3.0", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/sweetalert2/package.json b/npm/packs/sweetalert2/package.json index 3da96649d2..4b315f3e78 100644 --- a/npm/packs/sweetalert2/package.json +++ b/npm/packs/sweetalert2/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/sweetalert2", "publishConfig": { "access": "public" @@ -10,7 +10,7 @@ "directory": "npm/packs/sweetalert2" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "sweetalert2": "^11.3.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index c7f8ec0967..861af9ca6f 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/timeago", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0-rc.2", + "@abp/jquery": "~8.3.0", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index 01dae9cecf..b789d4f922 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/toastr", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0-rc.2", + "@abp/jquery": "~8.3.0", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index 0fc7a5a7d2..2c0ce92334 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~8.3.0-rc.2", - "@abp/prismjs": "~8.3.0-rc.2" + "@abp/jquery": "~8.3.0", + "@abp/prismjs": "~8.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index c8702fcc17..e93dafc93c 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "uppy": "^3.27.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index d74ed0796f..cc1530084d 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "8.3.0-rc.2", + "version": "8.3.0", "scripts": { "prepublishOnly": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json index d60889dc2c..697d06f2a6 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~8.3.0-rc.2", + "@abp/vue": "~8.3.0", "vee-validate": "~3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 203c6b858c..9a4a36dc12 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~8.3.0-rc.2", - "@abp/prismjs": "~8.3.0-rc.2" + "@abp/clipboard": "~8.3.0", + "@abp/prismjs": "~8.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index bffe80a9ff..b3855eb41c 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/npm/packs/zxcvbn/package.json b/npm/packs/zxcvbn/package.json index 3809115acf..c531c64056 100644 --- a/npm/packs/zxcvbn/package.json +++ b/npm/packs/zxcvbn/package.json @@ -1,11 +1,11 @@ { - "version": "8.3.0-rc.2", + "version": "8.3.0", "name": "@abp/zxcvbn", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~8.3.0-rc.2", + "@abp/core": "~8.3.0", "zxcvbn": "^4.4.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index 9ed8653690..860644dc4b 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -152,6 +152,7 @@ $projects = ( "framework/src/Volo.Abp.BlobStoring.Azure", "framework/src/Volo.Abp.BlobStoring.Minio", "framework/src/Volo.Abp.BlobStoring.Aws", + "framework/src/Volo.Abp.BlobStoring.Google", "framework/src/Volo.Abp.Caching", "framework/src/Volo.Abp.Caching.StackExchangeRedis", "framework/src/Volo.Abp.Castle.Core", diff --git a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip index 90e1d8db71..19272c5597 100644 Binary files a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip and b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip differ diff --git a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip index 863bedede7..64afbfd122 100644 Binary files a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip and b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip index cf1e1b6c9f..659f337333 100644 Binary files a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip and b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip b/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip index a49f20d7ca..bcbf997168 100644 Binary files a/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip and b/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip differ diff --git a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip index 442a9d4ee3..015404c21b 100644 Binary files a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip and b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip differ diff --git a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip index bc87c590c8..8e6bf05779 100644 Binary files a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip and b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip index e17afd2efe..870d2fc5a9 100644 Binary files a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip and b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip differ diff --git a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip index e988ce4ad8..87d165f0ec 100644 Binary files a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip and b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip differ diff --git a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip index 721d65d7ab..4fdc4696c7 100644 Binary files a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip and b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip differ diff --git a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip index 9710a47d90..2f3c13813e 100644 Binary files a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip and b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip index 4130b4d790..110a32644c 100644 Binary files a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip and b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip index 8a1e1863ba..a809fb5866 100644 Binary files a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip and b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip differ diff --git a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip index e1c4929f4e..f2080d9ce3 100644 Binary files a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip and b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip differ diff --git a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip index bef8129b46..f48f14e513 100644 Binary files a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip and b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip differ diff --git a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip index 076e206cc3..759829b4b4 100644 Binary files a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip and b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip differ diff --git a/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip b/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip index 3b647e6d6a..68193f472d 100644 Binary files a/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip and b/source-code/Volo.ClientSimulation.SourceCode/Volo.ClientSimulation.SourceCode.zip differ diff --git a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip index ce9a82aa58..ef907dc0fc 100644 Binary files a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip and b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip differ diff --git a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip index a8dbb2a765..3142b5a37a 100644 Binary files a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip and b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip differ diff --git a/templates/app-nolayers/angular/package.json b/templates/app-nolayers/angular/package.json index 1c703281e7..169dea7ea5 100644 --- a/templates/app-nolayers/angular/package.json +++ b/templates/app-nolayers/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.3.0-rc.2", - "@abp/ng.components": "~8.3.0-rc.2", - "@abp/ng.core": "~8.3.0-rc.2", - "@abp/ng.identity": "~8.3.0-rc.2", - "@abp/ng.oauth": "~8.3.0-rc.2", - "@abp/ng.setting-management": "~8.3.0-rc.2", - "@abp/ng.tenant-management": "~8.3.0-rc.2", - "@abp/ng.theme.lepton-x": "~3.3.0-rc.2", - "@abp/ng.theme.shared": "~8.3.0-rc.2", + "@abp/ng.account": "~8.3.0", + "@abp/ng.components": "~8.3.0", + "@abp/ng.core": "~8.3.0", + "@abp/ng.identity": "~8.3.0", + "@abp/ng.oauth": "~8.3.0", + "@abp/ng.setting-management": "~8.3.0", + "@abp/ng.tenant-management": "~8.3.0", + "@abp/ng.theme.lepton-x": "~3.3.0", + "@abp/ng.theme.shared": "~8.3.0", "@angular/animations": "~18.1.0", "@angular/common": "~18.1.0", "@angular/compiler": "~18.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~8.3.0-rc.2", + "@abp/ng.schematics": "~8.3.0", "@angular-devkit/build-angular": "~18.1.0", "@angular-eslint/builder": "~18.1.0", "@angular-eslint/eslint-plugin": "~18.1.0", diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json index 26a6e00bde..e2c26387ff 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0-rc.2", - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2" + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0", + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json index df5e36b003..c6901f62c8 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json index 15878d6622..2d93d3d4d5 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json index 15878d6622..2d93d3d4d5 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json index 15878d6622..2d93d3d4d5 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json index 15878d6622..2d93d3d4d5 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json index 15878d6622..2d93d3d4d5 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json index 15878d6622..2d93d3d4d5 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" } } diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 1c703281e7..169dea7ea5 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.3.0-rc.2", - "@abp/ng.components": "~8.3.0-rc.2", - "@abp/ng.core": "~8.3.0-rc.2", - "@abp/ng.identity": "~8.3.0-rc.2", - "@abp/ng.oauth": "~8.3.0-rc.2", - "@abp/ng.setting-management": "~8.3.0-rc.2", - "@abp/ng.tenant-management": "~8.3.0-rc.2", - "@abp/ng.theme.lepton-x": "~3.3.0-rc.2", - "@abp/ng.theme.shared": "~8.3.0-rc.2", + "@abp/ng.account": "~8.3.0", + "@abp/ng.components": "~8.3.0", + "@abp/ng.core": "~8.3.0", + "@abp/ng.identity": "~8.3.0", + "@abp/ng.oauth": "~8.3.0", + "@abp/ng.setting-management": "~8.3.0", + "@abp/ng.tenant-management": "~8.3.0", + "@abp/ng.theme.lepton-x": "~3.3.0", + "@abp/ng.theme.shared": "~8.3.0", "@angular/animations": "~18.1.0", "@angular/common": "~18.1.0", "@angular/compiler": "~18.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~8.3.0-rc.2", + "@abp/ng.schematics": "~8.3.0", "@angular-devkit/build-angular": "~18.1.0", "@angular-eslint/builder": "~18.1.0", "@angular-eslint/eslint-plugin": "~18.1.0", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json index 60e0ba1386..2a1a50dcab 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json index df5e36b003..c6901f62c8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json index df5e36b003..c6901f62c8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json index df5e36b003..c6901f62c8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json index df5e36b003..c6901f62c8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~3.3.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index 15878d6622..2d93d3d4d5 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index 15878d6622..2d93d3d4d5 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index 15878d6622..2d93d3d4d5 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.3.0" } } diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index e598bb1715..13ec8b0b1b 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -13,15 +13,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~8.3.0-rc.2", - "@abp/ng.components": "~8.3.0-rc.2", - "@abp/ng.core": "~8.3.0-rc.2", - "@abp/ng.identity": "~8.3.0-rc.2", - "@abp/ng.oauth": "~8.3.0-rc.2", - "@abp/ng.setting-management": "~8.3.0-rc.2", - "@abp/ng.tenant-management": "~8.3.0-rc.2", - "@abp/ng.theme.basic": "~8.3.0-rc.2", - "@abp/ng.theme.shared": "~8.3.0-rc.2", + "@abp/ng.account": "~8.3.0", + "@abp/ng.components": "~8.3.0", + "@abp/ng.core": "~8.3.0", + "@abp/ng.identity": "~8.3.0", + "@abp/ng.oauth": "~8.3.0", + "@abp/ng.setting-management": "~8.3.0", + "@abp/ng.tenant-management": "~8.3.0", + "@abp/ng.theme.basic": "~8.3.0", + "@abp/ng.theme.shared": "~8.3.0", "@angular/animations": "~18.1.0", "@angular/common": "~18.1.0", "@angular/compiler": "~18.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~8.3.0-rc.2", + "@abp/ng.schematics": "~8.3.0", "@angular-devkit/build-angular": "~18.1.0", "@angular-eslint/builder": "~18.1.0", "@angular-eslint/eslint-plugin": "~18.1.0", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index e1a6d1eee0..6c95bc92b2 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "~18.1.0", "@angular/core": "~18.1.0", - "@abp/ng.core": "~8.3.0-rc.2", - "@abp/ng.theme.shared": "~8.3.0-rc.2" + "@abp/ng.core": "~8.3.0", + "@abp/ng.theme.shared": "~8.3.0" }, "dependencies": { "tslib": "^2.1.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json index 5773c16923..ace84a4cf2 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json index 4a50ada4de..08805b20e8 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0-rc.2", - "@abp/aspnetcore.components.server.basictheme": "~8.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0", + "@abp/aspnetcore.components.server.basictheme": "~8.3.0" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index c3d9ed3ec4..7dad1fc3e2 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index c3d9ed3ec4..7dad1fc3e2 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "~8.3.0" } }