Activities of "Repunjay"

Thanks it was fixed.

Thanks the password seems to be correct. I noticed this issue when try to login thru angular application, please suggest.

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.

  • ABP Framework version: v3.0.4
  • UI type: Angular
  • Tiered (MVC) or Identity Server Seperated (Angular): yes
  • Exception message and stack trace:

2020-09-01 15:54:37.892 +00:00 [INF] Request finished in 12.2568ms 404 text/html; charset=utf-8 2020-09-01 15:54:47.167 +00:00 [INF] Request starting HTTP/1.1 POST http://52.76.27.179/Account/Login application/x-www-form-urlencoded 317 2020-09-01 15:54:47.168 +00:00 [INF] CORS policy execution failed. 2020-09-01 15:54:47.168 +00:00 [INF] Request origin http://52.76.27.179 does not have permission to access the resource. 2020-09-01 15:54:47.172 +00:00 [INF] No CORS policy found for the specified request. 2020-09-01 15:54:47.173 +00:00 [INF] Executing endpoint '/Account/Login' 2020-09-01 15:54:47.175 +00:00 [INF] Route matched with {page = "/Account/Login", area = "", controller = "", action = ""}. Executing page /Account/Login 2020-09-01 15:54:47.206 +00:00 [INF] Executing handler method Volo.Abp.Account.Public.Web.Pages.Account.LoginModel.OnPostAsync - ModelState is "Valid" 2020-09-01 15:54:47.579 +00:00 [WRN] Invalid password for user 5dc0ff50-a197-c0a3-bcbe-39f5d3e999ac. 2020-09-01 15:54:47.580 +00:00 [WRN] User 5dc0ff50-a197-c0a3-bcbe-39f5d3e999ac failed to provide the correct password. 2020-09-01 15:54:47.752 +00:00 [INF] Executed handler method OnPostAsync, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. 2020-09-01 15:54:47.810 +00:00 [INF] Executed page /Account/Login in 635.2435ms 2020-09-01 15:54:47.811 +00:00 [INF] Executed endpoint '/Account/Login' 2020-09-01 15:54:47.936 +00:00 [INF] Request starting HTTP/1.1 GET http://52.76.27.179/__bundles/Lepton.Global.6F3011FF0A55A24A6A8C93BB718D26D8.js?_v=637345724587994221 2020-09-01 15:54:47.937 +00:00 [INF] The file /__bundles/Lepton.Global.6F3011FF0A55A24A6A8C93BB718D26D8.js was not modified 2020-09-01 15:54:47.938 +00:00 [INF] Request finished in 1.5823ms 304 application/javascript 2020-09-01 15:54:47.938 +00:00 [INF] Request starting HTTP/1.1 GET http://52.76.27.179/Abp/ApplicationConfigurationScript 2020-09-01 15:54:47.940 +00:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc)' 2020-09-01 15:54:47.941 +00:00 [INF] Request starting HTTP/1.1 GET http://52.76.27.179/__bundles/Lepton.Global.D83D057CFA4A44472FE618AF093450A8.css?_v=637345724581876537 2020-09-01 15:54:47.941 +00:00 [INF] Request finished in 773.9358ms 200 text/html; charset=utf-8 2020-09-01 15:54:47.941 +00:00 [INF] Route matched with {area = "Abp", action = "Get", controller = "AbpApplicationConfigurationScript", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.ActionResult] Get() on controller Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController (Volo.Abp.AspNetCore.Mvc). 2020-09-01 15:54:47.942 +00:00 [INF] The file /__bundles/Lepton.Global.D83D057CFA4A44472FE618AF093450A8.css was not modified 2020-09-01 15:54:47.942 +00:00 [INF] Request finished in 0.832ms 304 text/css 2020-09-01 15:54:47.942 +00:00 [INF] Request starting HTTP/1.1 GET http://52.76.27.179/Abp/ServiceProxyScript 2020-09-01 15:54:47.944 +00:00 [INF] Authorization failed. 2020-09-01 15:54:47.944 +00:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll (Volo.Abp.AspNetCore.Mvc)' 2020-09-01 15:54:47.944 +00:00 [INF] Authorization failed. 2020-09-01 15:54:47.944 +00:00 [INF] Authorization failed. 2020-09-01 15:54:47.944 +00:00 [INF] Authorization failed. 2020-09-01 15:54:47.945 +00:00 [INF] Authorization failed. 2020-09-01 15:54:47.945 +00:00 [INF] Authorization failed. 2020-09-01 15:54:47.945 +00:00 [INF] Authorization failed. 2020-09-01 15:54:47.945 +00:00 [INF] Authorization failed. 2020-09-01 15:54:47.945 +00:00 [INF] Authorization failed. 2020-09-01 15:54:47.945 +00:00 [INF] Authorization failed.

  • Steps to reproduce the issue:

