From 82cace944d312bcfb4563a1e14f64b05fc8ba086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Thu, 13 Apr 2023 18:59:35 +0300 Subject: [PATCH 01/13] detect selectedNode change on tree --- .../components/tree/src/lib/components/tree.component.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts index 5df8ed5ee0..219e049ce2 100644 --- a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts +++ b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts @@ -1,4 +1,6 @@ import { + ChangeDetectionStrategy, + ChangeDetectorRef, Component, ContentChild, EventEmitter, @@ -26,6 +28,7 @@ export type DropEvent = NzFormatEmitEvent & { pos: number }; styleUrls: ['tree.component.scss'], encapsulation: ViewEncapsulation.None, providers: [SubscriptionService], + changeDetection: ChangeDetectionStrategy.OnPush, }) export class TreeComponent implements OnInit { dropPosition: number; @@ -38,6 +41,7 @@ export class TreeComponent implements OnInit { @Optional() @Inject(DISABLE_TREE_STYLE_LOADING_TOKEN) private disableTreeStyleLoading: boolean | undefined, + private cdr: ChangeDetectorRef, ) {} @ContentChild('menu') menu: TemplateRef; @@ -116,4 +120,9 @@ export class TreeComponent implements OnInit { initDropdown(key: string, dropdown: NgbDropdown) { this.dropdowns[key] = dropdown; } + + setSelectedNode(node: any) { + this.selectedNode = { ...node }; + this.cdr.markForCheck(); + } } From f8f405e744aff09035d5d7a2514bc765440d6e4a Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 14 Apr 2023 14:28:34 +0800 Subject: [PATCH 02/13] Add `RandomizeAuthServerPassPhraseStep`. --- .../Templates/App/AppNoLayersTemplateBase.cs | 11 +++--- .../Templates/App/AppTemplateBase.cs | 8 ++++- .../MicroserviceServiceTemplateBase.cs | 6 ++++ .../Microservice/MicroserviceTemplateBase.cs | 28 +++++++++------ .../RandomizeAuthServerPassPhraseStep.cs | 35 +++++++++++++++++++ 5 files changed, 71 insertions(+), 17 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs index c5855a6671..fec1136204 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs @@ -69,19 +69,19 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host")); - + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server", "MyCompanyName.MyProjectName.Host")); steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Client", "MyCompanyName.MyProjectName.Blazor")); - steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared", + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared", "MyCompanyName.MyProjectName.Contracts")); - + steps.Add(new AppNoLayersMoveProjectsStep()); steps.Add(new AppNoLayersMigrateDatabaseChangeStep()); steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly")); break; - + case UiFramework.BlazorServer: steps.Add(new RemoveFolderStep("/angular")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); @@ -98,7 +98,7 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Mvc", "MyCompanyName.MyProjectName")); RemoveBlazorWasmProjects(steps); break; - + default: throw new AbpException("Unkown UI framework: " + context.BuildArgs.UiFramework); } @@ -107,6 +107,7 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations")); RandomizeSslPorts(context, steps); RandomizeStringEncryption(context, steps); + RandomizeAuthServerPassPhrase(context, steps); UpdateNuGetConfig(context, steps); ChangeConnectionString(context, steps); ConfigureDockerFiles(context, steps); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 244b1008b0..8777291c24 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -41,6 +41,7 @@ public abstract class AppTemplateBase : TemplateInfo RemoveUnnecessaryPorts(context, steps); RandomizeSslPorts(context, steps); RandomizeStringEncryption(context, steps); + RandomizeAuthServerPassPhrase(context, steps); UpdateNuGetConfig(context, steps); ConfigureDockerFiles(context, steps); ChangeConnectionString(context, steps); @@ -240,7 +241,7 @@ public abstract class AppTemplateBase : TemplateInfo private static bool IsDefaultThemeForTemplate(ProjectBuildArgs args) { - var templateThemes = new Dictionary + var templateThemes = new Dictionary { { AppTemplate.TemplateName, AppTemplate.DefaultTheme }, { AppProTemplate.TemplateName, AppProTemplate.DefaultTheme }, @@ -610,6 +611,11 @@ public abstract class AppTemplateBase : TemplateInfo steps.Add(new RandomizeStringEncryptionStep()); } + protected static void RandomizeAuthServerPassPhrase(ProjectBuildContext context, List steps) + { + steps.Add(new RandomizeAuthServerPassPhraseStep()); + } + protected void UpdateNuGetConfig(ProjectBuildContext context, List steps) { steps.Add(new UpdateNuGetConfigStep("/aspnet-core/NuGet.Config")); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceServiceTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceServiceTemplateBase.cs index 3aa6754c19..3e396e8113 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceServiceTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceServiceTemplateBase.cs @@ -38,6 +38,7 @@ public abstract class MicroserviceServiceTemplateBase : TemplateInfo DeleteUnrelatedUiProject(context, steps); SetRandomPortForHostProject(context, steps); RandomizeStringEncryption(context, steps); + RandomizeAuthServerPassPhrase(context, steps); return steps; } @@ -69,4 +70,9 @@ public abstract class MicroserviceServiceTemplateBase : TemplateInfo { steps.Add(new MicroserviceServiceStringEncryptionStep()); } + + private static void RandomizeAuthServerPassPhrase(ProjectBuildContext context, List steps) + { + steps.Add(new RandomizeAuthServerPassPhraseStep()); + } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs index 54d234b5c3..88fc0dfcbe 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs @@ -23,19 +23,20 @@ public abstract class MicroserviceTemplateBase : TemplateInfo DeleteUnrelatedProjects(context, steps); RandomizeStringEncryption(context, steps); + RandomizeAuthServerPassPhrase(context, steps); UpdateNuGetConfig(context, steps); ConfigureTheme(context, steps); return steps; } - + protected void ConfigureTheme(ProjectBuildContext context, List steps) { if (!context.BuildArgs.Theme.HasValue) { return; } - + if (context.BuildArgs.Theme != Theme.NotSpecified) { context.Symbols.Add(context.BuildArgs.Theme.Value.ToString().ToUpper()); @@ -54,7 +55,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo private static void RemoveLeptonXThemePackagesFromPackageJsonFiles(List steps, UiFramework uiFramework) { var mvcUiPackageName = "@volo/abp.aspnetcore.mvc.ui.theme.leptonx"; - var packageJsonFilePaths = new List + var packageJsonFilePaths = new List { "/MyCompanyName.MyProjectName.AuthServer/package.json", "/MyCompanyName.MyProjectName.Web/package.json" @@ -68,11 +69,11 @@ public abstract class MicroserviceTemplateBase : TemplateInfo if (uiFramework == UiFramework.BlazorServer) { var blazorServerUiPackageName = "@volo/aspnetcore.components.server.leptonxtheme"; - var blazorServerPackageJsonFilePaths = new List + var blazorServerPackageJsonFilePaths = new List { "/MyCompanyName.MyProjectName.Blazor/package.json" }; - + foreach (var blazorServerPackageJsonFilePath in blazorServerPackageJsonFilePaths) { steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, mvcUiPackageName)); @@ -82,11 +83,11 @@ public abstract class MicroserviceTemplateBase : TemplateInfo else if (uiFramework == UiFramework.Angular) { var ngUiPackageName = "@volosoft/abp.ng.theme.lepton-x"; - var angularPackageJsonFilePaths = new List + var angularPackageJsonFilePaths = new List { "/angular/package.json" }; - + foreach (var angularPackageJsonFilePath in angularPackageJsonFilePaths) { steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, ngUiPackageName)); @@ -138,7 +139,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo steps.Add(new RemoveFolderStep("/apps/blazor")); steps.Add(new RemoveProjectFromTyeStep("blazor")); steps.Add(new RemoveProjectFromTyeStep("blazor-server")); - + context.Symbols.Add("ui:angular"); break; @@ -157,7 +158,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo null, "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Server")); steps.Add(new RemoveProjectFromTyeStep("blazor-server")); - + context.Symbols.Add("ui:blazor"); break; @@ -180,7 +181,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server", "MyCompanyName.MyProjectName.Blazor")); steps.Add(new RenameProjectInTyeStep("blazor-server", "blazor")); - + context.Symbols.Add("ui:blazor-server"); break; @@ -198,7 +199,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo steps.Add(new RemoveProjectFromTyeStep("blazor-server")); steps.Add(new RemoveFolderStep("/apps/angular")); - + context.Symbols.Add("ui:mvc"); break; } @@ -215,4 +216,9 @@ public abstract class MicroserviceTemplateBase : TemplateInfo { steps.Add(new UpdateNuGetConfigStep("/NuGet.Config")); } + + private static void RandomizeAuthServerPassPhrase(ProjectBuildContext context, List steps) + { + steps.Add(new RandomizeAuthServerPassPhraseStep()); + } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs new file mode 100644 index 0000000000..b0b7dc7a44 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs @@ -0,0 +1,35 @@ +using System; +using System.Linq; +using Volo.Abp.Cli.ProjectBuilding.Building; + +namespace Volo.Abp.Cli.ProjectBuilding.Templates; + +public class RandomizeAuthServerPassPhraseStep : ProjectBuildPipelineStep +{ + protected const string DefaultPassPhrase = "00000000-0000-0000-0000-000000000000"; + + public override void Execute(ProjectBuildContext context) + { + var appSettings = context.Files + .Where(x => !x.IsDirectory) + .Where(x => x.Content.IndexOf(DefaultPassPhrase, StringComparison.InvariantCultureIgnoreCase) >= 0) + .ToList(); + + var randomPassPhrase = Guid.NewGuid().ToString("D"); + foreach (var appSetting in appSettings) + { + appSetting.NormalizeLineEndings(); + + var appSettingLines = appSetting.GetLines(); + for (var i = 0; i < appSettingLines.Length; i++) + { + if (appSettingLines[i].Contains(DefaultPassPhrase)) + { + appSettingLines[i] = appSettingLines[i].Replace(DefaultPassPhrase, randomPassPhrase); + } + } + + appSetting.SetLines(appSettingLines); + } + } +} From 945122f6803392655a63175ec2bc615c494d043a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Fri, 14 Apr 2023 18:07:12 +0300 Subject: [PATCH 03/13] find node with given id --- .../tree/src/lib/components/tree.component.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts index 219e049ce2..ccc44cde0b 100644 --- a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts +++ b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts @@ -81,6 +81,21 @@ export class TreeComponent implements OnInit { this.subscriptionService.addOne(loaded$); } + private findNode(target: any, nodes: any[]) { + for (const node of nodes) { + if (node.key === target.id) { + return node; + } + if (node.children) { + let res = this.findNode(target, node.children); + if (res) { + return res; + } + } + } + return null; + } + onSelectedNodeChange(node: NzTreeNode) { this.selectedNode = node.origin.entity; if (this.changeCheckboxWithNode) { @@ -122,7 +137,8 @@ export class TreeComponent implements OnInit { } setSelectedNode(node: any) { - this.selectedNode = { ...node }; + let newSelectedNode = this.findNode(node, this.nodes); + this.selectedNode = { ...newSelectedNode }; this.cdr.markForCheck(); } } From df2608f8601cd1edbd5ca5f18f49baa8e3bdfa59 Mon Sep 17 00:00:00 2001 From: Ebicoglu Date: Sun, 16 Apr 2023 14:16:48 +0300 Subject: [PATCH 04/13] update NPM packages to support only minor versions. --- .../Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json | 2 +- .../Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json | 4 ++-- modules/blogging/app/Volo.BloggingTestApp/package.json | 4 ++-- .../demo/Volo.ClientSimulation.Demo/package.json | 2 +- modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json | 2 +- modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json | 2 +- modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json | 4 ++-- modules/docs/app/VoloDocs.Web/package.json | 4 ++-- .../app/Volo.Abp.SettingManagement.DemoApp/package.json | 2 +- .../app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json | 4 ++-- .../host/MyCompanyName.MyProjectName.AuthServer/package.json | 2 +- .../package.json | 4 ++-- .../host/MyCompanyName.MyProjectName.Web.Host/package.json | 2 +- .../host/MyCompanyName.MyProjectName.Web.Unified/package.json | 2 +- 14 files changed, 20 insertions(+), 20 deletions(-) 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 c9e953ae3a..0757e15bcd 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,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^7.1.1", + "@abp/aspnetcore.mvc.ui.theme.shared": "~7.1.1", "highlight.js": "^9.13.1" }, "devDependencies": {} 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 33a1d6e702..ecd2721ef0 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": "^7.1.1", - "@abp/prismjs": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1", + "@abp/prismjs": "~7.1.1" }, "devDependencies": {} } diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index eced81afcd..a6c1bd519b 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": "^7.1.1", - "@abp/blogging": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1", + "@abp/blogging": "~7.1.1" } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index d1b401c4af..81e87debea 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": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 61da9de6fb..1ddf97a35e 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": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1" } } 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 674131b6d3..d598fa29ec 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": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1" } } 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 5c86b85f3d..15d9768f03 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": "^7.1.1", - "@abp/cms-kit": "7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1", + "@abp/cms-kit": "~7.1.1" } } diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index 0382466708..a02d8d3076 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": "^7.1.1", - "@abp/docs": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1", + "@abp/docs": "~7.1.1" } } 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 2d3ac6d7e9..713652d5f5 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": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1" } } 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 a9508bf55d..383d7fd0fb 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": "^7.1.1", - "@abp/virtual-file-explorer": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1", + "@abp/virtual-file-explorer": "~7.1.1" } } 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 2ec97442e8..c0e313eb4f 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": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1" } } 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 b153d7522c..779dbcbdb6 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": "^7.1.1", - "@abp/aspnetcore.components.server.basictheme": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1", + "@abp/aspnetcore.components.server.basictheme": "~7.1.1" } } 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 674131b6d3..d598fa29ec 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": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1" } } 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 674131b6d3..d598fa29ec 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": "^7.1.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.1.1" } } From 9d096b79423c4f43c33a503441f8ce90199406a5 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 17 Apr 2023 13:32:47 +0800 Subject: [PATCH 05/13] Update RandomizeAuthServerPassPhraseStep.cs --- .../RandomizeAuthServerPassPhraseStep.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs index b0b7dc7a44..7d42977c97 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs @@ -10,26 +10,26 @@ public class RandomizeAuthServerPassPhraseStep : ProjectBuildPipelineStep public override void Execute(ProjectBuildContext context) { - var appSettings = context.Files + var files = context.Files .Where(x => !x.IsDirectory) .Where(x => x.Content.IndexOf(DefaultPassPhrase, StringComparison.InvariantCultureIgnoreCase) >= 0) .ToList(); var randomPassPhrase = Guid.NewGuid().ToString("D"); - foreach (var appSetting in appSettings) + foreach (var file in files) { - appSetting.NormalizeLineEndings(); + file.NormalizeLineEndings(); - var appSettingLines = appSetting.GetLines(); - for (var i = 0; i < appSettingLines.Length; i++) + var lines = file.GetLines(); + for (var i = 0; i < lines.Length; i++) { - if (appSettingLines[i].Contains(DefaultPassPhrase)) + if (lines[i].Contains(DefaultPassPhrase)) { - appSettingLines[i] = appSettingLines[i].Replace(DefaultPassPhrase, randomPassPhrase); + lines[i] = lines[i].Replace(DefaultPassPhrase, randomPassPhrase); } } - appSetting.SetLines(appSettingLines); + file.SetLines(lines); } } } From 15482a4194b08b152f49b0f581e0dedd562b7379 Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Mon, 17 Apr 2023 10:40:14 +0300 Subject: [PATCH 06/13] fix style issue in the Version and Filter input fields Related with https://github.com/abpframework/abp/pull/15921#issuecomment-1463370478 --- .../Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css | 8 ++++---- .../Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.scss | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css index db987051c0..5d8178c46c 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css @@ -146,14 +146,14 @@ body.scrolledMore .alert-criteria p.alert-p { overflow: hidden; } .docs-page .docs-sidebar .docs-tree-list .docs-version .version-select .input-group-text { - padding: 0 0; + padding: 0 0 !important; font-size: 0.75rem; width: 15px; height: 24px; line-height: 1; border-radius: 0px; border: 0; - background: transparent; + background: transparent !important; top: 1px; } .docs-page .docs-sidebar .docs-tree-list .docs-version .version-select .input-group-text i { @@ -386,7 +386,7 @@ body.scrolledMore .alert-criteria p.alert-p { height: 100%; } .docs-page .docs-content .docs-link-btns .search-area .input-group-text { - background: transparent; + background: transparent !important; border: 0; color: rgba(41, 45, 51, 0.5); font-size: 1em; @@ -546,7 +546,7 @@ body.scrolledMore .alert-criteria p.alert-p { background-color: #f4f6fa; border-color: #f4f6fa; border-radius: 12px; - background: hsla(199deg, 59%, 84%, 0.82); + background: hsla(199, 59%, 84%, 0.82); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); z-index: 3; diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.scss b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.scss index e1ddd38da6..85ea8092b9 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.scss +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.scss @@ -177,14 +177,14 @@ body { } .input-group-text { - padding: 0 0; + padding: 0 0 !important; font-size: 0.75rem; width: 15px; height: 24px; line-height: 1; border-radius: 0px; border: 0; - background: transparent; + background: transparent !important; top: 1px; i { @@ -483,7 +483,7 @@ body { } .input-group-text { - background: transparent; + background: transparent !important; border: 0; color: rgb(41 45 51 / 50%); font-size: 1em; From a6a3b211461004d0f03488102c27c90d748e9df4 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 17 Apr 2023 11:01:19 +0300 Subject: [PATCH 07/13] Created SwitchToLocal (Initial) --- .../Volo/Abp/Cli/AbpCliCoreModule.cs | 1 + .../Abp/Cli/Commands/SwitchToLocalCommand.cs | 113 ++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs index 53d23cb508..d1736ee8c1 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs @@ -56,6 +56,7 @@ public class AbpCliCoreModule : AbpModule options.Commands[SwitchToPreviewCommand.Name] = typeof(SwitchToPreviewCommand); options.Commands[SwitchToStableCommand.Name] = typeof(SwitchToStableCommand); options.Commands[SwitchToNightlyCommand.Name] = typeof(SwitchToNightlyCommand); + options.Commands[SwitchToLocal.Name] = typeof(SwitchToLocal); options.Commands[TranslateCommand.Name] = typeof(TranslateCommand); options.Commands[BuildCommand.Name] = typeof(BuildCommand); options.Commands[BundleCommand.Name] = typeof(BundleCommand); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs new file mode 100644 index 0000000000..7f49fa763d --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs @@ -0,0 +1,113 @@ +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Cli.Args; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Cli.Commands; + +public class SwitchToLocal : IConsoleCommand, ITransientDependency +{ + public const string Name = "switch-to-local"; + + public ILogger Logger { get; set; } + + public async Task ExecuteAsync(CommandLineArgs commandLineArgs) + { + var workingDirectory = GetWorkingDirectory(commandLineArgs) ?? Directory.GetCurrentDirectory(); + + if (!Directory.Exists(workingDirectory)) + { + throw new CliUsageException( + "Specified directory does not exist." + + Environment.NewLine + Environment.NewLine + + GetUsageInfo() + ); + } + + var paths = GetPaths(commandLineArgs); + + } + + private List GetPaths(CommandLineArgs commandLineArgs) + { + var paths = commandLineArgs.Options.GetOrNull( + Options.LocalPaths.Short, + Options.LocalPaths.Long + ); + + if (paths == null) + { + throw new CliUsageException( + "Local paths are not specified!" + + Environment.NewLine + Environment.NewLine + + GetUsageInfo() + ); + } + + return paths.Split("|").Select(x=> x.Trim()).ToList(); + } + + private string GetWorkingDirectory(CommandLineArgs commandLineArgs) + { + var path = commandLineArgs.Options.GetOrNull( + Options.SolutionPath.Short, + Options.SolutionPath.Long + ); + + if (path == null) + { + return null; + } + + if (path.EndsWith(".sln") || path.EndsWith(".csproj")) + { + return Path.GetDirectoryName(path); + } + + return path; + } + + public string GetShortDescription() + { + return "Bundles all third party styles and scripts required by modules and updates index.html file."; + } + + public string GetUsageInfo() + { + var sb = new StringBuilder(); + + sb.AppendLine(""); + sb.AppendLine("Usage:"); + sb.AppendLine(""); + sb.AppendLine(" abp switch-to-local [options]"); + sb.AppendLine(""); + sb.AppendLine("Options:"); + sb.AppendLine(""); + sb.AppendLine("-s|--solution (default: current directory)"); + sb.AppendLine("-p | --paths (Required)"); + sb.AppendLine(""); + sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI"); + + return sb.ToString(); + } + + public static class Options + { + public static class SolutionPath + { + public const string Short = "s"; + public const string Long = "solution"; + } + + public static class LocalPaths + { + public const string Short = "p"; + public const string Long = "paths"; + } + } +} From 481d679132e9cefddd618964445c982829a73f9f Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 17 Apr 2023 11:30:01 +0300 Subject: [PATCH 08/13] Created LocalReferenceConverter --- .../Abp/Cli/Commands/SwitchToLocalCommand.cs | 23 +++- .../LocalReferenceConverter.cs | 109 ++++++++++++++++++ 2 files changed, 127 insertions(+), 5 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs index 7f49fa763d..32a6e4b063 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs @@ -6,16 +6,23 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Volo.Abp.Cli.Args; +using Volo.Abp.Cli.ProjectModification; using Volo.Abp.DependencyInjection; namespace Volo.Abp.Cli.Commands; public class SwitchToLocal : IConsoleCommand, ITransientDependency { + private readonly LocalReferenceConverter _localReferenceConverter; public const string Name = "switch-to-local"; public ILogger Logger { get; set; } + public SwitchToLocal(LocalReferenceConverter localReferenceConverter) + { + _localReferenceConverter = localReferenceConverter; + } + public async Task ExecuteAsync(CommandLineArgs commandLineArgs) { var workingDirectory = GetWorkingDirectory(commandLineArgs) ?? Directory.GetCurrentDirectory(); @@ -29,8 +36,8 @@ public class SwitchToLocal : IConsoleCommand, ITransientDependency ); } - var paths = GetPaths(commandLineArgs); - + await _localReferenceConverter.ConvertAsync(workingDirectory, GetPaths(commandLineArgs)); + } private List GetPaths(CommandLineArgs commandLineArgs) @@ -74,7 +81,8 @@ public class SwitchToLocal : IConsoleCommand, ITransientDependency public string GetShortDescription() { - return "Bundles all third party styles and scripts required by modules and updates index.html file."; + return "Changes all NuGet package references to local project references for all the .csproj files in the specified folder" + + " (and all its subfolders with any deep)"; } public string GetUsageInfo() @@ -88,9 +96,14 @@ public class SwitchToLocal : IConsoleCommand, ITransientDependency sb.AppendLine(""); sb.AppendLine("Options:"); sb.AppendLine(""); - sb.AppendLine("-s|--solution (default: current directory)"); - sb.AppendLine("-p | --paths (Required)"); + sb.AppendLine("-s |--solution (default: current directory)"); + sb.AppendLine("-p | --paths (Required)"); + sb.AppendLine(""); + sb.AppendLine("Examples:"); sb.AppendLine(""); + sb.AppendLine(" abp switch-to-local --paths D:\\Github\\abp"); + sb.AppendLine(" abp switch-to-local --paths D:\\Github\\abp --solution D:\\test\\MyProject"); + sb.AppendLine(" abp switch-to-local --paths \"D:\\Github\\abp|D:\\Github\\volo\""); sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI"); return sb.ToString(); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs new file mode 100644 index 0000000000..b76ac9ef5f --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs @@ -0,0 +1,109 @@ +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Xml; +using System.Xml.Linq; +using JetBrains.Annotations; +using Microsoft.Extensions.Logging; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Cli.ProjectModification; + +public class LocalReferenceConverter : ITransientDependency +{ + + public ILogger Logger { get; set; } + + public async Task ConvertAsync( + [NotNull] string directory, + [NotNull] List localPaths) + { + Check.NotNull(directory, nameof(directory)); + Check.NotNull(localPaths, nameof(localPaths)); + + var localProjects = GetLocalProjects(localPaths); + var targetProjects = Directory.GetFiles(directory, "*.csproj", SearchOption.AllDirectories); + + Logger.LogInformation($"Converting projects to local reference."); + + foreach (var targetProject in targetProjects) + { + Logger.LogInformation($"Converting to local reference: {targetProject}"); + + await ConvertProjectToLocalReferences(targetProject, localProjects); + } + + Logger.LogInformation($"Converted {targetProjects.Length} projects to local references."); + } + + private async Task ConvertProjectToLocalReferences(string targetProject, LocalProjectList localProjects) + { + var xmlDocument = new XmlDocument() { PreserveWhitespace = true }; + xmlDocument.Load(GenerateStreamFromString(File.ReadAllText(targetProject))); + + var matchedNodes = xmlDocument.SelectNodes($"/Project/ItemGroup/PackageReference[@Include]"); + + if (matchedNodes == null || matchedNodes.Count == 0) + { + return; + } + + foreach (XmlNode matchedNode in matchedNodes) + { + var packageName = matchedNode!.Attributes!["Include"].Value; + + var localProject = localProjects.GetByName(packageName); + + if (localProject == null) + { + continue; + } + + var parentNode = matchedNode.ParentNode; + parentNode!.RemoveChild(matchedNode); + + var newNode = xmlDocument.CreateElement("ProjectReference"); + var includeAttr = xmlDocument.CreateAttribute("Include"); + includeAttr.Value = localProject; + newNode.Attributes.Append(includeAttr); + parentNode.AppendChild(newNode); + } + + File.WriteAllText(targetProject, XDocument.Parse(xmlDocument.OuterXml).ToString()); + } + + private LocalProjectList GetLocalProjects(List localPaths) + { + var list = new LocalProjectList(); + + foreach (var localPath in localPaths) + { + if (!Directory.Exists(localPath)) + { + continue; + } + + list.AddRange(Directory.GetFiles(localPath, "*.csproj", SearchOption.AllDirectories)); + } + + return list; + } + + private MemoryStream GenerateStreamFromString(string s) + { + var stream = new MemoryStream(); + var writer = new StreamWriter(stream); + writer.Write(s); + writer.Flush(); + stream.Position = 0; + return stream; + } + + private class LocalProjectList : List + { + public string GetByName(string projectName) + { + return Find(x => x.EndsWith($"{projectName}.csproj") || x.EndsWith(projectName)); + } + } +} From f1a7618889a97ebd5ef755589a6a3f1941454234 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 17 Apr 2023 11:39:41 +0300 Subject: [PATCH 09/13] Add documentation for switch-to-local --- docs/en/CLI.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/en/CLI.md b/docs/en/CLI.md index 49b5ca830b..ced482f743 100644 --- a/docs/en/CLI.md +++ b/docs/en/CLI.md @@ -41,6 +41,7 @@ Here, is the list of all available commands before explaining their details: * **`switch-to-preview`**: Switches to the latest preview version of the ABP Framework. * **`switch-to-nightly`**: Switches to the latest [nightly builds](Nightly-Builds.md) of the ABP related packages on a solution. * **`switch-to-stable`**: Switches to the latest stable versions of the ABP related packages on a solution. +* **`switch-to-local`**: Changes NuGet package references on a solution to local project references. * **`translate`**: Simplifies to translate localization files when you have multiple JSON [localization](Localization.md) files in a source control repository. * **`login`**: Authenticates on your computer with your [abp.io](https://abp.io/) username and password. * **`login-info`**: Shows the current user's login information. @@ -453,6 +454,20 @@ abp switch-to-stable [options] * `--solution-directory` or `-sd`: Specifies the directory. The solution should be in that directory or in any of its sub directories. If not specified, default is the current directory. +### switch-to-local + +Changes all NuGet package references to local project references for all the .csproj files in the specified folder (and all its subfolders with any deep). It is not limited to ABP Framework or Module packages. + +Usage: + +````bash +abp switch-to-local [options] +```` +#### Options + +* `--solution` or `-s`: Specifies the solution directory. The solution should be in that directory or in any of its sub directories. If not specified, default is the current directory. +* `--paths` or `-p`: Specifies the local paths that the projects are inside. + ### translate Simplifies to translate [localization](Localization.md) files when you have multiple JSON [localization](Localization.md) files in a source control repository. From 486cd77247668ddfe949e01e237fbafa1f059f99 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 17 Apr 2023 11:48:04 +0300 Subject: [PATCH 10/13] Update SwitchToLocalCommand.cs --- .../Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs index 32a6e4b063..1d57110a93 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SwitchToLocalCommand.cs @@ -37,7 +37,6 @@ public class SwitchToLocal : IConsoleCommand, ITransientDependency } await _localReferenceConverter.ConvertAsync(workingDirectory, GetPaths(commandLineArgs)); - } private List GetPaths(CommandLineArgs commandLineArgs) From 4db845309ebf4d57c1be61381c15653e6496f1c0 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 17 Apr 2023 11:48:26 +0300 Subject: [PATCH 11/13] Use List instead of custom LocalProjectList --- .../LocalReferenceConverter.cs | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs index b76ac9ef5f..a326fe064d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs @@ -36,7 +36,7 @@ public class LocalReferenceConverter : ITransientDependency Logger.LogInformation($"Converted {targetProjects.Length} projects to local references."); } - private async Task ConvertProjectToLocalReferences(string targetProject, LocalProjectList localProjects) + private async Task ConvertProjectToLocalReferences(string targetProject, List localProjects) { var xmlDocument = new XmlDocument() { PreserveWhitespace = true }; xmlDocument.Load(GenerateStreamFromString(File.ReadAllText(targetProject))); @@ -52,7 +52,10 @@ public class LocalReferenceConverter : ITransientDependency { var packageName = matchedNode!.Attributes!["Include"].Value; - var localProject = localProjects.GetByName(packageName); + var localProject = localProjects.Find(x => + x.EndsWith($"\\{packageName}.csproj") || + x.EndsWith($"/{packageName}.csproj") + ); if (localProject == null) { @@ -72,9 +75,9 @@ public class LocalReferenceConverter : ITransientDependency File.WriteAllText(targetProject, XDocument.Parse(xmlDocument.OuterXml).ToString()); } - private LocalProjectList GetLocalProjects(List localPaths) + private List GetLocalProjects(List localPaths) { - var list = new LocalProjectList(); + var list = new List(); foreach (var localPath in localPaths) { @@ -98,12 +101,4 @@ public class LocalReferenceConverter : ITransientDependency stream.Position = 0; return stream; } - - private class LocalProjectList : List - { - public string GetByName(string projectName) - { - return Find(x => x.EndsWith($"{projectName}.csproj") || x.EndsWith(projectName)); - } - } } From 69110a4fd8cc7ea9bc8932c690ef60b8c7f68ddf Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 17 Apr 2023 11:53:00 +0300 Subject: [PATCH 12/13] CalculateRelativePath in LocalReferenceConverter --- .../Cli/ProjectModification/LocalReferenceConverter.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs index a326fe064d..67debab2eb 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/LocalReferenceConverter.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using System.Xml; @@ -67,13 +68,18 @@ public class LocalReferenceConverter : ITransientDependency var newNode = xmlDocument.CreateElement("ProjectReference"); var includeAttr = xmlDocument.CreateAttribute("Include"); - includeAttr.Value = localProject; + includeAttr.Value = CalculateRelativePath(targetProject, localProject); newNode.Attributes.Append(includeAttr); parentNode.AppendChild(newNode); } File.WriteAllText(targetProject, XDocument.Parse(xmlDocument.OuterXml).ToString()); } + + private string CalculateRelativePath(string targetProject, string localProject) + { + return new Uri(targetProject).MakeRelativeUri(new Uri(localProject)).ToString(); + } private List GetLocalProjects(List localPaths) { From 75f641c1553bd6592fe122eeadfb3fb7876a6f11 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 17 Apr 2023 17:07:02 +0800 Subject: [PATCH 13/13] Update NPM packages to support only minor versions. --- .../Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json | 2 +- .../Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json | 4 ++-- modules/blogging/app/Volo.BloggingTestApp/package.json | 4 ++-- .../demo/Volo.ClientSimulation.Demo/package.json | 2 +- modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json | 2 +- modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json | 2 +- modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json | 2 +- modules/docs/app/VoloDocs.Web/package.json | 4 ++-- .../app/Volo.Abp.SettingManagement.DemoApp/package.json | 2 +- .../app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json | 4 ++-- .../host/MyCompanyName.MyProjectName.AuthServer/package.json | 2 +- .../package.json | 4 ++-- .../host/MyCompanyName.MyProjectName.Web.Host/package.json | 2 +- .../host/MyCompanyName.MyProjectName.Web.Unified/package.json | 2 +- 14 files changed, 19 insertions(+), 19 deletions(-) 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 6728dc2c48..72095cb510 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,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^7.2.0-rc.1", + "@abp/aspnetcore.mvc.ui.theme.shared": "~7.2.0-rc.1", "highlight.js": "^9.13.1" }, "devDependencies": {} 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 e3ca0a545f..afca63d07b 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": "^7.2.0-rc.1", - "@abp/prismjs": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1", + "@abp/prismjs": "~7.2.0-rc.1" }, "devDependencies": {} } diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index 77e39632cb..40e0883264 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": "^7.2.0-rc.1", - "@abp/blogging": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1", + "@abp/blogging": "~7.2.0-rc.1" } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index 9a4f2062f6..6c7c3005b9 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": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 475ec16ffb..b6e1830f20 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": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1" } } 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 af0f56e16b..59a5a01ede 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": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1" } } 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 708f2b2360..fe57184dd3 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": "^7.2.0-rc.1", + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1", "@abp/cms-kit": "7.2.0-rc.1" } } diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index fa8ddd76f4..0a541a604c 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": "^7.2.0-rc.1", - "@abp/docs": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1", + "@abp/docs": "~7.2.0-rc.1" } } 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 2c3b7fb75b..d50d240845 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": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1" } } 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 86ff22f0b4..6c0028d2cc 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": "^7.2.0-rc.1", - "@abp/virtual-file-explorer": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1", + "@abp/virtual-file-explorer": "~7.2.0-rc.1" } } 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 e760e7c624..af911a7d0d 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": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1" } } 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 9028d8ddd8..52a8450a61 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": "^7.2.0-rc.1", - "@abp/aspnetcore.components.server.basictheme": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1", + "@abp/aspnetcore.components.server.basictheme": "~7.2.0-rc.1" } } 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 af0f56e16b..59a5a01ede 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": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1" } } 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 af0f56e16b..59a5a01ede 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": "^7.2.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~7.2.0-rc.1" } }