diff --git a/.claude/settings.local.json b/.claude/settings.local.json
new file mode 100644
index 0000000000..1eff521897
--- /dev/null
+++ b/.claude/settings.local.json
@@ -0,0 +1,8 @@
+{
+ "permissions": {
+ "allow": [
+ "Bash(yarn nx g:*)",
+ "Bash(npx vitest:*)"
+ ]
+ }
+}
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 5d05c21e02..bd5a55694f 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -141,7 +141,7 @@
-
+
diff --git a/common.props b/common.props
index 96bd56ab0f..9df5767555 100644
--- a/common.props
+++ b/common.props
@@ -1,8 +1,8 @@
latest
- 10.1.0-rc.1
- 5.1.0-rc.1
+ 10.1.0-rc.2
+ 5.1.0-rc.2
$(NoWarn);CS1591;CS0436
https://abp.io/assets/abp_nupkg.png
https://abp.io/
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/DerivedClassFinder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/DerivedClassFinder.cs
index 5462f3e9fb..b8f1d77bc8 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/DerivedClassFinder.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/DerivedClassFinder.cs
@@ -26,10 +26,10 @@ public class DerivedClassFinder : ITransientDependency
var binFile = Path.Combine(csprojFileDirectory, "bin");
var objFile = Path.Combine(csprojFileDirectory, "obj");
-
var csFiles = new DirectoryInfo(csprojFileDirectory)
.GetFiles("*.cs", SearchOption.AllDirectories)
- .Where(f => f.DirectoryName != null && (!f.DirectoryName.StartsWith(binFile) || !f.DirectoryName.StartsWith(objFile)))
+ .Where(f => !f.FullName.StartsWith(binFile, StringComparison.OrdinalIgnoreCase) &&
+ !f.FullName.StartsWith(objFile, StringComparison.OrdinalIgnoreCase))
.Select(f => f.FullName)
.ToList();
@@ -53,7 +53,13 @@ public class DerivedClassFinder : ITransientDependency
protected bool IsDerived(string csFile, string baseClass)
{
- var root = CSharpSyntaxTree.ParseText(File.ReadAllText(csFile)).GetRoot();
+ var csFileText = File.ReadAllText(csFile);
+ if (!csFileText.Contains("class"))
+ {
+ return false;
+ }
+
+ var root = CSharpSyntaxTree.ParseText(csFileText).GetRoot();
var namespaceSyntax = root.DescendantNodes().OfType().FirstOrDefault();
var classDeclaration = (namespaceSyntax?.DescendantNodes().OfType())?.FirstOrDefault();
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionFileModifier.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionFileModifier.cs
index 7a815df81d..c8d9127a2c 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionFileModifier.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionFileModifier.cs
@@ -18,16 +18,17 @@ public class SolutionFileModifier : ITransientDependency
{
_cmdHelper = cmdHelper;
}
-
+
public async Task RemoveProjectFromSolutionFileAsync(string solutionFile, string projectName)
{
- var list = _cmdHelper.RunCmdAndGetOutput($"dotnet sln \"{solutionFile}\" list");
+ var workingDirectory = Path.GetDirectoryName(solutionFile);
+ var list = _cmdHelper.RunCmdAndGetOutput($"dotnet sln \"{solutionFile}\" list", workingDirectory: workingDirectory);
foreach (var line in list.Split(new[] { Environment.NewLine, "\n" }, StringSplitOptions.None))
{
if (Path.GetFileNameWithoutExtension(line.Trim()).Equals(projectName, StringComparison.InvariantCultureIgnoreCase))
{
- _cmdHelper.RunCmd($"dotnet sln \"{solutionFile}\" remove \"{line.Trim()}\"");
+ _cmdHelper.RunCmd($"dotnet sln \"{solutionFile}\" remove \"{line.Trim()}\"", workingDirectory: workingDirectory);
break;
}
}
@@ -50,30 +51,27 @@ public class SolutionFileModifier : ITransientDependency
private async Task AddModuleAsync(ModuleWithMastersInfo module, string solutionFile)
{
+ var slnDir = Path.GetDirectoryName(solutionFile);
var projectsUnderModule = Directory.GetFiles(
- Path.Combine(Path.GetDirectoryName(solutionFile), "modules", module.Name),
+ Path.Combine(slnDir, "modules", module.Name),
"*.csproj",
SearchOption.AllDirectories);
-
+
var projectsUnderTest = new List();
- if (Directory.Exists(Path.Combine(Path.GetDirectoryName(solutionFile), "modules", module.Name, "test")))
+ if (Directory.Exists(Path.Combine(slnDir, "modules", module.Name, "test")))
{
projectsUnderTest = Directory.GetFiles(
- Path.Combine(Path.GetDirectoryName(solutionFile), "modules", module.Name, "test"),
+ Path.Combine(slnDir, "modules", module.Name, "test"),
"*.csproj",
SearchOption.AllDirectories).ToList();
}
foreach (var projectPath in projectsUnderModule)
{
- var folder = projectsUnderTest.Contains(projectPath) ? "test" : "src";
-
- var projectId = Path.GetFileName(projectPath).Replace(".csproj", "");
- var package = @$"modules\{module.Name}\{folder}\{projectId}\{projectId}.csproj";
-
- _cmdHelper.RunCmd($"dotnet sln \"{solutionFile}\" add \"{package}\" --solution-folder {folder}");
+ var solutionFolder = projectsUnderTest.Contains(projectPath) ? Path.Combine("test", module.Name) : Path.Combine("modules", module.Name);
+ _cmdHelper.RunCmd($"dotnet sln \"{solutionFile}\" add \"{projectPath}\" --solution-folder \"{solutionFolder}\"", workingDirectory: slnDir);
}
-
+
if (module.MasterModuleInfos != null)
{
foreach (var masterModule in module.MasterModuleInfos)
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 26b2fd35ee..92c808c088 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
@@ -412,6 +412,28 @@
"contentType": "applicationService",
"name": "ProfileAppService",
"summary": null
+ },
+ {
+ "defaultValue": "true",
+ "displayName": "Is self-registration enabled",
+ "description": "Whether a user can register the account by him or herself.",
+ "isVisibleToClient": true,
+ "isInherited": true,
+ "isEncrypted": false,
+ "contentType": "setting",
+ "name": "Abp.Account.IsSelfRegistrationEnabled",
+ "summary": null
+ },
+ {
+ "defaultValue": "true",
+ "displayName": "Authenticate with a local account",
+ "description": "Indicates if the server will allow users to authenticate with a local account.",
+ "isVisibleToClient": true,
+ "isInherited": true,
+ "isEncrypted": false,
+ "contentType": "setting",
+ "name": "Abp.Account.EnableLocalLogin",
+ "summary": null
}
]
}
\ No newline at end of file
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 21a4374fba..e372a4405b 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": "~10.1.0-rc.1",
- "@abp/prismjs": "~10.1.0-rc.1",
- "@abp/highlight.js": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.shared": "~10.1.0-rc.2",
+ "@abp/prismjs": "~10.1.0-rc.2",
+ "@abp/highlight.js": "~10.1.0-rc.2"
}
}
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 090a72c506..07e9b7f188 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,203 +2,203 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.1.tgz#7c0f721bdd4ec99f441a49e662a457d98c2c66fa"
- integrity sha512-dB6wmR3C43Vn1/hiWY3IkxivUEWTGhO4mj3hffwAeyJqnEUh6kQUW6UfmYNGEhahSjhVIS3lUZ4x+R+yGCpemw==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.1"
- "@abp/bootstrap" "~10.1.0-rc.1"
- "@abp/bootstrap-datepicker" "~10.1.0-rc.1"
- "@abp/bootstrap-daterangepicker" "~10.1.0-rc.1"
- "@abp/datatables.net-bs5" "~10.1.0-rc.1"
- "@abp/font-awesome" "~10.1.0-rc.1"
- "@abp/jquery-form" "~10.1.0-rc.1"
- "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.1"
- "@abp/lodash" "~10.1.0-rc.1"
- "@abp/luxon" "~10.1.0-rc.1"
- "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.1"
- "@abp/moment" "~10.1.0-rc.1"
- "@abp/select2" "~10.1.0-rc.1"
- "@abp/sweetalert2" "~10.1.0-rc.1"
- "@abp/timeago" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.1.tgz#290297353fdc15826a870b35162a0bbf4c9bc948"
- integrity sha512-RBR5wPf5ygzuSpfXG5MeOGd/YOtQH5pVyU65T4DMtGpLKHQxgxbh7JK1btyC5zGmzr/Ds5+5Mcd7S66dIckDJQ==
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.2.tgz#e5056e4e159f5815e3cffecab5c46f3d7d4f79d7"
+ integrity sha512-bo56XzQZPYL/3ckWTTTSSUsSFSFJobvfE29cz13NIrZ/tBtWyQCAJn92wYHuY+6IezYUWb4ga3PkFeHRzR142A==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.2"
+ "@abp/bootstrap" "~10.1.0-rc.2"
+ "@abp/bootstrap-datepicker" "~10.1.0-rc.2"
+ "@abp/bootstrap-daterangepicker" "~10.1.0-rc.2"
+ "@abp/datatables.net-bs5" "~10.1.0-rc.2"
+ "@abp/font-awesome" "~10.1.0-rc.2"
+ "@abp/jquery-form" "~10.1.0-rc.2"
+ "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.2"
+ "@abp/lodash" "~10.1.0-rc.2"
+ "@abp/luxon" "~10.1.0-rc.2"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.2"
+ "@abp/moment" "~10.1.0-rc.2"
+ "@abp/select2" "~10.1.0-rc.2"
+ "@abp/sweetalert2" "~10.1.0-rc.2"
+ "@abp/timeago" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.2.tgz#e25d3575d40bfcb3f809bd2d355671181ee5ff40"
+ integrity sha512-MOF86bVbi7N/nIla+361nsBrN4tiSka8xzpWcgqlLcCAl9ILG4rugbtafBAjN81taPma2peZM7egaOR4SDkTMw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.1.tgz#54730dc001dab746af18c41d51b73949742e3b2d"
- integrity sha512-DhVfA9WjfRQrUwjN2eJTCjLEhAU7rLjWgMlifW1id3HbdMs9emKn0rzQqhZ8MOSUNBwLkbUWcXWnojRUFgUB+w==
+"@abp/bootstrap-datepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.2.tgz#be80c6104ba53e18935fbf62ca2c1890f4b2fde4"
+ integrity sha512-BNcDYUSbZaLah4SfXm0efoqFTsOViVm6370k9L7vix/OGpIWwklJsr8y78lvdM5ANgNCfl0LPSq+seLJFc/OLA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.1.tgz#9af7ffe1d1bd4fc99e1606e30189e6f28bb2f201"
- integrity sha512-/Hsge8UwLZFuPNWRZhpf4nVB4urPYsaKAuCz0pSH5OHmS4FWr0Ng3vnUd9fcSeaq9OV2HarcgGWDapYtszttVQ==
+"@abp/bootstrap-daterangepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.2.tgz#f189f7d070ebd97d9cfdcb99571cab2d6a198ab5"
+ integrity sha512-bV8J0MuiAFVLkr48JsB6aZU6aPoqw+Gyhq1szQ74bEwNQlRBPuF92WVA5FACaUBj8dMUzR9HDDAYQuxUzpKYKA==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.1.tgz#e937f0a10874c0f3b0f719ff6a316b0ca91e65c5"
- integrity sha512-GlRyH5oCjcmFk1eBGCHk6GglL2DJ5RLlDXn7HWU675u48DCQTkBbKP9qA3RcYERQB4qqhcOKEDtYPZVljRVHRQ==
+"@abp/bootstrap@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.2.tgz#2300800a29ea09b91f5ed2e6177e5921fe7d2a0f"
+ integrity sha512-K+tDI9vz/Y9B/yu0i3AVpm4v3Odi44Q/yH5hAprL7f4pGxEOiqAFB/qzHAxG+7Oa7wjv5tPLv+Cz4DavBQjd8Q==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
bootstrap "^5.3.8"
-"@abp/clipboard@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.1.0-rc.1.tgz#ebb677e689372d5c0d07a5814b61eae45397a3c8"
- integrity sha512-iJpKYQJy5mN1O8n0+4DsWoWKAOasLuUE9Cja01Yl7YTb6XwYCGozBAVZbi+YouhYmsSr2zM4ozKxXPbXXt0u1w==
+"@abp/clipboard@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.1.0-rc.2.tgz#e99dbf190e3684e99c8e909bf38201c70e267502"
+ integrity sha512-kRS9pWc1jRgr4D4/EV9zdAy3rhhGBrcqk2as5+6Ih49npsEJY/cF5mYH7mj/ZYy8SHqtae/CR7bZsR+uCDKYrQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
clipboard "^2.0.11"
-"@abp/core@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.1.tgz#d9ce0958407fa39c8015eb2d9328a3a157aaa4f0"
- integrity sha512-pFsaQei1W0JRJkhNdlxq+EDP7x+83nT0UHZetTHNzp8tkP4Cn8Ni/ZODIUku8ck1vcKc0X3pXKj42BN+yZ1g3g==
+"@abp/core@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.2.tgz#403687aff5a30788f7b7ca660abdfd85d89438aa"
+ integrity sha512-euuG2Hna/DT6/R1dGOjgp3vcehYtF+CcOkRj31oquYKaM5YWk4OaZ314DSpnjgs/xo8DuVc4eKFQwIxD9RK41w==
dependencies:
- "@abp/utils" "~10.1.0-rc.1"
+ "@abp/utils" "~10.1.0-rc.2"
-"@abp/datatables.net-bs5@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.1.tgz#7981bc64c543d24aa5b0ab373f5693187990d5be"
- integrity sha512-yaYHuZ9eVHT2cZcH9r680X+imWhOqbhWlOlbLDpJtg7Un0ejDzou+JqxKYHHXmSEKYEPHjfCEhnXkMnyqvSUHQ==
+"@abp/datatables.net-bs5@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.2.tgz#a60650d1802b40751d30f8f6c56beb23fd66481b"
+ integrity sha512-IWwexNqbMpET54Fvm9LoPTJYf+4CoBbjFOvz3sL6CgO2feV5R5fKigjVU8zXKNh2W+RG8L6zEarfVxrr114TsA==
dependencies:
- "@abp/datatables.net" "~10.1.0-rc.1"
+ "@abp/datatables.net" "~10.1.0-rc.2"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.1.tgz#f487357690060dd055dbb7f54e1298e8d8a81e40"
- integrity sha512-KTKTW73H9vaX6J9ipXUf7d3QdseKaFRzl7e1QKldOoQxBs4pzT2NATGdUyiAnJsfPl4scpSFetzI66Rs7r3idg==
+"@abp/datatables.net@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.2.tgz#9147f68bc6dbc4eb40a9ddf65c7859e788cdcac2"
+ integrity sha512-a9DJpwg14S4nVOiC4ipw0CQwEYWB602e2gCJiH7W1mxopbQb135RxwhtdTnW//eIONcxC9IrEuvcBEAUVt2B7Q==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.1.tgz#2ee67b07ce6296c7f0ac5217c9d9677b9c70f05e"
- integrity sha512-O/3oLbSu1pMNftQzQW29gSpkWCFJazFKjT7sOYId1Ueric0svyJ42hFr5gHf9RFVmCU5pgyhawcoTyzQ34PxYQ==
+"@abp/font-awesome@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.2.tgz#364466cfe67e41e0c4d16b57d3923d10f66369f1"
+ integrity sha512-F1Jy8xoFV2aA+VN+NH1gtrG96/j9w7Picc+KLoCoIyNnJr/xJur11XkJyu5ln8KF4V7p/DY7QaQodWV/btOs8g==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/highlight.js@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-10.1.0-rc.1.tgz#52667c1b0242b710d1b8ea65cf9c8dce50c2a213"
- integrity sha512-LlcVW/R+WPy8DqWmCfkbxwsWVHdo4jqn1/wvcSuxtPYsQZcBLocM+IgmT1Be3Ti1gn5Gu2h89UsdYlDfLMllqQ==
+"@abp/highlight.js@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-10.1.0-rc.2.tgz#6ad0e1ef9e49f0f90eba9d899fd72b6c30a4f9f0"
+ integrity sha512-jAX4p+i3secAaI3waXoMr7yoH6G1nWvcjR5UVin168H7I4UySxbF799T89v5tK8gtfWgaTjEydFZRypSQU/dHg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@highlightjs/cdn-assets" "~11.11.1"
-"@abp/jquery-form@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.1.tgz#60fc98085671a2ff08e8c411847354b6a48cf55e"
- integrity sha512-bj70hE7MsH2AoBb2yU2d6ng5Bo/wqjCNUI0kbG0T1T4yp1cToGAVJ6hrd+KOp2Tf6W+NITn1EycxRTCktE9QRA==
+"@abp/jquery-form@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.2.tgz#3857717d07569c22d4bbbe459238abeb816d606a"
+ integrity sha512-2D5WHVnfK9bhRces1tgPwOEoc7KCYKYiKHBOcqct+LTA7zoRjJv/PM8/JhFVl+grVIw1aSwO4tU3YfZ22Vxipg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.1.tgz#a820989d8daf53096f838817cb2b3dba21f71653"
- integrity sha512-7uXxbvuZ+ecD5suH3nx/ggiFAA8GjXGAB5tuGCdqePdBn1PMzDIDI1ZP9q8sR7sMjo7RKVK6MzX+PazUuJ4L7g==
+"@abp/jquery-validation-unobtrusive@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.2.tgz#efd7b69a078a20c0bf405408dbdf52a7bf770b3b"
+ integrity sha512-tZ0MWgzBqp+SNfMxM0z2cGB21NiTHuVJyyQaXKE/ptuD5pc0uRkcqw/J2kWfiqsoVgChz27IB6h8/jqDafS4qg==
dependencies:
- "@abp/jquery-validation" "~10.1.0-rc.1"
+ "@abp/jquery-validation" "~10.1.0-rc.2"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.1.tgz#c8630b0a53ee93218be5c82264085b36b0b07936"
- integrity sha512-/eS4vy5gwHIaRr6aHkvO6xWRjL22bVly7S0AqbZw2OxJ0pw1n23n+zipn/NDRSngRZSajTLLm1pYCG5qlJGd3A==
+"@abp/jquery-validation@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.2.tgz#d39537a7356c51f9db2e66f6740cf6df86bd0442"
+ integrity sha512-LOkS0NKk4pLtLjPU0CCbwROyUg6EtJN8Z/it7QuKK1CIRfYYcAStgNnNm5geZP7CqECIkoiFfgWjI+L5Z9/Tfg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.1.tgz#38d5d5b5a6144bf207773ef26f36d381a257a635"
- integrity sha512-YarNlYPG7MfLc0fSnOcVrp9Da1EUxz4zUERnTOQ0/EdOUdcFhGAqI2yfoTFCxqX+TSphQWZEdif/tsfULtkI1A==
+"@abp/jquery@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.2.tgz#101a55f70d510978c8c05f5857d0e9d4965263f7"
+ integrity sha512-bQV1uFWGtwRYjNOsqJ8FM2004idX2Jj7YVL19YF1/PjyPUSMX+s8/IvJizBjyY5hPAiWBBhmV9g+IFWzxlDQoQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
jquery "~3.7.1"
-"@abp/lodash@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.1.tgz#bf735e34a42ddcdf19e331c8c5cf1a24a87475cb"
- integrity sha512-JQV0oFLE90V9GdrD37PTMiOylw/U6yjpDu5PblVW/zlNmw/TzEtukp3/vJl7GJxoKRYWtgJf1nFLgG/+2kjE1A==
+"@abp/lodash@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.2.tgz#d08c03f8d3d0fbaa3e71e603cbe5fb7f176933ef"
+ integrity sha512-KCnD1p2y52ZI+2ifpiFIUAiDPsKehnOD8HV5qKeObO6UCP97okif8IP+sQDmNQb8O33y/NKTyx/HcpwBbe/NYQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
lodash "^4.17.21"
-"@abp/luxon@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.1.tgz#1c883ad3a5653f0c6ce4965e4b4ce21543129534"
- integrity sha512-SDtwjIDR4OzrtzRWpgb8atUSK0DwajJ5LC486xHq5ftnbFETRfOwihyIfC2H4oIPPDE5oS+LOnjCkRYVkGt0oQ==
+"@abp/luxon@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.2.tgz#ef8d2b323bac054fc9610e241e1b1763d229e065"
+ integrity sha512-qYFl6XO3g9mZiu0dtIczI7LRuYWwc+RkpbDzSmruXcRks3KA+ZZco2vhHNnlwtXcINl/TXtbW7Wc0MX+8IB1Kw==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.1.tgz#770106795f5eba9d36dd2d4002e450c215c66787"
- integrity sha512-EFwQ7rUiPM6mxznn1t23ySzQH+VQ0dB2YxOqBAluFR/yC3qypjb98jGQaZKsJx9+iT4DuG9gGPKOfct1Sqh0KQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.2.tgz#dfaf666442c7c122f7da72c83b9adf194d5b6ec8"
+ integrity sha512-PudMHmNQgZ6JZeaVt1ZoXLqO0UZXJzUYiBah2LDkC4EMLjnMJFINHBoEVVa4ooXH0yjFv+zsbN0vWZYJ8TBJIA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.1.tgz#fe5bfa5bc28bb847cf801523c1b2f118ffb12447"
- integrity sha512-P6z9YO/FC/5DhTDWsHkquo5tEzIhSfUnRefLcZtv7XuJtevH/93NFSr23RL6D+F4r3cB5GMXGFUYmXGKWoXGHg==
+"@abp/moment@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.2.tgz#610a1592d13984aea51abbd13df8c5995a089149"
+ integrity sha512-ep8PnAXARw0t/wtGOVp/oiNhF3B0Bh6y2vRzKrcSoyXAQREGGm4fJdZVYZLGTfI4lFLTjebEgf4O7T9feUwJAw==
dependencies:
moment "^2.30.1"
-"@abp/prismjs@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.1.0-rc.1.tgz#26ef6c368dbfdd27d2836f1dd8cd9e8cf630f0ab"
- integrity sha512-6OpD/w7NOSI7OpjubMx45gXsZY5K6ggynJ9uSqv3NDxSbj9l6c8cRTX1i56ATT10rhyYxZIw83FRhMlxOiLfjg==
+"@abp/prismjs@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.1.0-rc.2.tgz#8565bab503a16fc349f4b0fa2609ad412ff838be"
+ integrity sha512-SmZWMyJ3cJW+qj4CWJ7y2kD6PMx2zfZMA5X5jPunsytG4Eht4AVyIR38Y4QSpO62zZgkHyZlSTFOozBfhrlv9A==
dependencies:
- "@abp/clipboard" "~10.1.0-rc.1"
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/clipboard" "~10.1.0-rc.2"
+ "@abp/core" "~10.1.0-rc.2"
prismjs "^1.30.0"
-"@abp/select2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.1.tgz#19432bb6483f8a3470f02a3037612835b4c54ef4"
- integrity sha512-xPvdrgXZzRhEIrEyw9eoITc+hYlbi8fSW3BGQ1ZMBXWgYkjWxhj/1AuLsu2ewFAKdBNz+PewjA0MKP6iBLATHw==
+"@abp/select2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.2.tgz#40c5418d007fc36817eecbe6388d767e4e7ca887"
+ integrity sha512-Pq0wlpL01sWRLUg5um3JtBXIqi3mmbwPwvgxP8hFbQngAt9JXAK8geNRiTMrIZgtW/ycXtM1v6I4zuWOLOeAGg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.1.tgz#40f4d6964cd6620dcb81040d84e432f4ae314686"
- integrity sha512-E4dUC2k/kClBnadtGK5NWR9YmCGgKq5uOGjEVtzXxJH62MlaCXlcxRrK9wNzX8pzDMDYFKjuOUugoROEgbRKWQ==
+"@abp/sweetalert2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.2.tgz#d35858c69e10c6726b02cdfcea88dfc32385963f"
+ integrity sha512-s9VPRToohN45uzHcKCF5Mcj8FVjsXcXUb0U3tuaT/Y+u4adHB3fBxYiXJFM0sVsCJ81dFktxwka40Wm8Taz/zA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.1.tgz#482e3a645f63ee9adf708ef8ae895fcf2bcb4271"
- integrity sha512-UOb2o6bvi3+2kbD7+rUJdqTQvTbgqUD7ktd0U5Hulb3dBOyv6MZEagzMbXA003OROiS23JzzT7M0lLStvixwlg==
+"@abp/timeago@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.2.tgz#98d630cc3843eee64dbcc34fb8ca5afbab034718"
+ integrity sha512-vJmk+otyXXJE2s2J8iYpLVaFuNAYnIUSOitmi7umYnL+k/UE2KQhBXU7FR0/OBY9mAZYd+shaiGIU1LMSaJ+Xg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
timeago "^1.6.7"
-"@abp/utils@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.1.tgz#e53ef81f39fd620b41ae2bfb69d06ee85ccb28ad"
- integrity sha512-xBHIw5rmAttN5PL5C84L2znHkA2HMrP6HaA2aV5k6KU7BtOWJhviZnKJgbUBfufNQNeLwlThCHAfS7aOv/UQkg==
+"@abp/utils@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.2.tgz#86a980c6536b3b5ce185d406723b28be421864ac"
+ integrity sha512-Oz863VNA8fraQ81vTvqM0IqwiaseLwfFU5QNn6iOGOfn5wQrEkPwtZ0jMI+DGNtJgPzoKiq+iKc3K+SiuVgldg==
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 9c12be2aa6..a3ecabd4c4 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": "~10.1.0-rc.1",
- "@abp/prismjs": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2",
+ "@abp/prismjs": "~10.1.0-rc.2"
},
"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 891127c606..f29a796639 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,202 +2,202 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.1.tgz#99407c4108b685eef91f21d038cc5bd2343b5847"
- integrity sha512-UbVgYf1K+zUqueNCwOl4QoUAz7nwJyoQJSqq0gi7LA9JBRBbb8nDA8szQjAUVqF4h+k4o61588MUQnerUQlZ6g==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.1.tgz#7c0f721bdd4ec99f441a49e662a457d98c2c66fa"
- integrity sha512-dB6wmR3C43Vn1/hiWY3IkxivUEWTGhO4mj3hffwAeyJqnEUh6kQUW6UfmYNGEhahSjhVIS3lUZ4x+R+yGCpemw==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.1"
- "@abp/bootstrap" "~10.1.0-rc.1"
- "@abp/bootstrap-datepicker" "~10.1.0-rc.1"
- "@abp/bootstrap-daterangepicker" "~10.1.0-rc.1"
- "@abp/datatables.net-bs5" "~10.1.0-rc.1"
- "@abp/font-awesome" "~10.1.0-rc.1"
- "@abp/jquery-form" "~10.1.0-rc.1"
- "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.1"
- "@abp/lodash" "~10.1.0-rc.1"
- "@abp/luxon" "~10.1.0-rc.1"
- "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.1"
- "@abp/moment" "~10.1.0-rc.1"
- "@abp/select2" "~10.1.0-rc.1"
- "@abp/sweetalert2" "~10.1.0-rc.1"
- "@abp/timeago" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.1.tgz#290297353fdc15826a870b35162a0bbf4c9bc948"
- integrity sha512-RBR5wPf5ygzuSpfXG5MeOGd/YOtQH5pVyU65T4DMtGpLKHQxgxbh7JK1btyC5zGmzr/Ds5+5Mcd7S66dIckDJQ==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.2.tgz#599f5c47a417d1230fc17c0446a0229f920f7246"
+ integrity sha512-8F4nEK+VtgRRf8n+66HMbtCEaOMCW/OdbSEWRl9ahMNoj860oPIJ8P8Qn/2+LjtkPMdDAfCdEzyDzCd3igaFaA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.2.tgz#e5056e4e159f5815e3cffecab5c46f3d7d4f79d7"
+ integrity sha512-bo56XzQZPYL/3ckWTTTSSUsSFSFJobvfE29cz13NIrZ/tBtWyQCAJn92wYHuY+6IezYUWb4ga3PkFeHRzR142A==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.2"
+ "@abp/bootstrap" "~10.1.0-rc.2"
+ "@abp/bootstrap-datepicker" "~10.1.0-rc.2"
+ "@abp/bootstrap-daterangepicker" "~10.1.0-rc.2"
+ "@abp/datatables.net-bs5" "~10.1.0-rc.2"
+ "@abp/font-awesome" "~10.1.0-rc.2"
+ "@abp/jquery-form" "~10.1.0-rc.2"
+ "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.2"
+ "@abp/lodash" "~10.1.0-rc.2"
+ "@abp/luxon" "~10.1.0-rc.2"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.2"
+ "@abp/moment" "~10.1.0-rc.2"
+ "@abp/select2" "~10.1.0-rc.2"
+ "@abp/sweetalert2" "~10.1.0-rc.2"
+ "@abp/timeago" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.2.tgz#e25d3575d40bfcb3f809bd2d355671181ee5ff40"
+ integrity sha512-MOF86bVbi7N/nIla+361nsBrN4tiSka8xzpWcgqlLcCAl9ILG4rugbtafBAjN81taPma2peZM7egaOR4SDkTMw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.1.tgz#54730dc001dab746af18c41d51b73949742e3b2d"
- integrity sha512-DhVfA9WjfRQrUwjN2eJTCjLEhAU7rLjWgMlifW1id3HbdMs9emKn0rzQqhZ8MOSUNBwLkbUWcXWnojRUFgUB+w==
+"@abp/bootstrap-datepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.2.tgz#be80c6104ba53e18935fbf62ca2c1890f4b2fde4"
+ integrity sha512-BNcDYUSbZaLah4SfXm0efoqFTsOViVm6370k9L7vix/OGpIWwklJsr8y78lvdM5ANgNCfl0LPSq+seLJFc/OLA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.1.tgz#9af7ffe1d1bd4fc99e1606e30189e6f28bb2f201"
- integrity sha512-/Hsge8UwLZFuPNWRZhpf4nVB4urPYsaKAuCz0pSH5OHmS4FWr0Ng3vnUd9fcSeaq9OV2HarcgGWDapYtszttVQ==
+"@abp/bootstrap-daterangepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.2.tgz#f189f7d070ebd97d9cfdcb99571cab2d6a198ab5"
+ integrity sha512-bV8J0MuiAFVLkr48JsB6aZU6aPoqw+Gyhq1szQ74bEwNQlRBPuF92WVA5FACaUBj8dMUzR9HDDAYQuxUzpKYKA==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.1.tgz#e937f0a10874c0f3b0f719ff6a316b0ca91e65c5"
- integrity sha512-GlRyH5oCjcmFk1eBGCHk6GglL2DJ5RLlDXn7HWU675u48DCQTkBbKP9qA3RcYERQB4qqhcOKEDtYPZVljRVHRQ==
+"@abp/bootstrap@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.2.tgz#2300800a29ea09b91f5ed2e6177e5921fe7d2a0f"
+ integrity sha512-K+tDI9vz/Y9B/yu0i3AVpm4v3Odi44Q/yH5hAprL7f4pGxEOiqAFB/qzHAxG+7Oa7wjv5tPLv+Cz4DavBQjd8Q==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
bootstrap "^5.3.8"
-"@abp/clipboard@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.1.0-rc.1.tgz#ebb677e689372d5c0d07a5814b61eae45397a3c8"
- integrity sha512-iJpKYQJy5mN1O8n0+4DsWoWKAOasLuUE9Cja01Yl7YTb6XwYCGozBAVZbi+YouhYmsSr2zM4ozKxXPbXXt0u1w==
+"@abp/clipboard@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.1.0-rc.2.tgz#e99dbf190e3684e99c8e909bf38201c70e267502"
+ integrity sha512-kRS9pWc1jRgr4D4/EV9zdAy3rhhGBrcqk2as5+6Ih49npsEJY/cF5mYH7mj/ZYy8SHqtae/CR7bZsR+uCDKYrQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
clipboard "^2.0.11"
-"@abp/core@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.1.tgz#d9ce0958407fa39c8015eb2d9328a3a157aaa4f0"
- integrity sha512-pFsaQei1W0JRJkhNdlxq+EDP7x+83nT0UHZetTHNzp8tkP4Cn8Ni/ZODIUku8ck1vcKc0X3pXKj42BN+yZ1g3g==
+"@abp/core@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.2.tgz#403687aff5a30788f7b7ca660abdfd85d89438aa"
+ integrity sha512-euuG2Hna/DT6/R1dGOjgp3vcehYtF+CcOkRj31oquYKaM5YWk4OaZ314DSpnjgs/xo8DuVc4eKFQwIxD9RK41w==
dependencies:
- "@abp/utils" "~10.1.0-rc.1"
+ "@abp/utils" "~10.1.0-rc.2"
-"@abp/datatables.net-bs5@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.1.tgz#7981bc64c543d24aa5b0ab373f5693187990d5be"
- integrity sha512-yaYHuZ9eVHT2cZcH9r680X+imWhOqbhWlOlbLDpJtg7Un0ejDzou+JqxKYHHXmSEKYEPHjfCEhnXkMnyqvSUHQ==
+"@abp/datatables.net-bs5@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.2.tgz#a60650d1802b40751d30f8f6c56beb23fd66481b"
+ integrity sha512-IWwexNqbMpET54Fvm9LoPTJYf+4CoBbjFOvz3sL6CgO2feV5R5fKigjVU8zXKNh2W+RG8L6zEarfVxrr114TsA==
dependencies:
- "@abp/datatables.net" "~10.1.0-rc.1"
+ "@abp/datatables.net" "~10.1.0-rc.2"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.1.tgz#f487357690060dd055dbb7f54e1298e8d8a81e40"
- integrity sha512-KTKTW73H9vaX6J9ipXUf7d3QdseKaFRzl7e1QKldOoQxBs4pzT2NATGdUyiAnJsfPl4scpSFetzI66Rs7r3idg==
+"@abp/datatables.net@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.2.tgz#9147f68bc6dbc4eb40a9ddf65c7859e788cdcac2"
+ integrity sha512-a9DJpwg14S4nVOiC4ipw0CQwEYWB602e2gCJiH7W1mxopbQb135RxwhtdTnW//eIONcxC9IrEuvcBEAUVt2B7Q==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.1.tgz#2ee67b07ce6296c7f0ac5217c9d9677b9c70f05e"
- integrity sha512-O/3oLbSu1pMNftQzQW29gSpkWCFJazFKjT7sOYId1Ueric0svyJ42hFr5gHf9RFVmCU5pgyhawcoTyzQ34PxYQ==
+"@abp/font-awesome@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.2.tgz#364466cfe67e41e0c4d16b57d3923d10f66369f1"
+ integrity sha512-F1Jy8xoFV2aA+VN+NH1gtrG96/j9w7Picc+KLoCoIyNnJr/xJur11XkJyu5ln8KF4V7p/DY7QaQodWV/btOs8g==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-form@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.1.tgz#60fc98085671a2ff08e8c411847354b6a48cf55e"
- integrity sha512-bj70hE7MsH2AoBb2yU2d6ng5Bo/wqjCNUI0kbG0T1T4yp1cToGAVJ6hrd+KOp2Tf6W+NITn1EycxRTCktE9QRA==
+"@abp/jquery-form@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.2.tgz#3857717d07569c22d4bbbe459238abeb816d606a"
+ integrity sha512-2D5WHVnfK9bhRces1tgPwOEoc7KCYKYiKHBOcqct+LTA7zoRjJv/PM8/JhFVl+grVIw1aSwO4tU3YfZ22Vxipg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.1.tgz#a820989d8daf53096f838817cb2b3dba21f71653"
- integrity sha512-7uXxbvuZ+ecD5suH3nx/ggiFAA8GjXGAB5tuGCdqePdBn1PMzDIDI1ZP9q8sR7sMjo7RKVK6MzX+PazUuJ4L7g==
+"@abp/jquery-validation-unobtrusive@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.2.tgz#efd7b69a078a20c0bf405408dbdf52a7bf770b3b"
+ integrity sha512-tZ0MWgzBqp+SNfMxM0z2cGB21NiTHuVJyyQaXKE/ptuD5pc0uRkcqw/J2kWfiqsoVgChz27IB6h8/jqDafS4qg==
dependencies:
- "@abp/jquery-validation" "~10.1.0-rc.1"
+ "@abp/jquery-validation" "~10.1.0-rc.2"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.1.tgz#c8630b0a53ee93218be5c82264085b36b0b07936"
- integrity sha512-/eS4vy5gwHIaRr6aHkvO6xWRjL22bVly7S0AqbZw2OxJ0pw1n23n+zipn/NDRSngRZSajTLLm1pYCG5qlJGd3A==
+"@abp/jquery-validation@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.2.tgz#d39537a7356c51f9db2e66f6740cf6df86bd0442"
+ integrity sha512-LOkS0NKk4pLtLjPU0CCbwROyUg6EtJN8Z/it7QuKK1CIRfYYcAStgNnNm5geZP7CqECIkoiFfgWjI+L5Z9/Tfg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.1.tgz#38d5d5b5a6144bf207773ef26f36d381a257a635"
- integrity sha512-YarNlYPG7MfLc0fSnOcVrp9Da1EUxz4zUERnTOQ0/EdOUdcFhGAqI2yfoTFCxqX+TSphQWZEdif/tsfULtkI1A==
+"@abp/jquery@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.2.tgz#101a55f70d510978c8c05f5857d0e9d4965263f7"
+ integrity sha512-bQV1uFWGtwRYjNOsqJ8FM2004idX2Jj7YVL19YF1/PjyPUSMX+s8/IvJizBjyY5hPAiWBBhmV9g+IFWzxlDQoQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
jquery "~3.7.1"
-"@abp/lodash@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.1.tgz#bf735e34a42ddcdf19e331c8c5cf1a24a87475cb"
- integrity sha512-JQV0oFLE90V9GdrD37PTMiOylw/U6yjpDu5PblVW/zlNmw/TzEtukp3/vJl7GJxoKRYWtgJf1nFLgG/+2kjE1A==
+"@abp/lodash@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.2.tgz#d08c03f8d3d0fbaa3e71e603cbe5fb7f176933ef"
+ integrity sha512-KCnD1p2y52ZI+2ifpiFIUAiDPsKehnOD8HV5qKeObO6UCP97okif8IP+sQDmNQb8O33y/NKTyx/HcpwBbe/NYQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
lodash "^4.17.21"
-"@abp/luxon@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.1.tgz#1c883ad3a5653f0c6ce4965e4b4ce21543129534"
- integrity sha512-SDtwjIDR4OzrtzRWpgb8atUSK0DwajJ5LC486xHq5ftnbFETRfOwihyIfC2H4oIPPDE5oS+LOnjCkRYVkGt0oQ==
+"@abp/luxon@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.2.tgz#ef8d2b323bac054fc9610e241e1b1763d229e065"
+ integrity sha512-qYFl6XO3g9mZiu0dtIczI7LRuYWwc+RkpbDzSmruXcRks3KA+ZZco2vhHNnlwtXcINl/TXtbW7Wc0MX+8IB1Kw==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.1.tgz#770106795f5eba9d36dd2d4002e450c215c66787"
- integrity sha512-EFwQ7rUiPM6mxznn1t23ySzQH+VQ0dB2YxOqBAluFR/yC3qypjb98jGQaZKsJx9+iT4DuG9gGPKOfct1Sqh0KQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.2.tgz#dfaf666442c7c122f7da72c83b9adf194d5b6ec8"
+ integrity sha512-PudMHmNQgZ6JZeaVt1ZoXLqO0UZXJzUYiBah2LDkC4EMLjnMJFINHBoEVVa4ooXH0yjFv+zsbN0vWZYJ8TBJIA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.1.tgz#fe5bfa5bc28bb847cf801523c1b2f118ffb12447"
- integrity sha512-P6z9YO/FC/5DhTDWsHkquo5tEzIhSfUnRefLcZtv7XuJtevH/93NFSr23RL6D+F4r3cB5GMXGFUYmXGKWoXGHg==
+"@abp/moment@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.2.tgz#610a1592d13984aea51abbd13df8c5995a089149"
+ integrity sha512-ep8PnAXARw0t/wtGOVp/oiNhF3B0Bh6y2vRzKrcSoyXAQREGGm4fJdZVYZLGTfI4lFLTjebEgf4O7T9feUwJAw==
dependencies:
moment "^2.30.1"
-"@abp/prismjs@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.1.0-rc.1.tgz#26ef6c368dbfdd27d2836f1dd8cd9e8cf630f0ab"
- integrity sha512-6OpD/w7NOSI7OpjubMx45gXsZY5K6ggynJ9uSqv3NDxSbj9l6c8cRTX1i56ATT10rhyYxZIw83FRhMlxOiLfjg==
+"@abp/prismjs@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.1.0-rc.2.tgz#8565bab503a16fc349f4b0fa2609ad412ff838be"
+ integrity sha512-SmZWMyJ3cJW+qj4CWJ7y2kD6PMx2zfZMA5X5jPunsytG4Eht4AVyIR38Y4QSpO62zZgkHyZlSTFOozBfhrlv9A==
dependencies:
- "@abp/clipboard" "~10.1.0-rc.1"
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/clipboard" "~10.1.0-rc.2"
+ "@abp/core" "~10.1.0-rc.2"
prismjs "^1.30.0"
-"@abp/select2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.1.tgz#19432bb6483f8a3470f02a3037612835b4c54ef4"
- integrity sha512-xPvdrgXZzRhEIrEyw9eoITc+hYlbi8fSW3BGQ1ZMBXWgYkjWxhj/1AuLsu2ewFAKdBNz+PewjA0MKP6iBLATHw==
+"@abp/select2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.2.tgz#40c5418d007fc36817eecbe6388d767e4e7ca887"
+ integrity sha512-Pq0wlpL01sWRLUg5um3JtBXIqi3mmbwPwvgxP8hFbQngAt9JXAK8geNRiTMrIZgtW/ycXtM1v6I4zuWOLOeAGg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.1.tgz#40f4d6964cd6620dcb81040d84e432f4ae314686"
- integrity sha512-E4dUC2k/kClBnadtGK5NWR9YmCGgKq5uOGjEVtzXxJH62MlaCXlcxRrK9wNzX8pzDMDYFKjuOUugoROEgbRKWQ==
+"@abp/sweetalert2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.2.tgz#d35858c69e10c6726b02cdfcea88dfc32385963f"
+ integrity sha512-s9VPRToohN45uzHcKCF5Mcj8FVjsXcXUb0U3tuaT/Y+u4adHB3fBxYiXJFM0sVsCJ81dFktxwka40Wm8Taz/zA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.1.tgz#482e3a645f63ee9adf708ef8ae895fcf2bcb4271"
- integrity sha512-UOb2o6bvi3+2kbD7+rUJdqTQvTbgqUD7ktd0U5Hulb3dBOyv6MZEagzMbXA003OROiS23JzzT7M0lLStvixwlg==
+"@abp/timeago@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.2.tgz#98d630cc3843eee64dbcc34fb8ca5afbab034718"
+ integrity sha512-vJmk+otyXXJE2s2J8iYpLVaFuNAYnIUSOitmi7umYnL+k/UE2KQhBXU7FR0/OBY9mAZYd+shaiGIU1LMSaJ+Xg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
timeago "^1.6.7"
-"@abp/utils@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.1.tgz#e53ef81f39fd620b41ae2bfb69d06ee85ccb28ad"
- integrity sha512-xBHIw5rmAttN5PL5C84L2znHkA2HMrP6HaA2aV5k6KU7BtOWJhviZnKJgbUBfufNQNeLwlThCHAfS7aOv/UQkg==
+"@abp/utils@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.2.tgz#86a980c6536b3b5ce185d406723b28be421864ac"
+ integrity sha512-Oz863VNA8fraQ81vTvqM0IqwiaseLwfFU5QNn6iOGOfn5wQrEkPwtZ0jMI+DGNtJgPzoKiq+iKc3K+SiuVgldg==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json
index 5a8ef2d655..0f4e62f9cf 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": "~10.1.0-rc.1",
- "@abp/blogging": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2",
+ "@abp/blogging": "~10.1.0-rc.2"
}
}
diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock
index 7b82124f60..1f2cd9805d 100644
--- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock
+++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock
@@ -2,228 +2,228 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.1.tgz#99407c4108b685eef91f21d038cc5bd2343b5847"
- integrity sha512-UbVgYf1K+zUqueNCwOl4QoUAz7nwJyoQJSqq0gi7LA9JBRBbb8nDA8szQjAUVqF4h+k4o61588MUQnerUQlZ6g==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.1.tgz#7c0f721bdd4ec99f441a49e662a457d98c2c66fa"
- integrity sha512-dB6wmR3C43Vn1/hiWY3IkxivUEWTGhO4mj3hffwAeyJqnEUh6kQUW6UfmYNGEhahSjhVIS3lUZ4x+R+yGCpemw==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.1"
- "@abp/bootstrap" "~10.1.0-rc.1"
- "@abp/bootstrap-datepicker" "~10.1.0-rc.1"
- "@abp/bootstrap-daterangepicker" "~10.1.0-rc.1"
- "@abp/datatables.net-bs5" "~10.1.0-rc.1"
- "@abp/font-awesome" "~10.1.0-rc.1"
- "@abp/jquery-form" "~10.1.0-rc.1"
- "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.1"
- "@abp/lodash" "~10.1.0-rc.1"
- "@abp/luxon" "~10.1.0-rc.1"
- "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.1"
- "@abp/moment" "~10.1.0-rc.1"
- "@abp/select2" "~10.1.0-rc.1"
- "@abp/sweetalert2" "~10.1.0-rc.1"
- "@abp/timeago" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.1.tgz#290297353fdc15826a870b35162a0bbf4c9bc948"
- integrity sha512-RBR5wPf5ygzuSpfXG5MeOGd/YOtQH5pVyU65T4DMtGpLKHQxgxbh7JK1btyC5zGmzr/Ds5+5Mcd7S66dIckDJQ==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.2.tgz#599f5c47a417d1230fc17c0446a0229f920f7246"
+ integrity sha512-8F4nEK+VtgRRf8n+66HMbtCEaOMCW/OdbSEWRl9ahMNoj860oPIJ8P8Qn/2+LjtkPMdDAfCdEzyDzCd3igaFaA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.2.tgz#e5056e4e159f5815e3cffecab5c46f3d7d4f79d7"
+ integrity sha512-bo56XzQZPYL/3ckWTTTSSUsSFSFJobvfE29cz13NIrZ/tBtWyQCAJn92wYHuY+6IezYUWb4ga3PkFeHRzR142A==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.2"
+ "@abp/bootstrap" "~10.1.0-rc.2"
+ "@abp/bootstrap-datepicker" "~10.1.0-rc.2"
+ "@abp/bootstrap-daterangepicker" "~10.1.0-rc.2"
+ "@abp/datatables.net-bs5" "~10.1.0-rc.2"
+ "@abp/font-awesome" "~10.1.0-rc.2"
+ "@abp/jquery-form" "~10.1.0-rc.2"
+ "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.2"
+ "@abp/lodash" "~10.1.0-rc.2"
+ "@abp/luxon" "~10.1.0-rc.2"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.2"
+ "@abp/moment" "~10.1.0-rc.2"
+ "@abp/select2" "~10.1.0-rc.2"
+ "@abp/sweetalert2" "~10.1.0-rc.2"
+ "@abp/timeago" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.2.tgz#e25d3575d40bfcb3f809bd2d355671181ee5ff40"
+ integrity sha512-MOF86bVbi7N/nIla+361nsBrN4tiSka8xzpWcgqlLcCAl9ILG4rugbtafBAjN81taPma2peZM7egaOR4SDkTMw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/blogging@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-10.1.0-rc.1.tgz#2438e08f4ceeb47b5448ca7e46de00ecd825112b"
- integrity sha512-4D2JVdoXF0duIByQ6xeV3sU44ZLFQtkKgIjylDhlVuXUfCg8yKBqjK9MBNpV2Ltxj32HnKQjnPkj06P+zZL1ZA==
+"@abp/blogging@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-10.1.0-rc.2.tgz#f60d5fdfef5be11cbbb23ad7b4b246621828e5f9"
+ integrity sha512-GcI6JWeQKcHA0FaJZYTgx9l63jlSn1cqaWjBx6Y4KYIpy1c8vDKnve85jzsj7UOKgkMFX1c7mN2vwzH3NSr1Qg==
dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.1"
- "@abp/owl.carousel" "~10.1.0-rc.1"
- "@abp/prismjs" "~10.1.0-rc.1"
- "@abp/tui-editor" "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.2"
+ "@abp/owl.carousel" "~10.1.0-rc.2"
+ "@abp/prismjs" "~10.1.0-rc.2"
+ "@abp/tui-editor" "~10.1.0-rc.2"
-"@abp/bootstrap-datepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.1.tgz#54730dc001dab746af18c41d51b73949742e3b2d"
- integrity sha512-DhVfA9WjfRQrUwjN2eJTCjLEhAU7rLjWgMlifW1id3HbdMs9emKn0rzQqhZ8MOSUNBwLkbUWcXWnojRUFgUB+w==
+"@abp/bootstrap-datepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.2.tgz#be80c6104ba53e18935fbf62ca2c1890f4b2fde4"
+ integrity sha512-BNcDYUSbZaLah4SfXm0efoqFTsOViVm6370k9L7vix/OGpIWwklJsr8y78lvdM5ANgNCfl0LPSq+seLJFc/OLA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.1.tgz#9af7ffe1d1bd4fc99e1606e30189e6f28bb2f201"
- integrity sha512-/Hsge8UwLZFuPNWRZhpf4nVB4urPYsaKAuCz0pSH5OHmS4FWr0Ng3vnUd9fcSeaq9OV2HarcgGWDapYtszttVQ==
+"@abp/bootstrap-daterangepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.2.tgz#f189f7d070ebd97d9cfdcb99571cab2d6a198ab5"
+ integrity sha512-bV8J0MuiAFVLkr48JsB6aZU6aPoqw+Gyhq1szQ74bEwNQlRBPuF92WVA5FACaUBj8dMUzR9HDDAYQuxUzpKYKA==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.1.tgz#e937f0a10874c0f3b0f719ff6a316b0ca91e65c5"
- integrity sha512-GlRyH5oCjcmFk1eBGCHk6GglL2DJ5RLlDXn7HWU675u48DCQTkBbKP9qA3RcYERQB4qqhcOKEDtYPZVljRVHRQ==
+"@abp/bootstrap@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.2.tgz#2300800a29ea09b91f5ed2e6177e5921fe7d2a0f"
+ integrity sha512-K+tDI9vz/Y9B/yu0i3AVpm4v3Odi44Q/yH5hAprL7f4pGxEOiqAFB/qzHAxG+7Oa7wjv5tPLv+Cz4DavBQjd8Q==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
bootstrap "^5.3.8"
-"@abp/clipboard@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.1.0-rc.1.tgz#ebb677e689372d5c0d07a5814b61eae45397a3c8"
- integrity sha512-iJpKYQJy5mN1O8n0+4DsWoWKAOasLuUE9Cja01Yl7YTb6XwYCGozBAVZbi+YouhYmsSr2zM4ozKxXPbXXt0u1w==
+"@abp/clipboard@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.1.0-rc.2.tgz#e99dbf190e3684e99c8e909bf38201c70e267502"
+ integrity sha512-kRS9pWc1jRgr4D4/EV9zdAy3rhhGBrcqk2as5+6Ih49npsEJY/cF5mYH7mj/ZYy8SHqtae/CR7bZsR+uCDKYrQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
clipboard "^2.0.11"
-"@abp/core@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.1.tgz#d9ce0958407fa39c8015eb2d9328a3a157aaa4f0"
- integrity sha512-pFsaQei1W0JRJkhNdlxq+EDP7x+83nT0UHZetTHNzp8tkP4Cn8Ni/ZODIUku8ck1vcKc0X3pXKj42BN+yZ1g3g==
+"@abp/core@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.2.tgz#403687aff5a30788f7b7ca660abdfd85d89438aa"
+ integrity sha512-euuG2Hna/DT6/R1dGOjgp3vcehYtF+CcOkRj31oquYKaM5YWk4OaZ314DSpnjgs/xo8DuVc4eKFQwIxD9RK41w==
dependencies:
- "@abp/utils" "~10.1.0-rc.1"
+ "@abp/utils" "~10.1.0-rc.2"
-"@abp/datatables.net-bs5@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.1.tgz#7981bc64c543d24aa5b0ab373f5693187990d5be"
- integrity sha512-yaYHuZ9eVHT2cZcH9r680X+imWhOqbhWlOlbLDpJtg7Un0ejDzou+JqxKYHHXmSEKYEPHjfCEhnXkMnyqvSUHQ==
+"@abp/datatables.net-bs5@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.2.tgz#a60650d1802b40751d30f8f6c56beb23fd66481b"
+ integrity sha512-IWwexNqbMpET54Fvm9LoPTJYf+4CoBbjFOvz3sL6CgO2feV5R5fKigjVU8zXKNh2W+RG8L6zEarfVxrr114TsA==
dependencies:
- "@abp/datatables.net" "~10.1.0-rc.1"
+ "@abp/datatables.net" "~10.1.0-rc.2"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.1.tgz#f487357690060dd055dbb7f54e1298e8d8a81e40"
- integrity sha512-KTKTW73H9vaX6J9ipXUf7d3QdseKaFRzl7e1QKldOoQxBs4pzT2NATGdUyiAnJsfPl4scpSFetzI66Rs7r3idg==
+"@abp/datatables.net@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.2.tgz#9147f68bc6dbc4eb40a9ddf65c7859e788cdcac2"
+ integrity sha512-a9DJpwg14S4nVOiC4ipw0CQwEYWB602e2gCJiH7W1mxopbQb135RxwhtdTnW//eIONcxC9IrEuvcBEAUVt2B7Q==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.1.tgz#2ee67b07ce6296c7f0ac5217c9d9677b9c70f05e"
- integrity sha512-O/3oLbSu1pMNftQzQW29gSpkWCFJazFKjT7sOYId1Ueric0svyJ42hFr5gHf9RFVmCU5pgyhawcoTyzQ34PxYQ==
+"@abp/font-awesome@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.2.tgz#364466cfe67e41e0c4d16b57d3923d10f66369f1"
+ integrity sha512-F1Jy8xoFV2aA+VN+NH1gtrG96/j9w7Picc+KLoCoIyNnJr/xJur11XkJyu5ln8KF4V7p/DY7QaQodWV/btOs8g==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-form@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.1.tgz#60fc98085671a2ff08e8c411847354b6a48cf55e"
- integrity sha512-bj70hE7MsH2AoBb2yU2d6ng5Bo/wqjCNUI0kbG0T1T4yp1cToGAVJ6hrd+KOp2Tf6W+NITn1EycxRTCktE9QRA==
+"@abp/jquery-form@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.2.tgz#3857717d07569c22d4bbbe459238abeb816d606a"
+ integrity sha512-2D5WHVnfK9bhRces1tgPwOEoc7KCYKYiKHBOcqct+LTA7zoRjJv/PM8/JhFVl+grVIw1aSwO4tU3YfZ22Vxipg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.1.tgz#a820989d8daf53096f838817cb2b3dba21f71653"
- integrity sha512-7uXxbvuZ+ecD5suH3nx/ggiFAA8GjXGAB5tuGCdqePdBn1PMzDIDI1ZP9q8sR7sMjo7RKVK6MzX+PazUuJ4L7g==
+"@abp/jquery-validation-unobtrusive@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.2.tgz#efd7b69a078a20c0bf405408dbdf52a7bf770b3b"
+ integrity sha512-tZ0MWgzBqp+SNfMxM0z2cGB21NiTHuVJyyQaXKE/ptuD5pc0uRkcqw/J2kWfiqsoVgChz27IB6h8/jqDafS4qg==
dependencies:
- "@abp/jquery-validation" "~10.1.0-rc.1"
+ "@abp/jquery-validation" "~10.1.0-rc.2"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.1.tgz#c8630b0a53ee93218be5c82264085b36b0b07936"
- integrity sha512-/eS4vy5gwHIaRr6aHkvO6xWRjL22bVly7S0AqbZw2OxJ0pw1n23n+zipn/NDRSngRZSajTLLm1pYCG5qlJGd3A==
+"@abp/jquery-validation@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.2.tgz#d39537a7356c51f9db2e66f6740cf6df86bd0442"
+ integrity sha512-LOkS0NKk4pLtLjPU0CCbwROyUg6EtJN8Z/it7QuKK1CIRfYYcAStgNnNm5geZP7CqECIkoiFfgWjI+L5Z9/Tfg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.1.tgz#38d5d5b5a6144bf207773ef26f36d381a257a635"
- integrity sha512-YarNlYPG7MfLc0fSnOcVrp9Da1EUxz4zUERnTOQ0/EdOUdcFhGAqI2yfoTFCxqX+TSphQWZEdif/tsfULtkI1A==
+"@abp/jquery@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.2.tgz#101a55f70d510978c8c05f5857d0e9d4965263f7"
+ integrity sha512-bQV1uFWGtwRYjNOsqJ8FM2004idX2Jj7YVL19YF1/PjyPUSMX+s8/IvJizBjyY5hPAiWBBhmV9g+IFWzxlDQoQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
jquery "~3.7.1"
-"@abp/lodash@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.1.tgz#bf735e34a42ddcdf19e331c8c5cf1a24a87475cb"
- integrity sha512-JQV0oFLE90V9GdrD37PTMiOylw/U6yjpDu5PblVW/zlNmw/TzEtukp3/vJl7GJxoKRYWtgJf1nFLgG/+2kjE1A==
+"@abp/lodash@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.2.tgz#d08c03f8d3d0fbaa3e71e603cbe5fb7f176933ef"
+ integrity sha512-KCnD1p2y52ZI+2ifpiFIUAiDPsKehnOD8HV5qKeObO6UCP97okif8IP+sQDmNQb8O33y/NKTyx/HcpwBbe/NYQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
lodash "^4.17.21"
-"@abp/luxon@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.1.tgz#1c883ad3a5653f0c6ce4965e4b4ce21543129534"
- integrity sha512-SDtwjIDR4OzrtzRWpgb8atUSK0DwajJ5LC486xHq5ftnbFETRfOwihyIfC2H4oIPPDE5oS+LOnjCkRYVkGt0oQ==
+"@abp/luxon@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.2.tgz#ef8d2b323bac054fc9610e241e1b1763d229e065"
+ integrity sha512-qYFl6XO3g9mZiu0dtIczI7LRuYWwc+RkpbDzSmruXcRks3KA+ZZco2vhHNnlwtXcINl/TXtbW7Wc0MX+8IB1Kw==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.1.tgz#770106795f5eba9d36dd2d4002e450c215c66787"
- integrity sha512-EFwQ7rUiPM6mxznn1t23ySzQH+VQ0dB2YxOqBAluFR/yC3qypjb98jGQaZKsJx9+iT4DuG9gGPKOfct1Sqh0KQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.2.tgz#dfaf666442c7c122f7da72c83b9adf194d5b6ec8"
+ integrity sha512-PudMHmNQgZ6JZeaVt1ZoXLqO0UZXJzUYiBah2LDkC4EMLjnMJFINHBoEVVa4ooXH0yjFv+zsbN0vWZYJ8TBJIA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.1.tgz#fe5bfa5bc28bb847cf801523c1b2f118ffb12447"
- integrity sha512-P6z9YO/FC/5DhTDWsHkquo5tEzIhSfUnRefLcZtv7XuJtevH/93NFSr23RL6D+F4r3cB5GMXGFUYmXGKWoXGHg==
+"@abp/moment@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.2.tgz#610a1592d13984aea51abbd13df8c5995a089149"
+ integrity sha512-ep8PnAXARw0t/wtGOVp/oiNhF3B0Bh6y2vRzKrcSoyXAQREGGm4fJdZVYZLGTfI4lFLTjebEgf4O7T9feUwJAw==
dependencies:
moment "^2.30.1"
-"@abp/owl.carousel@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-10.1.0-rc.1.tgz#180edebe4fbeaf8fb9c468f6104c0ca14c9040a7"
- integrity sha512-udlMHMqoqhUBP0Xy1pJ9XBWHKjgNDxdXeW/QqgJwb1tFE1iyHpL73gaJLSfA1RzwDnWiweWDTcm7zzXhz2UpHQ==
+"@abp/owl.carousel@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-10.1.0-rc.2.tgz#e7697b7c8954472758547688fa6724b219a5c99c"
+ integrity sha512-XKciT8HNWoZvlcMGRwOz9opld4BJsAQwMKsKRu1oD4/KMCnT7LelacFPVbj3CLhsLpU+2eq0M947fEI7hQiPOQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
owl.carousel "^2.3.4"
-"@abp/prismjs@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.1.0-rc.1.tgz#26ef6c368dbfdd27d2836f1dd8cd9e8cf630f0ab"
- integrity sha512-6OpD/w7NOSI7OpjubMx45gXsZY5K6ggynJ9uSqv3NDxSbj9l6c8cRTX1i56ATT10rhyYxZIw83FRhMlxOiLfjg==
+"@abp/prismjs@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.1.0-rc.2.tgz#8565bab503a16fc349f4b0fa2609ad412ff838be"
+ integrity sha512-SmZWMyJ3cJW+qj4CWJ7y2kD6PMx2zfZMA5X5jPunsytG4Eht4AVyIR38Y4QSpO62zZgkHyZlSTFOozBfhrlv9A==
dependencies:
- "@abp/clipboard" "~10.1.0-rc.1"
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/clipboard" "~10.1.0-rc.2"
+ "@abp/core" "~10.1.0-rc.2"
prismjs "^1.30.0"
-"@abp/select2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.1.tgz#19432bb6483f8a3470f02a3037612835b4c54ef4"
- integrity sha512-xPvdrgXZzRhEIrEyw9eoITc+hYlbi8fSW3BGQ1ZMBXWgYkjWxhj/1AuLsu2ewFAKdBNz+PewjA0MKP6iBLATHw==
+"@abp/select2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.2.tgz#40c5418d007fc36817eecbe6388d767e4e7ca887"
+ integrity sha512-Pq0wlpL01sWRLUg5um3JtBXIqi3mmbwPwvgxP8hFbQngAt9JXAK8geNRiTMrIZgtW/ycXtM1v6I4zuWOLOeAGg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.1.tgz#40f4d6964cd6620dcb81040d84e432f4ae314686"
- integrity sha512-E4dUC2k/kClBnadtGK5NWR9YmCGgKq5uOGjEVtzXxJH62MlaCXlcxRrK9wNzX8pzDMDYFKjuOUugoROEgbRKWQ==
+"@abp/sweetalert2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.2.tgz#d35858c69e10c6726b02cdfcea88dfc32385963f"
+ integrity sha512-s9VPRToohN45uzHcKCF5Mcj8FVjsXcXUb0U3tuaT/Y+u4adHB3fBxYiXJFM0sVsCJ81dFktxwka40Wm8Taz/zA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.1.tgz#482e3a645f63ee9adf708ef8ae895fcf2bcb4271"
- integrity sha512-UOb2o6bvi3+2kbD7+rUJdqTQvTbgqUD7ktd0U5Hulb3dBOyv6MZEagzMbXA003OROiS23JzzT7M0lLStvixwlg==
+"@abp/timeago@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.2.tgz#98d630cc3843eee64dbcc34fb8ca5afbab034718"
+ integrity sha512-vJmk+otyXXJE2s2J8iYpLVaFuNAYnIUSOitmi7umYnL+k/UE2KQhBXU7FR0/OBY9mAZYd+shaiGIU1LMSaJ+Xg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
timeago "^1.6.7"
-"@abp/tui-editor@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-10.1.0-rc.1.tgz#fd9d014ea5bbdc9c93b3160040928cc27ba50d5e"
- integrity sha512-X6tlZs3/soUbl/L/aiQfIOZuiZRfmlUpEukIduJBlDsSaNR2hJgEa98RsQNvQ2yvSU/H7+9kwIwdizhQdimujA==
+"@abp/tui-editor@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-10.1.0-rc.2.tgz#ebbd5bad1ee180a0c6e6a9cfd894499614a71e96"
+ integrity sha512-k5V+5ZE+HZebfyXLzddRQDGri3HP7wSjDXEbSMLTgxZTem7IzksyLWLAN/woKRzWX92BJXcsmR8T1rhuMhohhA==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
- "@abp/prismjs" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
+ "@abp/prismjs" "~10.1.0-rc.2"
-"@abp/utils@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.1.tgz#e53ef81f39fd620b41ae2bfb69d06ee85ccb28ad"
- integrity sha512-xBHIw5rmAttN5PL5C84L2znHkA2HMrP6HaA2aV5k6KU7BtOWJhviZnKJgbUBfufNQNeLwlThCHAfS7aOv/UQkg==
+"@abp/utils@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.2.tgz#86a980c6536b3b5ce185d406723b28be421864ac"
+ integrity sha512-Oz863VNA8fraQ81vTvqM0IqwiaseLwfFU5QNn6iOGOfn5wQrEkPwtZ0jMI+DGNtJgPzoKiq+iKc3K+SiuVgldg==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json
index 10810ab195..66592df9ff 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": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2"
}
}
diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
index 55a960f9ab..a2b6e13b29 100644
--- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
+++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
@@ -2,185 +2,185 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.1.tgz#99407c4108b685eef91f21d038cc5bd2343b5847"
- integrity sha512-UbVgYf1K+zUqueNCwOl4QoUAz7nwJyoQJSqq0gi7LA9JBRBbb8nDA8szQjAUVqF4h+k4o61588MUQnerUQlZ6g==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.2.tgz#599f5c47a417d1230fc17c0446a0229f920f7246"
+ integrity sha512-8F4nEK+VtgRRf8n+66HMbtCEaOMCW/OdbSEWRl9ahMNoj860oPIJ8P8Qn/2+LjtkPMdDAfCdEzyDzCd3igaFaA==
dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.2"
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.1.tgz#7c0f721bdd4ec99f441a49e662a457d98c2c66fa"
- integrity sha512-dB6wmR3C43Vn1/hiWY3IkxivUEWTGhO4mj3hffwAeyJqnEUh6kQUW6UfmYNGEhahSjhVIS3lUZ4x+R+yGCpemw==
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.2.tgz#e5056e4e159f5815e3cffecab5c46f3d7d4f79d7"
+ integrity sha512-bo56XzQZPYL/3ckWTTTSSUsSFSFJobvfE29cz13NIrZ/tBtWyQCAJn92wYHuY+6IezYUWb4ga3PkFeHRzR142A==
dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.1"
- "@abp/bootstrap" "~10.1.0-rc.1"
- "@abp/bootstrap-datepicker" "~10.1.0-rc.1"
- "@abp/bootstrap-daterangepicker" "~10.1.0-rc.1"
- "@abp/datatables.net-bs5" "~10.1.0-rc.1"
- "@abp/font-awesome" "~10.1.0-rc.1"
- "@abp/jquery-form" "~10.1.0-rc.1"
- "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.1"
- "@abp/lodash" "~10.1.0-rc.1"
- "@abp/luxon" "~10.1.0-rc.1"
- "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.1"
- "@abp/moment" "~10.1.0-rc.1"
- "@abp/select2" "~10.1.0-rc.1"
- "@abp/sweetalert2" "~10.1.0-rc.1"
- "@abp/timeago" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.1.tgz#290297353fdc15826a870b35162a0bbf4c9bc948"
- integrity sha512-RBR5wPf5ygzuSpfXG5MeOGd/YOtQH5pVyU65T4DMtGpLKHQxgxbh7JK1btyC5zGmzr/Ds5+5Mcd7S66dIckDJQ==
+ "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.2"
+ "@abp/bootstrap" "~10.1.0-rc.2"
+ "@abp/bootstrap-datepicker" "~10.1.0-rc.2"
+ "@abp/bootstrap-daterangepicker" "~10.1.0-rc.2"
+ "@abp/datatables.net-bs5" "~10.1.0-rc.2"
+ "@abp/font-awesome" "~10.1.0-rc.2"
+ "@abp/jquery-form" "~10.1.0-rc.2"
+ "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.2"
+ "@abp/lodash" "~10.1.0-rc.2"
+ "@abp/luxon" "~10.1.0-rc.2"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.2"
+ "@abp/moment" "~10.1.0-rc.2"
+ "@abp/select2" "~10.1.0-rc.2"
+ "@abp/sweetalert2" "~10.1.0-rc.2"
+ "@abp/timeago" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.2.tgz#e25d3575d40bfcb3f809bd2d355671181ee5ff40"
+ integrity sha512-MOF86bVbi7N/nIla+361nsBrN4tiSka8xzpWcgqlLcCAl9ILG4rugbtafBAjN81taPma2peZM7egaOR4SDkTMw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.1.tgz#54730dc001dab746af18c41d51b73949742e3b2d"
- integrity sha512-DhVfA9WjfRQrUwjN2eJTCjLEhAU7rLjWgMlifW1id3HbdMs9emKn0rzQqhZ8MOSUNBwLkbUWcXWnojRUFgUB+w==
+"@abp/bootstrap-datepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.2.tgz#be80c6104ba53e18935fbf62ca2c1890f4b2fde4"
+ integrity sha512-BNcDYUSbZaLah4SfXm0efoqFTsOViVm6370k9L7vix/OGpIWwklJsr8y78lvdM5ANgNCfl0LPSq+seLJFc/OLA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.1.tgz#9af7ffe1d1bd4fc99e1606e30189e6f28bb2f201"
- integrity sha512-/Hsge8UwLZFuPNWRZhpf4nVB4urPYsaKAuCz0pSH5OHmS4FWr0Ng3vnUd9fcSeaq9OV2HarcgGWDapYtszttVQ==
+"@abp/bootstrap-daterangepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.2.tgz#f189f7d070ebd97d9cfdcb99571cab2d6a198ab5"
+ integrity sha512-bV8J0MuiAFVLkr48JsB6aZU6aPoqw+Gyhq1szQ74bEwNQlRBPuF92WVA5FACaUBj8dMUzR9HDDAYQuxUzpKYKA==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.1.tgz#e937f0a10874c0f3b0f719ff6a316b0ca91e65c5"
- integrity sha512-GlRyH5oCjcmFk1eBGCHk6GglL2DJ5RLlDXn7HWU675u48DCQTkBbKP9qA3RcYERQB4qqhcOKEDtYPZVljRVHRQ==
+"@abp/bootstrap@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.2.tgz#2300800a29ea09b91f5ed2e6177e5921fe7d2a0f"
+ integrity sha512-K+tDI9vz/Y9B/yu0i3AVpm4v3Odi44Q/yH5hAprL7f4pGxEOiqAFB/qzHAxG+7Oa7wjv5tPLv+Cz4DavBQjd8Q==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
bootstrap "^5.3.8"
-"@abp/core@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.1.tgz#d9ce0958407fa39c8015eb2d9328a3a157aaa4f0"
- integrity sha512-pFsaQei1W0JRJkhNdlxq+EDP7x+83nT0UHZetTHNzp8tkP4Cn8Ni/ZODIUku8ck1vcKc0X3pXKj42BN+yZ1g3g==
+"@abp/core@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.2.tgz#403687aff5a30788f7b7ca660abdfd85d89438aa"
+ integrity sha512-euuG2Hna/DT6/R1dGOjgp3vcehYtF+CcOkRj31oquYKaM5YWk4OaZ314DSpnjgs/xo8DuVc4eKFQwIxD9RK41w==
dependencies:
- "@abp/utils" "~10.1.0-rc.1"
+ "@abp/utils" "~10.1.0-rc.2"
-"@abp/datatables.net-bs5@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.1.tgz#7981bc64c543d24aa5b0ab373f5693187990d5be"
- integrity sha512-yaYHuZ9eVHT2cZcH9r680X+imWhOqbhWlOlbLDpJtg7Un0ejDzou+JqxKYHHXmSEKYEPHjfCEhnXkMnyqvSUHQ==
+"@abp/datatables.net-bs5@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.2.tgz#a60650d1802b40751d30f8f6c56beb23fd66481b"
+ integrity sha512-IWwexNqbMpET54Fvm9LoPTJYf+4CoBbjFOvz3sL6CgO2feV5R5fKigjVU8zXKNh2W+RG8L6zEarfVxrr114TsA==
dependencies:
- "@abp/datatables.net" "~10.1.0-rc.1"
+ "@abp/datatables.net" "~10.1.0-rc.2"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.1.tgz#f487357690060dd055dbb7f54e1298e8d8a81e40"
- integrity sha512-KTKTW73H9vaX6J9ipXUf7d3QdseKaFRzl7e1QKldOoQxBs4pzT2NATGdUyiAnJsfPl4scpSFetzI66Rs7r3idg==
+"@abp/datatables.net@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.2.tgz#9147f68bc6dbc4eb40a9ddf65c7859e788cdcac2"
+ integrity sha512-a9DJpwg14S4nVOiC4ipw0CQwEYWB602e2gCJiH7W1mxopbQb135RxwhtdTnW//eIONcxC9IrEuvcBEAUVt2B7Q==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.1.tgz#2ee67b07ce6296c7f0ac5217c9d9677b9c70f05e"
- integrity sha512-O/3oLbSu1pMNftQzQW29gSpkWCFJazFKjT7sOYId1Ueric0svyJ42hFr5gHf9RFVmCU5pgyhawcoTyzQ34PxYQ==
+"@abp/font-awesome@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.2.tgz#364466cfe67e41e0c4d16b57d3923d10f66369f1"
+ integrity sha512-F1Jy8xoFV2aA+VN+NH1gtrG96/j9w7Picc+KLoCoIyNnJr/xJur11XkJyu5ln8KF4V7p/DY7QaQodWV/btOs8g==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-form@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.1.tgz#60fc98085671a2ff08e8c411847354b6a48cf55e"
- integrity sha512-bj70hE7MsH2AoBb2yU2d6ng5Bo/wqjCNUI0kbG0T1T4yp1cToGAVJ6hrd+KOp2Tf6W+NITn1EycxRTCktE9QRA==
+"@abp/jquery-form@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.2.tgz#3857717d07569c22d4bbbe459238abeb816d606a"
+ integrity sha512-2D5WHVnfK9bhRces1tgPwOEoc7KCYKYiKHBOcqct+LTA7zoRjJv/PM8/JhFVl+grVIw1aSwO4tU3YfZ22Vxipg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.1.tgz#a820989d8daf53096f838817cb2b3dba21f71653"
- integrity sha512-7uXxbvuZ+ecD5suH3nx/ggiFAA8GjXGAB5tuGCdqePdBn1PMzDIDI1ZP9q8sR7sMjo7RKVK6MzX+PazUuJ4L7g==
+"@abp/jquery-validation-unobtrusive@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.2.tgz#efd7b69a078a20c0bf405408dbdf52a7bf770b3b"
+ integrity sha512-tZ0MWgzBqp+SNfMxM0z2cGB21NiTHuVJyyQaXKE/ptuD5pc0uRkcqw/J2kWfiqsoVgChz27IB6h8/jqDafS4qg==
dependencies:
- "@abp/jquery-validation" "~10.1.0-rc.1"
+ "@abp/jquery-validation" "~10.1.0-rc.2"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.1.tgz#c8630b0a53ee93218be5c82264085b36b0b07936"
- integrity sha512-/eS4vy5gwHIaRr6aHkvO6xWRjL22bVly7S0AqbZw2OxJ0pw1n23n+zipn/NDRSngRZSajTLLm1pYCG5qlJGd3A==
+"@abp/jquery-validation@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.2.tgz#d39537a7356c51f9db2e66f6740cf6df86bd0442"
+ integrity sha512-LOkS0NKk4pLtLjPU0CCbwROyUg6EtJN8Z/it7QuKK1CIRfYYcAStgNnNm5geZP7CqECIkoiFfgWjI+L5Z9/Tfg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.1.tgz#38d5d5b5a6144bf207773ef26f36d381a257a635"
- integrity sha512-YarNlYPG7MfLc0fSnOcVrp9Da1EUxz4zUERnTOQ0/EdOUdcFhGAqI2yfoTFCxqX+TSphQWZEdif/tsfULtkI1A==
+"@abp/jquery@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.2.tgz#101a55f70d510978c8c05f5857d0e9d4965263f7"
+ integrity sha512-bQV1uFWGtwRYjNOsqJ8FM2004idX2Jj7YVL19YF1/PjyPUSMX+s8/IvJizBjyY5hPAiWBBhmV9g+IFWzxlDQoQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
jquery "~3.7.1"
-"@abp/lodash@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.1.tgz#bf735e34a42ddcdf19e331c8c5cf1a24a87475cb"
- integrity sha512-JQV0oFLE90V9GdrD37PTMiOylw/U6yjpDu5PblVW/zlNmw/TzEtukp3/vJl7GJxoKRYWtgJf1nFLgG/+2kjE1A==
+"@abp/lodash@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.2.tgz#d08c03f8d3d0fbaa3e71e603cbe5fb7f176933ef"
+ integrity sha512-KCnD1p2y52ZI+2ifpiFIUAiDPsKehnOD8HV5qKeObO6UCP97okif8IP+sQDmNQb8O33y/NKTyx/HcpwBbe/NYQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
lodash "^4.17.21"
-"@abp/luxon@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.1.tgz#1c883ad3a5653f0c6ce4965e4b4ce21543129534"
- integrity sha512-SDtwjIDR4OzrtzRWpgb8atUSK0DwajJ5LC486xHq5ftnbFETRfOwihyIfC2H4oIPPDE5oS+LOnjCkRYVkGt0oQ==
+"@abp/luxon@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.2.tgz#ef8d2b323bac054fc9610e241e1b1763d229e065"
+ integrity sha512-qYFl6XO3g9mZiu0dtIczI7LRuYWwc+RkpbDzSmruXcRks3KA+ZZco2vhHNnlwtXcINl/TXtbW7Wc0MX+8IB1Kw==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.1.tgz#770106795f5eba9d36dd2d4002e450c215c66787"
- integrity sha512-EFwQ7rUiPM6mxznn1t23ySzQH+VQ0dB2YxOqBAluFR/yC3qypjb98jGQaZKsJx9+iT4DuG9gGPKOfct1Sqh0KQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.2.tgz#dfaf666442c7c122f7da72c83b9adf194d5b6ec8"
+ integrity sha512-PudMHmNQgZ6JZeaVt1ZoXLqO0UZXJzUYiBah2LDkC4EMLjnMJFINHBoEVVa4ooXH0yjFv+zsbN0vWZYJ8TBJIA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.1.tgz#fe5bfa5bc28bb847cf801523c1b2f118ffb12447"
- integrity sha512-P6z9YO/FC/5DhTDWsHkquo5tEzIhSfUnRefLcZtv7XuJtevH/93NFSr23RL6D+F4r3cB5GMXGFUYmXGKWoXGHg==
+"@abp/moment@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.2.tgz#610a1592d13984aea51abbd13df8c5995a089149"
+ integrity sha512-ep8PnAXARw0t/wtGOVp/oiNhF3B0Bh6y2vRzKrcSoyXAQREGGm4fJdZVYZLGTfI4lFLTjebEgf4O7T9feUwJAw==
dependencies:
moment "^2.30.1"
-"@abp/select2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.1.tgz#19432bb6483f8a3470f02a3037612835b4c54ef4"
- integrity sha512-xPvdrgXZzRhEIrEyw9eoITc+hYlbi8fSW3BGQ1ZMBXWgYkjWxhj/1AuLsu2ewFAKdBNz+PewjA0MKP6iBLATHw==
+"@abp/select2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.2.tgz#40c5418d007fc36817eecbe6388d767e4e7ca887"
+ integrity sha512-Pq0wlpL01sWRLUg5um3JtBXIqi3mmbwPwvgxP8hFbQngAt9JXAK8geNRiTMrIZgtW/ycXtM1v6I4zuWOLOeAGg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.1.tgz#40f4d6964cd6620dcb81040d84e432f4ae314686"
- integrity sha512-E4dUC2k/kClBnadtGK5NWR9YmCGgKq5uOGjEVtzXxJH62MlaCXlcxRrK9wNzX8pzDMDYFKjuOUugoROEgbRKWQ==
+"@abp/sweetalert2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.2.tgz#d35858c69e10c6726b02cdfcea88dfc32385963f"
+ integrity sha512-s9VPRToohN45uzHcKCF5Mcj8FVjsXcXUb0U3tuaT/Y+u4adHB3fBxYiXJFM0sVsCJ81dFktxwka40Wm8Taz/zA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.1.tgz#482e3a645f63ee9adf708ef8ae895fcf2bcb4271"
- integrity sha512-UOb2o6bvi3+2kbD7+rUJdqTQvTbgqUD7ktd0U5Hulb3dBOyv6MZEagzMbXA003OROiS23JzzT7M0lLStvixwlg==
+"@abp/timeago@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.2.tgz#98d630cc3843eee64dbcc34fb8ca5afbab034718"
+ integrity sha512-vJmk+otyXXJE2s2J8iYpLVaFuNAYnIUSOitmi7umYnL+k/UE2KQhBXU7FR0/OBY9mAZYd+shaiGIU1LMSaJ+Xg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
timeago "^1.6.7"
-"@abp/utils@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.1.tgz#e53ef81f39fd620b41ae2bfb69d06ee85ccb28ad"
- integrity sha512-xBHIw5rmAttN5PL5C84L2znHkA2HMrP6HaA2aV5k6KU7BtOWJhviZnKJgbUBfufNQNeLwlThCHAfS7aOv/UQkg==
+"@abp/utils@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.2.tgz#86a980c6536b3b5ce185d406723b28be421864ac"
+ integrity sha512-Oz863VNA8fraQ81vTvqM0IqwiaseLwfFU5QNn6iOGOfn5wQrEkPwtZ0jMI+DGNtJgPzoKiq+iKc3K+SiuVgldg==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json
index 9badfe81b0..d4bc7712ef 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": "~10.1.0-rc.1",
- "@abp/ng.identity": "~10.1.0-rc.1",
+ "@abp/ng.account": "~10.1.0-rc.2",
+ "@abp/ng.identity": "~10.1.0-rc.2",
"@abp/ng.setting-management": "~10.1.0-rc.1",
- "@abp/ng.tenant-management": "~10.1.0-rc.1",
- "@abp/ng.theme.basic": "~10.1.0-rc.1",
+ "@abp/ng.tenant-management": "~10.1.0-rc.2",
+ "@abp/ng.theme.basic": "~10.1.0-rc.2",
"@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 6aa3f4aee0..aa92688cca 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": ">=10.1.0-rc.1",
- "@abp/ng.theme.shared": ">=10.1.0-rc.1"
+ "@abp/ng.core": ">=10.1.0-rc.2",
+ "@abp/ng.theme.shared": ">=10.1.0-rc.2"
},
"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 5160154a29..7588fb2989 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": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2"
}
}
diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
index 55a960f9ab..a2b6e13b29 100644
--- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
+++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
@@ -2,185 +2,185 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.1.tgz#99407c4108b685eef91f21d038cc5bd2343b5847"
- integrity sha512-UbVgYf1K+zUqueNCwOl4QoUAz7nwJyoQJSqq0gi7LA9JBRBbb8nDA8szQjAUVqF4h+k4o61588MUQnerUQlZ6g==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.2.tgz#599f5c47a417d1230fc17c0446a0229f920f7246"
+ integrity sha512-8F4nEK+VtgRRf8n+66HMbtCEaOMCW/OdbSEWRl9ahMNoj860oPIJ8P8Qn/2+LjtkPMdDAfCdEzyDzCd3igaFaA==
dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.2"
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.1.tgz#7c0f721bdd4ec99f441a49e662a457d98c2c66fa"
- integrity sha512-dB6wmR3C43Vn1/hiWY3IkxivUEWTGhO4mj3hffwAeyJqnEUh6kQUW6UfmYNGEhahSjhVIS3lUZ4x+R+yGCpemw==
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.2.tgz#e5056e4e159f5815e3cffecab5c46f3d7d4f79d7"
+ integrity sha512-bo56XzQZPYL/3ckWTTTSSUsSFSFJobvfE29cz13NIrZ/tBtWyQCAJn92wYHuY+6IezYUWb4ga3PkFeHRzR142A==
dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.1"
- "@abp/bootstrap" "~10.1.0-rc.1"
- "@abp/bootstrap-datepicker" "~10.1.0-rc.1"
- "@abp/bootstrap-daterangepicker" "~10.1.0-rc.1"
- "@abp/datatables.net-bs5" "~10.1.0-rc.1"
- "@abp/font-awesome" "~10.1.0-rc.1"
- "@abp/jquery-form" "~10.1.0-rc.1"
- "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.1"
- "@abp/lodash" "~10.1.0-rc.1"
- "@abp/luxon" "~10.1.0-rc.1"
- "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.1"
- "@abp/moment" "~10.1.0-rc.1"
- "@abp/select2" "~10.1.0-rc.1"
- "@abp/sweetalert2" "~10.1.0-rc.1"
- "@abp/timeago" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.1.tgz#290297353fdc15826a870b35162a0bbf4c9bc948"
- integrity sha512-RBR5wPf5ygzuSpfXG5MeOGd/YOtQH5pVyU65T4DMtGpLKHQxgxbh7JK1btyC5zGmzr/Ds5+5Mcd7S66dIckDJQ==
+ "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.2"
+ "@abp/bootstrap" "~10.1.0-rc.2"
+ "@abp/bootstrap-datepicker" "~10.1.0-rc.2"
+ "@abp/bootstrap-daterangepicker" "~10.1.0-rc.2"
+ "@abp/datatables.net-bs5" "~10.1.0-rc.2"
+ "@abp/font-awesome" "~10.1.0-rc.2"
+ "@abp/jquery-form" "~10.1.0-rc.2"
+ "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.2"
+ "@abp/lodash" "~10.1.0-rc.2"
+ "@abp/luxon" "~10.1.0-rc.2"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.2"
+ "@abp/moment" "~10.1.0-rc.2"
+ "@abp/select2" "~10.1.0-rc.2"
+ "@abp/sweetalert2" "~10.1.0-rc.2"
+ "@abp/timeago" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.2.tgz#e25d3575d40bfcb3f809bd2d355671181ee5ff40"
+ integrity sha512-MOF86bVbi7N/nIla+361nsBrN4tiSka8xzpWcgqlLcCAl9ILG4rugbtafBAjN81taPma2peZM7egaOR4SDkTMw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.1.tgz#54730dc001dab746af18c41d51b73949742e3b2d"
- integrity sha512-DhVfA9WjfRQrUwjN2eJTCjLEhAU7rLjWgMlifW1id3HbdMs9emKn0rzQqhZ8MOSUNBwLkbUWcXWnojRUFgUB+w==
+"@abp/bootstrap-datepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.2.tgz#be80c6104ba53e18935fbf62ca2c1890f4b2fde4"
+ integrity sha512-BNcDYUSbZaLah4SfXm0efoqFTsOViVm6370k9L7vix/OGpIWwklJsr8y78lvdM5ANgNCfl0LPSq+seLJFc/OLA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.1.tgz#9af7ffe1d1bd4fc99e1606e30189e6f28bb2f201"
- integrity sha512-/Hsge8UwLZFuPNWRZhpf4nVB4urPYsaKAuCz0pSH5OHmS4FWr0Ng3vnUd9fcSeaq9OV2HarcgGWDapYtszttVQ==
+"@abp/bootstrap-daterangepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.2.tgz#f189f7d070ebd97d9cfdcb99571cab2d6a198ab5"
+ integrity sha512-bV8J0MuiAFVLkr48JsB6aZU6aPoqw+Gyhq1szQ74bEwNQlRBPuF92WVA5FACaUBj8dMUzR9HDDAYQuxUzpKYKA==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.1.tgz#e937f0a10874c0f3b0f719ff6a316b0ca91e65c5"
- integrity sha512-GlRyH5oCjcmFk1eBGCHk6GglL2DJ5RLlDXn7HWU675u48DCQTkBbKP9qA3RcYERQB4qqhcOKEDtYPZVljRVHRQ==
+"@abp/bootstrap@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.2.tgz#2300800a29ea09b91f5ed2e6177e5921fe7d2a0f"
+ integrity sha512-K+tDI9vz/Y9B/yu0i3AVpm4v3Odi44Q/yH5hAprL7f4pGxEOiqAFB/qzHAxG+7Oa7wjv5tPLv+Cz4DavBQjd8Q==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
bootstrap "^5.3.8"
-"@abp/core@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.1.tgz#d9ce0958407fa39c8015eb2d9328a3a157aaa4f0"
- integrity sha512-pFsaQei1W0JRJkhNdlxq+EDP7x+83nT0UHZetTHNzp8tkP4Cn8Ni/ZODIUku8ck1vcKc0X3pXKj42BN+yZ1g3g==
+"@abp/core@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.2.tgz#403687aff5a30788f7b7ca660abdfd85d89438aa"
+ integrity sha512-euuG2Hna/DT6/R1dGOjgp3vcehYtF+CcOkRj31oquYKaM5YWk4OaZ314DSpnjgs/xo8DuVc4eKFQwIxD9RK41w==
dependencies:
- "@abp/utils" "~10.1.0-rc.1"
+ "@abp/utils" "~10.1.0-rc.2"
-"@abp/datatables.net-bs5@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.1.tgz#7981bc64c543d24aa5b0ab373f5693187990d5be"
- integrity sha512-yaYHuZ9eVHT2cZcH9r680X+imWhOqbhWlOlbLDpJtg7Un0ejDzou+JqxKYHHXmSEKYEPHjfCEhnXkMnyqvSUHQ==
+"@abp/datatables.net-bs5@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.2.tgz#a60650d1802b40751d30f8f6c56beb23fd66481b"
+ integrity sha512-IWwexNqbMpET54Fvm9LoPTJYf+4CoBbjFOvz3sL6CgO2feV5R5fKigjVU8zXKNh2W+RG8L6zEarfVxrr114TsA==
dependencies:
- "@abp/datatables.net" "~10.1.0-rc.1"
+ "@abp/datatables.net" "~10.1.0-rc.2"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.1.tgz#f487357690060dd055dbb7f54e1298e8d8a81e40"
- integrity sha512-KTKTW73H9vaX6J9ipXUf7d3QdseKaFRzl7e1QKldOoQxBs4pzT2NATGdUyiAnJsfPl4scpSFetzI66Rs7r3idg==
+"@abp/datatables.net@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.2.tgz#9147f68bc6dbc4eb40a9ddf65c7859e788cdcac2"
+ integrity sha512-a9DJpwg14S4nVOiC4ipw0CQwEYWB602e2gCJiH7W1mxopbQb135RxwhtdTnW//eIONcxC9IrEuvcBEAUVt2B7Q==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.1.tgz#2ee67b07ce6296c7f0ac5217c9d9677b9c70f05e"
- integrity sha512-O/3oLbSu1pMNftQzQW29gSpkWCFJazFKjT7sOYId1Ueric0svyJ42hFr5gHf9RFVmCU5pgyhawcoTyzQ34PxYQ==
+"@abp/font-awesome@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.2.tgz#364466cfe67e41e0c4d16b57d3923d10f66369f1"
+ integrity sha512-F1Jy8xoFV2aA+VN+NH1gtrG96/j9w7Picc+KLoCoIyNnJr/xJur11XkJyu5ln8KF4V7p/DY7QaQodWV/btOs8g==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-form@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.1.tgz#60fc98085671a2ff08e8c411847354b6a48cf55e"
- integrity sha512-bj70hE7MsH2AoBb2yU2d6ng5Bo/wqjCNUI0kbG0T1T4yp1cToGAVJ6hrd+KOp2Tf6W+NITn1EycxRTCktE9QRA==
+"@abp/jquery-form@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.2.tgz#3857717d07569c22d4bbbe459238abeb816d606a"
+ integrity sha512-2D5WHVnfK9bhRces1tgPwOEoc7KCYKYiKHBOcqct+LTA7zoRjJv/PM8/JhFVl+grVIw1aSwO4tU3YfZ22Vxipg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.1.tgz#a820989d8daf53096f838817cb2b3dba21f71653"
- integrity sha512-7uXxbvuZ+ecD5suH3nx/ggiFAA8GjXGAB5tuGCdqePdBn1PMzDIDI1ZP9q8sR7sMjo7RKVK6MzX+PazUuJ4L7g==
+"@abp/jquery-validation-unobtrusive@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.2.tgz#efd7b69a078a20c0bf405408dbdf52a7bf770b3b"
+ integrity sha512-tZ0MWgzBqp+SNfMxM0z2cGB21NiTHuVJyyQaXKE/ptuD5pc0uRkcqw/J2kWfiqsoVgChz27IB6h8/jqDafS4qg==
dependencies:
- "@abp/jquery-validation" "~10.1.0-rc.1"
+ "@abp/jquery-validation" "~10.1.0-rc.2"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.1.tgz#c8630b0a53ee93218be5c82264085b36b0b07936"
- integrity sha512-/eS4vy5gwHIaRr6aHkvO6xWRjL22bVly7S0AqbZw2OxJ0pw1n23n+zipn/NDRSngRZSajTLLm1pYCG5qlJGd3A==
+"@abp/jquery-validation@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.2.tgz#d39537a7356c51f9db2e66f6740cf6df86bd0442"
+ integrity sha512-LOkS0NKk4pLtLjPU0CCbwROyUg6EtJN8Z/it7QuKK1CIRfYYcAStgNnNm5geZP7CqECIkoiFfgWjI+L5Z9/Tfg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.1.tgz#38d5d5b5a6144bf207773ef26f36d381a257a635"
- integrity sha512-YarNlYPG7MfLc0fSnOcVrp9Da1EUxz4zUERnTOQ0/EdOUdcFhGAqI2yfoTFCxqX+TSphQWZEdif/tsfULtkI1A==
+"@abp/jquery@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.2.tgz#101a55f70d510978c8c05f5857d0e9d4965263f7"
+ integrity sha512-bQV1uFWGtwRYjNOsqJ8FM2004idX2Jj7YVL19YF1/PjyPUSMX+s8/IvJizBjyY5hPAiWBBhmV9g+IFWzxlDQoQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
jquery "~3.7.1"
-"@abp/lodash@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.1.tgz#bf735e34a42ddcdf19e331c8c5cf1a24a87475cb"
- integrity sha512-JQV0oFLE90V9GdrD37PTMiOylw/U6yjpDu5PblVW/zlNmw/TzEtukp3/vJl7GJxoKRYWtgJf1nFLgG/+2kjE1A==
+"@abp/lodash@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.2.tgz#d08c03f8d3d0fbaa3e71e603cbe5fb7f176933ef"
+ integrity sha512-KCnD1p2y52ZI+2ifpiFIUAiDPsKehnOD8HV5qKeObO6UCP97okif8IP+sQDmNQb8O33y/NKTyx/HcpwBbe/NYQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
lodash "^4.17.21"
-"@abp/luxon@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.1.tgz#1c883ad3a5653f0c6ce4965e4b4ce21543129534"
- integrity sha512-SDtwjIDR4OzrtzRWpgb8atUSK0DwajJ5LC486xHq5ftnbFETRfOwihyIfC2H4oIPPDE5oS+LOnjCkRYVkGt0oQ==
+"@abp/luxon@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.2.tgz#ef8d2b323bac054fc9610e241e1b1763d229e065"
+ integrity sha512-qYFl6XO3g9mZiu0dtIczI7LRuYWwc+RkpbDzSmruXcRks3KA+ZZco2vhHNnlwtXcINl/TXtbW7Wc0MX+8IB1Kw==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.1.tgz#770106795f5eba9d36dd2d4002e450c215c66787"
- integrity sha512-EFwQ7rUiPM6mxznn1t23ySzQH+VQ0dB2YxOqBAluFR/yC3qypjb98jGQaZKsJx9+iT4DuG9gGPKOfct1Sqh0KQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.2.tgz#dfaf666442c7c122f7da72c83b9adf194d5b6ec8"
+ integrity sha512-PudMHmNQgZ6JZeaVt1ZoXLqO0UZXJzUYiBah2LDkC4EMLjnMJFINHBoEVVa4ooXH0yjFv+zsbN0vWZYJ8TBJIA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.1.tgz#fe5bfa5bc28bb847cf801523c1b2f118ffb12447"
- integrity sha512-P6z9YO/FC/5DhTDWsHkquo5tEzIhSfUnRefLcZtv7XuJtevH/93NFSr23RL6D+F4r3cB5GMXGFUYmXGKWoXGHg==
+"@abp/moment@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.2.tgz#610a1592d13984aea51abbd13df8c5995a089149"
+ integrity sha512-ep8PnAXARw0t/wtGOVp/oiNhF3B0Bh6y2vRzKrcSoyXAQREGGm4fJdZVYZLGTfI4lFLTjebEgf4O7T9feUwJAw==
dependencies:
moment "^2.30.1"
-"@abp/select2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.1.tgz#19432bb6483f8a3470f02a3037612835b4c54ef4"
- integrity sha512-xPvdrgXZzRhEIrEyw9eoITc+hYlbi8fSW3BGQ1ZMBXWgYkjWxhj/1AuLsu2ewFAKdBNz+PewjA0MKP6iBLATHw==
+"@abp/select2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.2.tgz#40c5418d007fc36817eecbe6388d767e4e7ca887"
+ integrity sha512-Pq0wlpL01sWRLUg5um3JtBXIqi3mmbwPwvgxP8hFbQngAt9JXAK8geNRiTMrIZgtW/ycXtM1v6I4zuWOLOeAGg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.1.tgz#40f4d6964cd6620dcb81040d84e432f4ae314686"
- integrity sha512-E4dUC2k/kClBnadtGK5NWR9YmCGgKq5uOGjEVtzXxJH62MlaCXlcxRrK9wNzX8pzDMDYFKjuOUugoROEgbRKWQ==
+"@abp/sweetalert2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.2.tgz#d35858c69e10c6726b02cdfcea88dfc32385963f"
+ integrity sha512-s9VPRToohN45uzHcKCF5Mcj8FVjsXcXUb0U3tuaT/Y+u4adHB3fBxYiXJFM0sVsCJ81dFktxwka40Wm8Taz/zA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.1.tgz#482e3a645f63ee9adf708ef8ae895fcf2bcb4271"
- integrity sha512-UOb2o6bvi3+2kbD7+rUJdqTQvTbgqUD7ktd0U5Hulb3dBOyv6MZEagzMbXA003OROiS23JzzT7M0lLStvixwlg==
+"@abp/timeago@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.2.tgz#98d630cc3843eee64dbcc34fb8ca5afbab034718"
+ integrity sha512-vJmk+otyXXJE2s2J8iYpLVaFuNAYnIUSOitmi7umYnL+k/UE2KQhBXU7FR0/OBY9mAZYd+shaiGIU1LMSaJ+Xg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
timeago "^1.6.7"
-"@abp/utils@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.1.tgz#e53ef81f39fd620b41ae2bfb69d06ee85ccb28ad"
- integrity sha512-xBHIw5rmAttN5PL5C84L2znHkA2HMrP6HaA2aV5k6KU7BtOWJhviZnKJgbUBfufNQNeLwlThCHAfS7aOv/UQkg==
+"@abp/utils@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.2.tgz#86a980c6536b3b5ce185d406723b28be421864ac"
+ integrity sha512-Oz863VNA8fraQ81vTvqM0IqwiaseLwfFU5QNn6iOGOfn5wQrEkPwtZ0jMI+DGNtJgPzoKiq+iKc3K+SiuVgldg==
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 881359366e..52a1fc6c21 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": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2"
}
}
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 55a960f9ab..a2b6e13b29 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
+++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
@@ -2,185 +2,185 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.1.tgz#99407c4108b685eef91f21d038cc5bd2343b5847"
- integrity sha512-UbVgYf1K+zUqueNCwOl4QoUAz7nwJyoQJSqq0gi7LA9JBRBbb8nDA8szQjAUVqF4h+k4o61588MUQnerUQlZ6g==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.2.tgz#599f5c47a417d1230fc17c0446a0229f920f7246"
+ integrity sha512-8F4nEK+VtgRRf8n+66HMbtCEaOMCW/OdbSEWRl9ahMNoj860oPIJ8P8Qn/2+LjtkPMdDAfCdEzyDzCd3igaFaA==
dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.2"
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.1.tgz#7c0f721bdd4ec99f441a49e662a457d98c2c66fa"
- integrity sha512-dB6wmR3C43Vn1/hiWY3IkxivUEWTGhO4mj3hffwAeyJqnEUh6kQUW6UfmYNGEhahSjhVIS3lUZ4x+R+yGCpemw==
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.2.tgz#e5056e4e159f5815e3cffecab5c46f3d7d4f79d7"
+ integrity sha512-bo56XzQZPYL/3ckWTTTSSUsSFSFJobvfE29cz13NIrZ/tBtWyQCAJn92wYHuY+6IezYUWb4ga3PkFeHRzR142A==
dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.1"
- "@abp/bootstrap" "~10.1.0-rc.1"
- "@abp/bootstrap-datepicker" "~10.1.0-rc.1"
- "@abp/bootstrap-daterangepicker" "~10.1.0-rc.1"
- "@abp/datatables.net-bs5" "~10.1.0-rc.1"
- "@abp/font-awesome" "~10.1.0-rc.1"
- "@abp/jquery-form" "~10.1.0-rc.1"
- "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.1"
- "@abp/lodash" "~10.1.0-rc.1"
- "@abp/luxon" "~10.1.0-rc.1"
- "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.1"
- "@abp/moment" "~10.1.0-rc.1"
- "@abp/select2" "~10.1.0-rc.1"
- "@abp/sweetalert2" "~10.1.0-rc.1"
- "@abp/timeago" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.1.tgz#290297353fdc15826a870b35162a0bbf4c9bc948"
- integrity sha512-RBR5wPf5ygzuSpfXG5MeOGd/YOtQH5pVyU65T4DMtGpLKHQxgxbh7JK1btyC5zGmzr/Ds5+5Mcd7S66dIckDJQ==
+ "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.2"
+ "@abp/bootstrap" "~10.1.0-rc.2"
+ "@abp/bootstrap-datepicker" "~10.1.0-rc.2"
+ "@abp/bootstrap-daterangepicker" "~10.1.0-rc.2"
+ "@abp/datatables.net-bs5" "~10.1.0-rc.2"
+ "@abp/font-awesome" "~10.1.0-rc.2"
+ "@abp/jquery-form" "~10.1.0-rc.2"
+ "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.2"
+ "@abp/lodash" "~10.1.0-rc.2"
+ "@abp/luxon" "~10.1.0-rc.2"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.2"
+ "@abp/moment" "~10.1.0-rc.2"
+ "@abp/select2" "~10.1.0-rc.2"
+ "@abp/sweetalert2" "~10.1.0-rc.2"
+ "@abp/timeago" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.2.tgz#e25d3575d40bfcb3f809bd2d355671181ee5ff40"
+ integrity sha512-MOF86bVbi7N/nIla+361nsBrN4tiSka8xzpWcgqlLcCAl9ILG4rugbtafBAjN81taPma2peZM7egaOR4SDkTMw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.1.tgz#54730dc001dab746af18c41d51b73949742e3b2d"
- integrity sha512-DhVfA9WjfRQrUwjN2eJTCjLEhAU7rLjWgMlifW1id3HbdMs9emKn0rzQqhZ8MOSUNBwLkbUWcXWnojRUFgUB+w==
+"@abp/bootstrap-datepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.2.tgz#be80c6104ba53e18935fbf62ca2c1890f4b2fde4"
+ integrity sha512-BNcDYUSbZaLah4SfXm0efoqFTsOViVm6370k9L7vix/OGpIWwklJsr8y78lvdM5ANgNCfl0LPSq+seLJFc/OLA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.1.tgz#9af7ffe1d1bd4fc99e1606e30189e6f28bb2f201"
- integrity sha512-/Hsge8UwLZFuPNWRZhpf4nVB4urPYsaKAuCz0pSH5OHmS4FWr0Ng3vnUd9fcSeaq9OV2HarcgGWDapYtszttVQ==
+"@abp/bootstrap-daterangepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.2.tgz#f189f7d070ebd97d9cfdcb99571cab2d6a198ab5"
+ integrity sha512-bV8J0MuiAFVLkr48JsB6aZU6aPoqw+Gyhq1szQ74bEwNQlRBPuF92WVA5FACaUBj8dMUzR9HDDAYQuxUzpKYKA==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.1.tgz#e937f0a10874c0f3b0f719ff6a316b0ca91e65c5"
- integrity sha512-GlRyH5oCjcmFk1eBGCHk6GglL2DJ5RLlDXn7HWU675u48DCQTkBbKP9qA3RcYERQB4qqhcOKEDtYPZVljRVHRQ==
+"@abp/bootstrap@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.2.tgz#2300800a29ea09b91f5ed2e6177e5921fe7d2a0f"
+ integrity sha512-K+tDI9vz/Y9B/yu0i3AVpm4v3Odi44Q/yH5hAprL7f4pGxEOiqAFB/qzHAxG+7Oa7wjv5tPLv+Cz4DavBQjd8Q==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
bootstrap "^5.3.8"
-"@abp/core@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.1.tgz#d9ce0958407fa39c8015eb2d9328a3a157aaa4f0"
- integrity sha512-pFsaQei1W0JRJkhNdlxq+EDP7x+83nT0UHZetTHNzp8tkP4Cn8Ni/ZODIUku8ck1vcKc0X3pXKj42BN+yZ1g3g==
+"@abp/core@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.2.tgz#403687aff5a30788f7b7ca660abdfd85d89438aa"
+ integrity sha512-euuG2Hna/DT6/R1dGOjgp3vcehYtF+CcOkRj31oquYKaM5YWk4OaZ314DSpnjgs/xo8DuVc4eKFQwIxD9RK41w==
dependencies:
- "@abp/utils" "~10.1.0-rc.1"
+ "@abp/utils" "~10.1.0-rc.2"
-"@abp/datatables.net-bs5@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.1.tgz#7981bc64c543d24aa5b0ab373f5693187990d5be"
- integrity sha512-yaYHuZ9eVHT2cZcH9r680X+imWhOqbhWlOlbLDpJtg7Un0ejDzou+JqxKYHHXmSEKYEPHjfCEhnXkMnyqvSUHQ==
+"@abp/datatables.net-bs5@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.2.tgz#a60650d1802b40751d30f8f6c56beb23fd66481b"
+ integrity sha512-IWwexNqbMpET54Fvm9LoPTJYf+4CoBbjFOvz3sL6CgO2feV5R5fKigjVU8zXKNh2W+RG8L6zEarfVxrr114TsA==
dependencies:
- "@abp/datatables.net" "~10.1.0-rc.1"
+ "@abp/datatables.net" "~10.1.0-rc.2"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.1.tgz#f487357690060dd055dbb7f54e1298e8d8a81e40"
- integrity sha512-KTKTW73H9vaX6J9ipXUf7d3QdseKaFRzl7e1QKldOoQxBs4pzT2NATGdUyiAnJsfPl4scpSFetzI66Rs7r3idg==
+"@abp/datatables.net@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.2.tgz#9147f68bc6dbc4eb40a9ddf65c7859e788cdcac2"
+ integrity sha512-a9DJpwg14S4nVOiC4ipw0CQwEYWB602e2gCJiH7W1mxopbQb135RxwhtdTnW//eIONcxC9IrEuvcBEAUVt2B7Q==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.1.tgz#2ee67b07ce6296c7f0ac5217c9d9677b9c70f05e"
- integrity sha512-O/3oLbSu1pMNftQzQW29gSpkWCFJazFKjT7sOYId1Ueric0svyJ42hFr5gHf9RFVmCU5pgyhawcoTyzQ34PxYQ==
+"@abp/font-awesome@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.2.tgz#364466cfe67e41e0c4d16b57d3923d10f66369f1"
+ integrity sha512-F1Jy8xoFV2aA+VN+NH1gtrG96/j9w7Picc+KLoCoIyNnJr/xJur11XkJyu5ln8KF4V7p/DY7QaQodWV/btOs8g==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-form@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.1.tgz#60fc98085671a2ff08e8c411847354b6a48cf55e"
- integrity sha512-bj70hE7MsH2AoBb2yU2d6ng5Bo/wqjCNUI0kbG0T1T4yp1cToGAVJ6hrd+KOp2Tf6W+NITn1EycxRTCktE9QRA==
+"@abp/jquery-form@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.2.tgz#3857717d07569c22d4bbbe459238abeb816d606a"
+ integrity sha512-2D5WHVnfK9bhRces1tgPwOEoc7KCYKYiKHBOcqct+LTA7zoRjJv/PM8/JhFVl+grVIw1aSwO4tU3YfZ22Vxipg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.1.tgz#a820989d8daf53096f838817cb2b3dba21f71653"
- integrity sha512-7uXxbvuZ+ecD5suH3nx/ggiFAA8GjXGAB5tuGCdqePdBn1PMzDIDI1ZP9q8sR7sMjo7RKVK6MzX+PazUuJ4L7g==
+"@abp/jquery-validation-unobtrusive@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.2.tgz#efd7b69a078a20c0bf405408dbdf52a7bf770b3b"
+ integrity sha512-tZ0MWgzBqp+SNfMxM0z2cGB21NiTHuVJyyQaXKE/ptuD5pc0uRkcqw/J2kWfiqsoVgChz27IB6h8/jqDafS4qg==
dependencies:
- "@abp/jquery-validation" "~10.1.0-rc.1"
+ "@abp/jquery-validation" "~10.1.0-rc.2"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.1.tgz#c8630b0a53ee93218be5c82264085b36b0b07936"
- integrity sha512-/eS4vy5gwHIaRr6aHkvO6xWRjL22bVly7S0AqbZw2OxJ0pw1n23n+zipn/NDRSngRZSajTLLm1pYCG5qlJGd3A==
+"@abp/jquery-validation@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.2.tgz#d39537a7356c51f9db2e66f6740cf6df86bd0442"
+ integrity sha512-LOkS0NKk4pLtLjPU0CCbwROyUg6EtJN8Z/it7QuKK1CIRfYYcAStgNnNm5geZP7CqECIkoiFfgWjI+L5Z9/Tfg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.1.tgz#38d5d5b5a6144bf207773ef26f36d381a257a635"
- integrity sha512-YarNlYPG7MfLc0fSnOcVrp9Da1EUxz4zUERnTOQ0/EdOUdcFhGAqI2yfoTFCxqX+TSphQWZEdif/tsfULtkI1A==
+"@abp/jquery@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.2.tgz#101a55f70d510978c8c05f5857d0e9d4965263f7"
+ integrity sha512-bQV1uFWGtwRYjNOsqJ8FM2004idX2Jj7YVL19YF1/PjyPUSMX+s8/IvJizBjyY5hPAiWBBhmV9g+IFWzxlDQoQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
jquery "~3.7.1"
-"@abp/lodash@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.1.tgz#bf735e34a42ddcdf19e331c8c5cf1a24a87475cb"
- integrity sha512-JQV0oFLE90V9GdrD37PTMiOylw/U6yjpDu5PblVW/zlNmw/TzEtukp3/vJl7GJxoKRYWtgJf1nFLgG/+2kjE1A==
+"@abp/lodash@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.2.tgz#d08c03f8d3d0fbaa3e71e603cbe5fb7f176933ef"
+ integrity sha512-KCnD1p2y52ZI+2ifpiFIUAiDPsKehnOD8HV5qKeObO6UCP97okif8IP+sQDmNQb8O33y/NKTyx/HcpwBbe/NYQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
lodash "^4.17.21"
-"@abp/luxon@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.1.tgz#1c883ad3a5653f0c6ce4965e4b4ce21543129534"
- integrity sha512-SDtwjIDR4OzrtzRWpgb8atUSK0DwajJ5LC486xHq5ftnbFETRfOwihyIfC2H4oIPPDE5oS+LOnjCkRYVkGt0oQ==
+"@abp/luxon@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.2.tgz#ef8d2b323bac054fc9610e241e1b1763d229e065"
+ integrity sha512-qYFl6XO3g9mZiu0dtIczI7LRuYWwc+RkpbDzSmruXcRks3KA+ZZco2vhHNnlwtXcINl/TXtbW7Wc0MX+8IB1Kw==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.1.tgz#770106795f5eba9d36dd2d4002e450c215c66787"
- integrity sha512-EFwQ7rUiPM6mxznn1t23ySzQH+VQ0dB2YxOqBAluFR/yC3qypjb98jGQaZKsJx9+iT4DuG9gGPKOfct1Sqh0KQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.2.tgz#dfaf666442c7c122f7da72c83b9adf194d5b6ec8"
+ integrity sha512-PudMHmNQgZ6JZeaVt1ZoXLqO0UZXJzUYiBah2LDkC4EMLjnMJFINHBoEVVa4ooXH0yjFv+zsbN0vWZYJ8TBJIA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.1.tgz#fe5bfa5bc28bb847cf801523c1b2f118ffb12447"
- integrity sha512-P6z9YO/FC/5DhTDWsHkquo5tEzIhSfUnRefLcZtv7XuJtevH/93NFSr23RL6D+F4r3cB5GMXGFUYmXGKWoXGHg==
+"@abp/moment@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.2.tgz#610a1592d13984aea51abbd13df8c5995a089149"
+ integrity sha512-ep8PnAXARw0t/wtGOVp/oiNhF3B0Bh6y2vRzKrcSoyXAQREGGm4fJdZVYZLGTfI4lFLTjebEgf4O7T9feUwJAw==
dependencies:
moment "^2.30.1"
-"@abp/select2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.1.tgz#19432bb6483f8a3470f02a3037612835b4c54ef4"
- integrity sha512-xPvdrgXZzRhEIrEyw9eoITc+hYlbi8fSW3BGQ1ZMBXWgYkjWxhj/1AuLsu2ewFAKdBNz+PewjA0MKP6iBLATHw==
+"@abp/select2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.2.tgz#40c5418d007fc36817eecbe6388d767e4e7ca887"
+ integrity sha512-Pq0wlpL01sWRLUg5um3JtBXIqi3mmbwPwvgxP8hFbQngAt9JXAK8geNRiTMrIZgtW/ycXtM1v6I4zuWOLOeAGg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.1.tgz#40f4d6964cd6620dcb81040d84e432f4ae314686"
- integrity sha512-E4dUC2k/kClBnadtGK5NWR9YmCGgKq5uOGjEVtzXxJH62MlaCXlcxRrK9wNzX8pzDMDYFKjuOUugoROEgbRKWQ==
+"@abp/sweetalert2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.2.tgz#d35858c69e10c6726b02cdfcea88dfc32385963f"
+ integrity sha512-s9VPRToohN45uzHcKCF5Mcj8FVjsXcXUb0U3tuaT/Y+u4adHB3fBxYiXJFM0sVsCJ81dFktxwka40Wm8Taz/zA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.1.tgz#482e3a645f63ee9adf708ef8ae895fcf2bcb4271"
- integrity sha512-UOb2o6bvi3+2kbD7+rUJdqTQvTbgqUD7ktd0U5Hulb3dBOyv6MZEagzMbXA003OROiS23JzzT7M0lLStvixwlg==
+"@abp/timeago@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.2.tgz#98d630cc3843eee64dbcc34fb8ca5afbab034718"
+ integrity sha512-vJmk+otyXXJE2s2J8iYpLVaFuNAYnIUSOitmi7umYnL+k/UE2KQhBXU7FR0/OBY9mAZYd+shaiGIU1LMSaJ+Xg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
timeago "^1.6.7"
-"@abp/utils@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.1.tgz#e53ef81f39fd620b41ae2bfb69d06ee85ccb28ad"
- integrity sha512-xBHIw5rmAttN5PL5C84L2znHkA2HMrP6HaA2aV5k6KU7BtOWJhviZnKJgbUBfufNQNeLwlThCHAfS7aOv/UQkg==
+"@abp/utils@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.2.tgz#86a980c6536b3b5ce185d406723b28be421864ac"
+ integrity sha512-Oz863VNA8fraQ81vTvqM0IqwiaseLwfFU5QNn6iOGOfn5wQrEkPwtZ0jMI+DGNtJgPzoKiq+iKc3K+SiuVgldg==
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 3bfc3b1e83..882508c4e3 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": "~10.1.0-rc.1",
- "@abp/cms-kit": "10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2",
+ "@abp/cms-kit": "10.1.0-rc.2"
}
}
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 ffae765b95..97b79e0912 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
+++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
@@ -2,293 +2,293 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.1.tgz#99407c4108b685eef91f21d038cc5bd2343b5847"
- integrity sha512-UbVgYf1K+zUqueNCwOl4QoUAz7nwJyoQJSqq0gi7LA9JBRBbb8nDA8szQjAUVqF4h+k4o61588MUQnerUQlZ6g==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.1.tgz#7c0f721bdd4ec99f441a49e662a457d98c2c66fa"
- integrity sha512-dB6wmR3C43Vn1/hiWY3IkxivUEWTGhO4mj3hffwAeyJqnEUh6kQUW6UfmYNGEhahSjhVIS3lUZ4x+R+yGCpemw==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.1"
- "@abp/bootstrap" "~10.1.0-rc.1"
- "@abp/bootstrap-datepicker" "~10.1.0-rc.1"
- "@abp/bootstrap-daterangepicker" "~10.1.0-rc.1"
- "@abp/datatables.net-bs5" "~10.1.0-rc.1"
- "@abp/font-awesome" "~10.1.0-rc.1"
- "@abp/jquery-form" "~10.1.0-rc.1"
- "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.1"
- "@abp/lodash" "~10.1.0-rc.1"
- "@abp/luxon" "~10.1.0-rc.1"
- "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.1"
- "@abp/moment" "~10.1.0-rc.1"
- "@abp/select2" "~10.1.0-rc.1"
- "@abp/sweetalert2" "~10.1.0-rc.1"
- "@abp/timeago" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.1.tgz#290297353fdc15826a870b35162a0bbf4c9bc948"
- integrity sha512-RBR5wPf5ygzuSpfXG5MeOGd/YOtQH5pVyU65T4DMtGpLKHQxgxbh7JK1btyC5zGmzr/Ds5+5Mcd7S66dIckDJQ==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.2.tgz#599f5c47a417d1230fc17c0446a0229f920f7246"
+ integrity sha512-8F4nEK+VtgRRf8n+66HMbtCEaOMCW/OdbSEWRl9ahMNoj860oPIJ8P8Qn/2+LjtkPMdDAfCdEzyDzCd3igaFaA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.2.tgz#e5056e4e159f5815e3cffecab5c46f3d7d4f79d7"
+ integrity sha512-bo56XzQZPYL/3ckWTTTSSUsSFSFJobvfE29cz13NIrZ/tBtWyQCAJn92wYHuY+6IezYUWb4ga3PkFeHRzR142A==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.2"
+ "@abp/bootstrap" "~10.1.0-rc.2"
+ "@abp/bootstrap-datepicker" "~10.1.0-rc.2"
+ "@abp/bootstrap-daterangepicker" "~10.1.0-rc.2"
+ "@abp/datatables.net-bs5" "~10.1.0-rc.2"
+ "@abp/font-awesome" "~10.1.0-rc.2"
+ "@abp/jquery-form" "~10.1.0-rc.2"
+ "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.2"
+ "@abp/lodash" "~10.1.0-rc.2"
+ "@abp/luxon" "~10.1.0-rc.2"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.2"
+ "@abp/moment" "~10.1.0-rc.2"
+ "@abp/select2" "~10.1.0-rc.2"
+ "@abp/sweetalert2" "~10.1.0-rc.2"
+ "@abp/timeago" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.2.tgz#e25d3575d40bfcb3f809bd2d355671181ee5ff40"
+ integrity sha512-MOF86bVbi7N/nIla+361nsBrN4tiSka8xzpWcgqlLcCAl9ILG4rugbtafBAjN81taPma2peZM7egaOR4SDkTMw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.1.tgz#54730dc001dab746af18c41d51b73949742e3b2d"
- integrity sha512-DhVfA9WjfRQrUwjN2eJTCjLEhAU7rLjWgMlifW1id3HbdMs9emKn0rzQqhZ8MOSUNBwLkbUWcXWnojRUFgUB+w==
+"@abp/bootstrap-datepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.2.tgz#be80c6104ba53e18935fbf62ca2c1890f4b2fde4"
+ integrity sha512-BNcDYUSbZaLah4SfXm0efoqFTsOViVm6370k9L7vix/OGpIWwklJsr8y78lvdM5ANgNCfl0LPSq+seLJFc/OLA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.1.tgz#9af7ffe1d1bd4fc99e1606e30189e6f28bb2f201"
- integrity sha512-/Hsge8UwLZFuPNWRZhpf4nVB4urPYsaKAuCz0pSH5OHmS4FWr0Ng3vnUd9fcSeaq9OV2HarcgGWDapYtszttVQ==
+"@abp/bootstrap-daterangepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.2.tgz#f189f7d070ebd97d9cfdcb99571cab2d6a198ab5"
+ integrity sha512-bV8J0MuiAFVLkr48JsB6aZU6aPoqw+Gyhq1szQ74bEwNQlRBPuF92WVA5FACaUBj8dMUzR9HDDAYQuxUzpKYKA==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.1.tgz#e937f0a10874c0f3b0f719ff6a316b0ca91e65c5"
- integrity sha512-GlRyH5oCjcmFk1eBGCHk6GglL2DJ5RLlDXn7HWU675u48DCQTkBbKP9qA3RcYERQB4qqhcOKEDtYPZVljRVHRQ==
+"@abp/bootstrap@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.2.tgz#2300800a29ea09b91f5ed2e6177e5921fe7d2a0f"
+ integrity sha512-K+tDI9vz/Y9B/yu0i3AVpm4v3Odi44Q/yH5hAprL7f4pGxEOiqAFB/qzHAxG+7Oa7wjv5tPLv+Cz4DavBQjd8Q==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
bootstrap "^5.3.8"
-"@abp/clipboard@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.1.0-rc.1.tgz#ebb677e689372d5c0d07a5814b61eae45397a3c8"
- integrity sha512-iJpKYQJy5mN1O8n0+4DsWoWKAOasLuUE9Cja01Yl7YTb6XwYCGozBAVZbi+YouhYmsSr2zM4ozKxXPbXXt0u1w==
+"@abp/clipboard@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.1.0-rc.2.tgz#e99dbf190e3684e99c8e909bf38201c70e267502"
+ integrity sha512-kRS9pWc1jRgr4D4/EV9zdAy3rhhGBrcqk2as5+6Ih49npsEJY/cF5mYH7mj/ZYy8SHqtae/CR7bZsR+uCDKYrQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
clipboard "^2.0.11"
-"@abp/cms-kit.admin@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-10.1.0-rc.1.tgz#800ab806e343c0464eb775ef844e77a0e56f07ce"
- integrity sha512-RkMTl9eDXqOC/fmun4gsm+glWUCmGJUtv6DnLu8m3wBuwLGyac64o9shpie/6TFvF99agtUp+4se5c8PO4m0tA==
+"@abp/cms-kit.admin@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-10.1.0-rc.2.tgz#554d15856007e80cc2994d57612d08e3d6747e3e"
+ integrity sha512-mi9m4Nr51wyq/EN8DRMT/QlSqgIwD7WKDDSO80Tylr46r5A7wiGbgNIyy+hnHCR9IbORpTRv8VjMTtkjF7CRPA==
dependencies:
- "@abp/codemirror" "~10.1.0-rc.1"
- "@abp/jstree" "~10.1.0-rc.1"
- "@abp/markdown-it" "~10.1.0-rc.1"
- "@abp/slugify" "~10.1.0-rc.1"
- "@abp/tui-editor" "~10.1.0-rc.1"
- "@abp/uppy" "~10.1.0-rc.1"
+ "@abp/codemirror" "~10.1.0-rc.2"
+ "@abp/jstree" "~10.1.0-rc.2"
+ "@abp/markdown-it" "~10.1.0-rc.2"
+ "@abp/slugify" "~10.1.0-rc.2"
+ "@abp/tui-editor" "~10.1.0-rc.2"
+ "@abp/uppy" "~10.1.0-rc.2"
-"@abp/cms-kit.public@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-10.1.0-rc.1.tgz#1f38e4f848da7898d37e66263e807a7cefe8df95"
- integrity sha512-owy45DYVAxnu0UYhpqPctIfbM7m/NxYREjnhq+41BaXXiTDLOXEsSoucwObDevnvwthYDuB+4CXK3NYz7x/8+g==
+"@abp/cms-kit.public@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-10.1.0-rc.2.tgz#1e25575fa7dde2661970942c868250f749ffcf7e"
+ integrity sha512-BbEL17D0k44+P1pBfmrRwhwukXqbggprl8DWBofBkPut1HUmo1iaD4NrMEG5NZC03L8LRDVNm3hx2zI1voF9Sg==
dependencies:
- "@abp/highlight.js" "~10.1.0-rc.1"
- "@abp/star-rating-svg" "~10.1.0-rc.1"
+ "@abp/highlight.js" "~10.1.0-rc.2"
+ "@abp/star-rating-svg" "~10.1.0-rc.2"
-"@abp/cms-kit@10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-10.1.0-rc.1.tgz#c359a8b392644d17cea1a000169a728dc8ea42f4"
- integrity sha512-YSnmmygVa7NZShoI/brrBIiM2SLdSLwCEmxC7Igml0j0BfO7MYBQ0BlY2dcdun9jtwv52V9OZQvtmnuObSolkw==
+"@abp/cms-kit@10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-10.1.0-rc.2.tgz#18d0818a07a530fccb23fa082db24e439854e94a"
+ integrity sha512-cwraU613er9EybLoU9wXiqfFFBjSyk/DnbZkAviavOLg+QRTFdDoJEVTPpNn6WCXc1oS5/LPuu/744MrGixYyw==
dependencies:
- "@abp/cms-kit.admin" "~10.1.0-rc.1"
- "@abp/cms-kit.public" "~10.1.0-rc.1"
+ "@abp/cms-kit.admin" "~10.1.0-rc.2"
+ "@abp/cms-kit.public" "~10.1.0-rc.2"
-"@abp/codemirror@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-10.1.0-rc.1.tgz#6a1a6d7ed56a33385f7fbc48cbf49697dde485f8"
- integrity sha512-XoVp2Jh1xwkLL8ZPuWo3kxrr/bgU56WwG3fegNCfJY1RsFckNGI8VKvka/+AQaCxfq44hYWurm/3c2JjkI392A==
+"@abp/codemirror@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-10.1.0-rc.2.tgz#8a55a66c8be83995045bc2724ca02c29771283a3"
+ integrity sha512-8jlMySyFTNnDJvQLqZgj7S0EZ0oGWoplDFDE6zEP7NBK8INzrw7D7lc93XZ8/G7lRh0xeM1OcziUHZEX/QhXNg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
codemirror "^5.65.1"
-"@abp/core@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.1.tgz#d9ce0958407fa39c8015eb2d9328a3a157aaa4f0"
- integrity sha512-pFsaQei1W0JRJkhNdlxq+EDP7x+83nT0UHZetTHNzp8tkP4Cn8Ni/ZODIUku8ck1vcKc0X3pXKj42BN+yZ1g3g==
+"@abp/core@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.2.tgz#403687aff5a30788f7b7ca660abdfd85d89438aa"
+ integrity sha512-euuG2Hna/DT6/R1dGOjgp3vcehYtF+CcOkRj31oquYKaM5YWk4OaZ314DSpnjgs/xo8DuVc4eKFQwIxD9RK41w==
dependencies:
- "@abp/utils" "~10.1.0-rc.1"
+ "@abp/utils" "~10.1.0-rc.2"
-"@abp/datatables.net-bs5@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.1.tgz#7981bc64c543d24aa5b0ab373f5693187990d5be"
- integrity sha512-yaYHuZ9eVHT2cZcH9r680X+imWhOqbhWlOlbLDpJtg7Un0ejDzou+JqxKYHHXmSEKYEPHjfCEhnXkMnyqvSUHQ==
+"@abp/datatables.net-bs5@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.2.tgz#a60650d1802b40751d30f8f6c56beb23fd66481b"
+ integrity sha512-IWwexNqbMpET54Fvm9LoPTJYf+4CoBbjFOvz3sL6CgO2feV5R5fKigjVU8zXKNh2W+RG8L6zEarfVxrr114TsA==
dependencies:
- "@abp/datatables.net" "~10.1.0-rc.1"
+ "@abp/datatables.net" "~10.1.0-rc.2"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.1.tgz#f487357690060dd055dbb7f54e1298e8d8a81e40"
- integrity sha512-KTKTW73H9vaX6J9ipXUf7d3QdseKaFRzl7e1QKldOoQxBs4pzT2NATGdUyiAnJsfPl4scpSFetzI66Rs7r3idg==
+"@abp/datatables.net@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.2.tgz#9147f68bc6dbc4eb40a9ddf65c7859e788cdcac2"
+ integrity sha512-a9DJpwg14S4nVOiC4ipw0CQwEYWB602e2gCJiH7W1mxopbQb135RxwhtdTnW//eIONcxC9IrEuvcBEAUVt2B7Q==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.1.tgz#2ee67b07ce6296c7f0ac5217c9d9677b9c70f05e"
- integrity sha512-O/3oLbSu1pMNftQzQW29gSpkWCFJazFKjT7sOYId1Ueric0svyJ42hFr5gHf9RFVmCU5pgyhawcoTyzQ34PxYQ==
+"@abp/font-awesome@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.2.tgz#364466cfe67e41e0c4d16b57d3923d10f66369f1"
+ integrity sha512-F1Jy8xoFV2aA+VN+NH1gtrG96/j9w7Picc+KLoCoIyNnJr/xJur11XkJyu5ln8KF4V7p/DY7QaQodWV/btOs8g==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/highlight.js@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-10.1.0-rc.1.tgz#52667c1b0242b710d1b8ea65cf9c8dce50c2a213"
- integrity sha512-LlcVW/R+WPy8DqWmCfkbxwsWVHdo4jqn1/wvcSuxtPYsQZcBLocM+IgmT1Be3Ti1gn5Gu2h89UsdYlDfLMllqQ==
+"@abp/highlight.js@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-10.1.0-rc.2.tgz#6ad0e1ef9e49f0f90eba9d899fd72b6c30a4f9f0"
+ integrity sha512-jAX4p+i3secAaI3waXoMr7yoH6G1nWvcjR5UVin168H7I4UySxbF799T89v5tK8gtfWgaTjEydFZRypSQU/dHg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@highlightjs/cdn-assets" "~11.11.1"
-"@abp/jquery-form@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.1.tgz#60fc98085671a2ff08e8c411847354b6a48cf55e"
- integrity sha512-bj70hE7MsH2AoBb2yU2d6ng5Bo/wqjCNUI0kbG0T1T4yp1cToGAVJ6hrd+KOp2Tf6W+NITn1EycxRTCktE9QRA==
+"@abp/jquery-form@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.2.tgz#3857717d07569c22d4bbbe459238abeb816d606a"
+ integrity sha512-2D5WHVnfK9bhRces1tgPwOEoc7KCYKYiKHBOcqct+LTA7zoRjJv/PM8/JhFVl+grVIw1aSwO4tU3YfZ22Vxipg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.1.tgz#a820989d8daf53096f838817cb2b3dba21f71653"
- integrity sha512-7uXxbvuZ+ecD5suH3nx/ggiFAA8GjXGAB5tuGCdqePdBn1PMzDIDI1ZP9q8sR7sMjo7RKVK6MzX+PazUuJ4L7g==
+"@abp/jquery-validation-unobtrusive@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.2.tgz#efd7b69a078a20c0bf405408dbdf52a7bf770b3b"
+ integrity sha512-tZ0MWgzBqp+SNfMxM0z2cGB21NiTHuVJyyQaXKE/ptuD5pc0uRkcqw/J2kWfiqsoVgChz27IB6h8/jqDafS4qg==
dependencies:
- "@abp/jquery-validation" "~10.1.0-rc.1"
+ "@abp/jquery-validation" "~10.1.0-rc.2"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.1.tgz#c8630b0a53ee93218be5c82264085b36b0b07936"
- integrity sha512-/eS4vy5gwHIaRr6aHkvO6xWRjL22bVly7S0AqbZw2OxJ0pw1n23n+zipn/NDRSngRZSajTLLm1pYCG5qlJGd3A==
+"@abp/jquery-validation@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.2.tgz#d39537a7356c51f9db2e66f6740cf6df86bd0442"
+ integrity sha512-LOkS0NKk4pLtLjPU0CCbwROyUg6EtJN8Z/it7QuKK1CIRfYYcAStgNnNm5geZP7CqECIkoiFfgWjI+L5Z9/Tfg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.1.tgz#38d5d5b5a6144bf207773ef26f36d381a257a635"
- integrity sha512-YarNlYPG7MfLc0fSnOcVrp9Da1EUxz4zUERnTOQ0/EdOUdcFhGAqI2yfoTFCxqX+TSphQWZEdif/tsfULtkI1A==
+"@abp/jquery@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.2.tgz#101a55f70d510978c8c05f5857d0e9d4965263f7"
+ integrity sha512-bQV1uFWGtwRYjNOsqJ8FM2004idX2Jj7YVL19YF1/PjyPUSMX+s8/IvJizBjyY5hPAiWBBhmV9g+IFWzxlDQoQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
jquery "~3.7.1"
-"@abp/jstree@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-10.1.0-rc.1.tgz#1a0ee3ed28a84f959df41b5192199e18f8a8b60c"
- integrity sha512-37XpZscnQyAK3oiz27dcAnyqGkcIs38Coxr4D65USULm84f/YGEV9QbKwqYIvdtj5Xac4IXQ5K2jANj+TRIuBg==
+"@abp/jstree@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-10.1.0-rc.2.tgz#0b145af388ca527b107464ff706c5f901344a094"
+ integrity sha512-RmKRKVuQBhemapF4wmNVOZfDxBSjqKoSRL/Y0Sbyqx86Qg/HYpFZD1zQgaH6NFwUOpwB4wVJRBHV5r7i4LxxyQ==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jstree "^3.3.17"
-"@abp/lodash@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.1.tgz#bf735e34a42ddcdf19e331c8c5cf1a24a87475cb"
- integrity sha512-JQV0oFLE90V9GdrD37PTMiOylw/U6yjpDu5PblVW/zlNmw/TzEtukp3/vJl7GJxoKRYWtgJf1nFLgG/+2kjE1A==
+"@abp/lodash@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.2.tgz#d08c03f8d3d0fbaa3e71e603cbe5fb7f176933ef"
+ integrity sha512-KCnD1p2y52ZI+2ifpiFIUAiDPsKehnOD8HV5qKeObO6UCP97okif8IP+sQDmNQb8O33y/NKTyx/HcpwBbe/NYQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
lodash "^4.17.21"
-"@abp/luxon@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.1.tgz#1c883ad3a5653f0c6ce4965e4b4ce21543129534"
- integrity sha512-SDtwjIDR4OzrtzRWpgb8atUSK0DwajJ5LC486xHq5ftnbFETRfOwihyIfC2H4oIPPDE5oS+LOnjCkRYVkGt0oQ==
+"@abp/luxon@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.2.tgz#ef8d2b323bac054fc9610e241e1b1763d229e065"
+ integrity sha512-qYFl6XO3g9mZiu0dtIczI7LRuYWwc+RkpbDzSmruXcRks3KA+ZZco2vhHNnlwtXcINl/TXtbW7Wc0MX+8IB1Kw==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.1.tgz#770106795f5eba9d36dd2d4002e450c215c66787"
- integrity sha512-EFwQ7rUiPM6mxznn1t23ySzQH+VQ0dB2YxOqBAluFR/yC3qypjb98jGQaZKsJx9+iT4DuG9gGPKOfct1Sqh0KQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.2.tgz#dfaf666442c7c122f7da72c83b9adf194d5b6ec8"
+ integrity sha512-PudMHmNQgZ6JZeaVt1ZoXLqO0UZXJzUYiBah2LDkC4EMLjnMJFINHBoEVVa4ooXH0yjFv+zsbN0vWZYJ8TBJIA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/markdown-it@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-10.1.0-rc.1.tgz#277508743134503937f56bc764e6554d7f37f402"
- integrity sha512-JBPhX9t6Err9kcZTwFC8ib3QaNGRKs6ucme+h7GY592WUFDzcxOIAoOPguFvn3x1nQCXNOEqy5NFO2BVRfN6qw==
+"@abp/markdown-it@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-10.1.0-rc.2.tgz#43865464fb44f470baf30296712a5f007ff9730d"
+ integrity sha512-R45uA/EfMEZSkWchdpE/epOPsjswuQDB+IyBdwil2kKe3Bfv3yIh8+GSU5hfhiArXmRbhcmNGdeTylXWhrInbw==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
markdown-it "^14.1.0"
-"@abp/moment@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.1.tgz#fe5bfa5bc28bb847cf801523c1b2f118ffb12447"
- integrity sha512-P6z9YO/FC/5DhTDWsHkquo5tEzIhSfUnRefLcZtv7XuJtevH/93NFSr23RL6D+F4r3cB5GMXGFUYmXGKWoXGHg==
+"@abp/moment@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.2.tgz#610a1592d13984aea51abbd13df8c5995a089149"
+ integrity sha512-ep8PnAXARw0t/wtGOVp/oiNhF3B0Bh6y2vRzKrcSoyXAQREGGm4fJdZVYZLGTfI4lFLTjebEgf4O7T9feUwJAw==
dependencies:
moment "^2.30.1"
-"@abp/prismjs@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.1.0-rc.1.tgz#26ef6c368dbfdd27d2836f1dd8cd9e8cf630f0ab"
- integrity sha512-6OpD/w7NOSI7OpjubMx45gXsZY5K6ggynJ9uSqv3NDxSbj9l6c8cRTX1i56ATT10rhyYxZIw83FRhMlxOiLfjg==
+"@abp/prismjs@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.1.0-rc.2.tgz#8565bab503a16fc349f4b0fa2609ad412ff838be"
+ integrity sha512-SmZWMyJ3cJW+qj4CWJ7y2kD6PMx2zfZMA5X5jPunsytG4Eht4AVyIR38Y4QSpO62zZgkHyZlSTFOozBfhrlv9A==
dependencies:
- "@abp/clipboard" "~10.1.0-rc.1"
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/clipboard" "~10.1.0-rc.2"
+ "@abp/core" "~10.1.0-rc.2"
prismjs "^1.30.0"
-"@abp/select2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.1.tgz#19432bb6483f8a3470f02a3037612835b4c54ef4"
- integrity sha512-xPvdrgXZzRhEIrEyw9eoITc+hYlbi8fSW3BGQ1ZMBXWgYkjWxhj/1AuLsu2ewFAKdBNz+PewjA0MKP6iBLATHw==
+"@abp/select2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.2.tgz#40c5418d007fc36817eecbe6388d767e4e7ca887"
+ integrity sha512-Pq0wlpL01sWRLUg5um3JtBXIqi3mmbwPwvgxP8hFbQngAt9JXAK8geNRiTMrIZgtW/ycXtM1v6I4zuWOLOeAGg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
select2 "^4.0.13"
-"@abp/slugify@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-10.1.0-rc.1.tgz#86aa65da4e80d1b651fb029e9366e84ceefde201"
- integrity sha512-MlIJ+7ee6IT1pH+5IUe4w+jfdZZIn1NAOSE0vmM8iz82MIgYcPp8PdV1qBeO+v8BlgfGJebKCul0VX98debbxw==
+"@abp/slugify@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-10.1.0-rc.2.tgz#42389b8471f4aacd340bebe664994b778eb335ab"
+ integrity sha512-jhLEqxPpitTfwJgHW21urQnvP3NU+/hXZXzmnT6ZPBw7pVpbN2m1hDOm+JC+zKkLaa3WQ23rE9ewwrnJaoQ67w==
dependencies:
slugify "^1.6.6"
-"@abp/star-rating-svg@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-10.1.0-rc.1.tgz#48b87590495258264d02443a577ee82f0ac4c15b"
- integrity sha512-DLr6NpGfhmF94uaXYdMFDpusMZ4SVHEOu2z4tJ+h8LelaOBvQSKBMjx2yc2R7fByReiujRc1JZeIhZKboZfVSA==
+"@abp/star-rating-svg@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-10.1.0-rc.2.tgz#d1754352cc3af1f42577de19e18350b289685e68"
+ integrity sha512-3Io7LMSnjQtc1b5CP1nZ8ucvXfq262PGMTHhwgM30xnvO9HJbtnppCmwVTbhZBQigKQFnySUKmccQbGjoqnN4A==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
star-rating-svg "^3.5.0"
-"@abp/sweetalert2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.1.tgz#40f4d6964cd6620dcb81040d84e432f4ae314686"
- integrity sha512-E4dUC2k/kClBnadtGK5NWR9YmCGgKq5uOGjEVtzXxJH62MlaCXlcxRrK9wNzX8pzDMDYFKjuOUugoROEgbRKWQ==
+"@abp/sweetalert2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.2.tgz#d35858c69e10c6726b02cdfcea88dfc32385963f"
+ integrity sha512-s9VPRToohN45uzHcKCF5Mcj8FVjsXcXUb0U3tuaT/Y+u4adHB3fBxYiXJFM0sVsCJ81dFktxwka40Wm8Taz/zA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.1.tgz#482e3a645f63ee9adf708ef8ae895fcf2bcb4271"
- integrity sha512-UOb2o6bvi3+2kbD7+rUJdqTQvTbgqUD7ktd0U5Hulb3dBOyv6MZEagzMbXA003OROiS23JzzT7M0lLStvixwlg==
+"@abp/timeago@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.2.tgz#98d630cc3843eee64dbcc34fb8ca5afbab034718"
+ integrity sha512-vJmk+otyXXJE2s2J8iYpLVaFuNAYnIUSOitmi7umYnL+k/UE2KQhBXU7FR0/OBY9mAZYd+shaiGIU1LMSaJ+Xg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
timeago "^1.6.7"
-"@abp/tui-editor@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-10.1.0-rc.1.tgz#fd9d014ea5bbdc9c93b3160040928cc27ba50d5e"
- integrity sha512-X6tlZs3/soUbl/L/aiQfIOZuiZRfmlUpEukIduJBlDsSaNR2hJgEa98RsQNvQ2yvSU/H7+9kwIwdizhQdimujA==
+"@abp/tui-editor@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-10.1.0-rc.2.tgz#ebbd5bad1ee180a0c6e6a9cfd894499614a71e96"
+ integrity sha512-k5V+5ZE+HZebfyXLzddRQDGri3HP7wSjDXEbSMLTgxZTem7IzksyLWLAN/woKRzWX92BJXcsmR8T1rhuMhohhA==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
- "@abp/prismjs" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
+ "@abp/prismjs" "~10.1.0-rc.2"
-"@abp/uppy@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-10.1.0-rc.1.tgz#aa849234c078238c9bf6af8c181a1432ac628d22"
- integrity sha512-0utLga9u7Do3BH1Nou7t01a9f89fhe5A6NqCvQg91opKmMFYOke5PiGAUOvbbbBh6kZDlPw9dc9E6fOhIBXh2w==
+"@abp/uppy@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-10.1.0-rc.2.tgz#1b9ca53eda178e8ea5d14573da15b9c141a89fc0"
+ integrity sha512-QHgTiVaZKZrnNigyE1F7OR3Tdtjdq6tjm164HWAPJSJOUbcv6v498Q7DWS2dIZMU2e/226HflS2NwwNV87s3XA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
uppy "^5.1.2"
-"@abp/utils@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.1.tgz#e53ef81f39fd620b41ae2bfb69d06ee85ccb28ad"
- integrity sha512-xBHIw5rmAttN5PL5C84L2znHkA2HMrP6HaA2aV5k6KU7BtOWJhviZnKJgbUBfufNQNeLwlThCHAfS7aOv/UQkg==
+"@abp/utils@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.2.tgz#86a980c6536b3b5ce185d406723b28be421864ac"
+ integrity sha512-Oz863VNA8fraQ81vTvqM0IqwiaseLwfFU5QNn6iOGOfn5wQrEkPwtZ0jMI+DGNtJgPzoKiq+iKc3K+SiuVgldg==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json
index d802372318..0a0a8f4726 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": "~10.1.0-rc.1",
- "@abp/docs": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2",
+ "@abp/docs": "~10.1.0-rc.2"
}
}
diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock
index 89b737d361..e99b91ff81 100644
--- a/modules/docs/app/VoloDocs.Web/yarn.lock
+++ b/modules/docs/app/VoloDocs.Web/yarn.lock
@@ -2,229 +2,229 @@
# yarn lockfile v1
-"@abp/anchor-js@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-10.1.0-rc.1.tgz#976f553f72e8fe6d9dca3886906c12a7d980f8f0"
- integrity sha512-pbgMsNGPhS8IKvSAzrF3d+8KxKqEYi1pssnfMvw+5LvfW2gdRnofjYuTFTaFzCQnYzUFlhVKSHd9yjz7RrWrvw==
+"@abp/anchor-js@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-10.1.0-rc.2.tgz#5ed35c420ec53f9e305e9de943ebb005677d7617"
+ integrity sha512-D8rH9p8gGbNc6FpW24CFFW9JZD7tUiJkM3Lx31RsygwvmlolutN4jpzV5L9h9IvbrxJCT2jSqK1s686z8SHb3w==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
anchor-js "^5.0.0"
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.1.tgz#99407c4108b685eef91f21d038cc5bd2343b5847"
- integrity sha512-UbVgYf1K+zUqueNCwOl4QoUAz7nwJyoQJSqq0gi7LA9JBRBbb8nDA8szQjAUVqF4h+k4o61588MUQnerUQlZ6g==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.1.tgz#7c0f721bdd4ec99f441a49e662a457d98c2c66fa"
- integrity sha512-dB6wmR3C43Vn1/hiWY3IkxivUEWTGhO4mj3hffwAeyJqnEUh6kQUW6UfmYNGEhahSjhVIS3lUZ4x+R+yGCpemw==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.1"
- "@abp/bootstrap" "~10.1.0-rc.1"
- "@abp/bootstrap-datepicker" "~10.1.0-rc.1"
- "@abp/bootstrap-daterangepicker" "~10.1.0-rc.1"
- "@abp/datatables.net-bs5" "~10.1.0-rc.1"
- "@abp/font-awesome" "~10.1.0-rc.1"
- "@abp/jquery-form" "~10.1.0-rc.1"
- "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.1"
- "@abp/lodash" "~10.1.0-rc.1"
- "@abp/luxon" "~10.1.0-rc.1"
- "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.1"
- "@abp/moment" "~10.1.0-rc.1"
- "@abp/select2" "~10.1.0-rc.1"
- "@abp/sweetalert2" "~10.1.0-rc.1"
- "@abp/timeago" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.1.tgz#290297353fdc15826a870b35162a0bbf4c9bc948"
- integrity sha512-RBR5wPf5ygzuSpfXG5MeOGd/YOtQH5pVyU65T4DMtGpLKHQxgxbh7JK1btyC5zGmzr/Ds5+5Mcd7S66dIckDJQ==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.2.tgz#599f5c47a417d1230fc17c0446a0229f920f7246"
+ integrity sha512-8F4nEK+VtgRRf8n+66HMbtCEaOMCW/OdbSEWRl9ahMNoj860oPIJ8P8Qn/2+LjtkPMdDAfCdEzyDzCd3igaFaA==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.2.tgz#e5056e4e159f5815e3cffecab5c46f3d7d4f79d7"
+ integrity sha512-bo56XzQZPYL/3ckWTTTSSUsSFSFJobvfE29cz13NIrZ/tBtWyQCAJn92wYHuY+6IezYUWb4ga3PkFeHRzR142A==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.2"
+ "@abp/bootstrap" "~10.1.0-rc.2"
+ "@abp/bootstrap-datepicker" "~10.1.0-rc.2"
+ "@abp/bootstrap-daterangepicker" "~10.1.0-rc.2"
+ "@abp/datatables.net-bs5" "~10.1.0-rc.2"
+ "@abp/font-awesome" "~10.1.0-rc.2"
+ "@abp/jquery-form" "~10.1.0-rc.2"
+ "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.2"
+ "@abp/lodash" "~10.1.0-rc.2"
+ "@abp/luxon" "~10.1.0-rc.2"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.2"
+ "@abp/moment" "~10.1.0-rc.2"
+ "@abp/select2" "~10.1.0-rc.2"
+ "@abp/sweetalert2" "~10.1.0-rc.2"
+ "@abp/timeago" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.2.tgz#e25d3575d40bfcb3f809bd2d355671181ee5ff40"
+ integrity sha512-MOF86bVbi7N/nIla+361nsBrN4tiSka8xzpWcgqlLcCAl9ILG4rugbtafBAjN81taPma2peZM7egaOR4SDkTMw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.1.tgz#54730dc001dab746af18c41d51b73949742e3b2d"
- integrity sha512-DhVfA9WjfRQrUwjN2eJTCjLEhAU7rLjWgMlifW1id3HbdMs9emKn0rzQqhZ8MOSUNBwLkbUWcXWnojRUFgUB+w==
+"@abp/bootstrap-datepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.2.tgz#be80c6104ba53e18935fbf62ca2c1890f4b2fde4"
+ integrity sha512-BNcDYUSbZaLah4SfXm0efoqFTsOViVm6370k9L7vix/OGpIWwklJsr8y78lvdM5ANgNCfl0LPSq+seLJFc/OLA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.1.tgz#9af7ffe1d1bd4fc99e1606e30189e6f28bb2f201"
- integrity sha512-/Hsge8UwLZFuPNWRZhpf4nVB4urPYsaKAuCz0pSH5OHmS4FWr0Ng3vnUd9fcSeaq9OV2HarcgGWDapYtszttVQ==
+"@abp/bootstrap-daterangepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.2.tgz#f189f7d070ebd97d9cfdcb99571cab2d6a198ab5"
+ integrity sha512-bV8J0MuiAFVLkr48JsB6aZU6aPoqw+Gyhq1szQ74bEwNQlRBPuF92WVA5FACaUBj8dMUzR9HDDAYQuxUzpKYKA==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.1.tgz#e937f0a10874c0f3b0f719ff6a316b0ca91e65c5"
- integrity sha512-GlRyH5oCjcmFk1eBGCHk6GglL2DJ5RLlDXn7HWU675u48DCQTkBbKP9qA3RcYERQB4qqhcOKEDtYPZVljRVHRQ==
+"@abp/bootstrap@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.2.tgz#2300800a29ea09b91f5ed2e6177e5921fe7d2a0f"
+ integrity sha512-K+tDI9vz/Y9B/yu0i3AVpm4v3Odi44Q/yH5hAprL7f4pGxEOiqAFB/qzHAxG+7Oa7wjv5tPLv+Cz4DavBQjd8Q==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
bootstrap "^5.3.8"
-"@abp/clipboard@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.1.0-rc.1.tgz#ebb677e689372d5c0d07a5814b61eae45397a3c8"
- integrity sha512-iJpKYQJy5mN1O8n0+4DsWoWKAOasLuUE9Cja01Yl7YTb6XwYCGozBAVZbi+YouhYmsSr2zM4ozKxXPbXXt0u1w==
+"@abp/clipboard@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.1.0-rc.2.tgz#e99dbf190e3684e99c8e909bf38201c70e267502"
+ integrity sha512-kRS9pWc1jRgr4D4/EV9zdAy3rhhGBrcqk2as5+6Ih49npsEJY/cF5mYH7mj/ZYy8SHqtae/CR7bZsR+uCDKYrQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
clipboard "^2.0.11"
-"@abp/core@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.1.tgz#d9ce0958407fa39c8015eb2d9328a3a157aaa4f0"
- integrity sha512-pFsaQei1W0JRJkhNdlxq+EDP7x+83nT0UHZetTHNzp8tkP4Cn8Ni/ZODIUku8ck1vcKc0X3pXKj42BN+yZ1g3g==
+"@abp/core@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.2.tgz#403687aff5a30788f7b7ca660abdfd85d89438aa"
+ integrity sha512-euuG2Hna/DT6/R1dGOjgp3vcehYtF+CcOkRj31oquYKaM5YWk4OaZ314DSpnjgs/xo8DuVc4eKFQwIxD9RK41w==
dependencies:
- "@abp/utils" "~10.1.0-rc.1"
+ "@abp/utils" "~10.1.0-rc.2"
-"@abp/datatables.net-bs5@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.1.tgz#7981bc64c543d24aa5b0ab373f5693187990d5be"
- integrity sha512-yaYHuZ9eVHT2cZcH9r680X+imWhOqbhWlOlbLDpJtg7Un0ejDzou+JqxKYHHXmSEKYEPHjfCEhnXkMnyqvSUHQ==
+"@abp/datatables.net-bs5@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.2.tgz#a60650d1802b40751d30f8f6c56beb23fd66481b"
+ integrity sha512-IWwexNqbMpET54Fvm9LoPTJYf+4CoBbjFOvz3sL6CgO2feV5R5fKigjVU8zXKNh2W+RG8L6zEarfVxrr114TsA==
dependencies:
- "@abp/datatables.net" "~10.1.0-rc.1"
+ "@abp/datatables.net" "~10.1.0-rc.2"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.1.tgz#f487357690060dd055dbb7f54e1298e8d8a81e40"
- integrity sha512-KTKTW73H9vaX6J9ipXUf7d3QdseKaFRzl7e1QKldOoQxBs4pzT2NATGdUyiAnJsfPl4scpSFetzI66Rs7r3idg==
+"@abp/datatables.net@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.2.tgz#9147f68bc6dbc4eb40a9ddf65c7859e788cdcac2"
+ integrity sha512-a9DJpwg14S4nVOiC4ipw0CQwEYWB602e2gCJiH7W1mxopbQb135RxwhtdTnW//eIONcxC9IrEuvcBEAUVt2B7Q==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
datatables.net "^2.3.4"
-"@abp/docs@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-10.1.0-rc.1.tgz#b06d4a878de9d5149fcd96e8efa20be02179c2e9"
- integrity sha512-+8wV8y1+VO55BHJHZsxW0/OTp7TpauCf/h/QkWjeCdGJ/+sE73FOkZ31Xr+jNCstteF/lwNbK8zFSNQVtQH87g==
+"@abp/docs@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-10.1.0-rc.2.tgz#ac8c84cdc91c3ac6511ff39f9d8729f0673a1d30"
+ integrity sha512-oTJX12kZb8CIXQRdjsZx8VYSOgKTA6ei+5CPU4dPVZZiaYBzQ3MNsMlRrrRywwuWCTJedtThy9XOcUwB7LTqCg==
dependencies:
- "@abp/anchor-js" "~10.1.0-rc.1"
- "@abp/clipboard" "~10.1.0-rc.1"
- "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.1"
- "@abp/popper.js" "~10.1.0-rc.1"
- "@abp/prismjs" "~10.1.0-rc.1"
+ "@abp/anchor-js" "~10.1.0-rc.2"
+ "@abp/clipboard" "~10.1.0-rc.2"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.2"
+ "@abp/popper.js" "~10.1.0-rc.2"
+ "@abp/prismjs" "~10.1.0-rc.2"
-"@abp/font-awesome@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.1.tgz#2ee67b07ce6296c7f0ac5217c9d9677b9c70f05e"
- integrity sha512-O/3oLbSu1pMNftQzQW29gSpkWCFJazFKjT7sOYId1Ueric0svyJ42hFr5gHf9RFVmCU5pgyhawcoTyzQ34PxYQ==
+"@abp/font-awesome@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.2.tgz#364466cfe67e41e0c4d16b57d3923d10f66369f1"
+ integrity sha512-F1Jy8xoFV2aA+VN+NH1gtrG96/j9w7Picc+KLoCoIyNnJr/xJur11XkJyu5ln8KF4V7p/DY7QaQodWV/btOs8g==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-form@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.1.tgz#60fc98085671a2ff08e8c411847354b6a48cf55e"
- integrity sha512-bj70hE7MsH2AoBb2yU2d6ng5Bo/wqjCNUI0kbG0T1T4yp1cToGAVJ6hrd+KOp2Tf6W+NITn1EycxRTCktE9QRA==
+"@abp/jquery-form@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.2.tgz#3857717d07569c22d4bbbe459238abeb816d606a"
+ integrity sha512-2D5WHVnfK9bhRces1tgPwOEoc7KCYKYiKHBOcqct+LTA7zoRjJv/PM8/JhFVl+grVIw1aSwO4tU3YfZ22Vxipg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.1.tgz#a820989d8daf53096f838817cb2b3dba21f71653"
- integrity sha512-7uXxbvuZ+ecD5suH3nx/ggiFAA8GjXGAB5tuGCdqePdBn1PMzDIDI1ZP9q8sR7sMjo7RKVK6MzX+PazUuJ4L7g==
+"@abp/jquery-validation-unobtrusive@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.2.tgz#efd7b69a078a20c0bf405408dbdf52a7bf770b3b"
+ integrity sha512-tZ0MWgzBqp+SNfMxM0z2cGB21NiTHuVJyyQaXKE/ptuD5pc0uRkcqw/J2kWfiqsoVgChz27IB6h8/jqDafS4qg==
dependencies:
- "@abp/jquery-validation" "~10.1.0-rc.1"
+ "@abp/jquery-validation" "~10.1.0-rc.2"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.1.tgz#c8630b0a53ee93218be5c82264085b36b0b07936"
- integrity sha512-/eS4vy5gwHIaRr6aHkvO6xWRjL22bVly7S0AqbZw2OxJ0pw1n23n+zipn/NDRSngRZSajTLLm1pYCG5qlJGd3A==
+"@abp/jquery-validation@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.2.tgz#d39537a7356c51f9db2e66f6740cf6df86bd0442"
+ integrity sha512-LOkS0NKk4pLtLjPU0CCbwROyUg6EtJN8Z/it7QuKK1CIRfYYcAStgNnNm5geZP7CqECIkoiFfgWjI+L5Z9/Tfg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.1.tgz#38d5d5b5a6144bf207773ef26f36d381a257a635"
- integrity sha512-YarNlYPG7MfLc0fSnOcVrp9Da1EUxz4zUERnTOQ0/EdOUdcFhGAqI2yfoTFCxqX+TSphQWZEdif/tsfULtkI1A==
+"@abp/jquery@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.2.tgz#101a55f70d510978c8c05f5857d0e9d4965263f7"
+ integrity sha512-bQV1uFWGtwRYjNOsqJ8FM2004idX2Jj7YVL19YF1/PjyPUSMX+s8/IvJizBjyY5hPAiWBBhmV9g+IFWzxlDQoQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
jquery "~3.7.1"
-"@abp/lodash@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.1.tgz#bf735e34a42ddcdf19e331c8c5cf1a24a87475cb"
- integrity sha512-JQV0oFLE90V9GdrD37PTMiOylw/U6yjpDu5PblVW/zlNmw/TzEtukp3/vJl7GJxoKRYWtgJf1nFLgG/+2kjE1A==
+"@abp/lodash@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.2.tgz#d08c03f8d3d0fbaa3e71e603cbe5fb7f176933ef"
+ integrity sha512-KCnD1p2y52ZI+2ifpiFIUAiDPsKehnOD8HV5qKeObO6UCP97okif8IP+sQDmNQb8O33y/NKTyx/HcpwBbe/NYQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
lodash "^4.17.21"
-"@abp/luxon@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.1.tgz#1c883ad3a5653f0c6ce4965e4b4ce21543129534"
- integrity sha512-SDtwjIDR4OzrtzRWpgb8atUSK0DwajJ5LC486xHq5ftnbFETRfOwihyIfC2H4oIPPDE5oS+LOnjCkRYVkGt0oQ==
+"@abp/luxon@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.2.tgz#ef8d2b323bac054fc9610e241e1b1763d229e065"
+ integrity sha512-qYFl6XO3g9mZiu0dtIczI7LRuYWwc+RkpbDzSmruXcRks3KA+ZZco2vhHNnlwtXcINl/TXtbW7Wc0MX+8IB1Kw==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.1.tgz#770106795f5eba9d36dd2d4002e450c215c66787"
- integrity sha512-EFwQ7rUiPM6mxznn1t23ySzQH+VQ0dB2YxOqBAluFR/yC3qypjb98jGQaZKsJx9+iT4DuG9gGPKOfct1Sqh0KQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.2.tgz#dfaf666442c7c122f7da72c83b9adf194d5b6ec8"
+ integrity sha512-PudMHmNQgZ6JZeaVt1ZoXLqO0UZXJzUYiBah2LDkC4EMLjnMJFINHBoEVVa4ooXH0yjFv+zsbN0vWZYJ8TBJIA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.1.tgz#fe5bfa5bc28bb847cf801523c1b2f118ffb12447"
- integrity sha512-P6z9YO/FC/5DhTDWsHkquo5tEzIhSfUnRefLcZtv7XuJtevH/93NFSr23RL6D+F4r3cB5GMXGFUYmXGKWoXGHg==
+"@abp/moment@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.2.tgz#610a1592d13984aea51abbd13df8c5995a089149"
+ integrity sha512-ep8PnAXARw0t/wtGOVp/oiNhF3B0Bh6y2vRzKrcSoyXAQREGGm4fJdZVYZLGTfI4lFLTjebEgf4O7T9feUwJAw==
dependencies:
moment "^2.30.1"
-"@abp/popper.js@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.1.0-rc.1.tgz#db1fcbd11df41a328456c2a6ae38283f9683611e"
- integrity sha512-CJOrNB2T2fC3IiKw46eRr/NDzCTlNwsH6ooEovp4wy0O+t1kk4U/XnguN8wWxCl/SvW1VOAPOrRm6Ar2OABu+w==
+"@abp/popper.js@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.1.0-rc.2.tgz#09a23add65422b2a34a70dc074bdd8e0ec57d2a2"
+ integrity sha512-z+YqO0KBr8Nf376sV031lti/bPr2SzuxWgDlNmxrebrF544hgsXC+BXsWhzXSDznEZucN1sIkeoNWEiuAjxctA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@popperjs/core" "^2.11.8"
-"@abp/prismjs@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.1.0-rc.1.tgz#26ef6c368dbfdd27d2836f1dd8cd9e8cf630f0ab"
- integrity sha512-6OpD/w7NOSI7OpjubMx45gXsZY5K6ggynJ9uSqv3NDxSbj9l6c8cRTX1i56ATT10rhyYxZIw83FRhMlxOiLfjg==
+"@abp/prismjs@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.1.0-rc.2.tgz#8565bab503a16fc349f4b0fa2609ad412ff838be"
+ integrity sha512-SmZWMyJ3cJW+qj4CWJ7y2kD6PMx2zfZMA5X5jPunsytG4Eht4AVyIR38Y4QSpO62zZgkHyZlSTFOozBfhrlv9A==
dependencies:
- "@abp/clipboard" "~10.1.0-rc.1"
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/clipboard" "~10.1.0-rc.2"
+ "@abp/core" "~10.1.0-rc.2"
prismjs "^1.30.0"
-"@abp/select2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.1.tgz#19432bb6483f8a3470f02a3037612835b4c54ef4"
- integrity sha512-xPvdrgXZzRhEIrEyw9eoITc+hYlbi8fSW3BGQ1ZMBXWgYkjWxhj/1AuLsu2ewFAKdBNz+PewjA0MKP6iBLATHw==
+"@abp/select2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.2.tgz#40c5418d007fc36817eecbe6388d767e4e7ca887"
+ integrity sha512-Pq0wlpL01sWRLUg5um3JtBXIqi3mmbwPwvgxP8hFbQngAt9JXAK8geNRiTMrIZgtW/ycXtM1v6I4zuWOLOeAGg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.1.tgz#40f4d6964cd6620dcb81040d84e432f4ae314686"
- integrity sha512-E4dUC2k/kClBnadtGK5NWR9YmCGgKq5uOGjEVtzXxJH62MlaCXlcxRrK9wNzX8pzDMDYFKjuOUugoROEgbRKWQ==
+"@abp/sweetalert2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.2.tgz#d35858c69e10c6726b02cdfcea88dfc32385963f"
+ integrity sha512-s9VPRToohN45uzHcKCF5Mcj8FVjsXcXUb0U3tuaT/Y+u4adHB3fBxYiXJFM0sVsCJ81dFktxwka40Wm8Taz/zA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.1.tgz#482e3a645f63ee9adf708ef8ae895fcf2bcb4271"
- integrity sha512-UOb2o6bvi3+2kbD7+rUJdqTQvTbgqUD7ktd0U5Hulb3dBOyv6MZEagzMbXA003OROiS23JzzT7M0lLStvixwlg==
+"@abp/timeago@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.2.tgz#98d630cc3843eee64dbcc34fb8ca5afbab034718"
+ integrity sha512-vJmk+otyXXJE2s2J8iYpLVaFuNAYnIUSOitmi7umYnL+k/UE2KQhBXU7FR0/OBY9mAZYd+shaiGIU1LMSaJ+Xg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
timeago "^1.6.7"
-"@abp/utils@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.1.tgz#e53ef81f39fd620b41ae2bfb69d06ee85ccb28ad"
- integrity sha512-xBHIw5rmAttN5PL5C84L2znHkA2HMrP6HaA2aV5k6KU7BtOWJhviZnKJgbUBfufNQNeLwlThCHAfS7aOv/UQkg==
+"@abp/utils@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.2.tgz#86a980c6536b3b5ce185d406723b28be421864ac"
+ integrity sha512-Oz863VNA8fraQ81vTvqM0IqwiaseLwfFU5QNn6iOGOfn5wQrEkPwtZ0jMI+DGNtJgPzoKiq+iKc3K+SiuVgldg==
dependencies:
just-compare "^2.3.0"
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 73fc20b72c..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
@@ -73,6 +73,13 @@
"contentType": "abpModule",
"name": "AbpFeatureManagementApplicationContractsModule",
"summary": null
+ },
+ {
+ "displayName": "Manage host features",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "FeatureManagement.ManageHostFeatures",
+ "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 8f70114751..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
@@ -73,6 +73,90 @@
"contentType": "abpModule",
"name": "AbpIdentityApplicationContractsModule",
"summary": null
+ },
+ {
+ "displayName": "Role management",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Roles",
+ "summary": null
+ },
+ {
+ "displayName": "Create",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Roles.Create",
+ "summary": null
+ },
+ {
+ "displayName": "Edit",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Roles.Update",
+ "summary": null
+ },
+ {
+ "displayName": "Delete",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Roles.Delete",
+ "summary": null
+ },
+ {
+ "displayName": "Change permissions",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Roles.ManagePermissions",
+ "summary": null
+ },
+ {
+ "displayName": "User management",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Users",
+ "summary": null
+ },
+ {
+ "displayName": "Create",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Users.Create",
+ "summary": null
+ },
+ {
+ "displayName": "Edit",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Users.Update",
+ "summary": null
+ },
+ {
+ "displayName": "Manage roles",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Users.Update.ManageRoles",
+ "summary": null
+ },
+ {
+ "displayName": "Delete",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Users.Delete",
+ "summary": null
+ },
+ {
+ "displayName": "Change permissions",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.Users.ManagePermissions",
+ "summary": null
+ },
+ {
+ "displayName": "User lookup",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "AbpIdentity.UserLookup",
+ "summary": null
}
]
}
\ No newline at end of file
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityResultException.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityResultException.cs
index a5b4156d2b..1ee25bcd64 100644
--- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityResultException.cs
+++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityResultException.cs
@@ -2,18 +2,23 @@
using System.Linq;
using JetBrains.Annotations;
using Microsoft.AspNetCore.Identity;
+using Volo.Abp.ExceptionHandling;
+using Volo.Abp.Localization;
namespace Volo.Abp.Identity;
-public class AbpIdentityResultException : BusinessException
+public class AbpIdentityResultException : BusinessException, ILocalizeErrorMessage
{
public IdentityResult IdentityResult { get; }
public AbpIdentityResultException([NotNull] IdentityResult identityResult)
- : base(
- code: $"Volo.Abp.Identity:{identityResult.Errors.First().Code}",
- message: identityResult.Errors.Select(err => err.Description).JoinAsString(", "))
+ : base(message: identityResult.Errors.Select(err => err.Description).JoinAsString(", "))
{
IdentityResult = Check.NotNull(identityResult, nameof(identityResult));
}
+
+ public string LocalizeMessage(LocalizationContext context)
+ {
+ return Message;
+ }
}
diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityResultException_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityResultException_Tests.cs
new file mode 100644
index 0000000000..fb45c5190e
--- /dev/null
+++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/AbpIdentityResultException_Tests.cs
@@ -0,0 +1,71 @@
+using Microsoft.AspNetCore.Identity;
+using Shouldly;
+using Volo.Abp.AspNetCore.ExceptionHandling;
+using Volo.Abp.Localization;
+using Xunit;
+
+namespace Volo.Abp.Identity;
+
+public class AbpIdentityResultException_Tests : AbpIdentityDomainTestBase
+{
+ [Fact]
+ public void Should_Localize_Messages()
+ {
+ var describer = GetRequiredService();
+ var exceptionToErrorInfoConverter = GetRequiredService();
+
+ using (CultureHelper.Use("en"))
+ {
+ var exception = new AbpIdentityResultException(
+ IdentityResult.Failed(
+ describer.PasswordTooShort(6),
+ describer.PasswordRequiresNonAlphanumeric(),
+ describer.DefaultError())
+ );
+
+ var message = exception.LocalizeMessage(new LocalizationContext(ServiceProvider));
+ exceptionToErrorInfoConverter.Convert(exception).Message.ShouldBe(message);
+
+ message.ShouldNotBeNull();
+ message.ShouldContain("Password length must be greater than 6 characters.");
+ message.ShouldContain("Password must contain at least one non-alphanumeric character.");
+ message.ShouldContain("An unknown failure has occurred.");
+ }
+
+ using (CultureHelper.Use("tr"))
+ {
+ var exception = new AbpIdentityResultException(
+ IdentityResult.Failed(
+ describer.PasswordTooShort(6),
+ describer.PasswordRequiresNonAlphanumeric(),
+ describer.DefaultError())
+ );
+
+ var message = exception.LocalizeMessage(new LocalizationContext(ServiceProvider));
+ exceptionToErrorInfoConverter.Convert(exception).Message.ShouldBe(message);
+
+ message.ShouldNotBeNull();
+ message.ShouldContain("Şifre uzunluğu 6 karakterden uzun olmalıdır.");
+ message.ShouldContain("Parola en az bir alfasayısal olmayan karakter içermeli");
+ message.ShouldContain("Bilinmeyen bir hata oluştu.");
+ }
+
+ using (CultureHelper.Use("zh-Hans"))
+ {
+ var exception = new AbpIdentityResultException(
+ IdentityResult.Failed(
+ describer.PasswordTooShort(6),
+ describer.PasswordRequiresNonAlphanumeric(),
+ describer.DefaultError())
+ );
+
+ var message = exception.LocalizeMessage(new LocalizationContext(ServiceProvider));
+ exceptionToErrorInfoConverter.Convert(exception).Message.ShouldBe(message);
+
+ message.ShouldNotBeNull();
+ message.ShouldContain("密码长度必须大于 6 字符。");
+ message.ShouldContain("密码必须至少包含一个非字母数字字符。");
+ message.ShouldContain("发生了一个未知错误。");
+ }
+ }
+}
diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/package.json b/modules/openiddict/app/OpenIddict.Demo.Server/package.json
index 881359366e..52a1fc6c21 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": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2"
}
}
diff --git a/modules/openiddict/app/angular/package.json b/modules/openiddict/app/angular/package.json
index 037c330682..0eccde558f 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": "~10.1.0-rc.1",
- "@abp/ng.components": "~10.1.0-rc.1",
- "@abp/ng.core": "~10.1.0-rc.1",
- "@abp/ng.oauth": "~10.1.0-rc.1",
- "@abp/ng.identity": "~10.1.0-rc.1",
- "@abp/ng.setting-management": "~10.1.0-rc.1",
- "@abp/ng.tenant-management": "~10.1.0-rc.1",
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
- "@abp/ng.theme.lepton-x": "~5.1.0-rc.1",
+ "@abp/ng.account": "~10.1.0-rc.2",
+ "@abp/ng.components": "~10.1.0-rc.2",
+ "@abp/ng.core": "~10.1.0-rc.2",
+ "@abp/ng.oauth": "~10.1.0-rc.2",
+ "@abp/ng.identity": "~10.1.0-rc.2",
+ "@abp/ng.setting-management": "~10.1.0-rc.2",
+ "@abp/ng.tenant-management": "~10.1.0-rc.2",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
+ "@abp/ng.theme.lepton-x": "~5.1.0-rc.2",
"@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": "~10.1.0-rc.1",
+ "@abp/ng.schematics": "~10.1.0-rc.2",
"@angular-devkit/build-angular": "^15.0.1",
"@angular-eslint/builder": "~15.1.0",
"@angular-eslint/eslint-plugin": "~15.1.0",
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 7ae41ebfe9..3a8321fed9 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": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2"
}
}
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 55a960f9ab..a2b6e13b29 100644
--- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock
+++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock
@@ -2,185 +2,185 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.1.tgz#99407c4108b685eef91f21d038cc5bd2343b5847"
- integrity sha512-UbVgYf1K+zUqueNCwOl4QoUAz7nwJyoQJSqq0gi7LA9JBRBbb8nDA8szQjAUVqF4h+k4o61588MUQnerUQlZ6g==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.1.0-rc.2.tgz#599f5c47a417d1230fc17c0446a0229f920f7246"
+ integrity sha512-8F4nEK+VtgRRf8n+66HMbtCEaOMCW/OdbSEWRl9ahMNoj860oPIJ8P8Qn/2+LjtkPMdDAfCdEzyDzCd3igaFaA==
dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.1.0-rc.2"
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.1.tgz#7c0f721bdd4ec99f441a49e662a457d98c2c66fa"
- integrity sha512-dB6wmR3C43Vn1/hiWY3IkxivUEWTGhO4mj3hffwAeyJqnEUh6kQUW6UfmYNGEhahSjhVIS3lUZ4x+R+yGCpemw==
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.1.0-rc.2.tgz#e5056e4e159f5815e3cffecab5c46f3d7d4f79d7"
+ integrity sha512-bo56XzQZPYL/3ckWTTTSSUsSFSFJobvfE29cz13NIrZ/tBtWyQCAJn92wYHuY+6IezYUWb4ga3PkFeHRzR142A==
dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.1"
- "@abp/bootstrap" "~10.1.0-rc.1"
- "@abp/bootstrap-datepicker" "~10.1.0-rc.1"
- "@abp/bootstrap-daterangepicker" "~10.1.0-rc.1"
- "@abp/datatables.net-bs5" "~10.1.0-rc.1"
- "@abp/font-awesome" "~10.1.0-rc.1"
- "@abp/jquery-form" "~10.1.0-rc.1"
- "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.1"
- "@abp/lodash" "~10.1.0-rc.1"
- "@abp/luxon" "~10.1.0-rc.1"
- "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.1"
- "@abp/moment" "~10.1.0-rc.1"
- "@abp/select2" "~10.1.0-rc.1"
- "@abp/sweetalert2" "~10.1.0-rc.1"
- "@abp/timeago" "~10.1.0-rc.1"
-
-"@abp/aspnetcore.mvc.ui@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.1.tgz#290297353fdc15826a870b35162a0bbf4c9bc948"
- integrity sha512-RBR5wPf5ygzuSpfXG5MeOGd/YOtQH5pVyU65T4DMtGpLKHQxgxbh7JK1btyC5zGmzr/Ds5+5Mcd7S66dIckDJQ==
+ "@abp/aspnetcore.mvc.ui" "~10.1.0-rc.2"
+ "@abp/bootstrap" "~10.1.0-rc.2"
+ "@abp/bootstrap-datepicker" "~10.1.0-rc.2"
+ "@abp/bootstrap-daterangepicker" "~10.1.0-rc.2"
+ "@abp/datatables.net-bs5" "~10.1.0-rc.2"
+ "@abp/font-awesome" "~10.1.0-rc.2"
+ "@abp/jquery-form" "~10.1.0-rc.2"
+ "@abp/jquery-validation-unobtrusive" "~10.1.0-rc.2"
+ "@abp/lodash" "~10.1.0-rc.2"
+ "@abp/luxon" "~10.1.0-rc.2"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.1.0-rc.2"
+ "@abp/moment" "~10.1.0-rc.2"
+ "@abp/select2" "~10.1.0-rc.2"
+ "@abp/sweetalert2" "~10.1.0-rc.2"
+ "@abp/timeago" "~10.1.0-rc.2"
+
+"@abp/aspnetcore.mvc.ui@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.1.0-rc.2.tgz#e25d3575d40bfcb3f809bd2d355671181ee5ff40"
+ integrity sha512-MOF86bVbi7N/nIla+361nsBrN4tiSka8xzpWcgqlLcCAl9ILG4rugbtafBAjN81taPma2peZM7egaOR4SDkTMw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.1.tgz#54730dc001dab746af18c41d51b73949742e3b2d"
- integrity sha512-DhVfA9WjfRQrUwjN2eJTCjLEhAU7rLjWgMlifW1id3HbdMs9emKn0rzQqhZ8MOSUNBwLkbUWcXWnojRUFgUB+w==
+"@abp/bootstrap-datepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.1.0-rc.2.tgz#be80c6104ba53e18935fbf62ca2c1890f4b2fde4"
+ integrity sha512-BNcDYUSbZaLah4SfXm0efoqFTsOViVm6370k9L7vix/OGpIWwklJsr8y78lvdM5ANgNCfl0LPSq+seLJFc/OLA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.1.tgz#9af7ffe1d1bd4fc99e1606e30189e6f28bb2f201"
- integrity sha512-/Hsge8UwLZFuPNWRZhpf4nVB4urPYsaKAuCz0pSH5OHmS4FWr0Ng3vnUd9fcSeaq9OV2HarcgGWDapYtszttVQ==
+"@abp/bootstrap-daterangepicker@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.1.0-rc.2.tgz#f189f7d070ebd97d9cfdcb99571cab2d6a198ab5"
+ integrity sha512-bV8J0MuiAFVLkr48JsB6aZU6aPoqw+Gyhq1szQ74bEwNQlRBPuF92WVA5FACaUBj8dMUzR9HDDAYQuxUzpKYKA==
dependencies:
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.1.tgz#e937f0a10874c0f3b0f719ff6a316b0ca91e65c5"
- integrity sha512-GlRyH5oCjcmFk1eBGCHk6GglL2DJ5RLlDXn7HWU675u48DCQTkBbKP9qA3RcYERQB4qqhcOKEDtYPZVljRVHRQ==
+"@abp/bootstrap@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.1.0-rc.2.tgz#2300800a29ea09b91f5ed2e6177e5921fe7d2a0f"
+ integrity sha512-K+tDI9vz/Y9B/yu0i3AVpm4v3Odi44Q/yH5hAprL7f4pGxEOiqAFB/qzHAxG+7Oa7wjv5tPLv+Cz4DavBQjd8Q==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
bootstrap "^5.3.8"
-"@abp/core@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.1.tgz#d9ce0958407fa39c8015eb2d9328a3a157aaa4f0"
- integrity sha512-pFsaQei1W0JRJkhNdlxq+EDP7x+83nT0UHZetTHNzp8tkP4Cn8Ni/ZODIUku8ck1vcKc0X3pXKj42BN+yZ1g3g==
+"@abp/core@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.1.0-rc.2.tgz#403687aff5a30788f7b7ca660abdfd85d89438aa"
+ integrity sha512-euuG2Hna/DT6/R1dGOjgp3vcehYtF+CcOkRj31oquYKaM5YWk4OaZ314DSpnjgs/xo8DuVc4eKFQwIxD9RK41w==
dependencies:
- "@abp/utils" "~10.1.0-rc.1"
+ "@abp/utils" "~10.1.0-rc.2"
-"@abp/datatables.net-bs5@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.1.tgz#7981bc64c543d24aa5b0ab373f5693187990d5be"
- integrity sha512-yaYHuZ9eVHT2cZcH9r680X+imWhOqbhWlOlbLDpJtg7Un0ejDzou+JqxKYHHXmSEKYEPHjfCEhnXkMnyqvSUHQ==
+"@abp/datatables.net-bs5@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.1.0-rc.2.tgz#a60650d1802b40751d30f8f6c56beb23fd66481b"
+ integrity sha512-IWwexNqbMpET54Fvm9LoPTJYf+4CoBbjFOvz3sL6CgO2feV5R5fKigjVU8zXKNh2W+RG8L6zEarfVxrr114TsA==
dependencies:
- "@abp/datatables.net" "~10.1.0-rc.1"
+ "@abp/datatables.net" "~10.1.0-rc.2"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.1.tgz#f487357690060dd055dbb7f54e1298e8d8a81e40"
- integrity sha512-KTKTW73H9vaX6J9ipXUf7d3QdseKaFRzl7e1QKldOoQxBs4pzT2NATGdUyiAnJsfPl4scpSFetzI66Rs7r3idg==
+"@abp/datatables.net@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.1.0-rc.2.tgz#9147f68bc6dbc4eb40a9ddf65c7859e788cdcac2"
+ integrity sha512-a9DJpwg14S4nVOiC4ipw0CQwEYWB602e2gCJiH7W1mxopbQb135RxwhtdTnW//eIONcxC9IrEuvcBEAUVt2B7Q==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.1.tgz#2ee67b07ce6296c7f0ac5217c9d9677b9c70f05e"
- integrity sha512-O/3oLbSu1pMNftQzQW29gSpkWCFJazFKjT7sOYId1Ueric0svyJ42hFr5gHf9RFVmCU5pgyhawcoTyzQ34PxYQ==
+"@abp/font-awesome@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.1.0-rc.2.tgz#364466cfe67e41e0c4d16b57d3923d10f66369f1"
+ integrity sha512-F1Jy8xoFV2aA+VN+NH1gtrG96/j9w7Picc+KLoCoIyNnJr/xJur11XkJyu5ln8KF4V7p/DY7QaQodWV/btOs8g==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-form@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.1.tgz#60fc98085671a2ff08e8c411847354b6a48cf55e"
- integrity sha512-bj70hE7MsH2AoBb2yU2d6ng5Bo/wqjCNUI0kbG0T1T4yp1cToGAVJ6hrd+KOp2Tf6W+NITn1EycxRTCktE9QRA==
+"@abp/jquery-form@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-10.1.0-rc.2.tgz#3857717d07569c22d4bbbe459238abeb816d606a"
+ integrity sha512-2D5WHVnfK9bhRces1tgPwOEoc7KCYKYiKHBOcqct+LTA7zoRjJv/PM8/JhFVl+grVIw1aSwO4tU3YfZ22Vxipg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-form "^4.3.0"
-"@abp/jquery-validation-unobtrusive@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.1.tgz#a820989d8daf53096f838817cb2b3dba21f71653"
- integrity sha512-7uXxbvuZ+ecD5suH3nx/ggiFAA8GjXGAB5tuGCdqePdBn1PMzDIDI1ZP9q8sR7sMjo7RKVK6MzX+PazUuJ4L7g==
+"@abp/jquery-validation-unobtrusive@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.1.0-rc.2.tgz#efd7b69a078a20c0bf405408dbdf52a7bf770b3b"
+ integrity sha512-tZ0MWgzBqp+SNfMxM0z2cGB21NiTHuVJyyQaXKE/ptuD5pc0uRkcqw/J2kWfiqsoVgChz27IB6h8/jqDafS4qg==
dependencies:
- "@abp/jquery-validation" "~10.1.0-rc.1"
+ "@abp/jquery-validation" "~10.1.0-rc.2"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.1.tgz#c8630b0a53ee93218be5c82264085b36b0b07936"
- integrity sha512-/eS4vy5gwHIaRr6aHkvO6xWRjL22bVly7S0AqbZw2OxJ0pw1n23n+zipn/NDRSngRZSajTLLm1pYCG5qlJGd3A==
+"@abp/jquery-validation@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.1.0-rc.2.tgz#d39537a7356c51f9db2e66f6740cf6df86bd0442"
+ integrity sha512-LOkS0NKk4pLtLjPU0CCbwROyUg6EtJN8Z/it7QuKK1CIRfYYcAStgNnNm5geZP7CqECIkoiFfgWjI+L5Z9/Tfg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.1.tgz#38d5d5b5a6144bf207773ef26f36d381a257a635"
- integrity sha512-YarNlYPG7MfLc0fSnOcVrp9Da1EUxz4zUERnTOQ0/EdOUdcFhGAqI2yfoTFCxqX+TSphQWZEdif/tsfULtkI1A==
+"@abp/jquery@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.1.0-rc.2.tgz#101a55f70d510978c8c05f5857d0e9d4965263f7"
+ integrity sha512-bQV1uFWGtwRYjNOsqJ8FM2004idX2Jj7YVL19YF1/PjyPUSMX+s8/IvJizBjyY5hPAiWBBhmV9g+IFWzxlDQoQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
jquery "~3.7.1"
-"@abp/lodash@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.1.tgz#bf735e34a42ddcdf19e331c8c5cf1a24a87475cb"
- integrity sha512-JQV0oFLE90V9GdrD37PTMiOylw/U6yjpDu5PblVW/zlNmw/TzEtukp3/vJl7GJxoKRYWtgJf1nFLgG/+2kjE1A==
+"@abp/lodash@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.1.0-rc.2.tgz#d08c03f8d3d0fbaa3e71e603cbe5fb7f176933ef"
+ integrity sha512-KCnD1p2y52ZI+2ifpiFIUAiDPsKehnOD8HV5qKeObO6UCP97okif8IP+sQDmNQb8O33y/NKTyx/HcpwBbe/NYQ==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
lodash "^4.17.21"
-"@abp/luxon@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.1.tgz#1c883ad3a5653f0c6ce4965e4b4ce21543129534"
- integrity sha512-SDtwjIDR4OzrtzRWpgb8atUSK0DwajJ5LC486xHq5ftnbFETRfOwihyIfC2H4oIPPDE5oS+LOnjCkRYVkGt0oQ==
+"@abp/luxon@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.1.0-rc.2.tgz#ef8d2b323bac054fc9610e241e1b1763d229e065"
+ integrity sha512-qYFl6XO3g9mZiu0dtIczI7LRuYWwc+RkpbDzSmruXcRks3KA+ZZco2vhHNnlwtXcINl/TXtbW7Wc0MX+8IB1Kw==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.1.tgz#770106795f5eba9d36dd2d4002e450c215c66787"
- integrity sha512-EFwQ7rUiPM6mxznn1t23ySzQH+VQ0dB2YxOqBAluFR/yC3qypjb98jGQaZKsJx9+iT4DuG9gGPKOfct1Sqh0KQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.1.0-rc.2.tgz#dfaf666442c7c122f7da72c83b9adf194d5b6ec8"
+ integrity sha512-PudMHmNQgZ6JZeaVt1ZoXLqO0UZXJzUYiBah2LDkC4EMLjnMJFINHBoEVVa4ooXH0yjFv+zsbN0vWZYJ8TBJIA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.1.tgz#fe5bfa5bc28bb847cf801523c1b2f118ffb12447"
- integrity sha512-P6z9YO/FC/5DhTDWsHkquo5tEzIhSfUnRefLcZtv7XuJtevH/93NFSr23RL6D+F4r3cB5GMXGFUYmXGKWoXGHg==
+"@abp/moment@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.1.0-rc.2.tgz#610a1592d13984aea51abbd13df8c5995a089149"
+ integrity sha512-ep8PnAXARw0t/wtGOVp/oiNhF3B0Bh6y2vRzKrcSoyXAQREGGm4fJdZVYZLGTfI4lFLTjebEgf4O7T9feUwJAw==
dependencies:
moment "^2.30.1"
-"@abp/select2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.1.tgz#19432bb6483f8a3470f02a3037612835b4c54ef4"
- integrity sha512-xPvdrgXZzRhEIrEyw9eoITc+hYlbi8fSW3BGQ1ZMBXWgYkjWxhj/1AuLsu2ewFAKdBNz+PewjA0MKP6iBLATHw==
+"@abp/select2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.1.0-rc.2.tgz#40c5418d007fc36817eecbe6388d767e4e7ca887"
+ integrity sha512-Pq0wlpL01sWRLUg5um3JtBXIqi3mmbwPwvgxP8hFbQngAt9JXAK8geNRiTMrIZgtW/ycXtM1v6I4zuWOLOeAGg==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.1.tgz#40f4d6964cd6620dcb81040d84e432f4ae314686"
- integrity sha512-E4dUC2k/kClBnadtGK5NWR9YmCGgKq5uOGjEVtzXxJH62MlaCXlcxRrK9wNzX8pzDMDYFKjuOUugoROEgbRKWQ==
+"@abp/sweetalert2@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.1.0-rc.2.tgz#d35858c69e10c6726b02cdfcea88dfc32385963f"
+ integrity sha512-s9VPRToohN45uzHcKCF5Mcj8FVjsXcXUb0U3tuaT/Y+u4adHB3fBxYiXJFM0sVsCJ81dFktxwka40Wm8Taz/zA==
dependencies:
- "@abp/core" "~10.1.0-rc.1"
+ "@abp/core" "~10.1.0-rc.2"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.1.tgz#482e3a645f63ee9adf708ef8ae895fcf2bcb4271"
- integrity sha512-UOb2o6bvi3+2kbD7+rUJdqTQvTbgqUD7ktd0U5Hulb3dBOyv6MZEagzMbXA003OROiS23JzzT7M0lLStvixwlg==
+"@abp/timeago@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.1.0-rc.2.tgz#98d630cc3843eee64dbcc34fb8ca5afbab034718"
+ integrity sha512-vJmk+otyXXJE2s2J8iYpLVaFuNAYnIUSOitmi7umYnL+k/UE2KQhBXU7FR0/OBY9mAZYd+shaiGIU1LMSaJ+Xg==
dependencies:
- "@abp/jquery" "~10.1.0-rc.1"
+ "@abp/jquery" "~10.1.0-rc.2"
timeago "^1.6.7"
-"@abp/utils@~10.1.0-rc.1":
- version "10.1.0-rc.1"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.1.tgz#e53ef81f39fd620b41ae2bfb69d06ee85ccb28ad"
- integrity sha512-xBHIw5rmAttN5PL5C84L2znHkA2HMrP6HaA2aV5k6KU7BtOWJhviZnKJgbUBfufNQNeLwlThCHAfS7aOv/UQkg==
+"@abp/utils@~10.1.0-rc.2":
+ version "10.1.0-rc.2"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.1.0-rc.2.tgz#86a980c6536b3b5ce185d406723b28be421864ac"
+ integrity sha512-Oz863VNA8fraQ81vTvqM0IqwiaseLwfFU5QNn6iOGOfn5wQrEkPwtZ0jMI+DGNtJgPzoKiq+iKc3K+SiuVgldg==
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 f07fc5a44c..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
@@ -68,6 +68,27 @@
"contentType": "abpModule",
"name": "AbpSettingManagementApplicationContractsModule",
"summary": null
+ },
+ {
+ "displayName": "Emailing",
+ "isEnabled": true,
+ "contentType": "permission",
+ "name": "SettingManagement.Emailing",
+ "summary": null
+ },
+ {
+ "displayName": "Emailing test",
+ "isEnabled": true,
+ "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/virtual-file-explorer/app/package.json b/modules/virtual-file-explorer/app/package.json
index 9087a91d1f..50866814bc 100644
--- a/modules/virtual-file-explorer/app/package.json
+++ b/modules/virtual-file-explorer/app/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.1",
- "@abp/virtual-file-explorer": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2",
+ "@abp/virtual-file-explorer": "~10.1.0-rc.2"
}
}
diff --git a/npm/lerna.json b/npm/lerna.json
index 870bb88959..ee02c6794e 100644
--- a/npm/lerna.json
+++ b/npm/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"packages": [
"packs/*"
],
diff --git a/npm/ng-packs/.gitignore b/npm/ng-packs/.gitignore
index 9d756a8b67..84b48a798c 100644
--- a/npm/ng-packs/.gitignore
+++ b/npm/ng-packs/.gitignore
@@ -58,3 +58,5 @@ Thumbs.db
.angular
.nx/
+
+vitest.config.*.timestamp*
\ No newline at end of file
diff --git a/npm/ng-packs/apps/dev-app/project.json b/npm/ng-packs/apps/dev-app/project.json
index bea3bf6612..c397d8d449 100644
--- a/npm/ng-packs/apps/dev-app/project.json
+++ b/npm/ng-packs/apps/dev-app/project.json
@@ -175,10 +175,12 @@
"executor": "@nx/eslint:lint"
},
"test": {
- "executor": "@nx/jest:jest",
+ "executor": "@nx/vitest:test",
"outputs": ["{workspaceRoot}/coverage/apps/dev-app"],
"options": {
- "jestConfig": "apps/dev-app/jest.config.ts"
+ "passWithNoTests": true,
+ "reportsDirectory": "../../coverage/apps/dev-app",
+ "silent": false
}
},
"serve-static": {
diff --git a/npm/ng-packs/jest.config.ts b/npm/ng-packs/jest.config.ts
index 6b3f2d6e24..2aa4dd9d8a 100644
--- a/npm/ng-packs/jest.config.ts
+++ b/npm/ng-packs/jest.config.ts
@@ -1,5 +1,8 @@
import { getJestProjectsAsync } from '@nx/jest';
-
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default async () => ({
projects: await getJestProjectsAsync(),
});
diff --git a/npm/ng-packs/jest.preset.js b/npm/ng-packs/jest.preset.js
index c1c3c4cdcd..861f91ccc4 100644
--- a/npm/ng-packs/jest.preset.js
+++ b/npm/ng-packs/jest.preset.js
@@ -1,3 +1,7 @@
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
const nxPreset = require('@nx/jest/preset').default;
module.exports = {
diff --git a/npm/ng-packs/nx.json b/npm/ng-packs/nx.json
index 500c939ad2..a573c5c59a 100644
--- a/npm/ng-packs/nx.json
+++ b/npm/ng-packs/nx.json
@@ -118,6 +118,10 @@
"cache": true,
"dependsOn": ["^build"],
"inputs": ["production", "^production"]
+ },
+ "@nx/vitest:test": {
+ "cache": true,
+ "inputs": ["default", "^production"]
}
},
"namedInputs": {
diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json
index c5c3b698c7..9690a32d7e 100644
--- a/npm/ng-packs/package.json
+++ b/npm/ng-packs/package.json
@@ -10,6 +10,8 @@
"build:all": "nx run-many --target=build --all --exclude=dev-app,schematics --prod && npm run build:schematics",
"test": "ng test --detect-open-handles=true --run-in-band=true --watch-all=true",
"test:all": "nx run-many --target=test --all",
+ "test:vitest": "vitest",
+ "test:vitest:project": "sh -c 'vitest --project \"${1:-core}\"' _",
"lint-staged": "lint-staged",
"lint": "nx workspace-lint && ng lint",
"lint:all": "nx run-many --target=lint --all",
@@ -46,8 +48,8 @@
},
"private": true,
"devDependencies": {
- "@abp/ng.theme.lepton-x": "~5.1.0-rc.1",
- "@abp/utils": "~10.1.0-rc.1",
+ "@abp/ng.theme.lepton-x": "~5.1.0-rc.2",
+ "@abp/utils": "~10.1.0-rc.2",
"@angular-devkit/build-angular": "~21.0.0",
"@angular-devkit/core": "~21.0.0",
"@angular-devkit/schematics": "~21.0.0",
@@ -80,23 +82,26 @@
"@nx/eslint": "~22.2.0",
"@nx/eslint-plugin": "~22.2.0",
"@nx/jest": "~22.2.0",
- "@nx/js": "~22.2.0",
+ "@nx/js": "22.2.7",
"@nx/plugin": "~22.2.0",
+ "@nx/vite": "22.2.7",
+ "@nx/vitest": "22.2.7",
"@nx/web": "~22.2.0",
"@nx/workspace": "~22.2.0",
"@popperjs/core": "~2.11.0",
"@schematics/angular": "~21.0.0",
"@swc-node/register": "1.9.2",
"@swc/cli": "0.6.0",
- "@swc/core": "~1.5.0",
- "@swc/helpers": "~0.5.0",
+ "@swc/core": "~1.5.7",
+ "@swc/helpers": "~0.5.11",
"@swimlane/ngx-datatable": "~22.0.0",
"@types/express": "~5.0.0",
"@types/jest": "29.5.14",
- "@types/node": "~20.11.0",
+ "@types/node": "20.19.9",
"@typescript-eslint/eslint-plugin": "7.16.0",
"@typescript-eslint/parser": "7.16.0",
"@typescript-eslint/utils": "^7.16.0",
+ "@vitest/coverage-v8": "^4.0.0",
"angular-oauth2-oidc": "~20.0.0",
"autoprefixer": "^10.4.21",
"bootstrap": "~5.0.0",
@@ -114,6 +119,7 @@
"jest-canvas-mock": "^2.0.0",
"jest-environment-jsdom": "^29.0.0",
"jest-preset-angular": "14.6.0",
+ "jsdom": "~22.1.0",
"jsonc-eslint-parser": "^2.0.0",
"jsonc-parser": "^2.0.0",
"just-clone": "^6.0.0",
@@ -137,6 +143,8 @@
"tslib": "^2.3.0",
"tslint": "~6.1.0",
"typescript": "~5.9.0",
+ "vite": "^7.0.0",
+ "vitest": "^4.0.0",
"zone.js": "~0.15.0"
},
"lint-staged": {
diff --git a/npm/ng-packs/packages/account-core/.eslintrc.json b/npm/ng-packs/packages/account-core/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/account-core/.eslintrc.json
+++ b/npm/ng-packs/packages/account-core/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/account-core/jest.config.ts b/npm/ng-packs/packages/account-core/jest.config.ts
index 7ef24776c3..f6aa97e8c1 100644
--- a/npm/ng-packs/packages/account-core/jest.config.ts
+++ b/npm/ng-packs/packages/account-core/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'account-core',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/account-core/package.json b/npm/ng-packs/packages/account-core/package.json
index 56b3340a19..48749859c2 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.core": "~10.1.0-rc.1",
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
+ "@abp/ng.core": "~10.1.0-rc.2",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/account-core/project.json b/npm/ng-packs/packages/account-core/project.json
index 312bdd30e9..8a201b8006 100644
--- a/npm/ng-packs/packages/account-core/project.json
+++ b/npm/ng-packs/packages/account-core/project.json
@@ -23,16 +23,16 @@
},
"defaultConfiguration": "production"
},
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/account-core"],
- "options": {
- "jestConfig": "packages/account-core/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/account-core"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/account-core/tsconfig.lib.json b/npm/ng-packs/packages/account-core/tsconfig.lib.json
index 22d2695db8..80ebc37002 100644
--- a/npm/ng-packs/packages/account-core/tsconfig.lib.json
+++ b/npm/ng-packs/packages/account-core/tsconfig.lib.json
@@ -10,6 +10,23 @@
"lib": ["dom", "es2020"],
"useDefineForClassFields": false
},
- "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
+ "exclude": [
+ "src/test-setup.ts",
+ "**/*.spec.ts",
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
+ ],
"include": ["**/*.ts"]
}
diff --git a/npm/ng-packs/packages/account-core/tsconfig.spec.json b/npm/ng-packs/packages/account-core/tsconfig.spec.json
index 023d7d0b51..fc61345bb3 100644
--- a/npm/ng-packs/packages/account-core/tsconfig.spec.json
+++ b/npm/ng-packs/packages/account-core/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/account-core/vitest.config.mts b/npm/ng-packs/packages/account-core/vitest.config.mts
new file mode 100644
index 0000000000..0ef8748fc2
--- /dev/null
+++ b/npm/ng-packs/packages/account-core/vitest.config.mts
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/account-core',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'account-core',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/account-core',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/account/.eslintrc.json b/npm/ng-packs/packages/account/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/account/.eslintrc.json
+++ b/npm/ng-packs/packages/account/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/account/jest.config.ts b/npm/ng-packs/packages/account/jest.config.ts
index 7630a18eb3..207a21558c 100644
--- a/npm/ng-packs/packages/account/jest.config.ts
+++ b/npm/ng-packs/packages/account/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'account',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json
index 41903ae20c..8e667e60ee 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.account.core": "~10.1.0-rc.1",
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
+ "@abp/ng.account.core": "~10.1.0-rc.2",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/account/project.json b/npm/ng-packs/packages/account/project.json
index 41c6597e2a..5d02bebd76 100644
--- a/npm/ng-packs/packages/account/project.json
+++ b/npm/ng-packs/packages/account/project.json
@@ -23,16 +23,16 @@
},
"defaultConfiguration": "production"
},
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/account"],
- "options": {
- "jestConfig": "packages/account/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/account"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/account/tsconfig.lib.json b/npm/ng-packs/packages/account/tsconfig.lib.json
index 22d2695db8..80ebc37002 100644
--- a/npm/ng-packs/packages/account/tsconfig.lib.json
+++ b/npm/ng-packs/packages/account/tsconfig.lib.json
@@ -10,6 +10,23 @@
"lib": ["dom", "es2020"],
"useDefineForClassFields": false
},
- "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
+ "exclude": [
+ "src/test-setup.ts",
+ "**/*.spec.ts",
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
+ ],
"include": ["**/*.ts"]
}
diff --git a/npm/ng-packs/packages/account/tsconfig.spec.json b/npm/ng-packs/packages/account/tsconfig.spec.json
index 023d7d0b51..fc61345bb3 100644
--- a/npm/ng-packs/packages/account/tsconfig.spec.json
+++ b/npm/ng-packs/packages/account/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/account/vitest.config.mts b/npm/ng-packs/packages/account/vitest.config.mts
new file mode 100644
index 0000000000..ed2d3c8b2c
--- /dev/null
+++ b/npm/ng-packs/packages/account/vitest.config.mts
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/account',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'account',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/account',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/components/.eslintrc.json b/npm/ng-packs/packages/components/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/components/.eslintrc.json
+++ b/npm/ng-packs/packages/components/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/components/jest.config.ts b/npm/ng-packs/packages/components/jest.config.ts
index ff37b7e9e4..4a2a95bc72 100644
--- a/npm/ng-packs/packages/components/jest.config.ts
+++ b/npm/ng-packs/packages/components/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'components',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json
index 6fdbd3d622..f991cb13d4 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"peerDependencies": {
- "@abp/ng.core": ">=10.1.0-rc.1",
- "@abp/ng.theme.shared": ">=10.1.0-rc.1"
+ "@abp/ng.core": ">=10.1.0-rc.2",
+ "@abp/ng.theme.shared": ">=10.1.0-rc.2"
},
"dependencies": {
"chart.js": "^3.5.1",
diff --git a/npm/ng-packs/packages/components/project.json b/npm/ng-packs/packages/components/project.json
index 671fabe461..d80db9b26d 100644
--- a/npm/ng-packs/packages/components/project.json
+++ b/npm/ng-packs/packages/components/project.json
@@ -23,16 +23,16 @@
},
"defaultConfiguration": "production"
},
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/components"],
- "options": {
- "jestConfig": "packages/components/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/components"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/components/tsconfig.lib.json b/npm/ng-packs/packages/components/tsconfig.lib.json
index 7dde5f04bf..e4e2e20714 100644
--- a/npm/ng-packs/packages/components/tsconfig.lib.json
+++ b/npm/ng-packs/packages/components/tsconfig.lib.json
@@ -13,7 +13,19 @@
"exclude": [
"src/test-setup.ts",
"src/**/*.spec.ts",
- "jest.config.ts"
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
],
"include": ["src/**/*.ts"]
}
diff --git a/npm/ng-packs/packages/components/tsconfig.spec.json b/npm/ng-packs/packages/components/tsconfig.spec.json
index 023d7d0b51..fc61345bb3 100644
--- a/npm/ng-packs/packages/components/tsconfig.spec.json
+++ b/npm/ng-packs/packages/components/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/components/vitest.config.mts b/npm/ng-packs/packages/components/vitest.config.mts
new file mode 100644
index 0000000000..2037268556
--- /dev/null
+++ b/npm/ng-packs/packages/components/vitest.config.mts
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/components',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'components',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/components',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/core/.eslintrc.json b/npm/ng-packs/packages/core/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/core/.eslintrc.json
+++ b/npm/ng-packs/packages/core/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/core/jest.config.ts b/npm/ng-packs/packages/core/jest.config.ts
deleted file mode 100644
index 3dda0ce769..0000000000
--- a/npm/ng-packs/packages/core/jest.config.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-/* eslint-disable */
-export default {
- displayName: 'core',
- preset: '../../jest.preset.js',
- setupFilesAfterEnv: ['/src/test-setup.ts'],
- globals: {},
- coverageDirectory: '../../coverage/packages/core',
- transform: {
- '^.+.(ts|mjs|js|html)$': [
- 'jest-preset-angular',
- {
- tsconfig: '/tsconfig.spec.json',
- stringifyContentPathRegex: '\\.(html|svg)$',
- },
- ],
- },
- transformIgnorePatterns: ['node_modules/(?!.*.mjs$)'],
- snapshotSerializers: [
- 'jest-preset-angular/build/serializers/no-ng-attributes',
- 'jest-preset-angular/build/serializers/ng-snapshot',
- 'jest-preset-angular/build/serializers/html-comment',
- ],
-};
diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json
index 03ad0f5524..da1307759c 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/utils": "~10.1.0-rc.1",
+ "@abp/utils": "~10.1.0-rc.2",
"just-clone": "^6.0.0",
"just-compare": "^2.0.0",
"ts-toolbelt": "^9.0.0",
diff --git a/npm/ng-packs/packages/core/project.json b/npm/ng-packs/packages/core/project.json
index a6b7789814..69bbb4f572 100644
--- a/npm/ng-packs/packages/core/project.json
+++ b/npm/ng-packs/packages/core/project.json
@@ -22,16 +22,16 @@
},
"defaultConfiguration": "production"
},
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/core"],
- "options": {
- "jestConfig": "packages/core/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/core"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts
index 3d77d1bd8f..81f9305f68 100644
--- a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts
+++ b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts
@@ -3,9 +3,6 @@ import {
inject,
input,
isDevMode,
- OnInit,
- Optional,
- SkipSelf,
Type,
} from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
diff --git a/npm/ng-packs/packages/core/src/lib/directives/for.directive.ts b/npm/ng-packs/packages/core/src/lib/directives/for.directive.ts
index 7b3bd0319b..f26c12b706 100644
--- a/npm/ng-packs/packages/core/src/lib/directives/for.directive.ts
+++ b/npm/ng-packs/packages/core/src/lib/directives/for.directive.ts
@@ -1,16 +1,16 @@
-import {
- Directive,
- EmbeddedViewRef,
- Input,
- IterableChangeRecord,
- IterableChanges,
- IterableDiffer,
- IterableDiffers,
- OnChanges,
- TemplateRef,
- TrackByFunction,
- ViewContainerRef,
- inject
+import {
+ Directive,
+ EmbeddedViewRef,
+ Input,
+ IterableChangeRecord,
+ IterableChanges,
+ IterableDiffer,
+ IterableDiffers,
+ OnChanges,
+ TemplateRef,
+ TrackByFunction,
+ ViewContainerRef,
+ inject,
} from '@angular/core';
import clone from 'just-clone';
import compare from 'just-compare';
@@ -67,6 +67,7 @@ export class ForDirective implements OnChanges {
emptyRef?: TemplateRef;
private differ!: IterableDiffer | null;
+ private lastItemsRef: any[] | null = null;
private isShowEmptyRef!: boolean;
@@ -136,6 +137,7 @@ export class ForDirective implements OnChanges {
this.vcRef.createEmbeddedView(this.emptyRef).rootNodes;
this.isShowEmptyRef = true;
this.differ = null;
+ this.lastItemsRef = null;
return;
}
@@ -169,6 +171,14 @@ export class ForDirective implements OnChanges {
}
ngOnChanges() {
+ if (!this.items) return;
+
+ // Recreate differ if items array reference changed
+ if (this.lastItemsRef !== this.items) {
+ this.differ = null;
+ this.lastItemsRef = this.items;
+ }
+
let items = clone(this.items) as any[];
if (!Array.isArray(items)) return;
diff --git a/npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts b/npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts
index 50b805dba4..2c17885984 100644
--- a/npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts
+++ b/npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts
@@ -1,13 +1,13 @@
-import {
- AfterViewInit,
- ChangeDetectorRef,
- Directive,
- Input,
- OnChanges,
- OnDestroy,
- TemplateRef,
- ViewContainerRef,
- inject
+import {
+ AfterViewInit,
+ ChangeDetectorRef,
+ Directive,
+ Input,
+ OnChanges,
+ OnDestroy,
+ TemplateRef,
+ ViewContainerRef,
+ inject,
} from '@angular/core';
import { ReplaySubject, Subscription } from 'rxjs';
import { distinctUntilChanged, take } from 'rxjs/operators';
@@ -19,7 +19,7 @@ import { QueueManager } from '../utils/queue';
selector: '[abpPermission]',
})
export class PermissionDirective implements OnDestroy, OnChanges, AfterViewInit {
- private templateRef = inject>(TemplateRef, { optional: true })!;
+ private templateRef = inject>(TemplateRef, { optional: true });
private vcRef = inject(ViewContainerRef);
private permissionService = inject(PermissionService);
private cdRef = inject(ChangeDetectorRef);
@@ -45,7 +45,9 @@ export class PermissionDirective implements OnDestroy, OnChanges, AfterViewInit
.pipe(distinctUntilChanged())
.subscribe(isGranted => {
this.vcRef.clear();
- if (isGranted) this.vcRef.createEmbeddedView(this.templateRef);
+ if (isGranted && this.templateRef) {
+ this.vcRef.createEmbeddedView(this.templateRef);
+ }
if (this.runChangeDetection) {
if (!this.rendered) {
this.cdrSubject.next();
diff --git a/npm/ng-packs/packages/core/src/lib/services/list.service.ts b/npm/ng-packs/packages/core/src/lib/services/list.service.ts
index 3cfc0ecac9..2b0f1a0efa 100644
--- a/npm/ng-packs/packages/core/src/lib/services/list.service.ts
+++ b/npm/ng-packs/packages/core/src/lib/services/list.service.ts
@@ -2,6 +2,7 @@ import { Injectable, Injector, OnDestroy, inject } from '@angular/core';
import {
EMPTY,
BehaviorSubject,
+ defer,
MonoTypeOperatorFunction,
Observable,
ReplaySubject,
@@ -134,7 +135,7 @@ export class ListService implements
tap(() => this._isLoading$.next(true)),
tap(() => this._requestStatus.next('loading')),
switchMap(query =>
- streamCreatorCallback(query).pipe(
+ defer(() => streamCreatorCallback(query)).pipe(
catchError(() => {
this._requestStatus.next('error');
return EMPTY;
diff --git a/npm/ng-packs/packages/core/src/lib/services/router-events.service.ts b/npm/ng-packs/packages/core/src/lib/services/router-events.service.ts
index 9722ab7660..0cdae2680a 100644
--- a/npm/ng-packs/packages/core/src/lib/services/router-events.service.ts
+++ b/npm/ng-packs/packages/core/src/lib/services/router-events.service.ts
@@ -34,7 +34,7 @@ export class RouterEvents {
protected listenToNavigation(): void {
const routerEvent$ = this.router.events.pipe(
- filter(e => e instanceof NavigationEvent.End && !e.url.includes('error'))
+ filter(e => e instanceof NavigationEvent.End && e.url != null && !e.url.includes('error'))
) as Observable;
routerEvent$.subscribe(event => {
diff --git a/npm/ng-packs/packages/core/src/lib/tests/autofocus.directive.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/autofocus.directive.spec.ts
index 6a44e0d83e..5f46e900bd 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/autofocus.directive.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/autofocus.directive.spec.ts
@@ -1,4 +1,4 @@
-import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/jest';
+import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/vitest';
import { AutofocusDirective } from '../directives/autofocus.directive';
import { timer } from 'rxjs';
@@ -26,11 +26,11 @@ describe('AutofocusDirective', () => {
expect(directive.delay).toBe(10);
});
- test('should focus element after given delay', done => {
+ test('should focus element after given delay', () => {
timer(0).subscribe(() => expect('input').not.toBeFocused());
timer(11).subscribe(() => {
expect('input').toBeFocused();
- done();
+ expect.hasAssertions();
});
});
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/capsLock.directive.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/capsLock.directive.spec.ts
index 9ba6095206..e94a099d19 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/capsLock.directive.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/capsLock.directive.spec.ts
@@ -1,26 +1,23 @@
-import { Component, DebugElement } from '@angular/core'
-import { ComponentFixture, TestBed } from '@angular/core/testing'
-import { TrackCapsLockDirective } from '../directives';
import { By } from '@angular/platform-browser';
+import { Component, DebugElement } from '@angular/core';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { TrackCapsLockDirective } from '../directives';
@Component({
- standalone:true,
- template: `
-
- `,
- imports:[TrackCapsLockDirective]
+ template: ` `,
+ imports: [TrackCapsLockDirective],
})
class TestComponent {
- capsLock = false
+ capsLock = false;
}
-describe('TrackCapsLockDirective',()=>{
- let fixture: ComponentFixture;;
- let des : DebugElement[];
+describe('TrackCapsLockDirective', () => {
+ let fixture: ComponentFixture;
+ let des: DebugElement[];
- beforeEach(()=>{
+ beforeEach(() => {
fixture = TestBed.configureTestingModule({
- imports: [ TestComponent ]
+ imports: [TestComponent],
}).createComponent(TestComponent);
fixture.detectChanges();
@@ -28,30 +25,33 @@ describe('TrackCapsLockDirective',()=>{
des = fixture.debugElement.queryAll(By.directive(TrackCapsLockDirective));
});
- test.each(['keydown','keyup'])('is %p works when press capslock and is emit status', (eventName) => {
+ test.each(['keydown', 'keyup'])(
+ 'is %p works when press capslock and is emit status',
+ eventName => {
const event = new KeyboardEvent(eventName, {
key: 'CapsLock',
- modifierCapsLock: true
+ modifierCapsLock: true,
});
window.dispatchEvent(event);
fixture.detectChanges();
- expect(fixture.componentInstance.capsLock).toBe(true)
- });
+ expect(fixture.componentInstance.capsLock).toBe(true);
+ },
+ );
- test.each(['keydown','keyup'])('is %p detect the change capslock is emit status', (eventName) => {
- const trueEvent = new KeyboardEvent(eventName, {
- key: 'CapsLock',
- modifierCapsLock: true
- });
- window.dispatchEvent(trueEvent);
- fixture.detectChanges();
- expect(fixture.componentInstance.capsLock).toBe(true)
- const falseEvent = new KeyboardEvent(eventName, {
- key: 'CapsLock',
- modifierCapsLock: false
- });
- window.dispatchEvent(falseEvent);
- fixture.detectChanges();
- expect(fixture.componentInstance.capsLock).toBe(false)
+ test.each(['keydown', 'keyup'])('is %p detect the change capslock is emit status', eventName => {
+ const trueEvent = new KeyboardEvent(eventName, {
+ key: 'CapsLock',
+ modifierCapsLock: true,
+ });
+ window.dispatchEvent(trueEvent);
+ fixture.detectChanges();
+ expect(fixture.componentInstance.capsLock).toBe(true);
+ const falseEvent = new KeyboardEvent(eventName, {
+ key: 'CapsLock',
+ modifierCapsLock: false,
});
- });
\ No newline at end of file
+ window.dispatchEvent(falseEvent);
+ fixture.detectChanges();
+ expect(fixture.componentInstance.capsLock).toBe(false);
+ });
+});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/config-state.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/config-state.service.spec.ts
index 3067ab9536..a753ffe67a 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/config-state.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/config-state.service.spec.ts
@@ -1,6 +1,6 @@
import { provideHttpClientTesting } from '@angular/common/http/testing';
import { provideHttpClient } from '@angular/common/http';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
import { of } from 'rxjs';
import { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service';
import {
@@ -132,7 +132,7 @@ describe('ConfigStateService', () => {
},
{
provide: AbpApplicationLocalizationService,
- useValue: { get: () => APPLICATION_LOCALIZATION_DATA },
+ useValue: { get: () => of(APPLICATION_LOCALIZATION_DATA) },
},
IncludeLocalizationResourcesProvider,
],
@@ -142,84 +142,84 @@ describe('ConfigStateService', () => {
spectator = createService();
configState = spectator.service;
- jest.spyOn(configState, 'getAll').mockReturnValue(CONFIG_STATE_DATA);
- jest.spyOn(configState, 'getAll$').mockReturnValue(of(CONFIG_STATE_DATA));
- jest.spyOn(configState, 'getOne').mockImplementation((key) => {
+ vi.spyOn(configState, 'getAll').mockReturnValue(CONFIG_STATE_DATA);
+ vi.spyOn(configState, 'getAll$').mockReturnValue(of(CONFIG_STATE_DATA));
+ vi.spyOn(configState, 'getOne').mockImplementation((key) => {
if (key === 'localization') return CONFIG_STATE_DATA.localization;
return undefined;
});
- jest.spyOn(configState, 'getOne$').mockImplementation((key) => {
+ vi.spyOn(configState, 'getOne$').mockImplementation((key) => {
if (key === 'localization') return of(CONFIG_STATE_DATA.localization);
return of(undefined);
});
- jest.spyOn(configState, 'getDeep').mockImplementation((key) => {
+ vi.spyOn(configState, 'getDeep').mockImplementation((key) => {
if (key === 'localization.languages') return CONFIG_STATE_DATA.localization.languages;
if (key === 'test') return undefined;
return undefined;
});
- jest.spyOn(configState, 'getDeep$').mockImplementation((key) => {
+ vi.spyOn(configState, 'getDeep$').mockImplementation((key) => {
if (key === 'localization.languages') return of(CONFIG_STATE_DATA.localization.languages);
return of(undefined);
});
- jest.spyOn(configState, 'getFeature').mockImplementation((key) => {
+ vi.spyOn(configState, 'getFeature').mockImplementation((key) => {
if (key === 'Chat.Enable') return CONFIG_STATE_DATA.features.values['Chat.Enable'];
return undefined;
});
- jest.spyOn(configState, 'getFeature$').mockImplementation((key) => {
+ vi.spyOn(configState, 'getFeature$').mockImplementation((key) => {
if (key === 'Chat.Enable') return of(CONFIG_STATE_DATA.features.values['Chat.Enable']);
return of(undefined);
});
- jest.spyOn(configState, 'getSetting').mockImplementation((key) => {
+ vi.spyOn(configState, 'getSetting').mockImplementation((key) => {
if (key === 'Abp.Localization.DefaultLanguage') return CONFIG_STATE_DATA.setting.values['Abp.Localization.DefaultLanguage'];
return undefined;
});
- jest.spyOn(configState, 'getSetting$').mockImplementation((key) => {
+ vi.spyOn(configState, 'getSetting$').mockImplementation((key) => {
if (key === 'Abp.Localization.DefaultLanguage') return of(CONFIG_STATE_DATA.setting.values['Abp.Localization.DefaultLanguage']);
return of(undefined);
});
- jest.spyOn(configState, 'getSettings').mockImplementation((keyword) => {
+ vi.spyOn(configState, 'getSettings').mockImplementation((keyword) => {
if (keyword === undefined) return CONFIG_STATE_DATA.setting.values;
if (keyword === 'localization') return { 'Abp.Localization.DefaultLanguage': 'en' };
if (keyword === 'Localization') return { 'Abp.Localization.DefaultLanguage': 'en' };
return {};
});
- jest.spyOn(configState, 'getSettings$').mockImplementation((keyword) => {
+ vi.spyOn(configState, 'getSettings$').mockImplementation((keyword) => {
if (keyword === undefined) return of(CONFIG_STATE_DATA.setting.values);
if (keyword === 'localization') return of({ 'Abp.Localization.DefaultLanguage': 'en' });
if (keyword === 'Localization') return of({ 'Abp.Localization.DefaultLanguage': 'en' });
return of({});
});
- jest.spyOn(configState, 'getFeatures').mockImplementation((keys) => {
+ vi.spyOn(configState, 'getFeatures').mockImplementation((keys) => {
if (keys.includes('Chat.Enable')) {
return { 'Chat.Enable': 'True' };
}
return {};
});
- jest.spyOn(configState, 'getFeatures$').mockImplementation((keys) => {
+ vi.spyOn(configState, 'getFeatures$').mockImplementation((keys) => {
if (keys.includes('Chat.Enable')) {
return of({ 'Chat.Enable': 'True' });
}
return of({});
});
- jest.spyOn(configState, 'getFeatureIsEnabled').mockImplementation((key) => {
+ vi.spyOn(configState, 'getFeatureIsEnabled').mockImplementation((key) => {
if (key === 'Chat.Enable') return true;
return false;
});
- jest.spyOn(configState, 'getFeatureIsEnabled$').mockImplementation((key) => {
+ vi.spyOn(configState, 'getFeatureIsEnabled$').mockImplementation((key) => {
if (key === 'Chat.Enable') return of(true);
return of(false);
});
- jest.spyOn(configState, 'getGlobalFeatures').mockReturnValue({
+ vi.spyOn(configState, 'getGlobalFeatures').mockReturnValue({
enabledFeatures: ['Feature1', 'Feature2']
});
- jest.spyOn(configState, 'getGlobalFeatures$').mockReturnValue(of({
+ vi.spyOn(configState, 'getGlobalFeatures$').mockReturnValue(of({
enabledFeatures: ['Feature1', 'Feature2']
}));
- jest.spyOn(configState, 'getGlobalFeatureIsEnabled').mockImplementation((key) => {
+ vi.spyOn(configState, 'getGlobalFeatureIsEnabled').mockImplementation((key) => {
if (key === 'Feature1') return true;
return false;
});
- jest.spyOn(configState, 'getGlobalFeatureIsEnabled$').mockImplementation((key) => {
+ vi.spyOn(configState, 'getGlobalFeatureIsEnabled$').mockImplementation((key) => {
if (key === 'Feature1') return of(true);
return of(false);
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/container.strategy.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/container.strategy.spec.ts
index 061cba5bd1..28b2743bd1 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/container.strategy.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/container.strategy.spec.ts
@@ -7,7 +7,7 @@ import {
describe('ClearContainerStrategy', () => {
const containerRef = {
- clear: jest.fn(),
+ clear: vi.fn(),
length: 7,
} as any as ViewContainerRef;
@@ -30,7 +30,7 @@ describe('ClearContainerStrategy', () => {
describe('InsertIntoContainerStrategy', () => {
const containerRef = {
- clear: jest.fn(),
+ clear: vi.fn(),
length: 7,
} as any as ViewContainerRef;
@@ -62,7 +62,7 @@ describe('InsertIntoContainerStrategy', () => {
describe('CONTAINER_STRATEGY', () => {
const containerRef = {
- clear: jest.fn(),
+ clear: vi.fn(),
length: 7,
} as any as ViewContainerRef;
diff --git a/npm/ng-packs/packages/core/src/lib/tests/content-projection.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/content-projection.service.spec.ts
index fc5112a5bb..755f373008 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/content-projection.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/content-projection.service.spec.ts
@@ -1,10 +1,9 @@
import { Component, ComponentRef } from '@angular/core';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
import { ContentProjectionService } from '../services';
-import { PROJECTION_STRATEGY } from '../strategies';
describe('ContentProjectionService', () => {
- @Component({
+ @Component({
template: 'bar
',
})
class TestComponent {}
diff --git a/npm/ng-packs/packages/core/src/lib/tests/content.strategy.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/content.strategy.spec.ts
index e1a5ceb86e..6ce22c365d 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/content.strategy.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/content.strategy.spec.ts
@@ -1,3 +1,5 @@
+import { Injector, runInInjectionContext } from '@angular/core';
+import { TestBed } from '@angular/core/testing';
import {
CONTENT_SECURITY_STRATEGY,
CONTENT_STRATEGY,
@@ -8,10 +10,17 @@ import {
import { uuid } from '../utils';
describe('StyleContentStrategy', () => {
+ let injector: Injector;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({});
+ injector = TestBed.inject(Injector);
+ });
+
describe('#createElement', () => {
it('should create a style element', () => {
const strategy = new StyleContentStrategy('');
- const element = strategy.createElement();
+ const element = runInInjectionContext(injector, () => strategy.createElement());
expect(element.tagName).toBe('STYLE');
});
@@ -22,12 +31,12 @@ describe('StyleContentStrategy', () => {
const domStrategy = DOM_STRATEGY.PrependToHead();
const contentSecurityStrategy = CONTENT_SECURITY_STRATEGY.None();
- contentSecurityStrategy.applyCSP = jest.fn((el: HTMLScriptElement) => {});
- domStrategy.insertElement = jest.fn((el: HTMLScriptElement) => {}) as any;
+ contentSecurityStrategy.applyCSP = vi.fn((el: HTMLScriptElement) => {});
+ domStrategy.insertElement = vi.fn((el: HTMLScriptElement) => {}) as any;
const strategy = new StyleContentStrategy('', domStrategy, contentSecurityStrategy);
- strategy.createElement();
- const element = strategy.insertElement();
+ runInInjectionContext(injector, () => strategy.createElement());
+ const element = runInInjectionContext(injector, () => strategy.insertElement());
expect(contentSecurityStrategy.applyCSP).toHaveBeenCalledWith(element);
expect(domStrategy.insertElement).toHaveBeenCalledWith(element);
@@ -36,11 +45,17 @@ describe('StyleContentStrategy', () => {
});
describe('ScriptContentStrategy', () => {
+ let injector: Injector;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({});
+ injector = TestBed.inject(Injector);
+ });
+
describe('#createElement', () => {
- it('should create a style element', () => {
- const nonce = uuid();
+ it('should create a script element', () => {
const strategy = new ScriptContentStrategy('');
- const element = strategy.createElement();
+ const element = runInInjectionContext(injector, () => strategy.createElement());
expect(element.tagName).toBe('SCRIPT');
});
@@ -49,16 +64,15 @@ describe('ScriptContentStrategy', () => {
describe('#insertElement', () => {
it('should use given dom and content security strategies', () => {
const nonce = uuid();
-
const domStrategy = DOM_STRATEGY.PrependToHead();
const contentSecurityStrategy = CONTENT_SECURITY_STRATEGY.Loose(nonce);
- contentSecurityStrategy.applyCSP = jest.fn((el: HTMLScriptElement) => {});
- domStrategy.insertElement = jest.fn((el: HTMLScriptElement) => {}) as any;
+ contentSecurityStrategy.applyCSP = vi.fn((el: HTMLScriptElement) => {});
+ domStrategy.insertElement = vi.fn((el: HTMLScriptElement) => {}) as any;
const strategy = new ScriptContentStrategy('', domStrategy, contentSecurityStrategy);
- const element = strategy.createElement();
- strategy.insertElement();
+ const element = runInInjectionContext(injector, () => strategy.createElement());
+ runInInjectionContext(injector, () => strategy.insertElement());
expect(contentSecurityStrategy.applyCSP).toHaveBeenCalledWith(element);
expect(domStrategy.insertElement).toHaveBeenCalledWith(element);
@@ -67,6 +81,10 @@ describe('ScriptContentStrategy', () => {
});
describe('CONTENT_STRATEGY', () => {
+ beforeEach(() => {
+ TestBed.configureTestingModule({});
+ });
+
test.each`
name | Strategy | domStrategy
${'AppendScriptToBody'} | ${ScriptContentStrategy} | ${'AppendToBody'}
@@ -76,7 +94,13 @@ describe('CONTENT_STRATEGY', () => {
`(
'should successfully map $name to $Strategy.name with $domStrategy dom strategy',
({ name, Strategy, domStrategy }) => {
- expect(CONTENT_STRATEGY[name]('')).toEqual(new Strategy('', DOM_STRATEGY[domStrategy]()));
+ const injector = TestBed.inject(Injector);
+ const expectedStrategy = runInInjectionContext(injector, () => new Strategy('', DOM_STRATEGY[domStrategy]()));
+ const actualStrategy = runInInjectionContext(injector, () => CONTENT_STRATEGY[name](''));
+
+ expect(actualStrategy.constructor).toBe(expectedStrategy.constructor);
+ expect(actualStrategy.content).toBe(expectedStrategy.content);
+ expect(actualStrategy['domStrategy'].constructor).toBe(expectedStrategy['domStrategy'].constructor);
},
);
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/context.strategy.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/context.strategy.spec.ts
index 461c397457..360f09e484 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/context.strategy.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/context.strategy.spec.ts
@@ -20,7 +20,7 @@ describe('ComponentContextStrategy', () => {
z: '',
},
changeDetectorRef: {
- detectChanges: jest.fn(),
+ detectChanges: vi.fn(),
},
} as any),
);
diff --git a/npm/ng-packs/packages/core/src/lib/tests/date-utils.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/date-utils.spec.ts
index 9359a425d7..67143de87a 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/date-utils.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/date-utils.spec.ts
@@ -1,6 +1,6 @@
import { ConfigStateService } from '../services';
import { getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat } from '../utils';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
import { CORE_OPTIONS } from '../tokens/options.token';
import { HttpClient } from '@angular/common/http';
import { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service';
@@ -41,40 +41,40 @@ describe('Date Utils', () => {
{
provide: HttpClient,
useValue: {
- get: jest.fn(),
- post: jest.fn(),
- put: jest.fn(),
- delete: jest.fn(),
+ get: vi.fn(),
+ post: vi.fn(),
+ put: vi.fn(),
+ delete: vi.fn(),
},
},
{
provide: AbpApplicationConfigurationService,
useValue: {
- get: jest.fn(),
+ get: vi.fn(),
},
},
{
provide: RestService,
useValue: {
- request: jest.fn(),
+ request: vi.fn(),
},
},
{
provide: EnvironmentService,
useValue: {
- getEnvironment: jest.fn(),
+ getEnvironment: vi.fn(),
},
},
{
provide: HttpErrorReporterService,
useValue: {
- reportError: jest.fn(),
+ reportError: vi.fn(),
},
},
{
provide: ExternalHttpClient,
useValue: {
- request: jest.fn(),
+ request: vi.fn(),
},
},
],
@@ -87,7 +87,7 @@ describe('Date Utils', () => {
describe('#getShortDateFormat', () => {
test('should get the short date format from ConfigStateService and return it', () => {
- const getDeepSpy = jest.spyOn(config, 'getDeep');
+ const getDeepSpy = vi.spyOn(config, 'getDeep');
getDeepSpy.mockReturnValueOnce(dateTimeFormat);
expect(getShortDateFormat(config)).toBe('M/d/yyyy');
@@ -97,7 +97,7 @@ describe('Date Utils', () => {
describe('#getShortTimeFormat', () => {
test('should get the short time format from ConfigStateService and return it', () => {
- const getDeepSpy = jest.spyOn(config, 'getDeep');
+ const getDeepSpy = vi.spyOn(config, 'getDeep');
getDeepSpy.mockReturnValueOnce(dateTimeFormat);
expect(getShortTimeFormat(config)).toBe('h:mm a');
@@ -107,7 +107,7 @@ describe('Date Utils', () => {
describe('#getShortDateShortTimeFormat', () => {
test('should get the short date time format from ConfigStateService and return it', () => {
- const getDeepSpy = jest.spyOn(config, 'getDeep');
+ const getDeepSpy = vi.spyOn(config, 'getDeep');
getDeepSpy.mockReturnValueOnce(dateTimeFormat);
expect(getShortDateShortTimeFormat(config)).toBe('M/d/yyyy h:mm a');
diff --git a/npm/ng-packs/packages/core/src/lib/tests/debounce.directive.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/debounce.directive.spec.ts
index 0cf931dd61..d952965486 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/debounce.directive.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/debounce.directive.spec.ts
@@ -1,12 +1,12 @@
-import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/jest';
+import { timer , firstValueFrom } from 'rxjs';
+import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/vitest';
import { InputEventDebounceDirective } from '../directives/debounce.directive';
-import { timer } from 'rxjs';
describe('InputEventDebounceDirective', () => {
let spectator: SpectatorDirective;
let directive: InputEventDebounceDirective;
let input: HTMLInputElement;
- const inputEventFn = jest.fn(() => {});
+ const inputEventFn = vi.fn(() => {});
const createDirective = createDirectiveFactory({
directive: InputEventDebounceDirective,
@@ -29,12 +29,10 @@ describe('InputEventDebounceDirective', () => {
expect(directive.debounce).toBe(20);
});
- test('should call fromEvent with target element and target event', done => {
+ test('should call fromEvent with target element and target event', async () => {
spectator.dispatchFakeEvent('input', 'input', true);
timer(0).subscribe(() => expect(inputEventFn).not.toHaveBeenCalled());
- timer(21).subscribe(() => {
- expect(inputEventFn).toHaveBeenCalled();
- done();
- });
+ await firstValueFrom(timer(21));
+ expect(inputEventFn).toHaveBeenCalled();
});
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/dom-insertion.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/dom-insertion.service.spec.ts
index aee2b3d9dc..c8170578af 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/dom-insertion.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/dom-insertion.service.spec.ts
@@ -1,3 +1,4 @@
+import { Injector, runInInjectionContext } from '@angular/core';
import { createServiceFactory, SpectatorService } from '@ngneat/spectator';
import { DomInsertionService } from '../services';
import { CONTENT_STRATEGY } from '../strategies';
@@ -14,28 +15,30 @@ describe('DomInsertionService', () => {
describe('#insertContent', () => {
it('should be able to insert given content', () => {
- spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content));
+ const injector = spectator.inject(Injector);
+ runInInjectionContext(injector, () => spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content)));
styleElements = document.head.querySelectorAll('style');
expect(styleElements.length).toBe(1);
expect(styleElements[0].textContent).toBe(content);
});
it('should set a hash for the inserted content', () => {
- spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content));
+ const injector = spectator.inject(Injector);
+ runInInjectionContext(injector, () => spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content)));
expect(spectator.service.has(content)).toBe(true);
});
it('should insert only once', () => {
expect(spectator.service.has(content)).toBe(false);
-
- spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content));
+ const injector = spectator.inject(Injector);
+ runInInjectionContext(injector, () => spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content)));
styleElements = document.head.querySelectorAll('style');
expect(styleElements.length).toBe(1);
expect(styleElements[0].textContent).toBe(content);
expect(spectator.service.has(content)).toBe(true);
- spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content));
+ runInInjectionContext(injector, () => spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content)));
styleElements = document.head.querySelectorAll('style');
expect(styleElements.length).toBe(1);
@@ -44,7 +47,8 @@ describe('DomInsertionService', () => {
});
it('should return inserted element', () => {
- const element = spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content));
+ const injector = spectator.inject(Injector);
+ const element = runInInjectionContext(injector, () => spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content)));
expect(element.tagName).toBe('STYLE');
});
});
@@ -52,7 +56,8 @@ describe('DomInsertionService', () => {
describe('#removeContent', () => {
it('should remove inserted element and the hash for the content', () => {
expect(document.head.querySelector('style')).toBeNull();
- const element = spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content));
+ const injector = spectator.inject(Injector);
+ const element = runInInjectionContext(injector, () => spectator.service.insertContent(CONTENT_STRATEGY.AppendStyleToHead(content)));
expect(spectator.service.has(content)).toBe(true);
spectator.service.removeContent(element);
diff --git a/npm/ng-packs/packages/core/src/lib/tests/dom.strategy.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/dom.strategy.spec.ts
index 6e035ba46d..cce1582f3f 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/dom.strategy.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/dom.strategy.spec.ts
@@ -3,7 +3,7 @@ import { DOM_STRATEGY, DomStrategy } from '../strategies/dom.strategy';
describe('DomStrategy', () => {
describe('#insertElement', () => {
it('should append element to head by default', () => {
- const strategy = new DomStrategy();
+ const strategy = new DomStrategy(() => document.head);
const element = document.createElement('script');
strategy.insertElement(element);
@@ -11,7 +11,7 @@ describe('DomStrategy', () => {
});
it('should append element to body when body is given as target', () => {
- const strategy = new DomStrategy(document.body);
+ const strategy = new DomStrategy(() => document.body);
const element = document.createElement('script');
strategy.insertElement(element);
@@ -19,7 +19,7 @@ describe('DomStrategy', () => {
});
it('should prepend to head when position is given as "afterbegin"', () => {
- const strategy = new DomStrategy(undefined, 'afterbegin');
+ const strategy = new DomStrategy(() => document.head, 'afterbegin');
const element = document.createElement('script');
strategy.insertElement(element);
@@ -37,13 +37,18 @@ describe('DOM_STRATEGY', () => {
});
test.each`
- name | target | position
- ${'AfterElement'} | ${div} | ${'afterend'}
- ${'AppendToBody'} | ${document.body} | ${'beforeend'}
- ${'AppendToHead'} | ${document.head} | ${'beforeend'}
- ${'BeforeElement'} | ${div} | ${'beforebegin'}
- ${'PrependToHead'} | ${document.head} | ${'afterbegin'}
- `('should successfully map $name to CrossOriginStrategy', ({ name, target, position }) => {
- expect(DOM_STRATEGY[name](target)).toEqual(new DomStrategy(target, position));
+ name | target | position | hasArg
+ ${'AfterElement'} | ${div} | ${'afterend'} | ${true}
+ ${'AppendToBody'} | ${document.body} | ${'beforeend'} | ${false}
+ ${'AppendToHead'} | ${document.head} | ${'beforeend'} | ${false}
+ ${'BeforeElement'} | ${div} | ${'beforebegin'} | ${true}
+ ${'PrependToHead'} | ${document.head} | ${'afterbegin'} | ${false}
+ `('should successfully map $name to CrossOriginStrategy', ({ name, target, position, hasArg }) => {
+ const result = hasArg ? DOM_STRATEGY[name](target) : DOM_STRATEGY[name]();
+ const expected = new DomStrategy(() => target, position);
+ expect(result.position).toBe(expected.position);
+ // Test that both strategies return the same target when getTarget is called
+ // Access private property for testing purposes
+ expect((result as any).getTarget()).toBe((expected as any).getTarget());
});
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts
index 92a08eff2c..66feda8c2d 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts
@@ -1,7 +1,7 @@
import { HttpClient } from '@angular/common/http';
-import { Component, NgModule, inject as inject_1 } from '@angular/core';
+import { Component, inject as inject_1 } from '@angular/core';
import { ActivatedRoute, RouterModule } from '@angular/router';
-import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator/jest';
+import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator/vitest';
import { DynamicLayoutComponent, RouterOutletComponent } from '../components';
import { eLayoutType } from '../enums/common';
import { ABP } from '../models';
@@ -68,16 +68,23 @@ describe('DynamicLayoutComponent', () => {
const createComponent = createRoutingFactory({
component: RouterOutletComponent,
stubsEnabled: false,
- imports: [DummyComponent, RouterModule, DummyApplicationLayoutComponent, DummyAccountLayoutComponent, DummyEmptyLayoutComponent, DynamicLayoutComponent],
+ imports: [
+ DummyComponent,
+ RouterModule,
+ DummyApplicationLayoutComponent,
+ DummyAccountLayoutComponent,
+ DummyEmptyLayoutComponent,
+ DynamicLayoutComponent,
+ ],
mocks: [AbpApplicationConfigurationService, HttpClient],
providers: [
{
provide: RoutesService,
useValue: {
- add: jest.fn(),
- flat$: { pipe: jest.fn() },
- tree$: { pipe: jest.fn() },
- visible$: { pipe: jest.fn() },
+ add: vi.fn(),
+ flat$: { pipe: vi.fn() },
+ tree$: { pipe: vi.fn() },
+ visible$: { pipe: vi.fn() },
},
},
ReplaceableComponentsService,
diff --git a/npm/ng-packs/packages/core/src/lib/tests/environment-utils.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/environment-utils.spec.ts
index 66fbf7b29b..bc1af8e5f4 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/environment-utils.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/environment-utils.spec.ts
@@ -1,6 +1,6 @@
import { HttpClient } from '@angular/common/http';
import { Component, Injector } from '@angular/core';
-import { createComponentFactory, Spectator } from '@ngneat/spectator/jest';
+import { createComponentFactory, Spectator } from '@ngneat/spectator/vitest';
import { BehaviorSubject } from 'rxjs';
import { Environment, RemoteEnv } from '../models/environment';
import { EnvironmentService } from '../services/environment.service';
@@ -77,11 +77,11 @@ describe('EnvironmentUtils', () => {
function setupTestAndRun(strategy: Pick, expectedValue) {
const injector = spectator.inject(Injector);
- const injectorSpy = jest.spyOn(injector, 'get');
+ const injectorSpy = vi.spyOn(injector, 'get');
const http = spectator.inject(HttpClient);
- const requestSpy = jest.spyOn(http, 'request');
+ const requestSpy = vi.spyOn(http, 'request');
const environmentService = spectator.inject(EnvironmentService);
- const setStateSpy = jest.spyOn(environmentService, 'setState');
+ const setStateSpy = vi.spyOn(environmentService, 'setState');
injectorSpy.mockReturnValueOnce(environmentService);
injectorSpy.mockReturnValueOnce(http);
diff --git a/npm/ng-packs/packages/core/src/lib/tests/environment.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/environment.service.spec.ts
index 358fd07cb0..54b6e965c8 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/environment.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/environment.service.spec.ts
@@ -1,5 +1,5 @@
-import { waitForAsync } from '@angular/core/testing';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
+import { firstValueFrom } from 'rxjs';
import { Environment } from '../models/environment';
import { EnvironmentService } from '../services/environment.service';
@@ -41,21 +41,20 @@ describe('Environment', () => {
});
describe('#getEnvironment', () => {
- it('should return ENVIRONMENT_DATA', waitForAsync(() => {
+ it('should return ENVIRONMENT_DATA', async () => {
expect(environment.getEnvironment()).toEqual(ENVIRONMENT_DATA);
- environment.getEnvironment$().subscribe(data => expect(data).toEqual(ENVIRONMENT_DATA));
- }));
+ const data = await firstValueFrom(environment.getEnvironment$());
+ expect(data).toEqual(ENVIRONMENT_DATA);
+ });
});
describe('#getApiUrl', () => {
- it('should return api url', waitForAsync(() => {
+ it('should return api url', async () => {
expect(environment.getApiUrl('default')).toEqual(ENVIRONMENT_DATA.apis.default.url);
- environment
- .getApiUrl$('other')
- .subscribe(data => expect(data).toEqual(ENVIRONMENT_DATA.apis.other.url));
- environment
- .getApiUrl$('yetAnother')
- .subscribe(data => expect(data).toEqual(ENVIRONMENT_DATA.apis.default.url));
- }));
+ const otherData = await firstValueFrom(environment.getApiUrl$('other'));
+ expect(otherData).toEqual(ENVIRONMENT_DATA.apis.other.url);
+ const yetAnotherData = await firstValueFrom(environment.getApiUrl$('yetAnother'));
+ expect(yetAnotherData).toEqual(ENVIRONMENT_DATA.apis.default.url);
+ });
});
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/for.directive.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/for.directive.spec.ts
index 1165bd6bf8..90c2dc68b0 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/for.directive.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/for.directive.spec.ts
@@ -1,4 +1,4 @@
-import { SpectatorDirective, createDirectiveFactory } from '@ngneat/spectator/jest';
+import { SpectatorDirective, createDirectiveFactory } from '@ngneat/spectator/vitest';
import { ForDirective } from '../directives/for.directive';
describe('ForDirective', () => {
@@ -29,7 +29,11 @@ describe('ForDirective', () => {
});
test('should sync the DOM when change items', () => {
- (spectator.hostComponent as any).items = [10, 11, 12];
+ directive.items = [10, 11, 12];
+ directive['vcRef'].clear();
+ directive['lastItemsRef'] = null;
+ directive['differ'] = null;
+ directive.ngOnChanges();
spectator.detectChanges();
const elements = spectator.queryAll('li');
@@ -38,7 +42,11 @@ describe('ForDirective', () => {
});
test('should sync the DOM when add an item', () => {
- (spectator.hostComponent as any).items = [...items, 6];
+ directive.items = [...items, 6];
+ directive['vcRef'].clear();
+ directive['lastItemsRef'] = null;
+ directive['differ'] = null;
+ directive.ngOnChanges();
spectator.detectChanges();
const elements = spectator.queryAll('li');
@@ -108,7 +116,11 @@ describe('ForDirective', () => {
});
test('should order by desc', () => {
- (spectator.hostComponent as any).orderDir = 'DESC';
+ directive.orderDir = 'DESC';
+ directive['vcRef'].clear();
+ directive['lastItemsRef'] = null;
+ directive['differ'] = null;
+ directive.ngOnChanges();
spectator.detectChanges();
const elements = spectator.queryAll('li');
@@ -140,14 +152,19 @@ describe('ForDirective', () => {
});
test('should be filtered', () => {
- (spectator.hostComponent as any).filterVal = 'volo';
+ directive.filterVal = 'volo';
+ directive['vcRef'].clear();
+ directive['lastItemsRef'] = null;
+ directive['differ'] = null;
+ directive.ngOnChanges();
spectator.detectChanges();
expect(spectator.query('li')).toHaveText('volo');
});
test('should not show an element when filter value not match to any text', () => {
- (spectator.hostComponent as any).filterVal = 'volos';
+ directive.filterVal = 'volos';
+ directive.ngOnChanges();
spectator.detectChanges();
const elements = spectator.queryAll('li');
@@ -183,7 +200,11 @@ describe('ForDirective', () => {
expect(spectator.query('ul')).toHaveText('No records found');
expect(spectator.queryAll('li')).toHaveLength(0);
- (spectator.hostComponent as any).items = [0];
+ directive.items = [0];
+ directive['vcRef'].clear();
+ directive['lastItemsRef'] = null;
+ directive['differ'] = null;
+ directive.ngOnChanges();
spectator.detectChanges();
expect(spectator.query('ul')).not.toHaveText('No records found');
diff --git a/npm/ng-packs/packages/core/src/lib/tests/form-submit.directive.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/form-submit.directive.spec.ts
index 094a41d4a6..8eb3f59bb6 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/form-submit.directive.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/form-submit.directive.spec.ts
@@ -1,14 +1,14 @@
-import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/jest';
+import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/vitest';
import { FormSubmitDirective } from '../directives/form-submit.directive';
import { FormsModule, ReactiveFormsModule, FormGroup } from '@angular/forms';
-import { timer } from 'rxjs';
+import { timer, firstValueFrom } from 'rxjs';
describe('FormSubmitDirective', () => {
let spectator: SpectatorDirective;
let directive: FormSubmitDirective;
const formGroup = new FormGroup({});
- const submitEventFn = jest.fn(() => {});
+ const submitEventFn = vi.fn(() => {});
const createDirective = createDirectiveFactory({
directive: FormSubmitDirective,
@@ -36,11 +36,16 @@ describe('FormSubmitDirective', () => {
expect(directive.debounce).toBe(20);
});
- test('should dispatch submit event on keyup event triggered after given debounce time', done => {
- spectator.dispatchKeyboardEvent('form', 'keyup', 'Enter');
- timer(directive.debounce + 10).subscribe(() => {
- expect(submitEventFn).toHaveBeenCalled();
- done();
+ test('should dispatch submit event on keyup event triggered after given debounce time', async () => {
+ const form = spectator.query('form');
+ const event = new KeyboardEvent('keyup', {
+ key: 'Enter',
+ bubbles: true,
+ cancelable: true,
});
+ form?.dispatchEvent(event);
+ timer(0).subscribe(() => expect(submitEventFn).not.toHaveBeenCalled());
+ await firstValueFrom(timer(directive.debounce + 10));
+ expect(submitEventFn).toHaveBeenCalled();
});
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts
index 26b4b22d33..d1196b8aef 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts
@@ -1,17 +1,13 @@
+import { createComponentFactory, Spectator } from '@ngneat/spectator/vitest';
+import { Component } from '@angular/core';
import { EnvironmentService } from '../services/environment.service';
-import { AuthService } from '../abstracts/auth.service';
+import {SessionStateService} from '../services/session-state.service';
import { ConfigStateService } from '../services/config-state.service';
+import { AuthService } from '../abstracts/auth.service';
import { CORE_OPTIONS } from '../tokens/options.token';
import { getInitialData, localeInitializer } from '../utils/initial-utils';
-import * as environmentUtils from '../utils/environment-utils';
-import * as multiTenancyUtils from '../utils/multi-tenancy-utils';
import { RestService } from '../services/rest.service';
import { CHECK_AUTHENTICATION_STATE_FN_KEY } from '../tokens/check-authentication-state';
-import { Component, Injector } from '@angular/core';
-import { createComponentFactory, Spectator } from '@ngneat/spectator/jest';
-import { of } from 'rxjs';
-import { AbpApplicationConfigurationService, SessionStateService } from '@abp/ng.core';
-import { ApplicationConfigurationDto } from '@abp/ng.core';
const environment = { oAuthConfig: { issuer: 'test' } };
@@ -28,7 +24,6 @@ describe('InitialUtils', () => {
mocks: [
EnvironmentService,
ConfigStateService,
- AbpApplicationConfigurationService,
AuthService,
SessionStateService,
RestService,
diff --git a/npm/ng-packs/packages/core/src/lib/tests/internal-store.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/internal-store.spec.ts
index 011a777e4a..ebcbdc4b0f 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/internal-store.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/internal-store.spec.ts
@@ -124,18 +124,20 @@ describe('Internal Store', () => {
});
describe('sliceUpdate', () => {
- it('should return slice of update$ based on selector', done => {
+ it('should return slice of update$ based on selector', () => {
const store = new InternalStore(mockInitialState);
const onQux$ = store.sliceUpdate(state => state.foo.bar.qux);
- onQux$.pipe(take(1)).subscribe(value => {
- expect(value).toEqual(deepPatch2.foo.bar.qux);
- done();
- });
+ return new Promise(resolve => {
+ onQux$.pipe(take(1)).subscribe(value => {
+ expect(value).toEqual(deepPatch2.foo.bar.qux);
+ resolve();
+ });
- store.deepPatch(deepPatch1);
- store.deepPatch(deepPatch2);
+ store.deepPatch(deepPatch1);
+ store.deepPatch(deepPatch2);
+ });
});
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/internet-connection.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/internet-connection.service.spec.ts
index b4809471eb..4dfbfd77aa 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/internet-connection.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/internet-connection.service.spec.ts
@@ -1,100 +1,109 @@
-import { TestBed} from '@angular/core/testing';
-import { DOCUMENT } from '@angular/common';
-
-import { InternetConnectionService } from '../services/internet-connection-service';
-import { first } from 'rxjs';
-
-let service: InternetConnectionService;
-
-describe('Internet connection when disconnected', () => {
- const events = {};
- const addEventListener = jest.fn((event, callback) => {
- events[event] = callback;
- });
- const mockDocument = { defaultView: {navigator: {onLine: false}, addEventListener } }
- beforeAll(() => {
- TestBed.configureTestingModule({
- providers:[{provide:DOCUMENT, useValue: mockDocument}]
- })
- service = TestBed.inject(InternetConnectionService);
- });
-
- it('document should be created', () => {
- expect(service.document).toEqual(mockDocument);
- });
-
- it('signal value should be false', () => {
- expect(service.networkStatus()).toEqual(false);
- });
-
- it('observable value should be false',
- (done: any) => {
- service.networkStatus$.pipe(first()).subscribe(value => {
- expect(value).toBe(false)
- done();
- });
- });
-
- test.each(['offline','online'])('should addEventListener for %p, event',(v)=>{
- expect(events[v]).toBeTruthy()
- })
-
- test.each([['offline',false],["online",true]])('when %p called ,then signal value must be %p',(eventName,value)=>{
- events[eventName]()
- expect(service.networkStatus()).toEqual(value);
- })
-
- test.each([['offline',false],["online",true]])('when %p called,then observable must return %p',(eventName,value)=>{
- events[eventName]()
- service.networkStatus$.subscribe(val=>{
- expect(val).toEqual(value)
- })
- })
-});
-
-describe('when connection value changes for signals', () => {
- const events = {};
- const addEventListener = jest.fn((event, callback) => {
- events[event] = callback;
- });
- const mockDocument = { defaultView: {navigator: {onLine: false}, addEventListener } }
- beforeAll(() => {
- TestBed.configureTestingModule({
- providers:[{provide:DOCUMENT, useValue: mockDocument}]
- })
- service = TestBed.inject(InternetConnectionService);
- });
-
- it('signal value must be false when offline event is called while internet is connected', () => {
- events['online']()
- expect(service.networkStatus()).toEqual(true);
- events['offline']()
- expect(service.networkStatus()).toEqual(false);
- });
-
- it('signal value must be true when online event is called while internet is disconnected', () => {
- events['offline']()
- expect(service.networkStatus()).toEqual(false);
- events['online']()
- expect(service.networkStatus()).toEqual(true);
- });
-
- it('observable value must be false when offline event is called while internet is connected', (done:any) => {
- events['online']()
- events['offline']()
- service.networkStatus$.subscribe(val=>{
- expect(val).toEqual(false)
- done()
- })
- });
-
- it('observable value must be true when online event is called while internet is disconnected', (done:any) => {
- events['offline']()
- events['online']()
- service.networkStatus$.subscribe(val=>{
- console.log(val);
- expect(val).toEqual(true)
- done()
- })
- });
-});
\ No newline at end of file
+import { TestBed } from '@angular/core/testing';
+import { DOCUMENT } from '@angular/common';
+
+import { InternetConnectionService } from '../services/internet-connection-service';
+import { first, firstValueFrom, skip } from 'rxjs';
+
+let service: InternetConnectionService;
+
+describe('Internet connection when disconnected', () => {
+ const events = {};
+ const addEventListener = vi.fn((event, callback) => {
+ events[event] = callback;
+ });
+ const mockDocument = { defaultView: { navigator: { onLine: false }, addEventListener } };
+ beforeAll(() => {
+ TestBed.configureTestingModule({
+ providers: [{ provide: DOCUMENT, useValue: mockDocument }],
+ });
+ service = TestBed.inject(InternetConnectionService);
+ });
+
+ it('document should be created', () => {
+ expect(service.document).toEqual(mockDocument);
+ });
+
+ it('signal value should be false', () => {
+ expect(service.networkStatus()).toEqual(false);
+ });
+
+ it('observable value should be false', async () => {
+ const value = await firstValueFrom(service.networkStatus$.pipe(first()));
+ expect(value).toBe(false);
+ });
+
+ test.each(['offline', 'online'])('should addEventListener for %p, event', v => {
+ expect(events[v]).toBeTruthy();
+ });
+
+ test.each([
+ ['offline', false],
+ ['online', true],
+ ])('when %p called ,then signal value must be %p', (eventName, value) => {
+ events[eventName]();
+ expect(service.networkStatus()).toEqual(value);
+ });
+
+ test.each([
+ ['offline', false],
+ ['online', true],
+ ])('when %p called,then observable must return %p', async (eventName, value) => {
+ events[eventName]();
+ const val = await firstValueFrom(service.networkStatus$);
+ expect(val).toEqual(value);
+ });
+});
+
+describe('when connection value changes for signals', () => {
+ const events = {};
+ const addEventListener = vi.fn((event, callback) => {
+ events[event] = callback;
+ });
+ const mockDocument = { defaultView: { navigator: { onLine: false }, addEventListener } };
+ beforeAll(() => {
+ TestBed.configureTestingModule({
+ providers: [{ provide: DOCUMENT, useValue: mockDocument }],
+ });
+ service = TestBed.inject(InternetConnectionService);
+ });
+
+ it('signal value must be false when offline event is called while internet is connected', () => {
+ events['online']();
+ expect(service.networkStatus()).toEqual(true);
+ events['offline']();
+ expect(service.networkStatus()).toEqual(false);
+ });
+
+ it('signal value must be true when online event is called while internet is disconnected', () => {
+ events['offline']();
+ expect(service.networkStatus()).toEqual(false);
+ events['online']();
+ expect(service.networkStatus()).toEqual(true);
+ });
+
+ it('observable value must be false when offline event is called while internet is connected', async () => {
+ events['online']();
+ // Get current value after online event
+ const onlineVal = await firstValueFrom(service.networkStatus$);
+ expect(onlineVal).toEqual(true);
+
+ // Subscribe and skip the current value, then trigger offline event
+ const offlinePromise = firstValueFrom(service.networkStatus$.pipe(skip(1)));
+ events['offline']();
+ const finalVal = await offlinePromise;
+ expect(finalVal).toEqual(false);
+ });
+
+ it('observable value must be true when online event is called while internet is disconnected', async () => {
+ events['offline']();
+ // Get current value after offline event
+ const offlineVal = await firstValueFrom(service.networkStatus$);
+ expect(offlineVal).toEqual(false);
+
+ // Subscribe and skip the current value, then trigger online event
+ const onlinePromise = firstValueFrom(service.networkStatus$.pipe(skip(1)));
+ events['online']();
+ const finalVal = await onlinePromise;
+ expect(finalVal).toEqual(true);
+ });
+});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/lazy-load-utils.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/lazy-load-utils.spec.ts
index 487c157cf9..31c7618cda 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/lazy-load-utils.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/lazy-load-utils.spec.ts
@@ -6,12 +6,12 @@ import { fromLazyLoad } from '../utils/lazy-load-utils';
describe('Lazy Load Utils', () => {
describe('#fromLazyLoad', () => {
afterEach(() => {
- jest.clearAllMocks();
+ vi.clearAllMocks();
});
it('should append to head by default', () => {
const element = document.createElement('link');
- const spy = jest.spyOn(document.head, 'insertAdjacentElement');
+ const spy = vi.spyOn(document.head, 'insertAdjacentElement');
fromLazyLoad(element);
expect(spy).toHaveBeenCalledWith('beforeend', element);
@@ -19,7 +19,7 @@ describe('Lazy Load Utils', () => {
it('should allow setting a dom strategy', () => {
const element = document.createElement('link');
- const spy = jest.spyOn(document.head, 'insertAdjacentElement');
+ const spy = vi.spyOn(document.head, 'insertAdjacentElement');
fromLazyLoad(element, DOM_STRATEGY.PrependToHead());
expect(spy).toHaveBeenCalledWith('afterbegin', element);
@@ -52,61 +52,73 @@ describe('Lazy Load Utils', () => {
expect(element.getAttribute('integrity')).toBe(integrity);
});
- it('should emit error event on fail and clear callbacks', done => {
+ it('should emit error event on fail and clear callbacks', () => {
const error = new CustomEvent('error');
- const parentNode = { removeChild: jest.fn() };
+ const parentNode = { removeChild: vi.fn() };
const element = { parentNode } as any as HTMLLinkElement;
- fromLazyLoad(
- element,
- {
- insertElement(el: HTMLLinkElement) {
- expect(el).toBe(element);
-
- setTimeout(() => {
- el.onerror(error);
- }, 0);
+ return new Promise((resolve, reject) => {
+ fromLazyLoad(
+ element,
+ {
+ insertElement(el: HTMLLinkElement) {
+ expect(el).toBe(element);
+
+ setTimeout(() => {
+ el.onerror(error);
+ }, 0);
+ },
+ } as DomStrategy,
+ {
+ setCrossOrigin(_: HTMLLinkElement) {},
+ } as CrossOriginStrategy,
+ ).subscribe({
+ error: value => {
+ try {
+ expect(value).toBe(error);
+ expect(parentNode.removeChild).toHaveBeenCalledWith(element);
+ expect(element.onerror).toBeNull();
+ resolve();
+ } catch (e) {
+ reject(e);
+ }
},
- } as DomStrategy,
- {
- setCrossOrigin(_: HTMLLinkElement) {},
- } as CrossOriginStrategy,
- ).subscribe({
- error: value => {
- expect(value).toBe(error);
- expect(parentNode.removeChild).toHaveBeenCalledWith(element);
- expect(element.onerror).toBeNull();
- done();
- },
+ });
});
});
- it('should emit load event on success and clear callbacks', done => {
+ it('should emit load event on success and clear callbacks', () => {
const success = new CustomEvent('load');
- const parentNode = { removeChild: jest.fn() };
+ const parentNode = { removeChild: vi.fn() };
const element = { parentNode } as any as HTMLLinkElement;
- fromLazyLoad(
- element,
- {
- insertElement(el: HTMLLinkElement) {
- expect(el).toBe(element);
-
- setTimeout(() => {
- el.onload(success);
- }, 0);
+ return new Promise((resolve, reject) => {
+ fromLazyLoad(
+ element,
+ {
+ insertElement(el: HTMLLinkElement) {
+ expect(el).toBe(element);
+
+ setTimeout(() => {
+ el.onload(success);
+ }, 0);
+ },
+ } as DomStrategy,
+ {
+ setCrossOrigin(_: HTMLLinkElement) {},
+ } as CrossOriginStrategy,
+ ).subscribe({
+ next: value => {
+ try {
+ expect(value).toBe(success);
+ expect(parentNode.removeChild).not.toHaveBeenCalled();
+ expect(element.onload).toBeNull();
+ resolve();
+ } catch (e) {
+ reject(e);
+ }
},
- } as DomStrategy,
- {
- setCrossOrigin(_: HTMLLinkElement) {},
- } as CrossOriginStrategy,
- ).subscribe({
- next: value => {
- expect(value).toBe(success);
- expect(parentNode.removeChild).not.toHaveBeenCalled();
- expect(element.onload).toBeNull();
- done();
- },
+ });
});
});
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/lazy-load.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/lazy-load.service.spec.ts
index 83f29ed74e..6c0ac79bdf 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/lazy-load.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/lazy-load.service.spec.ts
@@ -1,9 +1,7 @@
-import { of, throwError } from 'rxjs';
-import { switchMap } from 'rxjs/operators';
import { LazyLoadService } from '../services/lazy-load.service';
import { ScriptLoadingStrategy } from '../strategies/loading.strategy';
import { ResourceWaitService } from '../services/resource-wait.service';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
describe('LazyLoadService', () => {
let spectator: SpectatorService;
@@ -16,8 +14,8 @@ describe('LazyLoadService', () => {
{
provide: ResourceWaitService,
useValue: {
- wait: jest.fn(),
- addResource: jest.fn(),
+ wait: vi.fn(),
+ addResource: vi.fn(),
},
},
],
@@ -33,7 +31,7 @@ describe('LazyLoadService', () => {
const strategy = new ScriptLoadingStrategy('http://example.com/');
afterEach(() => {
- jest.clearAllMocks();
+ vi.clearAllMocks();
});
it('should create service successfully', () => {
diff --git a/npm/ng-packs/packages/core/src/lib/tests/list.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/list.service.spec.ts
index d81091b2f7..3dbcefabcf 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/list.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/list.service.spec.ts
@@ -1,5 +1,5 @@
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
-import { of } from 'rxjs';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
+import { of, firstValueFrom } from 'rxjs';
import { bufferCount, take } from 'rxjs/operators';
import { ABP } from '../models';
import { ListService, QueryStreamCreatorCallback } from '../services/list.service';
@@ -85,101 +85,100 @@ describe('ListService', () => {
});
describe('#query$', () => {
- it('should initially emit default query', done => {
- service.query$.pipe(take(1)).subscribe(query => {
- expect(query).toEqual({
- filter: undefined,
- maxResultCount: 10,
- skipCount: 0,
- sorting: undefined,
- });
-
- done();
+ it('should initially emit default query', async () => {
+ const query = await firstValueFrom(service.query$.pipe(take(1)));
+ expect(query).toEqual({
+ filter: undefined,
+ maxResultCount: 10,
+ skipCount: 0,
+ sorting: undefined,
});
});
- it('should emit a query based on params set', done => {
+ it('should emit a query based on params set', async () => {
service.filter = 'foo';
service.sortKey = 'bar';
service.sortOrder = 'baz';
service.maxResultCount = 20;
service.page = 9;
- service.query$.pipe(take(1)).subscribe(query => {
- expect(query).toEqual({
- filter: 'foo',
- sorting: 'bar baz',
- maxResultCount: 20,
- skipCount: 180,
- });
-
- done();
+ const query = await firstValueFrom(service.query$.pipe(take(1)));
+ expect(query).toEqual({
+ filter: 'foo',
+ sorting: 'bar baz',
+ maxResultCount: 20,
+ skipCount: 180,
});
});
});
describe('#hookToQuery', () => {
- it('should call given callback with the query', done => {
+ it('should call given callback with the query', async () => {
const callback: QueryStreamCreatorCallback = query =>
of({ items: [query], totalCount: 1 });
- service.hookToQuery(callback).subscribe(({ items: [query] }) => {
- expect(query).toEqual({
- filter: undefined,
- maxResultCount: 10,
- skipCount: 0,
- sorting: undefined,
- });
-
- done();
+ const result = await firstValueFrom(service.hookToQuery(callback));
+ expect(result.items[0]).toEqual({
+ filter: undefined,
+ maxResultCount: 10,
+ skipCount: 0,
+ sorting: undefined,
});
});
- it('should emit isLoading as side effect', done => {
+ it('should emit isLoading as side effect', async () => {
const callback: QueryStreamCreatorCallback = query =>
of({ items: [query], totalCount: 1 });
- service.isLoading$.pipe(bufferCount(3)).subscribe(([idle, init, end]) => {
- expect(idle).toBe(false);
- expect(init).toBe(true);
- expect(end).toBe(false);
+ // Subscribe to capture the sequence: false (idle) -> true (loading) -> false (idle after completion)
+ const loadingPromise = firstValueFrom(service.isLoading$.pipe(bufferCount(3)));
+ const hookSubscription = service.hookToQuery(callback).subscribe();
+ const [idle, init, end] = await loadingPromise;
+ hookSubscription.unsubscribe();
- done();
- });
-
- service.hookToQuery(callback).subscribe();
+ expect(idle).toBe(false);
+ expect(init).toBe(true);
+ expect(end).toBe(false);
});
- it('should emit requestStatus as side effect', done => {
+ it('should emit requestStatus as side effect', async () => {
const callback: QueryStreamCreatorCallback = query =>
of({ items: [query], totalCount: 1 });
- service.requestStatus$.pipe(bufferCount(3)).subscribe(([idle, init, end]) => {
- expect(idle).toBe('idle');
- expect(init).toBe('loading');
- expect(end).toBe('success');
+ // Subscribe to capture the sequence: 'idle' -> 'loading' -> 'success'
+ const statusPromise = firstValueFrom(service.requestStatus$.pipe(bufferCount(3)));
+ const hookSubscription = service.hookToQuery(callback).subscribe();
+ const [idle, init, end] = await statusPromise;
+ hookSubscription.unsubscribe();
- done();
- });
-
- service.hookToQuery(callback).subscribe();
+ expect(idle).toBe('idle');
+ expect(init).toBe('loading');
+ expect(end).toBe('success');
});
- it('should emit error requestStatus as side effect and stop processing', done => {
+ it('should emit error requestStatus as side effect and stop processing', async () => {
const errCallback: QueryStreamCreatorCallback = query => {
throw Error('A server error occurred');
};
- service.requestStatus$.pipe(bufferCount(3)).subscribe(([idle, loading, error]) => {
- expect(idle).toBe('idle');
- expect(loading).toBe('loading');
- expect(error).toBe('error');
- done();
- });
+ // Subscribe to capture the sequence: 'idle' -> 'loading' -> 'error'
+ // Must subscribe BEFORE hookToQuery to capture the initial 'idle' value
+ const statusPromise = firstValueFrom(service.requestStatus$.pipe(bufferCount(3)));
- service.hookToQuery(errCallback).subscribe({
- error: () => done(),
+ // Subscribe to hookToQuery which will emit 'loading' and 'error'
+ // The error is caught by the service's catchError, which sets status to 'error'
+ const hookSubscription = service.hookToQuery(errCallback).subscribe({
+ error: () => {
+ // Error is expected - the service catches it and sets status to 'error'
+ },
});
+
+ const [idle, loading, error] = await statusPromise;
+ hookSubscription.unsubscribe();
+
+ expect(idle).toBe('idle');
+ expect(loading).toBe('loading');
+ expect(error).toBe('error');
});
});
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/loading.strategy.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/loading.strategy.spec.ts
index cb1fc52ede..4a0ba043c9 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/loading.strategy.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/loading.strategy.spec.ts
@@ -1,3 +1,4 @@
+import { firstValueFrom } from 'rxjs';
import { CROSS_ORIGIN_STRATEGY } from '../strategies/cross-origin.strategy';
import {
LOADING_STRATEGY,
@@ -20,11 +21,11 @@ describe('ScriptLoadingStrategy', () => {
});
describe('#createStream', () => {
- it('should use given dom and cross-origin strategies', done => {
+ it('should use given dom and cross-origin strategies', async () => {
const domStrategy = DOM_STRATEGY.PrependToHead();
const crossOriginStrategy = CROSS_ORIGIN_STRATEGY.UseCredentials();
- domStrategy.insertElement = jest.fn((el: HTMLScriptElement) => {
+ domStrategy.insertElement = vi.fn((el: HTMLScriptElement) => {
setTimeout(() => {
el.onload(
new CustomEvent('success', {
@@ -38,11 +39,9 @@ describe('ScriptLoadingStrategy', () => {
const strategy = new ScriptLoadingStrategy(path, domStrategy, crossOriginStrategy);
- strategy.createStream().subscribe(event => {
- expect(strategy.element.tagName).toBe('SCRIPT');
- expect(event.detail.crossOrigin).toBe('use-credentials');
- done();
- });
+ const event = await firstValueFrom(strategy.createStream());
+ expect(strategy.element.tagName).toBe('SCRIPT');
+ expect(event.detail.crossOrigin).toBe('use-credentials');
});
});
});
@@ -60,11 +59,11 @@ describe('StyleLoadingStrategy', () => {
});
describe('#createStream', () => {
- it('should use given dom and cross-origin strategies', done => {
+ it('should use given dom and cross-origin strategies', async () => {
const domStrategy = DOM_STRATEGY.PrependToHead();
const crossOriginStrategy = CROSS_ORIGIN_STRATEGY.UseCredentials();
- domStrategy.insertElement = jest.fn((el: HTMLLinkElement) => {
+ domStrategy.insertElement = vi.fn((el: HTMLLinkElement) => {
setTimeout(() => {
el.onload(
new CustomEvent('success', {
@@ -78,11 +77,9 @@ describe('StyleLoadingStrategy', () => {
const strategy = new StyleLoadingStrategy(path, domStrategy, crossOriginStrategy);
- strategy.createStream().subscribe(event => {
- expect(strategy.element.tagName).toBe('LINK');
- expect(event.detail.crossOrigin).toBe('use-credentials');
- done();
- });
+ const event = await firstValueFrom(strategy.createStream());
+ expect(strategy.element.tagName).toBe('LINK');
+ expect(event.detail.crossOrigin).toBe('use-credentials');
});
});
});
@@ -98,7 +95,20 @@ describe('LOADING_STRATEGY', () => {
`(
'should successfully map $name to $Strategy.name with $domStrategy dom strategy',
({ name, Strategy, domStrategy }) => {
- expect(LOADING_STRATEGY[name](path)).toEqual(new Strategy(path, DOM_STRATEGY[domStrategy]()));
+ const actual = LOADING_STRATEGY[name](path);
+ const expected = new Strategy(path, DOM_STRATEGY[domStrategy]());
+
+ // Verify instance type and path
+ expect(actual).toBeInstanceOf(Strategy);
+ expect(actual.path).toBe(expected.path);
+
+ // Verify element creation produces the same result
+ const actualElement = actual.createElement();
+ const expectedElement = expected.createElement();
+ expect(actualElement.tagName).toBe(expectedElement.tagName);
+ expect(actualElement.src || actualElement.href).toBe(
+ expectedElement.src || expectedElement.href,
+ );
},
);
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/local-storage.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/local-storage.service.spec.ts
index ad51bbda2b..8cfd8853a8 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/local-storage.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/local-storage.service.spec.ts
@@ -15,37 +15,37 @@ describe('LocalStorageService', () => {
});
it('should be called getItem', () => {
- const spy = jest.spyOn(service, 'getItem');
+ const spy = vi.spyOn(service, 'getItem');
service.getItem('test');
expect(spy).toHaveBeenCalled();
});
it('should be called setItem', () => {
- const spy = jest.spyOn(service, 'setItem');
+ const spy = vi.spyOn(service, 'setItem');
service.setItem('test', 'value');
expect(spy).toHaveBeenCalled();
});
it('should be called removeItem', () => {
- const spy = jest.spyOn(service, 'removeItem');
+ const spy = vi.spyOn(service, 'removeItem');
service.removeItem('test');
expect(spy).toHaveBeenCalled();
});
it('should be called clear', () => {
- const spy = jest.spyOn(service, 'clear');
+ const spy = vi.spyOn(service, 'clear');
service.clear();
expect(spy).toHaveBeenCalled();
});
it('should be called key', () => {
- const spy = jest.spyOn(service, 'key');
+ const spy = vi.spyOn(service, 'key');
service.key(0);
expect(spy).toHaveBeenCalled();
});
it('should be called length', () => {
- const spy = jest.spyOn(service, 'length', 'get');
+ const spy = vi.spyOn(service, 'length', 'get');
service.length;
expect(spy).toHaveBeenCalled();
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/locale.provider.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/locale.provider.spec.ts
index f1e24c6dc0..68d5cfb26f 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/locale.provider.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/locale.provider.spec.ts
@@ -1,5 +1,5 @@
import { Component, LOCALE_ID } from '@angular/core';
-import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator/jest';
+import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator/vitest';
import { differentLocales } from '../constants/different-locales';
import { LocaleId } from '../providers/locale.provider';
import { LocalizationService } from '../services/localization.service';
diff --git a/npm/ng-packs/packages/core/src/lib/tests/localization.pipe.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/localization.pipe.spec.ts
index 4eed4b65b9..82446b473a 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/localization.pipe.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/localization.pipe.spec.ts
@@ -1,4 +1,4 @@
-import { createServiceFactory, SpectatorService, SpyObject } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService, SpyObject } from '@ngneat/spectator/vitest';
import { LocalizationPipe } from '../pipes/localization.pipe';
import { LocalizationService } from '../services/localization.service';
@@ -19,7 +19,7 @@ describe('LocalizationPipe', () => {
});
it('should call getLocalization selector', () => {
- const translateSpy = jest.spyOn(localizationService, 'instant');
+ const translateSpy = vi.spyOn(localizationService, 'instant');
pipe.transform('test', '1', '2');
pipe.transform('test2', ['3', '4'] as any);
diff --git a/npm/ng-packs/packages/core/src/lib/tests/localization.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/localization.service.spec.ts
index 364bbb65ff..dee26425ea 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/localization.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/localization.service.spec.ts
@@ -1,4 +1,4 @@
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
import { Subject } from 'rxjs';
import { LocalizationService } from '../services/localization.service';
import { SessionStateService } from '../services/session-state.service';
@@ -18,26 +18,26 @@ describe('LocalizationService', () => {
{
provide: SessionStateService,
useValue: {
- getLanguage: jest.fn(() => 'en'),
- setLanguage: jest.fn(),
- getLanguage$: jest.fn(() => new Subject()),
- onLanguageChange$: jest.fn(() => new Subject()),
+ getLanguage: vi.fn(() => 'en'),
+ setLanguage: vi.fn(),
+ getLanguage$: vi.fn(() => new Subject()),
+ onLanguageChange$: vi.fn(() => new Subject()),
},
},
{
provide: ConfigStateService,
useValue: {
- getOne: jest.fn(),
- refreshAppState: jest.fn(),
- getDeep: jest.fn(),
- getDeep$: jest.fn(() => new Subject()),
- getOne$: jest.fn(() => new Subject()),
+ getOne: vi.fn(),
+ refreshAppState: vi.fn(),
+ getDeep: vi.fn(),
+ getDeep$: vi.fn(() => new Subject()),
+ getOne$: vi.fn(() => new Subject()),
},
},
{
provide: Injector,
useValue: {
- get: jest.fn(),
+ get: vi.fn(),
},
},
],
diff --git a/npm/ng-packs/packages/core/src/lib/tests/multi-tenancy-utils.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/multi-tenancy-utils.spec.ts
index 5e49b64d22..b68e992f36 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/multi-tenancy-utils.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/multi-tenancy-utils.spec.ts
@@ -1,5 +1,6 @@
-import { Component } from '@angular/core';
-import { createComponentFactory, Spectator } from '@ngneat/spectator/jest';
+import { Component, PLATFORM_ID } from '@angular/core';
+import { DOCUMENT } from '@angular/common';
+import { createComponentFactory, Spectator } from '@ngneat/spectator/vitest';
import clone from 'just-clone';
import { of } from 'rxjs';
@@ -10,6 +11,7 @@ import {
import { EnvironmentService, MultiTenancyService } from '../services';
import { parseTenantFromUrl } from '../utils';
import { TENANT_KEY } from '../tokens';
+import { TENANT_NOT_FOUND_BY_NAME } from '../tokens/tenant-not-found-by-name';
const environment = {
production: false,
@@ -68,9 +70,9 @@ describe('MultiTenancyUtils', () => {
test('should get the tenancyName, set replaced environment and call the findTenantByName method of AbpTenantService', async () => {
const environmentService = spectator.inject(EnvironmentService);
const multiTenancyService = spectator.inject(MultiTenancyService);
- const setTenantByName = jest.spyOn(multiTenancyService, 'setTenantByName');
- const getEnvironmentSpy = jest.spyOn(environmentService, 'getEnvironment');
- const setStateSpy = jest.spyOn(environmentService, 'setState');
+ const setTenantByName = vi.spyOn(multiTenancyService, 'setTenantByName');
+ const getEnvironmentSpy = vi.spyOn(environmentService, 'getEnvironment');
+ const setStateSpy = vi.spyOn(environmentService, 'setState');
getEnvironmentSpy.mockReturnValue(clone(environment));
@@ -85,10 +87,23 @@ describe('MultiTenancyUtils', () => {
setTenantByName.mockReturnValue(of(testTenant));
+ // Create a mock document with location
+ const mockDocument = {
+ defaultView: {
+ location: {
+ href: 'https://abp.volosoft.com/',
+ },
+ },
+ };
+
const mockInjector = {
get: arg => {
if (arg === EnvironmentService) return environmentService;
if (arg === MultiTenancyService) return multiTenancyService;
+ if (arg === PLATFORM_ID) return 'browser';
+ if (arg === DOCUMENT) return mockDocument;
+ if (arg === TENANT_NOT_FOUND_BY_NAME) return null;
+ return null;
},
};
await parseTenantFromUrl(mockInjector);
diff --git a/npm/ng-packs/packages/core/src/lib/tests/ng-model.component.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/ng-model.component.spec.ts
index d447001d4f..587d8c0adc 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/ng-model.component.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/ng-model.component.spec.ts
@@ -1,6 +1,6 @@
import { Component, Input, OnInit } from '@angular/core';
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
-import { createHostFactory, SpectatorHost } from '@ngneat/spectator/jest';
+import { createHostFactory, SpectatorHost } from '@ngneat/spectator/vitest';
import { AbstractNgModelComponent } from '../abstracts';
@Component({
diff --git a/npm/ng-packs/packages/core/src/lib/tests/permission.directive.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/permission.directive.spec.ts
index a2f07e7be9..9d5a9c586d 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/permission.directive.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/permission.directive.spec.ts
@@ -1,8 +1,8 @@
-import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/jest';
+import { ChangeDetectorRef } from '@angular/core';
+import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/vitest';
import { Subject } from 'rxjs';
import { PermissionDirective } from '../directives/permission.directive';
import { PermissionService } from '../services/permission.service';
-import { ChangeDetectorRef } from '@angular/core';
import { QUEUE_MANAGER } from '../tokens/queue.token';
describe('PermissionDirective', () => {
@@ -13,16 +13,29 @@ describe('PermissionDirective', () => {
directive: PermissionDirective,
providers: [
{ provide: PermissionService, useValue: { getGrantedPolicy$: () => grantedPolicy$ } },
- { provide: QUEUE_MANAGER, useValue: { add: jest.fn() } },
- { provide: ChangeDetectorRef, useValue: { detectChanges: jest.fn() } },
+ { provide: QUEUE_MANAGER, useValue: { add: vi.fn() } },
+ { provide: ChangeDetectorRef, useValue: { detectChanges: vi.fn() } },
],
});
beforeEach(() => {
- spectator = createDirective('', {
- hostProps: { permission: 'test', runCD: false },
- });
+ spectator = createDirective(
+ '',
+ {
+ hostProps: { permission: 'test', runCD: false },
+ },
+ );
directive = spectator.directive;
+ grantedPolicy$.next(false);
+ spectator.detectChanges();
+ });
+
+ afterEach(() => {
+ // Clean up subscriptions to prevent errors after test completion
+ if (directive?.subscription) {
+ directive.subscription.unsubscribe();
+ }
+ grantedPolicy$.next(false);
});
it('should create directive', () => {
@@ -30,14 +43,20 @@ describe('PermissionDirective', () => {
});
it('should handle permission input', () => {
- spectator.setHostInput({ permission: 'new-permission' });
- spectator.detectChanges();
+ grantedPolicy$.next(false);
+ directive.condition = 'new-permission';
+ directive.ngOnChanges();
+ grantedPolicy$.next(true);
expect(directive).toBeTruthy();
+ expect(directive.condition).toBe('new-permission');
});
it('should handle runChangeDetection input', () => {
- spectator.setHostInput({ runCD: true });
- spectator.detectChanges();
+ grantedPolicy$.next(false);
+ directive.runChangeDetection = true;
+ directive.ngOnChanges();
+ grantedPolicy$.next(true);
expect(directive).toBeTruthy();
+ expect(directive.runChangeDetection).toBe(true);
});
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/permission.guard.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/permission.guard.spec.ts
index 45f3b46d80..6486a7bf41 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/permission.guard.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/permission.guard.spec.ts
@@ -2,14 +2,14 @@ import { provideHttpClientTesting } from '@angular/common/http/testing';
import { provideHttpClient } from '@angular/common/http';
import { Component } from '@angular/core';
import { provideRouter, Route, Router } from '@angular/router';
-import { createSpyObject, SpyObject } from '@ngneat/spectator/jest';
+import { RouterTestingHarness } from '@angular/router/testing';
+import { TestBed } from '@angular/core/testing';
+import { createSpyObject, SpyObject } from '@ngneat/spectator/vitest';
import { of } from 'rxjs';
import { permissionGuard } from '../guards/permission.guard';
import { HttpErrorReporterService } from '../services/http-error-reporter.service';
import { PermissionService } from '../services/permission.service';
import { provideAbpCore, withOptions } from '../providers';
-import { TestBed } from '@angular/core/testing';
-import { RouterTestingHarness } from '@angular/router/testing';
import { AuthService } from '../abstracts';
@Component({ template: '' })
@@ -62,28 +62,37 @@ describe('authGuard', () => {
{ provide: PermissionService, useValue: permissionService },
{ provide: HttpErrorReporterService, useValue: httpErrorReporter },
provideRouter(routes),
- provideAbpCore(withOptions({
- environment: {
- apis: {
- default: {
+ provideAbpCore(
+ withOptions({
+ environment: {
+ apis: {
+ default: {
+ url: 'http://localhost:4200',
+ },
+ },
+ application: {
+ baseUrl: 'http://localhost:4200',
+ name: 'TestApp',
+ },
+ remoteEnv: {
url: 'http://localhost:4200',
+ mergeStrategy: 'deepmerge',
},
},
- application: {
- baseUrl: 'http://localhost:4200',
- name: 'TestApp',
- },
- remoteEnv: {
- url: 'http://localhost:4200',
- mergeStrategy: 'deepmerge',
- },
- },
- registerLocaleFn: () => Promise.resolve(),
- })),
+ registerLocaleFn: () => Promise.resolve(),
+ skipGetAppConfiguration: true,
+ }),
+ ),
],
});
});
+ afterEach(async () => {
+ // Wait for any pending async operations to complete before teardown
+ await new Promise(resolve => setTimeout(resolve, 0));
+ TestBed.resetTestingModule();
+ });
+
it('should return true when the grantedPolicy is true', async () => {
permissionService.getGrantedPolicy$.andReturn(of(true));
await RouterTestingHarness.create('/dummy');
diff --git a/npm/ng-packs/packages/core/src/lib/tests/projection.strategy.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/projection.strategy.spec.ts
index 6d8f8cf3a4..a24173aa18 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/projection.strategy.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/projection.strategy.spec.ts
@@ -6,7 +6,7 @@ import {
ViewChild,
ViewContainerRef,
} from '@angular/core';
-import { createComponentFactory, Spectator } from '@ngneat/spectator/jest';
+import { createComponentFactory, Spectator } from '@ngneat/spectator/vitest';
import {
ComponentProjectionStrategy,
PROJECTION_STRATEGY,
@@ -73,7 +73,7 @@ describe('RootComponentProjectionStrategy', () => {
baz = 'baz';
}
- @Component({
+ @Component({
template: '',
imports: [],
})
@@ -208,9 +208,13 @@ describe('PROJECTION_STRATEGY', () => {
`(
'should successfully map $name to $Strategy.name with $domStrategy.name dom strategy',
({ name, Strategy, domStrategy }) => {
- expect(PROJECTION_STRATEGY[name](content, context)).toEqual(
- new Strategy(content, CONTEXT_STRATEGY.None(), domStrategy()),
- );
+ const result = PROJECTION_STRATEGY[name](content, context);
+ const expected = new Strategy(content, CONTEXT_STRATEGY.None(), domStrategy());
+
+ expect(result).toBeInstanceOf(Strategy);
+ expect(result.content).toEqual(expected.content);
+ expect(result['contextStrategy']).toBeInstanceOf(expected['contextStrategy'].constructor);
+ expect(result['domStrategy'].position).toBe(expected['domStrategy'].position);
},
);
@@ -239,9 +243,14 @@ describe('PROJECTION_STRATEGY', () => {
'should successfully map $name to $Strategy.name with $contextStrategy.name context strategy and $domStrategy.name dom strategy',
({ name, Strategy, domStrategy, contextStrategy }) => {
context = { x: true };
- expect(PROJECTION_STRATEGY[name](content, context)).toEqual(
- new Strategy(content, contextStrategy(context), domStrategy()),
- );
+ const result = PROJECTION_STRATEGY[name](content, context);
+ const expected = new Strategy(content, contextStrategy(context), domStrategy());
+
+ expect(result).toBeInstanceOf(Strategy);
+ expect(result.content).toEqual(expected.content);
+ expect(result['contextStrategy']).toBeInstanceOf(expected['contextStrategy'].constructor);
+ expect(result['contextStrategy'].context).toEqual(expected['contextStrategy'].context);
+ expect(result['domStrategy'].position).toBe(expected['domStrategy'].position);
},
);
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/replaceable-route-container.component.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/replaceable-route-container.component.spec.ts
index cb435baf56..c678088264 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/replaceable-route-container.component.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/replaceable-route-container.component.spec.ts
@@ -1,6 +1,6 @@
import { Component } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
-import { createHostFactory, SpectatorHost } from '@ngneat/spectator/jest';
+import { createHostFactory, SpectatorHost } from '@ngneat/spectator/vitest';
import { BehaviorSubject } from 'rxjs';
import { ReplaceableRouteContainerComponent } from '../components/replaceable-route-container.component';
import { ReplaceableComponentsService } from '../services/replaceable-components.service';
diff --git a/npm/ng-packs/packages/core/src/lib/tests/replaceable-template.directive.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/replaceable-template.directive.spec.ts
index 3bf3a6d8bb..08075ee7f4 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/replaceable-template.directive.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/replaceable-template.directive.spec.ts
@@ -1,6 +1,6 @@
import { Component, EventEmitter, Input, Output, inject } from '@angular/core';
import { Router } from '@angular/router';
-import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/jest';
+import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/vitest';
import { BehaviorSubject } from 'rxjs';
import { ReplaceableTemplateDirective } from '../directives/replaceable-template.directive';
import { ReplaceableComponents } from '../models/replaceable-components';
@@ -50,8 +50,8 @@ describe('ReplaceableTemplateDirective', () => {
});
describe('without external component', () => {
- const twoWayChange = jest.fn(a => a);
- const someOutput = jest.fn(a => a);
+ const twoWayChange = vi.fn(a => a);
+ const someOutput = vi.fn(a => a);
beforeEach(() => {
spectator = createDirective(
@@ -88,8 +88,8 @@ describe('ReplaceableTemplateDirective', () => {
hostProps: {
oneWay: { label: 'Test' },
twoWay: false,
- twoWayChange: jest.fn(),
- someOutput: jest.fn(),
+ twoWayChange: vi.fn(),
+ someOutput: vi.fn(),
},
},
);
diff --git a/npm/ng-packs/packages/core/src/lib/tests/rest.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/rest.service.spec.ts
index 5cbd56328a..9ac795c24f 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/rest.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/rest.service.spec.ts
@@ -1,4 +1,4 @@
-import { createHttpFactory, HttpMethod, SpectatorHttp, SpyObject } from '@ngneat/spectator/jest';
+import { createHttpFactory, HttpMethod, SpectatorHttp, SpyObject } from '@ngneat/spectator/vitest';
import { OAuthService } from 'angular-oauth2-oidc';
import { of, throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';
@@ -74,17 +74,25 @@ describe('HttpClient testing', () => {
spectator.expectOne('bar' + '/test', HttpMethod.GET);
});
- test('should complete upon successful request', done => {
- const complete = jest.fn(done);
+ test('should complete upon successful request', async () => {
+ const request$ = spectator.service.request({ method: HttpMethod.GET, url: '/test' });
- spectator.service.request({ method: HttpMethod.GET, url: '/test' }).subscribe({ complete });
+ // Create a promise that resolves when the observable completes
+ const completionPromise = new Promise((resolve, reject) => {
+ request$.subscribe({
+ complete: () => resolve(),
+ error: err => reject(err),
+ });
+ });
const req = spectator.expectOne(api + '/test', HttpMethod.GET);
spectator.flushAll([req], [{}]);
+
+ await completionPromise;
});
test('should handle the error', () => {
- const spy = jest.spyOn(httpErrorReporter, 'reportError');
+ const spy = vi.spyOn(httpErrorReporter, 'reportError');
spectator.service
.request({ method: HttpMethod.GET, url: '/test' }, { observe: Rest.Observe.Events })
@@ -102,7 +110,7 @@ describe('HttpClient testing', () => {
});
test('should not handle the error when skipHandleError is true', () => {
- const spy = jest.spyOn(httpErrorReporter, 'reportError');
+ const spy = vi.spyOn(httpErrorReporter, 'reportError');
spectator.service
.request(
diff --git a/npm/ng-packs/packages/core/src/lib/tests/route-utils.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/route-utils.spec.ts
index 3ee908251a..f8443a1804 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/route-utils.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/route-utils.spec.ts
@@ -1,6 +1,6 @@
import { Component } from '@angular/core';
import { RouterModule } from '@angular/router';
-import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator/jest';
+import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator/vitest';
import { RouterOutletComponent } from '../components/router-outlet.component';
import { RoutesService } from '../services/routes.service';
import { findRoute, getRoutePath } from '../utils/route-utils';
@@ -23,7 +23,7 @@ describe('Route Utils', () => {
`(
'should find $expected in $count turns when path is $path',
async ({ path, expected, count }) => {
- const find = jest.fn(cb => (cb(node) ? node : null));
+ const find = vi.fn(cb => (cb(node) ? node : null));
const routes = { find } as any as RoutesService;
const route = findRoute(routes, path);
expect(route).toBe(expected);
diff --git a/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts
index bc22065aa7..95f199f381 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/router-events.service.spec.ts
@@ -1,6 +1,6 @@
import { Router, RouterEvent, NavigationStart, ResolveStart, NavigationError, NavigationEnd, ResolveEnd, NavigationCancel } from '@angular/router';
import { Subject } from 'rxjs';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
import { take } from 'rxjs/operators';
import { NavigationEventKey, RouterEvents } from '../services/router-events.service';
diff --git a/npm/ng-packs/packages/core/src/lib/tests/router-outlet.component.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/router-outlet.component.spec.ts
index c76876f77a..00ec796e55 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/router-outlet.component.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/router-outlet.component.spec.ts
@@ -1,4 +1,4 @@
-import { Spectator, createComponentFactory } from '@ngneat/spectator/jest';
+import { Spectator, createComponentFactory } from '@ngneat/spectator/vitest';
import { provideRouter } from '@angular/router';
import { RouterOutletComponent } from '../components/router-outlet.component';
diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.handler.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.handler.spec.ts
index 853331539d..32ea1e4324 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/routes.handler.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/routes.handler.spec.ts
@@ -1,7 +1,7 @@
import { Router } from '@angular/router';
import { RoutesHandler } from '../handlers/routes.handler';
import { RoutesService } from '../services/routes.service';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
describe('Routes Handler', () => {
let spectator: SpectatorService;
@@ -15,7 +15,7 @@ describe('Routes Handler', () => {
{
provide: RoutesService,
useValue: {
- add: jest.fn(),
+ add: vi.fn(),
},
},
{
diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts
index 71e71945d0..158c9ca644 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts
@@ -1,5 +1,5 @@
import { RoutesService } from '../services/routes.service';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
import { CORE_OPTIONS } from '../tokens/options.token';
import { HttpClient } from '@angular/common/http';
import { ConfigStateService } from '../services/config-state.service';
@@ -33,51 +33,51 @@ describe('Routes Service', () => {
{
provide: HttpClient,
useValue: {
- get: jest.fn(),
- post: jest.fn(),
- put: jest.fn(),
- delete: jest.fn(),
+ get: vi.fn(),
+ post: vi.fn(),
+ put: vi.fn(),
+ delete: vi.fn(),
},
},
{
provide: ConfigStateService,
useValue: {
- getOne: jest.fn(),
- getDeep: jest.fn(),
- getDeep$: jest.fn(() => ({ subscribe: jest.fn() })),
- createOnUpdateStream: jest.fn(() => ({
- subscribe: jest.fn(() => ({ unsubscribe: jest.fn() }))
+ getOne: vi.fn(),
+ getDeep: vi.fn(),
+ getDeep$: vi.fn(() => ({ subscribe: vi.fn() })),
+ createOnUpdateStream: vi.fn(() => ({
+ subscribe: vi.fn(() => ({ unsubscribe: vi.fn() }))
})),
},
},
{
provide: AbpApplicationConfigurationService,
useValue: {
- get: jest.fn(),
+ get: vi.fn(),
},
},
{
provide: RestService,
useValue: {
- request: jest.fn(),
+ request: vi.fn(),
},
},
{
provide: EnvironmentService,
useValue: {
- getEnvironment: jest.fn(),
+ getEnvironment: vi.fn(),
},
},
{
provide: HttpErrorReporterService,
useValue: {
- reportError: jest.fn(),
+ reportError: vi.fn(),
},
},
{
provide: ExternalHttpClient,
useValue: {
- request: jest.fn(),
+ request: vi.fn(),
},
},
{
diff --git a/npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts
index 69ecfeb3a2..a36b2062bc 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts
@@ -1,4 +1,4 @@
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
import { SafeHtmlPipe } from '../pipes';
describe('SafeHtmlPipe', () => {
@@ -27,7 +27,7 @@ describe('SafeHtmlPipe', () => {
});
it('should sanitize unsafe HTML content', () => {
- const warnSpy = jest.spyOn(console, 'warn').mockImplementation(() => undefined);
+ const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => undefined);
const input = `Click here!
`;
const result = pipe.transform(input);
expect(result).toBe(`Click here!
`);
diff --git a/npm/ng-packs/packages/core/src/lib/tests/show-password-directive.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/show-password-directive.spec.ts
index a1e766dc51..e1266094cf 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/show-password-directive.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/show-password-directive.spec.ts
@@ -1,55 +1,63 @@
-import { Component, DebugElement } from '@angular/core'
-import { ComponentFixture, TestBed } from '@angular/core/testing'
-import { ShowPasswordDirective } from '../directives';
-import { By } from '@angular/platform-browser';
-
-@Component({
- standalone:true,
- template: `
-
-
-
- `,
- imports:[ShowPasswordDirective]
-})
-class TestComponent {
- showPassword = false
-}
-
-describe('ShowPasswordDirective',()=>{
- let fixture: ComponentFixture;;
- let des : DebugElement[];
- let desAll : DebugElement[];
- let bareInput;
-
- beforeEach(()=>{
- fixture = TestBed.configureTestingModule({
- imports: [ TestComponent ]
- }).createComponent(TestComponent)
-
- fixture.detectChanges();
-
- des = fixture.debugElement.queryAll(By.directive(ShowPasswordDirective));
-
- desAll = fixture.debugElement.queryAll(By.all());
-
- bareInput = fixture.debugElement.query(By.css('input:not([abpShowPassword])'));
- })
-
- it('should have three input has ShowPasswordDirective elements', () => {
- expect(des.length).toBe(3);
- });
-
- test.each([[0,'text'],[1,'password'],[2,'text'],[3,'password']])('%p. input type must be %p)', (index,inpType) => {
- const inputType = desAll[index].nativeElement.type;
- expect(inputType).toBe(inpType);
- });
-
- it('should have three input has ShowPasswordDirective elements', () => {
- const input = des[2].nativeElement
- expect(input.type).toBe('password')
- fixture.componentInstance.showPassword = true
- fixture.detectChanges()
- expect(input.type).toBe('text')
- });
- });
\ No newline at end of file
+import { Component, DebugElement, ChangeDetectorRef } from '@angular/core';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { By } from '@angular/platform-browser';
+import { ShowPasswordDirective } from '../directives';
+
+@Component({
+ template: `
+
+
+ `,
+ imports: [ShowPasswordDirective],
+})
+class TestComponent {
+ showPassword = false;
+}
+
+describe('ShowPasswordDirective', () => {
+ let fixture: ComponentFixture;
+ let des: DebugElement[];
+ let desAll: DebugElement[];
+ let bareInput;
+
+ beforeEach(() => {
+ fixture = TestBed.configureTestingModule({
+ imports: [TestComponent],
+ }).createComponent(TestComponent);
+
+ fixture.detectChanges();
+
+ des = fixture.debugElement.queryAll(By.directive(ShowPasswordDirective));
+
+ desAll = fixture.debugElement.queryAll(By.all());
+
+ bareInput = fixture.debugElement.query(By.css('input:not([abpShowPassword])'));
+ });
+
+ it('should have three input has ShowPasswordDirective elements', () => {
+ expect(des.length).toBe(3);
+ });
+
+ test.each([
+ [0, 'text'],
+ [1, 'password'],
+ [2, 'text'],
+ [3, 'password'],
+ ])('%p. input type must be %p)', (index, inpType) => {
+ const inputType = desAll[index].nativeElement.type;
+ expect(inputType).toBe(inpType);
+ });
+
+ it('should toggle input type when showPassword changes', () => {
+ const input = des[2].nativeElement;
+ expect(input.type).toBe('password');
+
+ fixture.componentInstance.showPassword = true;
+
+ const cdr = fixture.componentRef.injector.get(ChangeDetectorRef);
+ cdr.markForCheck();
+ cdr.detectChanges();
+
+ expect(input.type).toBe('text');
+ });
+});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/sort.pipe.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/sort.pipe.spec.ts
index 0d60ab0b21..7cc830990c 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/sort.pipe.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/sort.pipe.spec.ts
@@ -1,4 +1,4 @@
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
import { SortPipe } from '../pipes/sort.pipe';
describe('SortPipe', () => {
diff --git a/npm/ng-packs/packages/core/src/lib/tests/stop-propagation.directive.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/stop-propagation.directive.spec.ts
index f054601efa..8e0595c3c3 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/stop-propagation.directive.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/stop-propagation.directive.spec.ts
@@ -1,12 +1,12 @@
-import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/jest';
+import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/vitest';
import { StopPropagationDirective } from '../directives/stop-propagation.directive';
describe('StopPropagationDirective', () => {
let spectator: SpectatorDirective;
let directive: StopPropagationDirective;
let link: HTMLAnchorElement;
- const childClickEventFn = jest.fn(() => null);
- const parentClickEventFn = jest.fn(() => null);
+ const childClickEventFn = vi.fn(() => null);
+ const parentClickEventFn = vi.fn(() => null);
const createDirective = createDirectiveFactory({
directive: StopPropagationDirective,
});
@@ -28,12 +28,11 @@ describe('StopPropagationDirective', () => {
expect(directive).toBeTruthy();
});
- test('should not call click event of parent when child element is clicked', done => {
+ test('should not call click event of parent when child element is clicked', () => {
spectator.setHostInput({ parentClickEventFn, childClickEventFn });
spectator.click('a');
spectator.detectChanges();
expect(childClickEventFn).toHaveBeenCalled();
expect(parentClickEventFn).not.toHaveBeenCalled();
- done();
});
});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/subscription.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/subscription.service.spec.ts
index d0c8c4754f..191c5868c3 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/subscription.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/subscription.service.spec.ts
@@ -14,8 +14,8 @@ describe('SubscriptionService', () => {
describe('#addOne', () => {
it('should subscribe to given observable with next and error functions and return the Subscription instance', () => {
- const next = jest.fn();
- const error = jest.fn();
+ const next = vi.fn();
+ const error = vi.fn();
const subscription = service.addOne(of(null), next, error);
expect(subscription).toBeInstanceOf(Subscription);
expect(next).toHaveBeenCalledWith(null);
@@ -24,7 +24,7 @@ describe('SubscriptionService', () => {
});
it('should subscribe to given observable with observer and return the Subscription instance', () => {
- const observer = { next: jest.fn(), complete: jest.fn() };
+ const observer = { next: vi.fn(), complete: vi.fn() };
const subscription = service.addOne(of(null), observer);
expect(subscription).toBeInstanceOf(Subscription);
expect(observer.next).toHaveBeenCalledWith(null);
diff --git a/npm/ng-packs/packages/core/src/test-setup.ts b/npm/ng-packs/packages/core/src/test-setup.ts
index 13874ec714..1d4c608e96 100644
--- a/npm/ng-packs/packages/core/src/test-setup.ts
+++ b/npm/ng-packs/packages/core/src/test-setup.ts
@@ -1,7 +1,11 @@
-import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone';
-setupZoneTestEnv();
+import 'zone.js';
+import 'zone.js/testing';
+import { getTestBed } from '@angular/core/testing';
+import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing';
+
+// Initialize Angular testing environment
+getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting());
-// Mock window.location for test environment
Object.defineProperty(window, 'location', {
value: {
href: 'http://localhost:4200',
diff --git a/npm/ng-packs/packages/core/tsconfig.lib.json b/npm/ng-packs/packages/core/tsconfig.lib.json
index 22d2695db8..80ebc37002 100644
--- a/npm/ng-packs/packages/core/tsconfig.lib.json
+++ b/npm/ng-packs/packages/core/tsconfig.lib.json
@@ -10,6 +10,23 @@
"lib": ["dom", "es2020"],
"useDefineForClassFields": false
},
- "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
+ "exclude": [
+ "src/test-setup.ts",
+ "**/*.spec.ts",
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
+ ],
"include": ["**/*.ts"]
}
diff --git a/npm/ng-packs/packages/core/tsconfig.spec.json b/npm/ng-packs/packages/core/tsconfig.spec.json
index be72f24e9b..8c496b20df 100644
--- a/npm/ng-packs/packages/core/tsconfig.spec.json
+++ b/npm/ng-packs/packages/core/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.ts"]
+ "include": [
+ "vite.config.ts",
+ "vitest.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/core/vitest.config.mts b/npm/ng-packs/packages/core/vitest.config.mts
new file mode 100644
index 0000000000..f3c41ed210
--- /dev/null
+++ b/npm/ng-packs/packages/core/vitest.config.mts
@@ -0,0 +1,22 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/core',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'core',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ setupFiles: ['src/test-setup.ts'],
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/core',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/feature-management/.eslintrc.json b/npm/ng-packs/packages/feature-management/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/feature-management/.eslintrc.json
+++ b/npm/ng-packs/packages/feature-management/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/feature-management/jest.config.ts b/npm/ng-packs/packages/feature-management/jest.config.ts
index be424e36af..7740aa6d8a 100644
--- a/npm/ng-packs/packages/feature-management/jest.config.ts
+++ b/npm/ng-packs/packages/feature-management/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'feature-management',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json
index 7ad16aaec4..628c9d0251 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/feature-management/project.json b/npm/ng-packs/packages/feature-management/project.json
index 7712d1b67b..e34c0d6b16 100644
--- a/npm/ng-packs/packages/feature-management/project.json
+++ b/npm/ng-packs/packages/feature-management/project.json
@@ -23,16 +23,16 @@
},
"defaultConfiguration": "production"
},
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/feature-management"],
- "options": {
- "jestConfig": "packages/feature-management/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/feature-management"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/feature-management/tsconfig.lib.json b/npm/ng-packs/packages/feature-management/tsconfig.lib.json
index 22d2695db8..80ebc37002 100644
--- a/npm/ng-packs/packages/feature-management/tsconfig.lib.json
+++ b/npm/ng-packs/packages/feature-management/tsconfig.lib.json
@@ -10,6 +10,23 @@
"lib": ["dom", "es2020"],
"useDefineForClassFields": false
},
- "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
+ "exclude": [
+ "src/test-setup.ts",
+ "**/*.spec.ts",
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
+ ],
"include": ["**/*.ts"]
}
diff --git a/npm/ng-packs/packages/feature-management/tsconfig.spec.json b/npm/ng-packs/packages/feature-management/tsconfig.spec.json
index 023d7d0b51..fc61345bb3 100644
--- a/npm/ng-packs/packages/feature-management/tsconfig.spec.json
+++ b/npm/ng-packs/packages/feature-management/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/feature-management/vitest.config.mts b/npm/ng-packs/packages/feature-management/vitest.config.mts
new file mode 100644
index 0000000000..bfe50da685
--- /dev/null
+++ b/npm/ng-packs/packages/feature-management/vitest.config.mts
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/feature-management',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'feature-management',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/feature-management',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/generators/.eslintrc.json b/npm/ng-packs/packages/generators/.eslintrc.json
index 99664e583f..18e0359cbb 100644
--- a/npm/ng-packs/packages/generators/.eslintrc.json
+++ b/npm/ng-packs/packages/generators/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
diff --git a/npm/ng-packs/packages/generators/jest.config.ts b/npm/ng-packs/packages/generators/jest.config.ts
index cd4c894fe7..0f5f3017ef 100644
--- a/npm/ng-packs/packages/generators/jest.config.ts
+++ b/npm/ng-packs/packages/generators/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'generators',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/generators/package.json b/npm/ng-packs/packages/generators/package.json
index b70170a6bf..ff1932f9e0 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"generators": "./generators.json",
"type": "commonjs",
diff --git a/npm/ng-packs/packages/generators/project.json b/npm/ng-packs/packages/generators/project.json
index 5924f7caac..e0215aa306 100644
--- a/npm/ng-packs/packages/generators/project.json
+++ b/npm/ng-packs/packages/generators/project.json
@@ -46,10 +46,10 @@
"outputs": ["{options.outputFile}"]
},
"test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
"options": {
- "jestConfig": "packages/generators/jest.config.ts"
+ "reportsDirectory": "../../coverage/packages/generators"
}
}
}
diff --git a/npm/ng-packs/packages/generators/src/generators/change-theme/generator.spec.ts b/npm/ng-packs/packages/generators/src/generators/change-theme/generator.spec.ts
index 42c6753bbf..22900a606b 100644
--- a/npm/ng-packs/packages/generators/src/generators/change-theme/generator.spec.ts
+++ b/npm/ng-packs/packages/generators/src/generators/change-theme/generator.spec.ts
@@ -1,11 +1,11 @@
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
-import { Tree, readProjectConfiguration } from '@nx/devkit';
+import { Tree } from '@nx/devkit';
import { changeThemeGenerator } from './generator';
import { ChangeThemeGeneratorSchema } from './schema';
-jest.mock('@nx/devkit/ngcli-adapter', () => ({
- wrapAngularDevkitSchematic: jest.fn(() => jest.fn()),
+vi.mock('@nx/devkit/ngcli-adapter', () => ({
+ wrapAngularDevkitSchematic: vi.fn(() => vi.fn()),
}));
describe('change-theme generator', () => {
diff --git a/npm/ng-packs/packages/generators/tsconfig.lib.json b/npm/ng-packs/packages/generators/tsconfig.lib.json
index 33eca2c2cd..b1cf8952fc 100644
--- a/npm/ng-packs/packages/generators/tsconfig.lib.json
+++ b/npm/ng-packs/packages/generators/tsconfig.lib.json
@@ -6,5 +6,19 @@
"types": ["node"]
},
"include": ["src/**/*.ts"],
- "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
+ "exclude": [
+ "jest.config.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx"
+ ]
}
diff --git a/npm/ng-packs/packages/generators/tsconfig.spec.json b/npm/ng-packs/packages/generators/tsconfig.spec.json
index f6d8ffcc9f..ba1ad41a90 100644
--- a/npm/ng-packs/packages/generators/tsconfig.spec.json
+++ b/npm/ng-packs/packages/generators/tsconfig.spec.json
@@ -2,8 +2,21 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"]
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ]
}
diff --git a/npm/ng-packs/packages/generators/vitest.config.mts b/npm/ng-packs/packages/generators/vitest.config.mts
new file mode 100644
index 0000000000..299cea484b
--- /dev/null
+++ b/npm/ng-packs/packages/generators/vitest.config.mts
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/generators',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'generators',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/generators',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/identity/.eslintrc.json b/npm/ng-packs/packages/identity/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/identity/.eslintrc.json
+++ b/npm/ng-packs/packages/identity/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/identity/jest.config.ts b/npm/ng-packs/packages/identity/jest.config.ts
index 469457531d..640c748717 100644
--- a/npm/ng-packs/packages/identity/jest.config.ts
+++ b/npm/ng-packs/packages/identity/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'identity',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json
index e0de606028..a9d91b2d36 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.components": "~10.1.0-rc.1",
- "@abp/ng.permission-management": "~10.1.0-rc.1",
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
+ "@abp/ng.components": "~10.1.0-rc.2",
+ "@abp/ng.permission-management": "~10.1.0-rc.2",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/identity/project.json b/npm/ng-packs/packages/identity/project.json
index e67a92ba2a..cbded9c762 100644
--- a/npm/ng-packs/packages/identity/project.json
+++ b/npm/ng-packs/packages/identity/project.json
@@ -23,16 +23,16 @@
},
"defaultConfiguration": "production"
},
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/identity"],
- "options": {
- "jestConfig": "packages/identity/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/identity"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/identity/tsconfig.lib.json b/npm/ng-packs/packages/identity/tsconfig.lib.json
index 22d2695db8..80ebc37002 100644
--- a/npm/ng-packs/packages/identity/tsconfig.lib.json
+++ b/npm/ng-packs/packages/identity/tsconfig.lib.json
@@ -10,6 +10,23 @@
"lib": ["dom", "es2020"],
"useDefineForClassFields": false
},
- "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
+ "exclude": [
+ "src/test-setup.ts",
+ "**/*.spec.ts",
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
+ ],
"include": ["**/*.ts"]
}
diff --git a/npm/ng-packs/packages/identity/tsconfig.spec.json b/npm/ng-packs/packages/identity/tsconfig.spec.json
index 023d7d0b51..fc61345bb3 100644
--- a/npm/ng-packs/packages/identity/tsconfig.spec.json
+++ b/npm/ng-packs/packages/identity/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/identity/vitest.config.mts b/npm/ng-packs/packages/identity/vitest.config.mts
new file mode 100644
index 0000000000..89b2ebcb0e
--- /dev/null
+++ b/npm/ng-packs/packages/identity/vitest.config.mts
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/identity',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'identity',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/identity',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/oauth/.eslintrc.json b/npm/ng-packs/packages/oauth/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/oauth/.eslintrc.json
+++ b/npm/ng-packs/packages/oauth/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/oauth/jest.config.ts b/npm/ng-packs/packages/oauth/jest.config.ts
index eb598713d5..1ff693025e 100644
--- a/npm/ng-packs/packages/oauth/jest.config.ts
+++ b/npm/ng-packs/packages/oauth/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'oauth',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/oauth/package.json b/npm/ng-packs/packages/oauth/package.json
index 171090e65f..98bc02a772 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.core": "~10.1.0-rc.1",
- "@abp/utils": "~10.1.0-rc.1",
+ "@abp/ng.core": "~10.1.0-rc.2",
+ "@abp/utils": "~10.1.0-rc.2",
"angular-oauth2-oidc": "^20.0.0",
"just-clone": "^6.0.0",
"just-compare": "^2.0.0",
diff --git a/npm/ng-packs/packages/oauth/project.json b/npm/ng-packs/packages/oauth/project.json
index 858ec5947c..a1948047b1 100644
--- a/npm/ng-packs/packages/oauth/project.json
+++ b/npm/ng-packs/packages/oauth/project.json
@@ -23,15 +23,15 @@
},
"defaultConfiguration": "production"
},
+ "lint": {
+ "executor": "@nx/eslint:lint"
+ },
"test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
"options": {
- "jestConfig": "packages/oauth/jest.config.ts"
+ "reportsDirectory": "../../coverage/packages/oauth"
}
- },
- "lint": {
- "executor": "@nx/eslint:lint"
}
}
}
diff --git a/npm/ng-packs/packages/oauth/src/lib/tests/api.interceptor.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/api.interceptor.spec.ts
index 04a7652300..247b79b798 100644
--- a/npm/ng-packs/packages/oauth/src/lib/tests/api.interceptor.spec.ts
+++ b/npm/ng-packs/packages/oauth/src/lib/tests/api.interceptor.spec.ts
@@ -1,8 +1,8 @@
import { HttpRequest } from '@angular/common/http';
import { SpyObject } from '@ngneat/spectator';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
import { OAuthService } from 'angular-oauth2-oidc';
-import { Subject, timer } from 'rxjs';
+import { Subject } from 'rxjs';
import { HttpWaitService, SessionStateService, TENANT_KEY } from '@abp/ng.core';
import { OAuthApiInterceptor } from '../interceptors';
@@ -29,7 +29,7 @@ describe('ApiInterceptor', () => {
httpWaitService = spectator.inject(HttpWaitService);
});
- it('should add headers to http request', done => {
+ it('should add headers to http request', () => {
oauthService.getAccessToken.andReturn('ey892mkwa8^2jk');
sessionState.getLanguage.andReturn('tr');
sessionState.getTenant.andReturn({ id: 'Volosoft', name: 'Volosoft' });
@@ -42,7 +42,6 @@ describe('ApiInterceptor', () => {
expect(req.headers.get('Authorization')).toEqual('Bearer ey892mkwa8^2jk');
expect(req.headers.get('Accept-Language')).toEqual('tr');
expect(req.headers.get(testTenantKey)).toEqual('Volosoft');
- done();
return handleRes$;
},
};
@@ -53,9 +52,9 @@ describe('ApiInterceptor', () => {
handleRes$.complete();
});
- it('should call http wait services add request and delete request', done => {
- const spyAddRequest = jest.spyOn(httpWaitService, 'addRequest');
- const spyDeleteRequest = jest.spyOn(httpWaitService, 'deleteRequest');
+ it('should call http wait services add request and delete request', () => {
+ const spyAddRequest = vi.spyOn(httpWaitService, 'addRequest');
+ const spyDeleteRequest = vi.spyOn(httpWaitService, 'deleteRequest');
const request = new HttpRequest('GET', 'https://abp.io');
const handleRes$ = new Subject();
@@ -71,10 +70,7 @@ describe('ApiInterceptor', () => {
handleRes$.next();
handleRes$.complete();
- timer(0).subscribe(() => {
- expect(spyAddRequest).toHaveBeenCalled();
- expect(spyDeleteRequest).toHaveBeenCalled();
- done();
- });
+ expect(spyAddRequest).toHaveBeenCalled();
+ expect(spyDeleteRequest).toHaveBeenCalled();
});
});
diff --git a/npm/ng-packs/packages/oauth/src/lib/tests/auth.guard.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/auth.guard.spec.ts
index 2b6603f39c..ccb4658999 100644
--- a/npm/ng-packs/packages/oauth/src/lib/tests/auth.guard.spec.ts
+++ b/npm/ng-packs/packages/oauth/src/lib/tests/auth.guard.spec.ts
@@ -1,4 +1,4 @@
-import { createServiceFactory, SpectatorService, createSpyObject } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService, createSpyObject } from '@ngneat/spectator/vitest';
import { OAuthService } from 'angular-oauth2-oidc';
import { AbpOAuthGuard, abpOAuthGuard } from '../guards/oauth.guard';
import { AuthService } from '@abp/ng.core';
@@ -40,7 +40,7 @@ describe('AuthGuard', () => {
it('should execute the navigateToLogin method of the authService', () => {
const authService = spectator.inject(AuthService);
spectator.inject(OAuthService).hasValidAccessToken.andReturn(false);
- const navigateToLoginSpy = jest.spyOn(authService, 'navigateToLogin');
+ const navigateToLoginSpy = vi.spyOn(authService, 'navigateToLogin');
expect(guard.canActivate(route, state)).toBe(false);
expect(navigateToLoginSpy).toHaveBeenCalled();
diff --git a/npm/ng-packs/packages/oauth/src/lib/tests/initial-utils.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/initial-utils.spec.ts
index cd2dfbcac5..a8a4372817 100644
--- a/npm/ng-packs/packages/oauth/src/lib/tests/initial-utils.spec.ts
+++ b/npm/ng-packs/packages/oauth/src/lib/tests/initial-utils.spec.ts
@@ -1,6 +1,6 @@
import { Component, Injector } from '@angular/core';
-import { createComponentFactory, Spectator } from '@ngneat/spectator/jest';
-import { OAuthService } from 'angular-oauth2-oidc';
+import { createComponentFactory, Spectator } from '@ngneat/spectator/vitest';
+import { OAuthService, OAuthStorage } from 'angular-oauth2-oidc';
import {
CORE_OPTIONS,
@@ -42,6 +42,15 @@ describe('InitialUtils', () => {
skipGetAppConfiguration: false,
},
},
+ {
+ provide: OAuthStorage,
+ useValue: {
+ getItem: vi.fn(),
+ setItem: vi.fn(),
+ removeItem: vi.fn(),
+ clear: vi.fn(),
+ },
+ },
],
});
@@ -53,8 +62,8 @@ describe('InitialUtils', () => {
let clearOAuthStorageSpy;
beforeEach(() => {
injector = spectator.inject(Injector);
- injectorSpy = jest.spyOn(injector, 'get');
- clearOAuthStorageSpy = jest.spyOn(clearOAuthStorageDefault, 'clearOAuthStorage');
+ injectorSpy = vi.spyOn(injector, 'get');
+ clearOAuthStorageSpy = vi.spyOn(clearOAuthStorageDefault, 'clearOAuthStorage');
clearOAuthStorageSpy.mockReset();
});
diff --git a/npm/ng-packs/packages/oauth/src/lib/tests/oauth-error-filter.service.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/oauth-error-filter.service.spec.ts
index c8af0f934d..a112e847ec 100644
--- a/npm/ng-packs/packages/oauth/src/lib/tests/oauth-error-filter.service.spec.ts
+++ b/npm/ng-packs/packages/oauth/src/lib/tests/oauth-error-filter.service.spec.ts
@@ -1,14 +1,13 @@
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator';
-import { OAuthErrorFilterService } from '../services';
-import { AuthErrorEvent, AuthErrorFilter } from '@abp/ng.core';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
import { OAuthErrorEvent } from 'angular-oauth2-oidc';
+import { AuthErrorEvent, AuthErrorFilter } from '@abp/ng.core';
+import { OAuthErrorFilterService } from '../services';
const ids = {
firstFilter: 'firstFilter',
secondFilter: 'secondFilter',
};
-type Reason = object & { error: { grant_type: string | undefined; }; };
-
+type Reason = object & { error: { grant_type: string | undefined } };
describe('AuthService', () => {
let spectator: SpectatorService;
@@ -37,11 +36,11 @@ describe('AuthService', () => {
const {
error: { grant_type },
} = (reason || {});
-
+
return !!grant_type && grant_type === ids.firstFilter;
},
};
-
+
secondFilter = {
id: ids.secondFilter,
executable: true,
@@ -50,7 +49,7 @@ describe('AuthService', () => {
const {
error: { grant_type },
} = (reason || {});
-
+
return !!grant_type && grant_type === ids.secondFilter;
},
};
@@ -118,4 +117,4 @@ describe('AuthService', () => {
expect(oAuthErrorFilterService.run(event)).toBe(false);
});
-});
\ No newline at end of file
+});
diff --git a/npm/ng-packs/packages/oauth/src/lib/tests/remember-me.service.spec.ts b/npm/ng-packs/packages/oauth/src/lib/tests/remember-me.service.spec.ts
index 0ef7116e92..c6d7b81e01 100644
--- a/npm/ng-packs/packages/oauth/src/lib/tests/remember-me.service.spec.ts
+++ b/npm/ng-packs/packages/oauth/src/lib/tests/remember-me.service.spec.ts
@@ -1,8 +1,6 @@
-import { SpectatorService, SpyObject, createServiceFactory } from "@ngneat/spectator/jest";
-import { RememberMeService } from "../services/remember-me.service";
-import { AbpLocalStorageService } from "@abp/ng.core";
-
-
+import { SpectatorService, SpyObject, createServiceFactory } from '@ngneat/spectator/vitest';
+import { AbpLocalStorageService } from '@abp/ng.core';
+import { RememberMeService } from '../services/remember-me.service';
describe('RememberMeService', () => {
const key = 'remember_me';
@@ -12,10 +10,9 @@ describe('RememberMeService', () => {
const createService = createServiceFactory({
service: RememberMeService,
- mocks: [AbpLocalStorageService]
+ mocks: [AbpLocalStorageService],
});
-
beforeEach(() => {
spectator = createService();
rememberMeService = spectator.inject(RememberMeService);
@@ -55,17 +52,16 @@ describe('RememberMeService', () => {
});
it('should return true when parsed token is setted to true', () => {
- const data = { "remember_me": "True" };
+ const data = { remember_me: 'True' };
const base64_encoded = btoa(JSON.stringify(data));
- const tokenWithValueTrue = "random." + base64_encoded + ".random";
+ const tokenWithValueTrue = 'random.' + base64_encoded + '.random';
expect(rememberMeService.getFromToken(tokenWithValueTrue)).toBe(true);
});
it('should return false when value is not setted(undefined)', () => {
const data = {};
const base64_encoded = btoa(JSON.stringify(data));
- const tokenWithValueTrue = "random." + base64_encoded + ".random";
+ const tokenWithValueTrue = 'random.' + base64_encoded + '.random';
expect(rememberMeService.getFromToken(tokenWithValueTrue)).toBe(false);
});
-
-});
\ No newline at end of file
+});
diff --git a/npm/ng-packs/packages/oauth/src/lib/utils/check-access-token.ts b/npm/ng-packs/packages/oauth/src/lib/utils/check-access-token.ts
index 84457c4c3c..38111dc3e9 100644
--- a/npm/ng-packs/packages/oauth/src/lib/utils/check-access-token.ts
+++ b/npm/ng-packs/packages/oauth/src/lib/utils/check-access-token.ts
@@ -7,6 +7,6 @@ export const checkAccessToken: CheckAuthenticationStateFn = function (injector:
const configState = injector.get(ConfigStateService);
const oAuth = injector.get(OAuthService);
if (oAuth.hasValidAccessToken() && !configState.getDeep('currentUser.id')) {
- clearOAuthStorage(this.injector);
+ clearOAuthStorage(injector);
}
};
diff --git a/npm/ng-packs/packages/oauth/src/test-setup.ts b/npm/ng-packs/packages/oauth/src/test-setup.ts
index 4555f138a7..b72ff2d424 100644
--- a/npm/ng-packs/packages/oauth/src/test-setup.ts
+++ b/npm/ng-packs/packages/oauth/src/test-setup.ts
@@ -1,2 +1,19 @@
-import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone';
-setupZoneTestEnv();
+import 'zone.js';
+import 'zone.js/testing';
+import { getTestBed } from '@angular/core/testing';
+import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing';
+
+// Initialize Angular testing environment
+getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting());
+
+// Mock window.location for test environment
+Object.defineProperty(window, 'location', {
+ value: {
+ href: 'http://localhost:4200',
+ origin: 'http://localhost:4200',
+ pathname: '/',
+ search: '',
+ hash: '',
+ },
+ writable: true,
+});
diff --git a/npm/ng-packs/packages/oauth/tsconfig.lib.json b/npm/ng-packs/packages/oauth/tsconfig.lib.json
index 22d2695db8..80ebc37002 100644
--- a/npm/ng-packs/packages/oauth/tsconfig.lib.json
+++ b/npm/ng-packs/packages/oauth/tsconfig.lib.json
@@ -10,6 +10,23 @@
"lib": ["dom", "es2020"],
"useDefineForClassFields": false
},
- "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
+ "exclude": [
+ "src/test-setup.ts",
+ "**/*.spec.ts",
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
+ ],
"include": ["**/*.ts"]
}
diff --git a/npm/ng-packs/packages/oauth/tsconfig.spec.json b/npm/ng-packs/packages/oauth/tsconfig.spec.json
index be72f24e9b..fc61345bb3 100644
--- a/npm/ng-packs/packages/oauth/tsconfig.spec.json
+++ b/npm/ng-packs/packages/oauth/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/oauth/vitest.config.mts b/npm/ng-packs/packages/oauth/vitest.config.mts
new file mode 100644
index 0000000000..292f5376e2
--- /dev/null
+++ b/npm/ng-packs/packages/oauth/vitest.config.mts
@@ -0,0 +1,22 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/oauth',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'oauth',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ setupFiles: ['src/test-setup.ts'],
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/oauth',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/permission-management/.eslintrc.json b/npm/ng-packs/packages/permission-management/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/permission-management/.eslintrc.json
+++ b/npm/ng-packs/packages/permission-management/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/permission-management/jest.config.ts b/npm/ng-packs/packages/permission-management/jest.config.ts
index 78cb7d6c8f..bc3f3993e8 100644
--- a/npm/ng-packs/packages/permission-management/jest.config.ts
+++ b/npm/ng-packs/packages/permission-management/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'permission-management',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json
index 7212ad60d8..7ffca4e312 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/permission-management/project.json b/npm/ng-packs/packages/permission-management/project.json
index 3e3287256d..ddd8ad11af 100644
--- a/npm/ng-packs/packages/permission-management/project.json
+++ b/npm/ng-packs/packages/permission-management/project.json
@@ -23,16 +23,16 @@
},
"defaultConfiguration": "production"
},
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/permission-management"],
- "options": {
- "jestConfig": "packages/permission-management/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/permission-management"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/permission-management/tsconfig.lib.json b/npm/ng-packs/packages/permission-management/tsconfig.lib.json
index 22d2695db8..80ebc37002 100644
--- a/npm/ng-packs/packages/permission-management/tsconfig.lib.json
+++ b/npm/ng-packs/packages/permission-management/tsconfig.lib.json
@@ -10,6 +10,23 @@
"lib": ["dom", "es2020"],
"useDefineForClassFields": false
},
- "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
+ "exclude": [
+ "src/test-setup.ts",
+ "**/*.spec.ts",
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
+ ],
"include": ["**/*.ts"]
}
diff --git a/npm/ng-packs/packages/permission-management/tsconfig.spec.json b/npm/ng-packs/packages/permission-management/tsconfig.spec.json
index 023d7d0b51..fc61345bb3 100644
--- a/npm/ng-packs/packages/permission-management/tsconfig.spec.json
+++ b/npm/ng-packs/packages/permission-management/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/permission-management/vitest.config.mts b/npm/ng-packs/packages/permission-management/vitest.config.mts
new file mode 100644
index 0000000000..7471e1446f
--- /dev/null
+++ b/npm/ng-packs/packages/permission-management/vitest.config.mts
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/permission-management',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'permission-management',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/permission-management',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/schematics/.eslintrc.json b/npm/ng-packs/packages/schematics/.eslintrc.json
index a291bd52a8..12efb6a283 100644
--- a/npm/ng-packs/packages/schematics/.eslintrc.json
+++ b/npm/ng-packs/packages/schematics/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/schematics/jest.config.ts b/npm/ng-packs/packages/schematics/jest.config.ts
index 70fa6f0001..03eb6a87a7 100644
--- a/npm/ng-packs/packages/schematics/jest.config.ts
+++ b/npm/ng-packs/packages/schematics/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'schematics',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json
index 901db53a70..199be73f20 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"author": "",
"schematics": "./collection.json",
"dependencies": {
diff --git a/npm/ng-packs/packages/schematics/project.json b/npm/ng-packs/packages/schematics/project.json
index 74a01e9f03..d12fff2738 100644
--- a/npm/ng-packs/packages/schematics/project.json
+++ b/npm/ng-packs/packages/schematics/project.json
@@ -6,16 +6,16 @@
"prefix": "abp",
"tags": [],
"targets": {
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/schematics"],
- "options": {
- "jestConfig": "packages/schematics/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/schematics"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/schematics/src/test-setup.ts b/npm/ng-packs/packages/schematics/src/test-setup.ts
deleted file mode 100644
index 1100b3e8a6..0000000000
--- a/npm/ng-packs/packages/schematics/src/test-setup.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'jest-preset-angular/setup-jest';
diff --git a/npm/ng-packs/packages/schematics/src/tests/parse-generic-type.spec.ts b/npm/ng-packs/packages/schematics/src/tests/parse-generic-type.spec.ts
index 400fcdf6eb..4bf520e108 100644
--- a/npm/ng-packs/packages/schematics/src/tests/parse-generic-type.spec.ts
+++ b/npm/ng-packs/packages/schematics/src/tests/parse-generic-type.spec.ts
@@ -1,7 +1,6 @@
+import { expect, describe, it, test } from 'vitest';
import { parseBaseTypeWithGenericTypes } from '../utils/model';
-import { parseGenerics } from '../utils/tree';
-
-import {test} from '@jest/globals';
+import { parseGenerics } from '../utils/tree';
const cases: Array<[string, string[]]> = [
[
@@ -17,7 +16,7 @@ const cases: Array<[string, string[]]> = [
[
'Volo.Abp.Application.Dtos.AuditedEntityWithUserDto',
'string',
- 'Volo.Abp.Identity.IdentityUserDto'
+ 'Volo.Abp.Identity.IdentityUserDto',
],
],
[
@@ -39,41 +38,38 @@ const cases: Array<[string, string[]]> = [
'System.String',
],
],
- [
- 'AuditedEntityWithUserDto',
- ['AuditedEntityWithUserDto'],
- ],
+ ['AuditedEntityWithUserDto', ['AuditedEntityWithUserDto']],
];
test.each(cases)('should parse %s', (inputStr, expected) => {
- const parsed = parseBaseTypeWithGenericTypes(inputStr);
- expect(parsed).toEqual(expected);
-})
+ const parsed = parseBaseTypeWithGenericTypes(inputStr);
+ expect(parsed).toEqual(expected);
+});
describe('parseGenerics', () => {
-
- it('should work with simple type', function() {
+ it('should work with simple type', function () {
const node = parseGenerics('System.String');
expect(node.data).toEqual('System.String');
expect(node.index).toBe(0);
expect(node.parent).toBe(null);
});
- it('should work with simple Array type', function() {
+ it('should work with simple Array type', function () {
const node = parseGenerics('System.String[]');
expect(node.data).toEqual('System.String[]');
expect(node.index).toBe(0);
expect(node.parent).toBe(null);
});
- it('should work with simple', function() {
+ it('should work with simple', function () {
const node = parseGenerics('Volo.Abp.Application.Dtos.AuditedEntityWithUserDto');
expect(node.data).toEqual('Volo.Abp.Application.Dtos.AuditedEntityWithUserDto');
expect(node.index).toBe(0);
expect(node.parent).toBe(null);
});
- it('should work with `Volo.Abp.Application.Dtos.AuditedEntityWithUserDto`', function() {
- const type = 'Volo.Abp.Application.Dtos.AuditedEntityWithUserDto';
+ it('should work with `Volo.Abp.Application.Dtos.AuditedEntityWithUserDto`', function () {
+ const type =
+ 'Volo.Abp.Application.Dtos.AuditedEntityWithUserDto';
const node = parseGenerics(type);
expect(node.data).toEqual('Volo.Abp.Application.Dtos.AuditedEntityWithUserDto');
@@ -83,37 +79,37 @@ describe('parseGenerics', () => {
expect(child.parent).toBe(node);
});
-
- it('should work with `Volo.Abp.Application.Dtos.AuditedEntityWithUserDto`', function() {
- const type = 'Volo.Abp.Application.Dtos.AuditedEntityWithUserDto';
+ it('should work with `Volo.Abp.Application.Dtos.AuditedEntityWithUserDto`', function () {
+ const type =
+ 'Volo.Abp.Application.Dtos.AuditedEntityWithUserDto';
const node = parseGenerics(type);
expect(node.data).toEqual('Volo.Abp.Application.Dtos.AuditedEntityWithUserDto');
expect(node.children.length).toBe(2);
expect(node.children[0].data).toEqual('System.string');
- expect(node.children[0].index).toBe(0)
+ expect(node.children[0].index).toBe(0);
expect(node.children[1].data).toEqual('Volo.Abp.Identity.IdentityUserDto');
expect(node.children[1].index).toBe(1);
-
});
- it('should Volo.Abp.Application.Dtos.AuditedEntityWithUserDto>', function() {
- const type = 'Volo.Abp.Application.Dtos.AuditedEntityWithUserDto>';
+ it('should Volo.Abp.Application.Dtos.AuditedEntityWithUserDto>', function () {
+ const type =
+ 'Volo.Abp.Application.Dtos.AuditedEntityWithUserDto>';
const node = parseGenerics(type);
expect(node.data).toEqual('Volo.Abp.Application.Dtos.AuditedEntityWithUserDto');
expect(node.children.length).toBe(2);
expect(node.children[0].data).toEqual('System.string');
- expect((node.children[0]).parent).toBe(node);
+ expect(node.children[0].parent).toBe(node);
expect(node.children[1].data).toEqual('Volo.Abp.Identity.IdentityUserDto');
expect(node.children[1].children.length).toBe(1);
expect(node.children[1].children[0].data).toEqual('System.Int');
- expect(node.children[1].children[0].parent).toBe(node.children[1])
- expect(node.children[1].children[0].index).toBe(0)
-
+ expect(node.children[1].children[0].parent).toBe(node.children[1]);
+ expect(node.children[1].children[0].index).toBe(0);
});
- it('should Volo.Abp.Application.Dtos.AuditedEntityWithUserDto,System.string>', function() {
- const type = 'Volo.Abp.Application.Dtos.AuditedEntityWithUserDto,System.string>';
+ it('should Volo.Abp.Application.Dtos.AuditedEntityWithUserDto,System.string>', function () {
+ const type =
+ 'Volo.Abp.Application.Dtos.AuditedEntityWithUserDto,System.string>';
const node = parseGenerics(type);
expect(node.data).toEqual('Volo.Abp.Application.Dtos.AuditedEntityWithUserDto');
expect(node.children.length).toBe(2);
@@ -121,9 +117,5 @@ describe('parseGenerics', () => {
expect(node.children[0].children.length).toBe(1);
expect(node.children[0].children[0].data).toEqual('System.Int');
expect(node.children[1].data).toEqual('System.string');
-
});
});
-
-
-
diff --git a/npm/ng-packs/packages/schematics/tsconfig.spec.json b/npm/ng-packs/packages/schematics/tsconfig.spec.json
index a42c4b02fb..fc61345bb3 100644
--- a/npm/ng-packs/packages/schematics/tsconfig.spec.json
+++ b/npm/ng-packs/packages/schematics/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.spec.ts", "**/*.d.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/schematics/vitest.config.mts b/npm/ng-packs/packages/schematics/vitest.config.mts
new file mode 100644
index 0000000000..6398ad426d
--- /dev/null
+++ b/npm/ng-packs/packages/schematics/vitest.config.mts
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/schematics',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'schematics',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/schematics',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/setting-management/.eslintrc.json b/npm/ng-packs/packages/setting-management/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/setting-management/.eslintrc.json
+++ b/npm/ng-packs/packages/setting-management/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/setting-management/jest.config.ts b/npm/ng-packs/packages/setting-management/jest.config.ts
index 17d04089d0..be1cc254ed 100644
--- a/npm/ng-packs/packages/setting-management/jest.config.ts
+++ b/npm/ng-packs/packages/setting-management/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'setting-management',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json
index 579c744222..fd8977f924 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.components": "~10.1.0-rc.1",
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
+ "@abp/ng.components": "~10.1.0-rc.2",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/setting-management/project.json b/npm/ng-packs/packages/setting-management/project.json
index 57f72234fb..fa07efdfc3 100644
--- a/npm/ng-packs/packages/setting-management/project.json
+++ b/npm/ng-packs/packages/setting-management/project.json
@@ -23,16 +23,16 @@
},
"defaultConfiguration": "production"
},
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/setting-management"],
- "options": {
- "jestConfig": "packages/setting-management/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/setting-management"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/setting-management/tsconfig.lib.json b/npm/ng-packs/packages/setting-management/tsconfig.lib.json
index 22d2695db8..80ebc37002 100644
--- a/npm/ng-packs/packages/setting-management/tsconfig.lib.json
+++ b/npm/ng-packs/packages/setting-management/tsconfig.lib.json
@@ -10,6 +10,23 @@
"lib": ["dom", "es2020"],
"useDefineForClassFields": false
},
- "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
+ "exclude": [
+ "src/test-setup.ts",
+ "**/*.spec.ts",
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
+ ],
"include": ["**/*.ts"]
}
diff --git a/npm/ng-packs/packages/setting-management/tsconfig.spec.json b/npm/ng-packs/packages/setting-management/tsconfig.spec.json
index 023d7d0b51..fc61345bb3 100644
--- a/npm/ng-packs/packages/setting-management/tsconfig.spec.json
+++ b/npm/ng-packs/packages/setting-management/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/setting-management/vitest.config.mts b/npm/ng-packs/packages/setting-management/vitest.config.mts
new file mode 100644
index 0000000000..d1670d87fe
--- /dev/null
+++ b/npm/ng-packs/packages/setting-management/vitest.config.mts
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/setting-management',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'setting-management',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/setting-management',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/tenant-management/.eslintrc.json b/npm/ng-packs/packages/tenant-management/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/tenant-management/.eslintrc.json
+++ b/npm/ng-packs/packages/tenant-management/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/tenant-management/jest.config.ts b/npm/ng-packs/packages/tenant-management/jest.config.ts
index e69152e9ab..a5d63bbaaf 100644
--- a/npm/ng-packs/packages/tenant-management/jest.config.ts
+++ b/npm/ng-packs/packages/tenant-management/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'tenant-management',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json
index e92e12af27..1ced045022 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.feature-management": "~10.1.0-rc.1",
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
+ "@abp/ng.feature-management": "~10.1.0-rc.2",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/tenant-management/project.json b/npm/ng-packs/packages/tenant-management/project.json
index 2394793380..9bbd10d632 100644
--- a/npm/ng-packs/packages/tenant-management/project.json
+++ b/npm/ng-packs/packages/tenant-management/project.json
@@ -23,16 +23,16 @@
},
"defaultConfiguration": "production"
},
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/tenant-management"],
- "options": {
- "jestConfig": "packages/tenant-management/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/tenant-management"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/tenant-management/tsconfig.lib.json b/npm/ng-packs/packages/tenant-management/tsconfig.lib.json
index 22d2695db8..80ebc37002 100644
--- a/npm/ng-packs/packages/tenant-management/tsconfig.lib.json
+++ b/npm/ng-packs/packages/tenant-management/tsconfig.lib.json
@@ -10,6 +10,23 @@
"lib": ["dom", "es2020"],
"useDefineForClassFields": false
},
- "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
+ "exclude": [
+ "src/test-setup.ts",
+ "**/*.spec.ts",
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
+ ],
"include": ["**/*.ts"]
}
diff --git a/npm/ng-packs/packages/tenant-management/tsconfig.spec.json b/npm/ng-packs/packages/tenant-management/tsconfig.spec.json
index 023d7d0b51..fc61345bb3 100644
--- a/npm/ng-packs/packages/tenant-management/tsconfig.spec.json
+++ b/npm/ng-packs/packages/tenant-management/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/tenant-management/vitest.config.mts b/npm/ng-packs/packages/tenant-management/vitest.config.mts
new file mode 100644
index 0000000000..9125d40292
--- /dev/null
+++ b/npm/ng-packs/packages/tenant-management/vitest.config.mts
@@ -0,0 +1,21 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/tenant-management',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'tenant-management',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/tenant-management',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/theme-basic/.eslintrc.json b/npm/ng-packs/packages/theme-basic/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/theme-basic/.eslintrc.json
+++ b/npm/ng-packs/packages/theme-basic/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/theme-basic/jest.config.ts b/npm/ng-packs/packages/theme-basic/jest.config.ts
index 5e30d9abd6..2c6efb6a7e 100644
--- a/npm/ng-packs/packages/theme-basic/jest.config.ts
+++ b/npm/ng-packs/packages/theme-basic/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'theme-basic',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json
index 796531eb6a..e6e08aa95f 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.account.core": "~10.1.0-rc.1",
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
+ "@abp/ng.account.core": "~10.1.0-rc.2",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/theme-basic/project.json b/npm/ng-packs/packages/theme-basic/project.json
index be0464cc18..ac155e0fe7 100644
--- a/npm/ng-packs/packages/theme-basic/project.json
+++ b/npm/ng-packs/packages/theme-basic/project.json
@@ -23,16 +23,16 @@
},
"defaultConfiguration": "production"
},
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/theme-basic"],
- "options": {
- "jestConfig": "packages/theme-basic/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/theme-basic"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/theme-basic/src/lib/tests/lazy-style.handler.spec.ts b/npm/ng-packs/packages/theme-basic/src/lib/tests/lazy-style.handler.spec.ts
index dd0591f9fd..847c3418a6 100644
--- a/npm/ng-packs/packages/theme-basic/src/lib/tests/lazy-style.handler.spec.ts
+++ b/npm/ng-packs/packages/theme-basic/src/lib/tests/lazy-style.handler.spec.ts
@@ -1,23 +1,59 @@
-import { LazyLoadService, LOADING_STRATEGY, LocalizationService } from '@abp/ng.core';
+import { DOCUMENT } from '@angular/common';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
+import { of, Subject } from 'rxjs';
+import { vi } from 'vitest';
+
+import { LazyLoadService, LoadingStrategy, LocalizationService } from '@abp/ng.core';
import { DocumentDirHandlerService } from '@abp/ng.theme.shared';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
-import { of } from 'rxjs';
import { BOOTSTRAP, createLazyStyleHref, LazyStyleHandler } from '../handlers';
-
-const currentLang$ = of({ payload: 'en' });
+import { LAZY_STYLES } from '../tokens/lazy-styles.token';
+import { setupComponentResources } from './utils';
describe('LazyStyleHandler', () => {
let spectator: SpectatorService;
let handler: LazyStyleHandler;
- let lazyLoad: LazyLoadService;
+ let lazyLoad: any;
+
+ beforeAll(async () => {
+ await setupComponentResources(
+ '../components/breadcrumb',
+ import.meta.url
+ );
+ });
+
+ const dir$ = new Subject<'ltr' | 'rtl'>();
const createService = createServiceFactory({
service: LazyStyleHandler,
providers: [
- DocumentDirHandlerService,
+ {
+ provide: DOCUMENT,
+ useValue: document,
+ },
+ {
+ provide: LAZY_STYLES,
+ useValue: [BOOTSTRAP],
+ },
+ {
+ provide: LazyLoadService,
+ useValue: {
+ loaded: new Map(),
+ load: vi.fn(() => of(null)),
+ remove: vi.fn(),
+ },
+ },
+ {
+ provide: DocumentDirHandlerService,
+ useValue: {
+ dir$,
+ },
+ },
{
provide: LocalizationService,
- useValue: { currentLang: 'en', currentLang$ },
+ useValue: {
+ currentLang: 'en',
+ currentLang$: of({ payload: 'en' }),
+ },
},
],
});
@@ -25,7 +61,7 @@ describe('LazyStyleHandler', () => {
beforeEach(() => {
spectator = createService();
handler = spectator.service;
- lazyLoad = handler['lazyLoad'];
+ lazyLoad = spectator.inject(LazyLoadService);
});
describe('#dir', () => {
@@ -36,15 +72,19 @@ describe('LazyStyleHandler', () => {
it('should set bootstrap to rtl', () => {
const oldHref = createLazyStyleHref(BOOTSTRAP, 'ltr');
const newHref = createLazyStyleHref(BOOTSTRAP, 'rtl');
- lazyLoad.loaded.set(newHref, null); // avoid actual loading
- const load = jest.spyOn(lazyLoad, 'load');
- const remove = jest.spyOn(lazyLoad, 'remove');
- const strategy = LOADING_STRATEGY.PrependAnonymousStyleToHead(newHref);
+
+ lazyLoad.loaded.set(newHref, null);
+
+ const loadSpy = vi.spyOn(lazyLoad, 'load');
+ const removeSpy = vi.spyOn(lazyLoad, 'remove');
handler.dir = 'rtl';
- expect(load).toHaveBeenCalledWith(strategy);
- expect(remove).toHaveBeenCalledWith(oldHref);
+ expect(loadSpy).toHaveBeenCalledTimes(1);
+ const [strategy] = loadSpy.mock.calls[0];
+ expect((strategy as LoadingStrategy).path).toBe(newHref);
+
+ expect(removeSpy).toHaveBeenCalledWith(oldHref);
});
});
});
diff --git a/npm/ng-packs/packages/theme-basic/src/lib/tests/utils/index.ts b/npm/ng-packs/packages/theme-basic/src/lib/tests/utils/index.ts
new file mode 100644
index 0000000000..73b11724ec
--- /dev/null
+++ b/npm/ng-packs/packages/theme-basic/src/lib/tests/utils/index.ts
@@ -0,0 +1 @@
+export * from './setup-component-resources';
\ No newline at end of file
diff --git a/npm/ng-packs/packages/theme-basic/src/lib/tests/utils/setup-component-resources.ts b/npm/ng-packs/packages/theme-basic/src/lib/tests/utils/setup-component-resources.ts
new file mode 100644
index 0000000000..0795a5e32b
--- /dev/null
+++ b/npm/ng-packs/packages/theme-basic/src/lib/tests/utils/setup-component-resources.ts
@@ -0,0 +1,54 @@
+import { readFileSync } from 'node:fs';
+import { resolve, dirname } from 'node:path';
+import { fileURLToPath } from 'node:url';
+
+/**
+ * Sets up component resource resolution for Angular component tests.
+ * This is needed when components have external templates or stylesheets.
+ *
+ * @param componentDirPath - The path to the component directory relative to the test file.
+ * For example: '../components/loader-bar' or './components/my-component'
+ * @param testFileUrl - The import.meta.url from the test file. Defaults to the caller's location.
+ *
+ * @example
+ * ```typescript
+ *
+ * import { setupComponentResources } from './utils';
+ *
+ * beforeAll(() => setupComponentResources('../components/loader-bar', import.meta.url));
+ * ```
+ */
+export async function setupComponentResources(
+ componentDirPath: string,
+ testFileUrl: string = import.meta.url,
+): Promise {
+ try {
+ if (typeof process !== 'undefined' && process.versions?.node) {
+ const { ɵresolveComponentResources: resolveComponentResources } = await import('@angular/core');
+
+ // Get the test file directory path
+ const testFileDir = dirname(fileURLToPath(testFileUrl));
+ const componentDir = resolve(testFileDir, componentDirPath);
+
+ await resolveComponentResources((url: string) => {
+ // For SCSS/SASS files, return empty CSS since jsdom can't parse SCSS
+ if (url.endsWith('.scss') || url.endsWith('.sass')) {
+ return Promise.resolve('');
+ }
+
+ // For other files (HTML, CSS, etc.), read the actual content
+ try {
+ // Resolve relative paths like './component.scss' or 'component.scss'
+ const normalizedUrl = url.replace(/^\.\//, '');
+ const filePath = resolve(componentDir, normalizedUrl);
+ return Promise.resolve(readFileSync(filePath, 'utf-8'));
+ } catch (error) {
+ // If file not found, return empty string
+ return Promise.resolve('');
+ }
+ });
+ }
+ } catch (error) {
+ console.warn('Failed to set up component resource resolver:', error);
+ }
+}
diff --git a/npm/ng-packs/packages/theme-basic/src/test-setup.ts b/npm/ng-packs/packages/theme-basic/src/test-setup.ts
index 4555f138a7..b349bcf687 100644
--- a/npm/ng-packs/packages/theme-basic/src/test-setup.ts
+++ b/npm/ng-packs/packages/theme-basic/src/test-setup.ts
@@ -1,2 +1,20 @@
-import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone';
-setupZoneTestEnv();
+import '@angular/compiler';
+import 'zone.js';
+import 'zone.js/testing';
+import { getTestBed } from '@angular/core/testing';
+import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing';
+
+// Initialize Angular testing environment
+getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting());
+
+// Mock window.location for test environment
+Object.defineProperty(window, 'location', {
+ value: {
+ href: 'http://localhost:4200',
+ origin: 'http://localhost:4200',
+ pathname: '/',
+ search: '',
+ hash: '',
+ },
+ writable: true,
+});
diff --git a/npm/ng-packs/packages/theme-basic/tsconfig.lib.json b/npm/ng-packs/packages/theme-basic/tsconfig.lib.json
index 22d2695db8..80ebc37002 100644
--- a/npm/ng-packs/packages/theme-basic/tsconfig.lib.json
+++ b/npm/ng-packs/packages/theme-basic/tsconfig.lib.json
@@ -10,6 +10,23 @@
"lib": ["dom", "es2020"],
"useDefineForClassFields": false
},
- "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
+ "exclude": [
+ "src/test-setup.ts",
+ "**/*.spec.ts",
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
+ ],
"include": ["**/*.ts"]
}
diff --git a/npm/ng-packs/packages/theme-basic/tsconfig.spec.json b/npm/ng-packs/packages/theme-basic/tsconfig.spec.json
index 023d7d0b51..fc61345bb3 100644
--- a/npm/ng-packs/packages/theme-basic/tsconfig.spec.json
+++ b/npm/ng-packs/packages/theme-basic/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/theme-basic/vitest.config.mts b/npm/ng-packs/packages/theme-basic/vitest.config.mts
new file mode 100644
index 0000000000..f76013d8f4
--- /dev/null
+++ b/npm/ng-packs/packages/theme-basic/vitest.config.mts
@@ -0,0 +1,22 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/theme-basic',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'theme-basic',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ setupFiles: ['src/test-setup.ts'],
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/theme-basic',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/packages/theme-shared/.eslintrc.json b/npm/ng-packs/packages/theme-shared/.eslintrc.json
index 5e303d20bb..afa6cfec5f 100644
--- a/npm/ng-packs/packages/theme-shared/.eslintrc.json
+++ b/npm/ng-packs/packages/theme-shared/.eslintrc.json
@@ -1,6 +1,6 @@
{
"extends": ["../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
+ "ignorePatterns": ["!**/*", "**/vitest.config.*.timestamp*"],
"overrides": [
{
"files": ["*.ts"],
diff --git a/npm/ng-packs/packages/theme-shared/jest.config.ts b/npm/ng-packs/packages/theme-shared/jest.config.ts
index af6440fc3e..c03a94ad03 100644
--- a/npm/ng-packs/packages/theme-shared/jest.config.ts
+++ b/npm/ng-packs/packages/theme-shared/jest.config.ts
@@ -1,4 +1,8 @@
/* eslint-disable */
+/**
+ * @deprecated use vitest instead of jest
+ * @see https://vitest.dev/guide/migration.html#jest
+ */
export default {
displayName: 'theme-shared',
preset: '../../jest.preset.js',
diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json
index c2f64d4014..dc42e452a3 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.core": "~10.1.0-rc.1",
+ "@abp/ng.core": "~10.1.0-rc.2",
"@fortawesome/fontawesome-free": "^6.0.0",
"@ng-bootstrap/ng-bootstrap": "~20.0.0",
"@ngx-validate/core": "^0.2.0",
diff --git a/npm/ng-packs/packages/theme-shared/project.json b/npm/ng-packs/packages/theme-shared/project.json
index a77551187c..2bfa7e6574 100644
--- a/npm/ng-packs/packages/theme-shared/project.json
+++ b/npm/ng-packs/packages/theme-shared/project.json
@@ -23,16 +23,16 @@
},
"defaultConfiguration": "production"
},
- "test": {
- "executor": "@nx/jest:jest",
- "outputs": ["{workspaceRoot}/coverage/packages/theme-shared"],
- "options": {
- "jestConfig": "packages/theme-shared/jest.config.ts"
- }
- },
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"]
+ },
+ "test": {
+ "executor": "@nx/vitest:test",
+ "outputs": ["{options.reportsDirectory}"],
+ "options": {
+ "reportsDirectory": "../../coverage/packages/theme-shared"
+ }
}
}
}
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb-items/breadcrumb-items.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb-items/breadcrumb-items.component.ts
index 6e60a77669..a5a1a4d112 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb-items/breadcrumb-items.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb-items/breadcrumb-items.component.ts
@@ -6,7 +6,7 @@ import { ABP, LocalizationPipe } from '@abp/ng.core';
@Component({
selector: 'abp-breadcrumb-items',
templateUrl: './breadcrumb-items.component.html',
- imports: [ NgTemplateOutlet, RouterLink, LocalizationPipe],
+ imports: [NgTemplateOutlet, RouterLink, LocalizationPipe],
})
export class BreadcrumbItemsComponent {
@Input() items: Partial[] = [];
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts
index 5f84edac4f..d0d204dceb 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts
@@ -1,31 +1,25 @@
import {
ABP,
- CORE_OPTIONS,
LocalizationPipe,
RouterOutletComponent,
RoutesService,
- LocalizationService,
+ provideAbpCore,
+ withOptions,
+ RestService,
+ AbpApplicationConfigurationService,
+ ConfigStateService,
} from '@abp/ng.core';
-import { provideHttpClient } from '@angular/common/http';
-import { provideHttpClientTesting } from '@angular/common/http/testing';
import { RouterModule } from '@angular/router';
-import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator/jest';
+import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator/vitest';
+import { of } from 'rxjs';
import { BreadcrumbComponent, BreadcrumbItemsComponent } from '../components';
-import { OTHERS_GROUP } from '@abp/ng.core';
-import { SORT_COMPARE_FUNC } from '@abp/ng.core';
+import { setupComponentResources } from './utils';
const mockRoutes: ABP.Route[] = [
{ name: '_::Identity', path: '/identity' },
{ name: '_::Users', path: '/identity/users', parentName: '_::Identity' },
];
-// Simple compare function that doesn't use inject()
-const simpleCompareFunc = (a: any, b: any) => {
- const aNumber = a.order || 0;
- const bNumber = b.order || 0;
- return aNumber - bNumber;
-};
-
describe('BreadcrumbComponent', () => {
let spectator: SpectatorRouting;
let routes: RoutesService;
@@ -34,39 +28,58 @@ describe('BreadcrumbComponent', () => {
component: RouterOutletComponent,
stubsEnabled: false,
detectChanges: false,
+ imports: [
+ RouterModule,
+ LocalizationPipe,
+ BreadcrumbComponent,
+ BreadcrumbItemsComponent,
+ ],
providers: [
- provideHttpClient(),
- provideHttpClientTesting(),
- {
- provide: CORE_OPTIONS,
- useValue: {
+ provideAbpCore(
+ withOptions({
environment: {
apis: {
default: {
url: 'http://localhost:4200',
},
},
+ application: {
+ name: 'TestApp',
+ baseUrl: 'http://localhost:4200',
+ },
},
- }
+ registerLocaleFn: () => Promise.resolve(),
+ skipGetAppConfiguration: true,
+ }),
+ ),
+ {
+ provide: RestService,
+ useValue: {
+ request: vi.fn(),
+ handleError: vi.fn(),
+ },
},
- RoutesService,
- LocalizationService,
{
- provide: OTHERS_GROUP,
- useValue: 'AbpUi::OthersGroup',
+ provide: AbpApplicationConfigurationService,
+ useValue: {
+ get: vi.fn(),
+ },
},
{
- provide: SORT_COMPARE_FUNC,
- useValue: simpleCompareFunc,
+ provide: ConfigStateService,
+ useValue: {
+ getOne: vi.fn(),
+ getAll: vi.fn(() => ({})),
+ getAll$: vi.fn(() => of({})),
+ getDeep: vi.fn(),
+ getDeep$: vi.fn(() => of(undefined)),
+ createOnUpdateStream: vi.fn(() => ({
+ subscribe: vi.fn(() => ({ unsubscribe: vi.fn() }))
+ })),
+ refreshAppState: vi.fn(),
+ },
},
],
- declarations: [],
- imports: [
- RouterModule,
- LocalizationPipe,
- BreadcrumbComponent,
- BreadcrumbItemsComponent,
- ],
routes: [
{
path: '',
@@ -85,6 +98,8 @@ describe('BreadcrumbComponent', () => {
],
});
+ beforeAll(() => setupComponentResources('../components/breadcrumb', import.meta.url));
+
beforeEach(() => {
spectator = createRouting();
routes = spectator.inject(RoutesService);
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/button.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/button.component.spec.ts
index bf834d182d..2986e7c14e 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/button.component.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/button.component.spec.ts
@@ -1,4 +1,4 @@
-import { createHostFactory, SpectatorHost } from '@ngneat/spectator/jest';
+import { createHostFactory, SpectatorHost } from '@ngneat/spectator/vitest';
import { ButtonComponent } from '../components';
describe('ButtonComponent', () => {
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/card.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/card.component.spec.ts
index fa474640f6..9990b33676 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/card.component.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/card.component.spec.ts
@@ -1,4 +1,4 @@
-import { createHostFactory, SpectatorHost } from '@ngneat/spectator/jest';
+import { createHostFactory, SpectatorHost } from '@ngneat/spectator/vitest';
import {
CardComponent,
CardBodyComponent,
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/checkbox.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/checkbox.component.spec.ts
index e2fba6d0da..4ea0946c01 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/checkbox.component.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/checkbox.component.spec.ts
@@ -1,4 +1,4 @@
-import { createHostFactory, SpectatorHost } from '@ngneat/spectator/jest';
+import { createHostFactory, SpectatorHost } from '@ngneat/spectator/vitest';
import { FormCheckboxComponent } from '../components/checkbox/checkbox.component';
describe('FormCheckboxComponent', () => {
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/confirmation.service.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/confirmation.service.spec.ts
index 029becaa96..d03e69733d 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/confirmation.service.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/confirmation.service.spec.ts
@@ -1,27 +1,24 @@
import { CoreTestingModule } from '@abp/ng.core/testing';
-import { NgModule } from '@angular/core';
-import { fakeAsync, tick } from '@angular/core/testing';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
-import { timer } from 'rxjs';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
+import { firstValueFrom, timer } from 'rxjs';
import { ConfirmationComponent } from '../components';
import { Confirmation } from '../models';
import { ConfirmationService } from '../services';
import { CONFIRMATION_ICONS, DEFAULT_CONFIRMATION_ICONS } from '../tokens/confirmation-icons.token';
-
-@NgModule({
- exports: [ConfirmationComponent],
- declarations: [],
- imports: [CoreTestingModule.withConfig(), ConfirmationComponent],
- providers: [{ provide: CONFIRMATION_ICONS, useValue: DEFAULT_CONFIRMATION_ICONS }],
-})
-export class MockModule {}
+import { setupComponentResources } from './utils';
describe('ConfirmationService', () => {
let spectator: SpectatorService;
let service: ConfirmationService;
+
const createService = createServiceFactory({
service: ConfirmationService,
- imports: [CoreTestingModule.withConfig(), MockModule],
+ imports: [CoreTestingModule.withConfig(), ConfirmationComponent],
+ providers: [{ provide: CONFIRMATION_ICONS, useValue: DEFAULT_CONFIRMATION_ICONS }],
+ });
+
+ beforeAll(async () => {
+ await setupComponentResources('../components/confirmation', import.meta.url);
});
beforeEach(() => {
@@ -33,16 +30,16 @@ describe('ConfirmationService', () => {
clearElements();
});
- test('should display a confirmation popup', fakeAsync(() => {
+ test('should display a confirmation popup', async () => {
service.show('_::MESSAGE', '_::TITLE');
- tick();
+ await firstValueFrom(timer(10));
expect(selectConfirmationContent('.title')).toBe('TITLE');
expect(selectConfirmationContent('.message')).toBe('MESSAGE');
- }));
+ });
- test('should display HTML string in title, message, and buttons', fakeAsync(() => {
+ test('should display HTML string in title, message, and buttons', async () => {
service.show(
'_::MESSAGE',
'_::TITLE',
@@ -53,24 +50,24 @@ describe('ConfirmationService', () => {
},
);
- tick();
+ await firstValueFrom(timer(10));
expect(selectConfirmationContent('.custom-title')).toBe('TITLE');
expect(selectConfirmationContent('.custom-message')).toBe('MESSAGE');
expect(selectConfirmationContent('.custom-cancel')).toBe('CANCEL');
expect(selectConfirmationContent('.custom-yes')).toBe('YES');
- }));
+ });
- test('should display custom FA icon', fakeAsync(() => {
+ test('should display custom FA icon', async () => {
service.show('_::MESSAGE', '_::TITLE', undefined, {
icon: 'fa fa-info',
});
- tick();
+ await firstValueFrom(timer(10));
expect(selectConfirmationElement('.icon').className).toBe('icon fa fa-info');
- }));
+ });
- test('should display custom icon as html element', fakeAsync(() => {
+ test('should display custom icon as html element', async () => {
const className = 'custom-icon';
const selector = '.' + className;
@@ -78,12 +75,14 @@ describe('ConfirmationService', () => {
iconTemplate: `I am icon`,
});
- tick();
+ await firstValueFrom(timer(10));
const element = selectConfirmationElement(selector);
expect(element).toBeTruthy();
expect(element.innerHTML).toBe('I am icon');
- }));
+ });
+
+
test.each`
type | selector | icon
${'info'} | ${'.info'} | ${'.fa-info-circle'}
@@ -93,7 +92,7 @@ describe('ConfirmationService', () => {
`('should display $type confirmation popup', async ({ type, selector, icon }) => {
service[type]('_::MESSAGE', '_::TITLE');
- await timer(0).toPromise();
+ await firstValueFrom(timer(10));
expect(selectConfirmationContent('.title')).toBe('TITLE');
expect(selectConfirmationContent('.message')).toBe('MESSAGE');
@@ -101,31 +100,18 @@ describe('ConfirmationService', () => {
expect(selectConfirmationElement(icon)).toBeTruthy();
});
- // test('should close with ESC key', (done) => {
- // service
- // .info('', '')
- // .pipe(take(1))
- // .subscribe((status) => {
- // expect(status).toBe(Confirmation.Status.dismiss);
- // done();
- // });
- // const escape = new KeyboardEvent('keyup', { key: 'Escape' });
- // document.dispatchEvent(escape);
- // });
-
- test('should close when click cancel button', done => {
+ test('should close when click cancel button', async () => {
service.info('_::', '_::', { yesText: '_::Sure', cancelText: '_::Exit' }).subscribe(status => {
expect(status).toBe(Confirmation.Status.reject);
- done();
});
- timer(0).subscribe(() => {
- expect(selectConfirmationContent('button#cancel')).toBe('Exit');
- expect(selectConfirmationContent('button#confirm')).toBe('Sure');
+ await firstValueFrom(timer(10));
- (document.querySelector('button#cancel') as HTMLButtonElement).click();
- });
+ expect(selectConfirmationContent('button#cancel')).toBe('Exit');
+ expect(selectConfirmationContent('button#confirm')).toBe('Sure');
+
+ (document.querySelector('button#cancel') as HTMLButtonElement).click();
});
test.each`
@@ -135,9 +121,9 @@ describe('ConfirmationService', () => {
`(
'should call the listenToEscape method $count times when dismissible is $dismissible',
({ dismissible, count }) => {
- const spy = jest.spyOn(service as any, 'listenToEscape');
+ const spy = vi.spyOn(service as any, 'listenToEscape');
- service.info('_::', '_::', { dismissible });
+ service.info('_::', '_::', { dismissible });
expect(spy).toHaveBeenCalledTimes(count);
},
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/ellipsis.directive.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/ellipsis.directive.spec.ts
index 727a1c5312..e9b0e45a0d 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/ellipsis.directive.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/ellipsis.directive.spec.ts
@@ -1,4 +1,4 @@
-import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/jest';
+import { createDirectiveFactory, SpectatorDirective } from '@ngneat/spectator/vitest';
import { EllipsisDirective } from '../directives/ellipsis.directive';
describe('EllipsisDirective', () => {
@@ -39,17 +39,61 @@ describe('EllipsisDirective', () => {
expect(directive.title).toBe('test title');
});
- test('should have element innerText as title if not specified', () => {
- spectator.setHostInput({ title: undefined });
+ test('should add abp-ellipsis-inline class to element if width is given', () => {
+ expect(el).toHaveClass('abp-ellipsis-inline');
+ });
+});
+
+describe('EllipsisDirective when title is not specified', () => {
+ let spectator: SpectatorDirective;
+ let directive: EllipsisDirective;
+ let el: HTMLDivElement;
+ const createDirective = createDirectiveFactory({
+ directive: EllipsisDirective,
+ });
+
+ beforeEach(() => {
+ spectator = createDirective(
+ 'test content
',
+ {
+ hostProps: {
+ title: undefined,
+ width: '100px',
+ },
+ },
+ );
+ directive = spectator.directive;
+ el = spectator.query('div') as HTMLDivElement;
+ });
+
+ test('should have element innerText as title', () => {
expect(directive.title).toBe(el.innerText);
});
+});
- test('should add abp-ellipsis-inline class to element if width is given', () => {
- expect(el).toHaveClass('abp-ellipsis-inline');
+describe('EllipsisDirective when width is not given', () => {
+ let spectator: SpectatorDirective;
+ let directive: EllipsisDirective;
+ let el: HTMLDivElement;
+ const createDirective = createDirectiveFactory({
+ directive: EllipsisDirective,
+ });
+
+ beforeEach(() => {
+ spectator = createDirective(
+ 'test content
',
+ {
+ hostProps: {
+ title: 'test title',
+ width: undefined,
+ },
+ },
+ );
+ directive = spectator.directive;
+ el = spectator.query('div') as HTMLDivElement;
});
- test('should add abp-ellipsis class to element if width is not given', () => {
- spectator.setHostInput({ width: undefined });
+ test('should add abp-ellipsis class to element', () => {
expect(el).toHaveClass('abp-ellipsis');
});
});
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/error.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/error.component.spec.ts
index 93b8d32f0f..d1cb9a5940 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/error.component.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/error.component.spec.ts
@@ -1,49 +1,84 @@
-import { CORE_OPTIONS, LocalizationPipe } from '@abp/ng.core';
-import { HttpClient, HttpClientModule } from '@angular/common/http';
-import { ElementRef, Renderer2 } from '@angular/core';
-import { createHostFactory, SpectatorHost } from '@ngneat/spectator/jest';
+import { DOCUMENT } from '@angular/common';
+import { Router } from '@angular/router';
+import { createComponentFactory, Spectator } from '@ngneat/spectator/vitest';
+import { Pipe, PipeTransform } from '@angular/core';
import { Subject } from 'rxjs';
+import { vi } from 'vitest';
+
import { HttpErrorWrapperComponent } from '../components/http-error-wrapper/http-error-wrapper.component';
+import { setupComponentResources } from './utils';
+
+/**
+ * Mock pipe to avoid ABP DI chain
+ */
+@Pipe({ name: 'abpLocalization'})
+class MockLocalizationPipe implements PipeTransform {
+ transform(value: any): any {
+ return value;
+ }
+}
+
+describe('HttpErrorWrapperComponent', () => {
+ let spectator: Spectator;
+ let createComponent: ReturnType>;
-describe('ErrorComponent', () => {
- let spectator: SpectatorHost;
- const createHost = createHostFactory({
- component: HttpErrorWrapperComponent,
- declarations: [],
- mocks: [HttpClient],
- providers: [
- { provide: CORE_OPTIONS, useValue: {} },
- { provide: Renderer2, useValue: { removeChild: () => null } },
- {
- provide: ElementRef,
- useValue: { nativeElement: document.createElement('div') },
- },
- ],
- imports: [HttpClientModule, LocalizationPipe],
+ beforeAll(async () => {
+ await setupComponentResources(
+ '../components/http-error-wrapper',
+ import.meta.url,
+ );
});
- beforeEach(() => {
- spectator = createHost(
- '',
- );
- spectator.component.destroy$ = new Subject();
- });
-
- describe('#destroy', () => {
- it('should be call when pressed the esc key', done => {
- spectator.component.destroy$.subscribe(() => {
- done();
- });
+ beforeEach(() => {
+ if (!createComponent) {
+ createComponent = createComponentFactory({
+ component: HttpErrorWrapperComponent,
+ detectChanges: false,
- spectator.keyboard.pressEscape();
- });
+ overrideComponents: [
+ [
+ HttpErrorWrapperComponent,
+ {
+ set: {
+ template: '',
+ imports: [MockLocalizationPipe],
+ },
+ },
+ ],
+ ],
- it('should be call when clicked the close button', done => {
- spectator.component.destroy$.subscribe(() => {
- done();
+ providers: [
+ {
+ provide: DOCUMENT,
+ useValue: document,
+ },
+ {
+ provide: Router,
+ useValue: {
+ navigateByUrl: vi.fn(),
+ },
+ },
+ ],
});
+ }
+
+ spectator = createComponent();
+
+ spectator.component.destroy$ = new Subject();
+ spectator.component.title = '_::Oops!';
+ spectator.component.details = '_::Sorry, an error has occured.';
+ });
+
+ it('should create component', () => {
+ expect(spectator.component).toBeTruthy();
+ });
+
+ it('should emit destroy$ when destroy is called', () => {
+ const spy = vi.fn();
+ spectator.component.destroy$.subscribe(spy);
+
+ spectator.component.destroy();
- spectator.click('#abp-close-button');
- });
+ expect(spy).toHaveBeenCalled();
});
});
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts
index 75726103d2..d57f75af28 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts
@@ -2,46 +2,48 @@ import { HttpErrorReporterService } from '@abp/ng.core';
import { CoreTestingModule } from '@abp/ng.core/testing';
import { APP_BASE_HREF } from '@angular/common';
import { HttpErrorResponse, HttpHeaders } from '@angular/common/http';
-import { NgModule } from '@angular/core';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
import { OAuthService } from 'angular-oauth2-oidc';
import { of, Subject } from 'rxjs';
-import { HttpErrorWrapperComponent } from '../components/http-error-wrapper/http-error-wrapper.component';
import { ErrorHandler } from '../handlers';
import { ConfirmationService } from '../services';
+import { CreateErrorComponentService } from '../services/create-error-component.service';
+import { RouterErrorHandlerService } from '../services/router-error-handler.service';
import { CUSTOM_ERROR_HANDLERS, HTTP_ERROR_CONFIG } from '../tokens/http-error.token';
import { CustomHttpErrorHandlerService } from '../models';
const customHandlerMock: CustomHttpErrorHandlerService = {
priority: 100,
- canHandle: jest.fn().mockReturnValue(true),
- execute: jest.fn(),
+ canHandle: vi.fn().mockReturnValue(true),
+ execute: vi.fn(),
};
const reporter$ = new Subject();
-@NgModule({
- exports: [HttpErrorWrapperComponent],
- declarations: [],
- imports: [CoreTestingModule, HttpErrorWrapperComponent],
-})
-class MockModule {}
-
let spectator: SpectatorService;
let service: ErrorHandler;
let httpErrorReporter: HttpErrorReporterService;
-const errorConfirmation: jest.Mock = jest.fn(() => of(null));
-const CONFIRMATION_BUTTONS = {
- hideCancelBtn: true,
- yesText: 'AbpAccount::Close',
-};
+const errorConfirmation = vi.fn(() => of(null));
+
describe('ErrorHandler', () => {
const createService = createServiceFactory({
service: ErrorHandler,
- imports: [CoreTestingModule.withConfig(), MockModule],
+ imports: [CoreTestingModule.withConfig()],
mocks: [OAuthService],
providers: [
+ {
+ provide: RouterErrorHandlerService,
+ useValue: {
+ listen: vi.fn(),
+ },
+ },
+ {
+ provide: CreateErrorComponentService,
+ useValue: {
+ execute: vi.fn(),
+ },
+ },
{
provide: HttpErrorReporterService,
useValue: {
@@ -65,7 +67,10 @@ describe('ErrorHandler', () => {
},
{
provide: HTTP_ERROR_CONFIG,
- useFactory: () => ({}),
+ useValue: {
+ skipHandledErrorCodes: [],
+ errorScreen: {},
+ },
},
],
});
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/form-input.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/form-input.component.spec.ts
index cf4eb4aac3..e6ae275a95 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/form-input.component.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/form-input.component.spec.ts
@@ -1,4 +1,4 @@
-import { createHostFactory, SpectatorHost } from '@ngneat/spectator/jest';
+import { createHostFactory, SpectatorHost } from '@ngneat/spectator/vitest';
import { FormInputComponent } from '../components/form-input/form-input.component';
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/loader-bar.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/loader-bar.component.spec.ts
index e2904e33f1..a825cbf7db 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/loader-bar.component.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/loader-bar.component.spec.ts
@@ -1,26 +1,32 @@
-import { HttpWaitService, LOADER_DELAY, SubscriptionService } from '@abp/ng.core';
+import { HttpWaitService, LOADER_DELAY, RouterWaitService, SubscriptionService } from '@abp/ng.core';
import { HttpRequest } from '@angular/common/http';
-import { NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';
-import { createComponentFactory, Spectator, SpyObject } from '@ngneat/spectator/jest';
-import { Subject, timer } from 'rxjs';
+import { NavigationStart, Router } from '@angular/router';
+import { createComponentFactory, Spectator } from '@ngneat/spectator/vitest';
+import { combineLatest, firstValueFrom, Subject, timer } from 'rxjs';
import { LoaderBarComponent } from '../components/loader-bar/loader-bar.component';
+import { setupComponentResources } from './utils';
describe('LoaderBarComponent', () => {
let spectator: Spectator;
let router: Router;
+ let createComponent: ReturnType>;
const events$ = new Subject();
- const createComponent = createComponentFactory({
- component: LoaderBarComponent,
- detectChanges: false,
- providers: [
- SubscriptionService,
- { provide: Router, useValue: { events: events$ } },
- { provide: LOADER_DELAY, useValue: 0 },
- ],
- });
+ beforeAll(() => setupComponentResources('../components/loader-bar', import.meta.url));
beforeEach(() => {
+ if (!createComponent) {
+ createComponent = createComponentFactory({
+ component: LoaderBarComponent,
+ detectChanges: false,
+ providers: [
+ SubscriptionService,
+ { provide: Router, useValue: { events: events$ } },
+ { provide: LOADER_DELAY, useValue: 0 },
+ ],
+ });
+ }
+
spectator = createComponent({});
spectator.component.intervalPeriod = 1;
spectator.component.stopDelay = 1;
@@ -32,66 +38,127 @@ describe('LoaderBarComponent', () => {
expect(spectator.component.color).toBe('#77b6ff');
});
- it('should increase the progressLevel', done => {
+ it('should increase the progressLevel', async () => {
spectator.detectChanges();
const httpWaitService = spectator.inject(HttpWaitService);
httpWaitService.addRequest(new HttpRequest('GET', 'test'));
spectator.detectChanges();
- setTimeout(() => {
- expect(spectator.component.progressLevel > 0).toBeTruthy();
- done();
- }, 10);
+
+ await new Promise(resolve => setTimeout(resolve, 10));
+
+ expect(spectator.component.progressLevel > 0).toBeTruthy();
});
- it('should be interval unsubscribed', done => {
- const request = new HttpRequest('GET', 'test');
+ it('should be interval unsubscribed', async () => {
+ const request = new HttpRequest('GET', 'test');
spectator.detectChanges();
const httpWaitService = spectator.inject(HttpWaitService);
+
+ await firstValueFrom(combineLatest([
+ httpWaitService.getLoading$(),
+ spectator.inject(RouterWaitService).getLoading$()
+ ]));
+
httpWaitService.addRequest(request);
+ spectator.detectChanges();
+
+ let attempts = 0;
+ while (spectator.component.interval.closed && attempts < 50) {
+ await new Promise(resolve => setTimeout(resolve, 10));
+ spectator.detectChanges();
+ attempts++;
+ }
+
expect(spectator.component.interval.closed).toBe(false);
+
httpWaitService.deleteRequest(request);
- timer(400).subscribe(() => {
- expect(spectator.component.interval.closed).toBe(true);
- done();
- });
+ spectator.detectChanges();
+
+ await firstValueFrom(timer(400));
+
+ expect(spectator.component.interval.closed).toBe(true);
});
- it('should start and stop the loading with navigation', done => {
+
+ it('should start and stop the loading with navigation', async () => {
+ spectator.detectChanges();
+ const routerWaitService = spectator.inject(RouterWaitService);
+
+ routerWaitService.setLoading(true);
spectator.detectChanges();
- events$.next(new NavigationStart(1, 'test'));
+
+ let attempts = 0;
+ while (spectator.component.interval.closed && attempts < 50) {
+ await new Promise(resolve => setTimeout(resolve, 10));
+ spectator.detectChanges();
+ attempts++;
+ }
expect(spectator.component.interval.closed).toBe(false);
- events$.next(new NavigationEnd(1, 'test', 'test'));
- events$.next(new NavigationError(1, 'test', 'test'));
+ routerWaitService.setLoading(false);
+ spectator.detectChanges();
+
+ attempts = 0;
+ while (spectator.component.progressLevel !== 100 && attempts < 50) {
+ await new Promise(resolve => setTimeout(resolve, 10));
+ spectator.detectChanges();
+ attempts++;
+ }
expect(spectator.component.progressLevel).toBe(100);
- timer(2).subscribe(() => {
- expect(spectator.component.progressLevel).toBe(0);
- done();
- });
+ await firstValueFrom(timer(spectator.component.stopDelay + 10));
+ expect(spectator.component.progressLevel).toBe(0);
});
- it('should stop the loading with navigation', done => {
+ it('should stop the loading with navigation', async () => {
+ spectator.detectChanges();
+ const routerWaitService = spectator.inject(RouterWaitService);
+
+ routerWaitService.setLoading(true);
spectator.detectChanges();
- events$.next(new NavigationStart(1, 'test'));
+
+ let attempts = 0;
+ while (spectator.component.interval.closed && attempts < 50) {
+ await new Promise(resolve => setTimeout(resolve, 10));
+ spectator.detectChanges();
+ attempts++;
+ }
expect(spectator.component.interval.closed).toBe(false);
- events$.next(new NavigationEnd(1, 'testend', 'testend'));
+ routerWaitService.setLoading(false);
+ spectator.detectChanges();
+
+ attempts = 0;
+ while (spectator.component.progressLevel !== 100 && attempts < 50) {
+ await new Promise(resolve => setTimeout(resolve, 10));
+ spectator.detectChanges();
+ attempts++;
+ }
expect(spectator.component.progressLevel).toBe(100);
- timer(2).subscribe(() => {
- expect(spectator.component.progressLevel).toBe(0);
- done();
- });
+ await firstValueFrom(timer(spectator.component.stopDelay + 10));
+ expect(spectator.component.progressLevel).toBe(0);
});
describe('#startLoading', () => {
- it('should return when isLoading is true', done => {
+ it('should return when isLoading is true', async () => {
spectator.detectChanges();
+
events$.next(new NavigationStart(1, 'test'));
+ spectator.detectChanges();
+
+ let attempts = 0;
+ while (spectator.component.interval.closed && attempts < 50) {
+ await new Promise(resolve => setTimeout(resolve, 10));
+ spectator.detectChanges();
+ attempts++;
+ }
+
events$.next(new NavigationStart(1, 'test'));
- done();
+ spectator.detectChanges();
+
+ expect(spectator.component).toBeTruthy();
});
});
});
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/loading.directive.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/loading.directive.spec.ts
index 91589f2155..f80388d478 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/loading.directive.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/loading.directive.spec.ts
@@ -1,4 +1,4 @@
-import { SpectatorDirective, createDirectiveFactory } from '@ngneat/spectator/jest';
+import { SpectatorDirective, createDirectiveFactory } from '@ngneat/spectator/vitest';
import { LoadingDirective } from '../directives';
import { LoadingComponent } from '../components';
import { Component } from '@angular/core';
@@ -29,10 +29,11 @@ describe('LoadingDirective', () => {
expect(spectator.directive).toBeTruthy();
});
- it('should handle loading input', () => {
- spectator.setHostInput({ loading: false });
- spectator.detectChanges();
+ it('should handle loading input', async () => {
+ spectator.directive.loading = false;
+ await new Promise(resolve => setTimeout(resolve, 10));
expect(spectator.directive).toBeTruthy();
+ expect(spectator.directive.loading).toBe(false);
});
});
@@ -53,19 +54,19 @@ describe('LoadingDirective', () => {
expect(spectator.directive.targetElement).toBe(mockTarget);
});
- it('should handle delay input', () => {
- spectator.setHostInput({ delay: 100 });
- spectator.detectChanges();
+ it('should handle delay input', async () => {
+ spectator.directive.delay = 100;
+ await new Promise(resolve => setTimeout(resolve, 10));
expect(spectator.directive).toBeTruthy();
});
- it('should handle loading state changes', () => {
- spectator.setHostInput({ loading: false });
- spectator.detectChanges();
+ it('should handle loading state changes', async() => {
+ spectator.directive.loading = false;
+ await new Promise(resolve => setTimeout(resolve, 10));
expect(spectator.directive).toBeTruthy();
- spectator.setHostInput({ loading: true });
- spectator.detectChanges();
+ spectator.directive.loading = true;
+ await new Promise(resolve => setTimeout(resolve, 10));
expect(spectator.directive).toBeTruthy();
});
});
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/modal.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/modal.component.spec.ts
index dc79c47a9c..0caef230ca 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/modal.component.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/modal.component.spec.ts
@@ -1,10 +1,11 @@
import { ConfirmationService } from '@abp/ng.theme.shared';
import { CoreTestingModule } from '@abp/ng.core/testing';
import { Component, EventEmitter, Input } from '@angular/core';
-import { createComponentFactory, Spectator } from '@ngneat/spectator/jest';
+import { createComponentFactory, Spectator } from '@ngneat/spectator/vitest';
import { Confirmation } from '@abp/ng.theme.shared';
-import { Subject, timer } from 'rxjs';
+import { firstValueFrom, Subject, timer } from 'rxjs';
import { ModalComponent } from '../components/modal/modal.component';
+import { setupComponentResources } from './utils';
@Component({
template: `
@@ -27,25 +28,34 @@ class TestHostComponent {
}
const mockConfirmation$ = new Subject();
-const disappearFn = jest.fn();
+const disappearFn = vi.fn();
describe('ModalComponent', () => {
let spectator: Spectator;
+ let createComponent: ReturnType>;
- const createComponent = createComponentFactory({
- component: TestHostComponent,
- imports: [CoreTestingModule.withConfig()],
- providers: [
- {
- provide: ConfirmationService,
- useValue: {
- warn: jest.fn(() => mockConfirmation$),
- },
- },
- ],
- });
+ beforeAll(() => setupComponentResources('../components/modal', import.meta.url));
beforeEach(() => {
+ // Create component factory in beforeEach to ensure beforeAll has run
+ if (!createComponent) {
+ createComponent = createComponentFactory({
+ component: TestHostComponent,
+ imports: [
+ CoreTestingModule.withConfig(),
+ ModalComponent,
+ ],
+ providers: [
+ {
+ provide: ConfirmationService,
+ useValue: {
+ warn: vi.fn(() => mockConfirmation$),
+ },
+ },
+ ],
+ });
+ }
+
spectator = createComponent();
disappearFn.mockClear();
});
@@ -71,10 +81,10 @@ describe('ModalComponent', () => {
});
});
-async function wait0ms() {
- await timer(0).toPromise();
+async function wait0ms() {
+ await firstValueFrom(timer(0));
}
-async function wait300ms() {
- await timer(300).toPromise();
+async function wait300ms() {
+ await firstValueFrom(timer(300));
}
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/toaster.service.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/toaster.service.spec.ts
index ae008d73ee..401da50070 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/toaster.service.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/toaster.service.spec.ts
@@ -1,23 +1,25 @@
-import { CoreTestingModule } from '@abp/ng.core/testing';
-import { NgModule } from '@angular/core';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { ContentProjectionService } from '@abp/ng.core';
+import { ComponentRef } from '@angular/core';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/vitest';
+import { beforeEach, describe, expect, test, vi } from 'vitest';
import { ToastContainerComponent } from '../components/toast-container/toast-container.component';
-import { ToastComponent } from '../components/toast/toast.component';
import { ToasterService } from '../services/toaster.service';
-@NgModule({
- exports: [ToastContainerComponent],
- declarations: [],
- imports: [CoreTestingModule.withConfig(), ToastContainerComponent, ToastComponent],
-})
-export class MockModule {}
-
describe('ToasterService', () => {
let spectator: SpectatorService;
let service: ToasterService;
+ const mockComponentRef = {
+ changeDetectorRef: { detectChanges: vi.fn() },
+ instance: {} as ToastContainerComponent,
+ } as unknown as ComponentRef;
+
+ const contentProjectionService = {
+ projectContent: vi.fn().mockReturnValue(mockComponentRef),
+ } satisfies Partial;
+
const createService = createServiceFactory({
service: ToasterService,
- imports: [CoreTestingModule.withConfig(), MockModule],
+ providers: [{ provide: ContentProjectionService, useValue: contentProjectionService }],
});
beforeEach(() => {
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/utils/index.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/utils/index.ts
new file mode 100644
index 0000000000..73b11724ec
--- /dev/null
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/utils/index.ts
@@ -0,0 +1 @@
+export * from './setup-component-resources';
\ No newline at end of file
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/utils/setup-component-resources.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/utils/setup-component-resources.ts
new file mode 100644
index 0000000000..0795a5e32b
--- /dev/null
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/utils/setup-component-resources.ts
@@ -0,0 +1,54 @@
+import { readFileSync } from 'node:fs';
+import { resolve, dirname } from 'node:path';
+import { fileURLToPath } from 'node:url';
+
+/**
+ * Sets up component resource resolution for Angular component tests.
+ * This is needed when components have external templates or stylesheets.
+ *
+ * @param componentDirPath - The path to the component directory relative to the test file.
+ * For example: '../components/loader-bar' or './components/my-component'
+ * @param testFileUrl - The import.meta.url from the test file. Defaults to the caller's location.
+ *
+ * @example
+ * ```typescript
+ *
+ * import { setupComponentResources } from './utils';
+ *
+ * beforeAll(() => setupComponentResources('../components/loader-bar', import.meta.url));
+ * ```
+ */
+export async function setupComponentResources(
+ componentDirPath: string,
+ testFileUrl: string = import.meta.url,
+): Promise {
+ try {
+ if (typeof process !== 'undefined' && process.versions?.node) {
+ const { ɵresolveComponentResources: resolveComponentResources } = await import('@angular/core');
+
+ // Get the test file directory path
+ const testFileDir = dirname(fileURLToPath(testFileUrl));
+ const componentDir = resolve(testFileDir, componentDirPath);
+
+ await resolveComponentResources((url: string) => {
+ // For SCSS/SASS files, return empty CSS since jsdom can't parse SCSS
+ if (url.endsWith('.scss') || url.endsWith('.sass')) {
+ return Promise.resolve('');
+ }
+
+ // For other files (HTML, CSS, etc.), read the actual content
+ try {
+ // Resolve relative paths like './component.scss' or 'component.scss'
+ const normalizedUrl = url.replace(/^\.\//, '');
+ const filePath = resolve(componentDir, normalizedUrl);
+ return Promise.resolve(readFileSync(filePath, 'utf-8'));
+ } catch (error) {
+ // If file not found, return empty string
+ return Promise.resolve('');
+ }
+ });
+ }
+ } catch (error) {
+ console.warn('Failed to set up component resource resolver:', error);
+ }
+}
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/validation-utils.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/validation-utils.spec.ts
index 9f263779e2..1fcd5c3591 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/validation-utils.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/validation-utils.spec.ts
@@ -1,8 +1,9 @@
import { AbpApplicationConfigurationService, ConfigStateService } from '@abp/ng.core';
import { CoreTestingModule } from '@abp/ng.core/testing';
+import { AbpApplicationLocalizationService } from '@abp/ng.core';
import { HttpClient } from '@angular/common/http';
import { Component, Injector } from '@angular/core';
-import { createComponentFactory, Spectator } from '@ngneat/spectator/jest';
+import { createComponentFactory, Spectator } from '@ngneat/spectator/vitest';
import { OAuthService } from 'angular-oauth2-oidc';
import { of } from 'rxjs';
import { getPasswordValidators, validatePassword } from '../utils';
@@ -32,6 +33,44 @@ describe('ValidationUtils', () => {
'Abp.Identity.Password.RequireDigit': 'True',
},
},
+ localization: {
+ values: {},
+ languages: [],
+ currentCulture: {
+ cultureName: 'en',
+ displayName: 'English',
+ englishName: 'English',
+ threeLetterIsoLanguageName: 'eng',
+ twoLetterIsoLanguageName: 'en',
+ isRightToLeft: false,
+ name: 'en',
+ nativeName: 'English',
+ dateTimeFormat: {
+ calendarAlgorithmType: 'SolarCalendar',
+ dateTimeFormatLong: 'dddd, MMMM d, yyyy',
+ shortDatePattern: 'M/d/yyyy',
+ fullDateTimePattern: 'dddd, MMMM d, yyyy h:mm:ss tt',
+ dateSeparator: '/',
+ shortTimePattern: 'h:mm tt',
+ longTimePattern: 'h:mm:ss tt',
+ },
+ },
+ defaultResourceName: null,
+ resources: {},
+ languagesMap: {},
+ languageFilesMap: {},
+ },
+ }),
+ },
+ },
+ {
+ provide: AbpApplicationLocalizationService,
+ useValue: {
+ get: () =>
+ of({
+ resources: {
+ Default: { texts: {}, baseResources: [] },
+ },
}),
},
},
diff --git a/npm/ng-packs/packages/theme-shared/src/test-setup.ts b/npm/ng-packs/packages/theme-shared/src/test-setup.ts
index 2cf1ac7191..3eaa53b84d 100644
--- a/npm/ng-packs/packages/theme-shared/src/test-setup.ts
+++ b/npm/ng-packs/packages/theme-shared/src/test-setup.ts
@@ -1,10 +1,28 @@
-import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone';
-setupZoneTestEnv();
-
-const originalError = console.error;
-console.error = (...args: any[]) => {
- if (args[0]?.includes?.('ExpressionChangedAfterItHasBeenCheckedError')) {
- return;
- }
- originalError.apply(console, args);
-};
+import '@angular/compiler';
+import 'zone.js';
+import 'zone.js/testing';
+import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing';
+import {
+ ɵgetCleanupHook as getCleanupHook,
+ getTestBed
+} from '@angular/core/testing';
+
+
+beforeEach(getCleanupHook(false));
+afterEach(getCleanupHook(true));
+
+// Initialize Angular testing environment
+getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting());
+
+
+// Mock window.location for test environment
+Object.defineProperty(window, 'location', {
+ value: {
+ href: 'http://localhost:4200',
+ origin: 'http://localhost:4200',
+ pathname: '/',
+ search: '',
+ hash: '',
+ },
+ writable: true,
+});
diff --git a/npm/ng-packs/packages/theme-shared/tsconfig.lib.json b/npm/ng-packs/packages/theme-shared/tsconfig.lib.json
index 22d2695db8..80ebc37002 100644
--- a/npm/ng-packs/packages/theme-shared/tsconfig.lib.json
+++ b/npm/ng-packs/packages/theme-shared/tsconfig.lib.json
@@ -10,6 +10,23 @@
"lib": ["dom", "es2020"],
"useDefineForClassFields": false
},
- "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
+ "exclude": [
+ "src/test-setup.ts",
+ "**/*.spec.ts",
+ "jest.config.ts",
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/test-setup.ts"
+ ],
"include": ["**/*.ts"]
}
diff --git a/npm/ng-packs/packages/theme-shared/tsconfig.spec.json b/npm/ng-packs/packages/theme-shared/tsconfig.spec.json
index 023d7d0b51..fc61345bb3 100644
--- a/npm/ng-packs/packages/theme-shared/tsconfig.spec.json
+++ b/npm/ng-packs/packages/theme-shared/tsconfig.spec.json
@@ -2,10 +2,22 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "types": ["jest", "node"],
- "esModuleInterop": true
+ "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"]
},
- "files": ["src/test-setup.ts"],
- "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"]
+ "include": [
+ "vite.config.ts",
+ "vite.config.mts",
+ "vitest.config.ts",
+ "vitest.config.mts",
+ "src/**/*.test.ts",
+ "src/**/*.spec.ts",
+ "src/**/*.test.tsx",
+ "src/**/*.spec.tsx",
+ "src/**/*.test.js",
+ "src/**/*.spec.js",
+ "src/**/*.test.jsx",
+ "src/**/*.spec.jsx",
+ "src/**/*.d.ts"
+ ],
+ "files": ["src/test-setup.ts"]
}
diff --git a/npm/ng-packs/packages/theme-shared/vitest.config.mts b/npm/ng-packs/packages/theme-shared/vitest.config.mts
new file mode 100644
index 0000000000..d9496b26fd
--- /dev/null
+++ b/npm/ng-packs/packages/theme-shared/vitest.config.mts
@@ -0,0 +1,22 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
+
+export default defineConfig(() => ({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/theme-shared',
+ plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
+ test: {
+ name: 'theme-shared',
+ watch: false,
+ globals: true,
+ environment: 'jsdom',
+ setupFiles: ['src/test-setup.ts'],
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/theme-shared',
+ provider: 'v8' as const,
+ },
+ },
+}));
diff --git a/npm/ng-packs/vitest.config.mts b/npm/ng-packs/vitest.config.mts
new file mode 100644
index 0000000000..f239d0bfce
--- /dev/null
+++ b/npm/ng-packs/vitest.config.mts
@@ -0,0 +1,14 @@
+import { defineConfig } from 'vitest/config';
+
+export default defineConfig({
+ test: {
+ projects: [
+ './packages/core/vitest.config.mts',
+ './packages/theme-basic/vitest.config.mts',
+ './packages/theme-shared/vitest.config.mts',
+ './packages/oauth/vitest.config.mts',
+ './packages/generators/vitest.config.mts',
+ './packages/schematics/vitest.config.mts',
+ ],
+ },
+});
\ No newline at end of file
diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json
index a724d54f0c..66c70614a8 100644
--- a/npm/packs/anchor-js/package.json
+++ b/npm/packs/anchor-js/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/anchor-js",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"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 70bb2995e3..d566c60e3a 100644
--- a/npm/packs/aspnetcore.components.server.basictheme/package.json
+++ b/npm/packs/aspnetcore.components.server.basictheme/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/aspnetcore.components.server.basictheme",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/aspnetcore.components.server.theming": "~10.1.0-rc.1"
+ "@abp/aspnetcore.components.server.theming": "~10.1.0-rc.2"
},
"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 7a030be39b..5b98884eb5 100644
--- a/npm/packs/aspnetcore.components.server.theming/package.json
+++ b/npm/packs/aspnetcore.components.server.theming/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/aspnetcore.components.server.theming",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/bootstrap": "~10.1.0-rc.1",
- "@abp/font-awesome": "~10.1.0-rc.1"
+ "@abp/bootstrap": "~10.1.0-rc.2",
+ "@abp/font-awesome": "~10.1.0-rc.2"
},
"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 f8d0adf403..be30febb4a 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/aspnetcore.mvc.ui.theme.basic",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.shared": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.shared": "~10.1.0-rc.2"
},
"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 a3eaa17ffc..6ae988d842 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/aspnetcore.mvc.ui.theme.shared",
"repository": {
"type": "git",
@@ -10,20 +10,20 @@
"access": "public"
},
"dependencies": {
- "@abp/aspnetcore.mvc.ui": "~10.1.0-rc.1",
- "@abp/bootstrap": "~10.1.0-rc.1",
- "@abp/bootstrap-datepicker": "~10.1.0-rc.1",
- "@abp/bootstrap-daterangepicker": "~10.1.0-rc.1",
- "@abp/datatables.net-bs5": "~10.1.0-rc.1",
- "@abp/font-awesome": "~10.1.0-rc.1",
- "@abp/jquery-validation-unobtrusive": "~10.1.0-rc.1",
- "@abp/lodash": "~10.1.0-rc.1",
- "@abp/luxon": "~10.1.0-rc.1",
- "@abp/malihu-custom-scrollbar-plugin": "~10.1.0-rc.1",
- "@abp/moment": "~10.1.0-rc.1",
- "@abp/select2": "~10.1.0-rc.1",
- "@abp/sweetalert2": "~10.1.0-rc.1",
- "@abp/timeago": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui": "~10.1.0-rc.2",
+ "@abp/bootstrap": "~10.1.0-rc.2",
+ "@abp/bootstrap-datepicker": "~10.1.0-rc.2",
+ "@abp/bootstrap-daterangepicker": "~10.1.0-rc.2",
+ "@abp/datatables.net-bs5": "~10.1.0-rc.2",
+ "@abp/font-awesome": "~10.1.0-rc.2",
+ "@abp/jquery-validation-unobtrusive": "~10.1.0-rc.2",
+ "@abp/lodash": "~10.1.0-rc.2",
+ "@abp/luxon": "~10.1.0-rc.2",
+ "@abp/malihu-custom-scrollbar-plugin": "~10.1.0-rc.2",
+ "@abp/moment": "~10.1.0-rc.2",
+ "@abp/select2": "~10.1.0-rc.2",
+ "@abp/sweetalert2": "~10.1.0-rc.2",
+ "@abp/timeago": "~10.1.0-rc.2"
},
"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 8f14281b63..3ec3578119 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": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json
index e7eb9e8998..52fe871c52 100644
--- a/npm/packs/aspnetcore.mvc.ui/package.json
+++ b/npm/packs/aspnetcore.mvc.ui/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/aspnetcore.mvc.ui",
"repository": {
"type": "git",
diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json
index 84b9570c6d..94be08cdb9 100644
--- a/npm/packs/blogging/package.json
+++ b/npm/packs/blogging/package.json
@@ -1,14 +1,14 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/blogging",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.shared": "~10.1.0-rc.1",
- "@abp/owl.carousel": "~10.1.0-rc.1",
- "@abp/prismjs": "~10.1.0-rc.1",
- "@abp/tui-editor": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.shared": "~10.1.0-rc.2",
+ "@abp/owl.carousel": "~10.1.0-rc.2",
+ "@abp/prismjs": "~10.1.0-rc.2",
+ "@abp/tui-editor": "~10.1.0-rc.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json
index ab658627b6..48241bfb07 100644
--- a/npm/packs/bootstrap-datepicker/package.json
+++ b/npm/packs/bootstrap-datepicker/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/bootstrap-datepicker",
"repository": {
"type": "git",
diff --git a/npm/packs/bootstrap-daterangepicker/package.json b/npm/packs/bootstrap-daterangepicker/package.json
index 9665430bf6..db50563d6d 100644
--- a/npm/packs/bootstrap-daterangepicker/package.json
+++ b/npm/packs/bootstrap-daterangepicker/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/bootstrap-daterangepicker",
"repository": {
"type": "git",
diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json
index 09740ccaaf..479f04b7a1 100644
--- a/npm/packs/bootstrap/package.json
+++ b/npm/packs/bootstrap/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/bootstrap",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"bootstrap": "^5.3.8"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json
index d50cab9c5a..6f3148b0e3 100644
--- a/npm/packs/chart.js/package.json
+++ b/npm/packs/chart.js/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/chart.js",
"publishConfig": {
"access": "public"
diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json
index c0df8a5a7e..64c7810dda 100644
--- a/npm/packs/clipboard/package.json
+++ b/npm/packs/clipboard/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/clipboard",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"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 dd766d740d..3c9f0b9058 100644
--- a/npm/packs/cms-kit.admin/package.json
+++ b/npm/packs/cms-kit.admin/package.json
@@ -1,16 +1,16 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/cms-kit.admin",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/codemirror": "~10.1.0-rc.1",
- "@abp/jstree": "~10.1.0-rc.1",
- "@abp/markdown-it": "~10.1.0-rc.1",
- "@abp/slugify": "~10.1.0-rc.1",
- "@abp/tui-editor": "~10.1.0-rc.1",
- "@abp/uppy": "~10.1.0-rc.1"
+ "@abp/codemirror": "~10.1.0-rc.2",
+ "@abp/jstree": "~10.1.0-rc.2",
+ "@abp/markdown-it": "~10.1.0-rc.2",
+ "@abp/slugify": "~10.1.0-rc.2",
+ "@abp/tui-editor": "~10.1.0-rc.2",
+ "@abp/uppy": "~10.1.0-rc.2"
},
"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 df6cd51eeb..b7fcf1b540 100644
--- a/npm/packs/cms-kit.public/package.json
+++ b/npm/packs/cms-kit.public/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/cms-kit.public",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/highlight.js": "~10.1.0-rc.1",
- "@abp/star-rating-svg": "~10.1.0-rc.1"
+ "@abp/highlight.js": "~10.1.0-rc.2",
+ "@abp/star-rating-svg": "~10.1.0-rc.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json
index b9dfd566f1..86686216d4 100644
--- a/npm/packs/cms-kit/package.json
+++ b/npm/packs/cms-kit/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/cms-kit",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/cms-kit.admin": "~10.1.0-rc.1",
- "@abp/cms-kit.public": "~10.1.0-rc.1"
+ "@abp/cms-kit.admin": "~10.1.0-rc.2",
+ "@abp/cms-kit.public": "~10.1.0-rc.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json
index b99eab22e2..808bc652ef 100644
--- a/npm/packs/codemirror/package.json
+++ b/npm/packs/codemirror/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/codemirror",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"codemirror": "^5.65.1"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json
index b0eb886bc2..1b0fea5b69 100644
--- a/npm/packs/core/package.json
+++ b/npm/packs/core/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/core",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/utils": "~10.1.0-rc.1"
+ "@abp/utils": "~10.1.0-rc.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json
index 2854de1d11..8732cf5faf 100644
--- a/npm/packs/cropperjs/package.json
+++ b/npm/packs/cropperjs/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/cropperjs",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"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 0926a48ecf..18b00a2cf9 100644
--- a/npm/packs/datatables.net-bs4/package.json
+++ b/npm/packs/datatables.net-bs4/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/datatables.net-bs4",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/datatables.net": "~10.1.0-rc.1",
+ "@abp/datatables.net": "~10.1.0-rc.2",
"datatables.net-bs4": "^2.3.4"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/datatables.net-bs5/package.json b/npm/packs/datatables.net-bs5/package.json
index 123788db08..19c71ea013 100644
--- a/npm/packs/datatables.net-bs5/package.json
+++ b/npm/packs/datatables.net-bs5/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/datatables.net-bs5",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/datatables.net": "~10.1.0-rc.1",
+ "@abp/datatables.net": "~10.1.0-rc.2",
"datatables.net-bs5": "^2.3.4"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json
index 5bf27eef15..d0f0c240e4 100644
--- a/npm/packs/datatables.net/package.json
+++ b/npm/packs/datatables.net/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/datatables.net",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.1.0-rc.1",
+ "@abp/jquery": "~10.1.0-rc.2",
"datatables.net": "^2.3.4"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json
index 70cb820497..cafd0f48bb 100644
--- a/npm/packs/docs/package.json
+++ b/npm/packs/docs/package.json
@@ -1,15 +1,15 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/docs",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/anchor-js": "~10.1.0-rc.1",
- "@abp/clipboard": "~10.1.0-rc.1",
- "@abp/malihu-custom-scrollbar-plugin": "~10.1.0-rc.1",
- "@abp/popper.js": "~10.1.0-rc.1",
- "@abp/prismjs": "~10.1.0-rc.1"
+ "@abp/anchor-js": "~10.1.0-rc.2",
+ "@abp/clipboard": "~10.1.0-rc.2",
+ "@abp/malihu-custom-scrollbar-plugin": "~10.1.0-rc.2",
+ "@abp/popper.js": "~10.1.0-rc.2",
+ "@abp/prismjs": "~10.1.0-rc.2"
},
"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 cc9d848dbf..cd5cdec40f 100644
--- a/npm/packs/flag-icon-css/package.json
+++ b/npm/packs/flag-icon-css/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"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 d816a32cb8..fba66cb6bb 100644
--- a/npm/packs/flag-icons/package.json
+++ b/npm/packs/flag-icons/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/flag-icons",
"publishConfig": {
"access": "public"
diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json
index b1e929dfc1..41f0c12daf 100644
--- a/npm/packs/font-awesome/package.json
+++ b/npm/packs/font-awesome/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/font-awesome",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"@fortawesome/fontawesome-free": "^7.0.1"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json
index e1550cd6fa..922abc3da8 100644
--- a/npm/packs/highlight.js/package.json
+++ b/npm/packs/highlight.js/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/highlight.js",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"@highlightjs/cdn-assets": "~11.11.1"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json
index 89224eb103..9682e9c275 100644
--- a/npm/packs/jquery-form/package.json
+++ b/npm/packs/jquery-form/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/jquery-form",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.1.0-rc.1",
+ "@abp/jquery": "~10.1.0-rc.2",
"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 8f97a5f5cc..34ce45bf1c 100644
--- a/npm/packs/jquery-validation-unobtrusive/package.json
+++ b/npm/packs/jquery-validation-unobtrusive/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/jquery-validation-unobtrusive",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery-validation": "~10.1.0-rc.1",
+ "@abp/jquery-validation": "~10.1.0-rc.2",
"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 a3191c5fde..4cad463ff2 100644
--- a/npm/packs/jquery-validation/package.json
+++ b/npm/packs/jquery-validation/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/jquery-validation",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.1.0-rc.1",
+ "@abp/jquery": "~10.1.0-rc.2",
"jquery-validation": "^1.21.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json
index ebf031a36a..4a4f7f0aa7 100644
--- a/npm/packs/jquery/package.json
+++ b/npm/packs/jquery/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/jquery",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"jquery": "~3.7.1"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json
index 7807ed4a19..24e1786cb7 100644
--- a/npm/packs/jstree/package.json
+++ b/npm/packs/jstree/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/jstree",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.1.0-rc.1",
+ "@abp/jquery": "~10.1.0-rc.2",
"jstree": "^3.3.17"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json
index 103906cd55..64050e87fc 100644
--- a/npm/packs/lodash/package.json
+++ b/npm/packs/lodash/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/lodash",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"lodash": "^4.17.21"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json
index 5dae9a5a85..29d4dbb782 100644
--- a/npm/packs/luxon/package.json
+++ b/npm/packs/luxon/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/luxon",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"luxon": "^3.7.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json
index 06975481eb..1f291f26ca 100644
--- a/npm/packs/malihu-custom-scrollbar-plugin/package.json
+++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/malihu-custom-scrollbar-plugin",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"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 a28b9de901..fb554e3883 100644
--- a/npm/packs/markdown-it/package.json
+++ b/npm/packs/markdown-it/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/markdown-it",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"markdown-it": "^14.1.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/moment/package.json b/npm/packs/moment/package.json
index cd16f299d4..b0f2c78e4e 100644
--- a/npm/packs/moment/package.json
+++ b/npm/packs/moment/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/moment",
"repository": {
"type": "git",
diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json
index c309f41281..5044c2fbe0 100644
--- a/npm/packs/owl.carousel/package.json
+++ b/npm/packs/owl.carousel/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/owl.carousel",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"owl.carousel": "^2.3.4"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json
index 12b602ce74..cc86b2e2ea 100644
--- a/npm/packs/popper.js/package.json
+++ b/npm/packs/popper.js/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/popper.js",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"@popperjs/core": "^2.11.8"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json
index cb6bb52ca2..0e83b34e7f 100644
--- a/npm/packs/prismjs/package.json
+++ b/npm/packs/prismjs/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/prismjs",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/clipboard": "~10.1.0-rc.1",
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/clipboard": "~10.1.0-rc.2",
+ "@abp/core": "~10.1.0-rc.2",
"prismjs": "^1.30.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/qrcode/package.json b/npm/packs/qrcode/package.json
index 7c377d613b..ad766dc992 100644
--- a/npm/packs/qrcode/package.json
+++ b/npm/packs/qrcode/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/qrcode",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1"
+ "@abp/core": "~10.1.0-rc.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json
index 0debab3ce4..caf990f633 100644
--- a/npm/packs/select2/package.json
+++ b/npm/packs/select2/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/select2",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"select2": "^4.0.13"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json
index ae28a9909b..c22f2b18b2 100644
--- a/npm/packs/signalr/package.json
+++ b/npm/packs/signalr/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/signalr",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"@microsoft/signalr": "~9.0.6"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/slugify/package.json b/npm/packs/slugify/package.json
index b2cba9a511..9d596d6589 100644
--- a/npm/packs/slugify/package.json
+++ b/npm/packs/slugify/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"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 b3d55ca095..00531dcdec 100644
--- a/npm/packs/star-rating-svg/package.json
+++ b/npm/packs/star-rating-svg/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/star-rating-svg",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.1.0-rc.1",
+ "@abp/jquery": "~10.1.0-rc.2",
"star-rating-svg": "^3.5.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/sweetalert2/package.json b/npm/packs/sweetalert2/package.json
index 1c0109ceb9..236fa38a7e 100644
--- a/npm/packs/sweetalert2/package.json
+++ b/npm/packs/sweetalert2/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/sweetalert2",
"publishConfig": {
"access": "public"
@@ -10,7 +10,7 @@
"directory": "npm/packs/sweetalert2"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"sweetalert2": "^11.23.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json
index 4f2d1ed933..22f0d3ced5 100644
--- a/npm/packs/timeago/package.json
+++ b/npm/packs/timeago/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/timeago",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.1.0-rc.1",
+ "@abp/jquery": "~10.1.0-rc.2",
"timeago": "^1.6.7"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json
index 68e876d12a..c18fcd70e9 100644
--- a/npm/packs/toastr/package.json
+++ b/npm/packs/toastr/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/toastr",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.1.0-rc.1",
+ "@abp/jquery": "~10.1.0-rc.2",
"toastr": "^2.1.4"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json
index 326821ed0f..1d18b7aab0 100644
--- a/npm/packs/tui-editor/package.json
+++ b/npm/packs/tui-editor/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/tui-editor",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.1.0-rc.1",
- "@abp/prismjs": "~10.1.0-rc.1"
+ "@abp/jquery": "~10.1.0-rc.2",
+ "@abp/prismjs": "~10.1.0-rc.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json
index ec3d2a1874..6443c16bf9 100644
--- a/npm/packs/uppy/package.json
+++ b/npm/packs/uppy/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/uppy",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"uppy": "^5.1.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json
index 8ff049e666..9a059db2d8 100644
--- a/npm/packs/utils/package.json
+++ b/npm/packs/utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@abp/utils",
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"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 01e18833a5..30c837454b 100644
--- a/npm/packs/vee-validate/package.json
+++ b/npm/packs/vee-validate/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/vee-validate",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/vue": "~10.1.0-rc.1",
+ "@abp/vue": "~10.1.0-rc.2",
"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 b7f90f10d4..0672075f5b 100644
--- a/npm/packs/virtual-file-explorer/package.json
+++ b/npm/packs/virtual-file-explorer/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/virtual-file-explorer",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/clipboard": "~10.1.0-rc.1",
- "@abp/prismjs": "~10.1.0-rc.1"
+ "@abp/clipboard": "~10.1.0-rc.2",
+ "@abp/prismjs": "~10.1.0-rc.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json
index 448b28d90e..fb878bd9cf 100644
--- a/npm/packs/vue/package.json
+++ b/npm/packs/vue/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/vue",
"publishConfig": {
"access": "public"
diff --git a/npm/packs/zxcvbn/package.json b/npm/packs/zxcvbn/package.json
index 1e2d605713..882d8db35f 100644
--- a/npm/packs/zxcvbn/package.json
+++ b/npm/packs/zxcvbn/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.1.0-rc.1",
+ "version": "10.1.0-rc.2",
"name": "@abp/zxcvbn",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.1.0-rc.1",
+ "@abp/core": "~10.1.0-rc.2",
"zxcvbn": "^4.4.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
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 24b416324c..5b64147a89 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 ad29ac0b58..0919ab4bab 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 af2e3855cc..8322813f0e 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.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip
index 2bb029f0d9..edac4d8f20 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 21ff64871d..fcc3980ea7 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 53dde17252..30d07ea91a 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 17ed9b3e17..19dc79216c 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 6bbd76d1a8..3a79b434bc 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 5418d13391..570d22f3a9 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 05d38f535a..469b0b5584 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 ecde418a39..44d7739eff 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 73eb96532b..1925c724ea 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 14ad32da46..56f1cd2acf 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 abc34eb4f1..6081d1e39b 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.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip
index 9625f31821..c508876724 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 54b5da7948..d80581ad13 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 b1ea75904b..cc5bb073f6 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": "~10.1.0-rc.1",
- "@abp/ng.components": "~10.1.0-rc.1",
- "@abp/ng.core": "~10.1.0-rc.1",
- "@abp/ng.identity": "~10.1.0-rc.1",
- "@abp/ng.oauth": "~10.1.0-rc.1",
- "@abp/ng.setting-management": "~10.1.0-rc.1",
- "@abp/ng.tenant-management": "~10.1.0-rc.1",
- "@abp/ng.theme.lepton-x": "~5.1.0-rc.1",
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
+ "@abp/ng.account": "~10.1.0-rc.2",
+ "@abp/ng.components": "~10.1.0-rc.2",
+ "@abp/ng.core": "~10.1.0-rc.2",
+ "@abp/ng.identity": "~10.1.0-rc.2",
+ "@abp/ng.oauth": "~10.1.0-rc.2",
+ "@abp/ng.setting-management": "~10.1.0-rc.2",
+ "@abp/ng.tenant-management": "~10.1.0-rc.2",
+ "@abp/ng.theme.lepton-x": "~5.1.0-rc.2",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
"@angular/animations": "~21.0.0",
"@angular/common": "~21.0.0",
"@angular/compiler": "~21.0.0",
@@ -36,7 +36,7 @@
"zone.js": "~0.15.0"
},
"devDependencies": {
- "@abp/ng.schematics": "~10.1.0-rc.1",
+ "@abp/ng.schematics": "~10.1.0-rc.2",
"@angular-eslint/builder": "~21.0.0",
"@angular-eslint/eslint-plugin": "~21.0.0",
"@angular-eslint/eslint-plugin-template": "~21.0.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 1d1d350c2a..3369e91103 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": "~5.1.0-rc.1",
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.1"
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.2",
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2"
}
}
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 63723159e9..05b853bd30 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": "~5.1.0-rc.1",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.2"
}
}
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 b3eb9cb472..ca7fd1e83f 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": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2"
}
}
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 b3eb9cb472..ca7fd1e83f 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": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2"
}
}
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 b3eb9cb472..ca7fd1e83f 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": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2"
}
}
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 b3eb9cb472..ca7fd1e83f 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": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2"
}
}
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 b3eb9cb472..ca7fd1e83f 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": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2"
}
}
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 b3eb9cb472..ca7fd1e83f 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": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2"
}
}
diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json
index e560238e6a..558852f6da 100644
--- a/templates/app/angular/package.json
+++ b/templates/app/angular/package.json
@@ -12,15 +12,15 @@
},
"private": true,
"dependencies": {
- "@abp/ng.account": "~10.1.0-rc.1",
- "@abp/ng.components": "~10.1.0-rc.1",
- "@abp/ng.core": "~10.1.0-rc.1",
- "@abp/ng.identity": "~10.1.0-rc.1",
- "@abp/ng.oauth": "~10.1.0-rc.1",
- "@abp/ng.setting-management": "~10.1.0-rc.1",
- "@abp/ng.tenant-management": "~10.1.0-rc.1",
- "@abp/ng.theme.lepton-x": "~5.1.0-rc.1",
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
+ "@abp/ng.account": "~10.1.0-rc.2",
+ "@abp/ng.components": "~10.1.0-rc.2",
+ "@abp/ng.core": "~10.1.0-rc.2",
+ "@abp/ng.identity": "~10.1.0-rc.2",
+ "@abp/ng.oauth": "~10.1.0-rc.2",
+ "@abp/ng.setting-management": "~10.1.0-rc.2",
+ "@abp/ng.tenant-management": "~10.1.0-rc.2",
+ "@abp/ng.theme.lepton-x": "~5.1.0-rc.2",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
"@angular/animations": "~21.0.0",
"@angular/common": "~21.0.0",
"@angular/compiler": "~21.0.0",
@@ -36,7 +36,7 @@
"zone.js": "~0.15.0"
},
"devDependencies": {
- "@abp/ng.schematics": "~10.1.0-rc.1",
+ "@abp/ng.schematics": "~10.1.0-rc.2",
"@angular-eslint/builder": "~21.0.0",
"@angular-eslint/eslint-plugin": "~21.0.0",
"@angular-eslint/eslint-plugin-template": "~21.0.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 3038ea90ab..f8c0f62c92 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": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2"
}
}
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 63723159e9..05b853bd30 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": "~5.1.0-rc.1",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.2"
}
}
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 63723159e9..05b853bd30 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": "~5.1.0-rc.1",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.2"
}
}
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 63723159e9..05b853bd30 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": "~5.1.0-rc.1",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.2"
}
}
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 63723159e9..05b853bd30 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": "~5.1.0-rc.1",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.2"
}
}
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 b3eb9cb472..ca7fd1e83f 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": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2"
}
}
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 b3eb9cb472..ca7fd1e83f 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": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2"
}
}
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 b3eb9cb472..ca7fd1e83f 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": "~5.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.2"
}
}
diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json
index aac3293e2a..e87956a956 100644
--- a/templates/module/angular/package.json
+++ b/templates/module/angular/package.json
@@ -13,15 +13,15 @@
},
"private": true,
"dependencies": {
- "@abp/ng.account": "~10.1.0-rc.1",
- "@abp/ng.components": "~10.1.0-rc.1",
- "@abp/ng.core": "~10.1.0-rc.1",
- "@abp/ng.identity": "~10.1.0-rc.1",
- "@abp/ng.oauth": "~10.1.0-rc.1",
- "@abp/ng.setting-management": "~10.1.0-rc.1",
- "@abp/ng.tenant-management": "~10.1.0-rc.1",
- "@abp/ng.theme.basic": "~10.1.0-rc.1",
- "@abp/ng.theme.shared": "~10.1.0-rc.1",
+ "@abp/ng.account": "~10.1.0-rc.2",
+ "@abp/ng.components": "~10.1.0-rc.2",
+ "@abp/ng.core": "~10.1.0-rc.2",
+ "@abp/ng.identity": "~10.1.0-rc.2",
+ "@abp/ng.oauth": "~10.1.0-rc.2",
+ "@abp/ng.setting-management": "~10.1.0-rc.2",
+ "@abp/ng.tenant-management": "~10.1.0-rc.2",
+ "@abp/ng.theme.basic": "~10.1.0-rc.2",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2",
"@angular/animations": "~21.0.0",
"@angular/common": "~21.0.0",
"@angular/compiler": "~21.0.0",
@@ -36,7 +36,7 @@
"zone.js": "~0.15.0"
},
"devDependencies": {
- "@abp/ng.schematics": "~10.1.0-rc.1",
+ "@abp/ng.schematics": "~10.1.0-rc.2",
"@angular-eslint/builder": "~21.0.0",
"@angular-eslint/eslint-plugin": "~21.0.0",
"@angular-eslint/eslint-plugin-template": "~21.0.0",
diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json
index aa4b0f95e3..5b2413bd3d 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": "~19.1.0",
"@angular/core": "~19.1.0",
- "@abp/ng.core": "~10.1.0-rc.1",
- "@abp/ng.theme.shared": "~10.1.0-rc.1"
+ "@abp/ng.core": "~10.1.0-rc.2",
+ "@abp/ng.theme.shared": "~10.1.0-rc.2"
},
"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 a437271d58..214f77a570 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": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2"
}
}
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 c4d308a9c7..11a6338595 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": "~10.1.0-rc.1",
- "@abp/aspnetcore.components.server.basictheme": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2",
+ "@abp/aspnetcore.components.server.basictheme": "~10.1.0-rc.2"
}
}
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 881359366e..52a1fc6c21 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": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2"
}
}
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 881359366e..52a1fc6c21 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": "~10.1.0-rc.1"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.2"
}
}