@yekalkan I tried with steps suggested by you but now getting below error. Also attached are the logs.

`[error] Error: Cannot find module '@angular-devkit/build-angular/package.json' Require stack:

  • C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\node_modules@angular-devkit\architect\node\node-modules-architect-host.js
  • C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\node_modules@angular-devkit\architect\node\index.js
  • C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\models\architect-command.js
  • C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\commands\serve-impl.js
  • C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\node_modules@angular-devkit\schematics\tools\export-ref.js
  • C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\node_modules@angular-devkit\schematics\tools\index.js
  • C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\utilities\json-schema.js
  • C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\models\command-runner.js
  • C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\lib\cli\index.js
  • C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\lib\init.js
  • C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\bin\ng at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15) at Function.resolve (internal/modules/cjs/helpers.js:78:19) at WorkspaceNodeModulesArchitectHost.resolveBuilder (C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\node_modules@angular-devkit\architect\node\node-modules-architect-host.js:41:41) at ServeCommand.initialize (C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\models\architect-command.js:71:63) at async ServeCommand.validateAndRun (C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\models\command.js:124:9) at async Object.runCommand (C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\models\command-runner.js:201:24) at async default_1 (C:\Users\p7110058\AppData\Roaming\npm\node_modules@angular\cli\lib\cli\index.js:62:31)`

I'm not sure where the abp update command output is stored. I tried re-executing the command but it doesn't do anything. Also, attached is the command output in the initial comment against this ticket.

Hi,

Below is the package.json file of Angular project. Note - I referred to following link for migration - https://docs.abp.io/en/abp/latest/UI/Angular/Migration-Guide-v3

{
  "name": "Litmus",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --open",
    "build": "ng build",
    "build:prod": "ng build --configuration production",
    "test": "jest",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "jest": {
    "preset": "jest-preset-angular",
    "setupFilesAfterEnv": [
      "<rootDir>/setupJest.ts"
    ],
    "testPathIgnorePatterns": [
      "<rootDir>/node_modules/",
      "<rootDir>/dist/",
      "<rootDir>/src/test.ts"
    ]
  },
  "dependencies": {
    "@abp/ng.setting-management": "~3.0.4",
    "@angular/animations": "~10.0.5",
    "@angular/cdk": "^10.1.0",
    "@angular/common": "~10.0.5",
    "@angular/compiler": "~10.0.5",
    "@angular/core": "~10.0.5",
    "@angular/forms": "~10.0.5",
    "@angular/material": "^10.1.0",
    "@angular/platform-browser": "~10.0.5",
    "@angular/platform-browser-dynamic": "~10.0.5",
    "@angular/router": "~10.0.5",
    "@types/jest": "^26.0.0",
    "@volo/abp.ng.account": "~3.0.4",
    "@volo/abp.ng.audit-logging": "~3.0.4",
    "@volo/abp.ng.identity": "~3.0.4",
    "@volo/abp.ng.identity-server": "~3.0.4",
    "@volo/abp.ng.language-management": "~3.0.4",
    "@volo/abp.ng.saas": "~3.0.4",
    "@volo/abp.ng.text-template-management": "~3.0.4",
    "@volo/abp.ng.theme.lepton": "~3.0.4",
    "jest": "^26.0.1",
    "jest-preset-angular": "^8.2.1",
    "rxjs": "~6.6.0",
    "tslib": "^2.0.0",
    "zone.js": "~0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.1000.4",
    "@angular-devkit/build-ng-packagr": "~0.1000.4",
    "@angular/cli": "~10.0.4",
    "@angular/compiler-cli": "~10.0.5",
    "@angular/language-service": "~10.0.5",
    "@ngxs/logger-plugin": "^3.6.2",
    "@types/node": "^12.11.1",
    "codelyzer": "^6.0.0",
    "ng-packagr": "^10.0.0",
    "ngxs-schematic": "^1.1.9",
    "ts-node": "~8.3.0",
    "tslint": "~6.1.0",
    "typescript": "~3.9.7"
  },
  "resolutions": {
    "@abp/ng.core": "~2.7.0",
    "@abp/ng.feature-management": "~2.7.0",
    "@abp/ng.theme.shared": "~2.7.0",
    "@abp/ng.permission-management": "~2.7.0",
    "@abp/ng.setting-management.config": "~2.7.0",
    "@abp/utils": "~2.7.0",
    "@volo/abp.commercial.ng.ui": "~2.7.0",
    "@volo/abp.ng.account.config": "~2.7.0",
    "@volo/abp.ng.audit-logging.config": "~2.7.0",
    "@volo/abp.ng.language-management.config": "~2.7.0",
    "@volo/abp.ng.identity-server.config": "~2.7.0",
    "@volo/abp.ng.identity.config": "~2.7.0",
    "@volo/abp.ng.saas.config": "~2.7.0",
    "@volo/abp.ng.text-template-management.config": "~2.7.0"
  }
}

Hi,

I have updated ABP pacakges for aspnet-core solution from version 2.7.0 to 3.0.4 using ABP CLI update command. The packages are updated, compiled successfully and swagger API is running fine. However, when I updated Angular solution using ABP CLI update command, I updated npm modules using yarn command and when I try to run application using yarn start, I'm getting below error, could you please advise on steps to resolve it?

Hi,

Is there a way in ABP.IO to determine user local timezone when they login and based on it display the date and time into local timezone and format? We are storing date and time in GMT+0 in database. Note - the UI is developed in Angular

Thanks & regards, Repunjay

Hi,

Please find below code snippet for one of unit test class. Let me know if need further information.

public class SupplierRegistrationServiceTests : ProfileManagementApplicationTestBase
    {
        private readonly ISupplierRegistrationAppService _supplierRegistrationAppService;
        private readonly ISupplierRegistrationRepository _supplierRegistrationRepository;
        private readonly ISupplierRepository _supplierRepository;
        private readonly ISupplierCodeRepository _supplierCodeRepository;
        private readonly IBusinessEntityRepository _businessEntityRepository;
        private readonly ISupplierUserProfileRepository _supplierUserProfileRepository;

        public SupplierRegistrationServiceTests()
        {
            _supplierRegistrationAppService = GetRequiredService<ISupplierRegistrationAppService>();
            _supplierRegistrationRepository = GetRequiredService<ISupplierRegistrationRepository>();
            _supplierRepository = GetRequiredService<ISupplierRepository>();
            _supplierCodeRepository = GetRequiredService<ISupplierCodeRepository>();
            _businessEntityRepository = GetRequiredService<IBusinessEntityRepository>();
            _supplierUserProfileRepository = GetRequiredService<ISupplierUserProfileRepository>();
        }


        [Fact]
        public async Task RegisterAsync()
        {

            var supplierCodeList = new List<SupplierCodeCreateDto>
            {
                new SupplierCodeCreateDto
                {
                    Code = "24865",
                    IsPrimary = true,
                    SupplierId = Guid.Parse("99255F1D-9A43-4523-A499-96839ABFD423")
                },
                new SupplierCodeCreateDto
                {
                    Code = "17596",
                    IsPrimary = false,
                    SupplierId = Guid.Parse("99255F1D-9A43-4523-A499-96839ABFD423")
                }
            };


            var supplierCreateDto = new SupplierCreateDto
            {
                Name = "Microsoft",
                BusinessEntityId = Guid.Parse("231c8aac-3355-4c8b-84d7-eabb4ceba041"),
                SupplierCodes = supplierCodeList
            };

            var supplierUserProfileCreateDto = new SupplierUserProfileCreateDto
            {
                FirstName = "Bill",
                LastName = "Gate",
                Email = "Bill.Gate@yahoo.com",
                Designation = "Executive",
                PhoneNumber = "99999999",
                IsAdmin = false,
                IsPrimary = true,
                CallingCountryCode = "91",
                PhoneType = PhoneType.Mobile
            };

            var supplierRegistration = new SupplierRegistrationCreateDto
            {
                FinancingModelId = 1,//Need to change later
                TermsAndConditions = true,
                TermsAndConditionsTime = DateTime.Now.Date,
                Supplier = supplierCreateDto
            };

            var input = new SupplierRegistrationProcessDto
            {
                SupplierRegistration = supplierRegistration,
                SupplierUserProfile = supplierUserProfileCreateDto
            };

            // Act
            var serviceResult = await _supplierRegistrationAppService.RegisterAsync(input);

            // Assert
            var result = await _supplierRegistrationRepository.FindAsync(c => c.Id == serviceResult.Id);

            result.ShouldNotBe(null);

            // Assert
            var supplierResult = await _supplierRepository.FindAsync(c => c.Id == result.SupplierId);

            supplierResult.ShouldNotBe(null);
            supplierResult.Name.ShouldBe("Microsoft");
            supplierResult.BusinessEntityId.ShouldBe(Guid.Parse("231c8aac-3355-4c8b-84d7-eabb4ceba041"));

        }
    Also, below is the error - 
    
    
    SCV.Litmus.ProfileManagement.SupplierRegistrations.SupplierRegistrationServiceTests.RegisterAsync

Source: SupplierRegistrationApplicationTests.cs line 37 Duration: 1 ms

Message: Autofac.Core.DependencyResolutionException : An exception was thrown while activating Volo.Abp.EntityFrameworkCore.EntityHistory.EntityHistoryHelper -> SCV.Litmus.ProfileManagement.CustomAuditingStore. ---- Autofac.Core.DependencyResolutionException : None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'SCV.Litmus.ProfileManagement.CustomAuditingStore' can be invoked with the available services and parameters: Cannot resolve parameter 'Volo.Abp.AuditLogging.IAuditLogRepository auditLogRepository' of constructor 'Void .ctor(Volo.Abp.AuditLogging.IAuditLogRepository, Volo.Abp.Guids.IGuidGenerator, Volo.Abp.Uow.IUnitOfWorkManager, Microsoft.Extensions.Options.IOptions1[Volo.Abp.Auditing.AbpAuditingOptions])'. Stack Trace: InstanceLookup.Activate(IEnumerable1 parameters, Object& decoratorTarget) InstanceLookup.Execute() ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable1 parameters) InstanceLookup.ResolveComponent(IComponentRegistration registration, IEnumerable1 parameters) ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable1 parameters, Object& instance) AutowiringPropertyInjector.InjectProperties(IComponentContext context, Object instance, IPropertySelector propertySelector, IEnumerable1 parameters) <>c__DisplayClass34_0.<PropertiesAutowired>b__1(Object s, ActivatingEventArgs1 e) ComponentRegistration.RaiseActivating(IComponentContext context, IEnumerable1 parameters, Object& instance) InstanceLookup.Activate(IEnumerable1 parameters, Object& decoratorTarget) InstanceLookup.Execute() ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable1 parameters) ResolveOperation.ResolveComponent(IComponentRegistration registration, IEnumerable1 parameters) ResolveOperation.Execute(IComponentRegistration registration, IEnumerable1 parameters) LifetimeScope.ResolveComponent(IComponentRegistration registration, IEnumerable1 parameters) ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable1 parameters, Object& instance) ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable1 parameters) ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable1 parameters) ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) AutofacServiceProvider.GetRequiredService(Type serviceType) ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) UnitOfWorkDbContextProvider1.CreateDbContextWithTransaction(IUnitOfWork unitOfWork) UnitOfWorkDbContextProvider1.CreateDbContext(IUnitOfWork unitOfWork) UnitOfWorkDbContextProvider1.CreateDbContext(IUnitOfWork unitOfWork, String connectionStringName, String connectionString) <>c__DisplayClass3_0.<GetDbContext>b__0() <>c__DisplayClass6_02.<GetOrAdd>b__0(TKey k) AbpDictionaryExtensions.GetOrAdd[TKey,TValue](IDictionary2 dictionary, TKey key, Func2 factory) AbpDictionaryExtensions.GetOrAdd[TKey,TValue](IDictionary2 dictionary, TKey key, Func1 factory) UnitOfWork.GetOrAddDatabaseApi(String key, Func1 factory) UnitOfWorkDbContextProvider1.GetDbContext() EfCoreRepository2.get_DbContext() EfCoreRepository2.get_DbSet() EfCoreRepository2.InsertAsync(TEntity entity, Boolean autoSave, CancellationToken cancellationToken) AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) CastleAbpMethodInvocationAdapterWithReturnValue1.ProceedAsync() UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) CastleAsyncAbpInterceptorAdapter1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) SupplierCodeDataSeedContributor.SeedAsync(DataSeedContext context) line 21 DataSeeder.SeedAsync(DataSeedContext context) AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo) CastleAbpMethodInvocationAdapter.ProceedAsync() UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) CastleAsyncAbpInterceptorAdapter1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed) <<SeedTestData>b__0>d.MoveNext() line 35 --- End of stack trace from previous location where exception was thrown --- TaskExtensions.WaitAndUnwrapException(Task task) <>c__DisplayClass15_0.<Run>b__0(Task t) ContinuationTaskFromTask.InnerInvoke() <.cctor>b__274_0(Object obj) ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location where exception was thrown --- ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) --- End of stack trace from previous location where exception was thrown --- TaskExtensions.WaitAndUnwrapException(Task task) AsyncContext.Run(Func1 action) AsyncHelper.RunSync(Func1 action) ProfileManagementTestBaseModule.SeedTestData(ApplicationInitializationContext context) line 31 ProfileManagementTestBaseModule.OnApplicationInitialization(ApplicationInitializationContext context) line 26 OnApplicationInitializationModuleLifecycleContributor.Initialize(ApplicationInitializationContext context, IAbpModule module) ModuleManager.InitializeModules(ApplicationInitializationContext context) AbpApplicationBase.InitializeModules() AbpApplicationWithExternalServiceProvider.Initialize(IServiceProvider serviceProvider) AbpIntegratedTest1.ctor() ProfileManagementTestBase1.ctor() ProfileManagementApplicationTestBase.ctor() SupplierRegistrationServiceTests.ctor() line 25 ----- Inner Stack Trace ----- ReflectionActivator.GetValidConstructorBindings(IComponentContext context, IEnumerable1 parameters) ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable1 parameters) InstanceLookup.Activate(IEnumerable`1 parameters, Object& decoratorTarget)

Hi,

I'm trying to log ABP Audit Log info to AWS CloudWatch using ticket response - https://support.abp.io/QA/Questions/218

[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(IAuditingStore))]
public class CustomAuditingStore : AuditingStore
{
    private readonly LogEventBatch _repo = new LogEventBatch();
    private readonly IAmazonCloudWatchLogs _client;
    private int _requestCount = 5;
    private static readonly Regex InvalidSequenceTokenRegex = new
    Regex(@"The given sequenceToken is invalid. The next expected sequenceToken is: (\d+)");


    public CustomAuditingStore(
    IAuditLogRepository auditLogRepository,
    IGuidGenerator guidGenerator,
    IUnitOfWorkManager unitOfWorkManager,
    IOptions<AbpAuditingOptions> options)
    : base(auditLogRepository, guidGenerator, unitOfWorkManager, options)
    {
        _client = CloudWatchLog.GetClient();
    }

The class CustomAuditStore seems to work just fine in my POC code but when I added it to my main Application project and when I run unit tests, it gives me below error -

Autofac.Core.DependencyResolutionException : An exception was thrown while activating Volo.Abp.EntityFrameworkCore.EntityHistory.EntityHistoryHelper -> ProfileManagement.CustomAuditingStore. ---- Autofac.Core.DependencyResolutionException : None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'ProfileManagement.CustomAuditingStore' can be invoked with the available services and parameters: Cannot resolve parameter 'Volo.Abp.AuditLogging.IAuditLogRepository auditLogRepository' of constructor 'Void .ctor(Volo.Abp.AuditLogging.IAuditLogRepository, Volo.Abp.Guids.IGuidGenerator, Volo.Abp.Uow.IUnitOfWorkManager, Microsoft.Extensions.Options.IOptions`1[Volo.Abp.Auditing.AbpAuditingOptions])'.

Could you please help and advise?

Showing 131 to 140 of 149 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11