Govern Service is a lightweight, low-cost service registration, service discovery, and configuration service SDK. By using Redis in the existing infrastructure (I believe you have already deployed Redis), it doesn’t need to bring extra to the operation and maintenance deployment. Cost and burden. With the high performance of Redis, Govern Service provides ultra-high TPS&QPS (10W+/s JMH Benchmark). Govern Service combines the process cache strategy + Redis PubSub to achieve real-time process cache refresh, with unparalleled QPS performance and real-time consistency between process cache and Redis.
Installation
Gradle
Kotlin DSL
val governVersion ="0.9.13";
implementation("me.ahoo.govern:spring-cloud-starter-config:${governVersion}")
implementation("me.ahoo.govern:spring-cloud-starter-discovery:${governVersion}")
您好,jdk版本11.0.12,redis版本3.2.12 在redis服务器上执行启动命令bin/cosky-rest-api --server.port=8080 --cosky.redis.uri=redis://127.0.0.1:6379,报错连接不上redis。远程main方法使用jedis.2.9.3.jar包测试redis可连接。
报错信息如下
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisConfigService' defined in class path resource [me/ahoo/cosky/config/spring/cloud/CoskyConfigBootstrapConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [me.ahoo.cosky.config.redis.RedisConfigService]: Factory method 'redisConfigService' threw exception; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:771) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:763) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:144) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:197) ~[spring-cloud-context-3.0.3.jar:3.0.3]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:114) ~[spring-cloud-context-3.0.3.jar:3.0.3]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:77) ~[spring-cloud-context-3.0.3.jar:3.0.3]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63) ~[spring-boot-2.4.7.jar:2.4.7]
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) ~[na:na]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:375) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:333) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318) ~[spring-boot-2.4.7.jar:2.4.7]
at me.ahoo.cosky.rest.RestApiServer.main(RestApiServer.java:30) ~[cosky-rest-api-1.2.5.jar:na]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [me.ahoo.cosky.config.redis.RedisConfigService]: Factory method 'redisConfigService' threw exception; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.8.jar:5.3.8]
... 35 common frames omitted
Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:320) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.RedisClient.connect(RedisClient.java:211) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.RedisClient.connect(RedisClient.java:196) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at me.ahoo.cosky.core.redis.RedisConnectionFactory.getConnection(RedisConnectionFactory.java:90) ~[cosky-core-1.2.5.jar:na]
at me.ahoo.cosky.core.redis.RedisConnectionFactory.getShareConnection(RedisConnectionFactory.java:68) ~[cosky-core-1.2.5.jar:na]
at me.ahoo.cosky.core.redis.RedisConnectionFactory.getShareAsyncCommands(RedisConnectionFactory.java:73) ~[cosky-core-1.2.5.jar:na]
at me.ahoo.cosky.config.spring.cloud.CoskyConfigBootstrapConfiguration.redisConfigService(CoskyConfigBootstrapConfiguration.java:57) ~[spring-cloud-starter-cosky-config-1.2.5.jar:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.8.jar:5.3.8]
... 36 common frames omitted
Caused by: io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.
at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:137) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:110) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.CommandWrapper.complete(CommandWrapper.java:63) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:742) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:677) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:594) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.65.Final.jar:4.1.65.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.65.Final.jar:4.1.65.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.65.Final.jar:4.1.65.Final]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisConfigService' defined in class path resource [me/ahoo/cosky/config/spring/cloud/CoskyConfigBootstrapConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [me.ahoo.cosky.config.redis.RedisConfigService]: Factory method 'redisConfigService' threw exception; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:771) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:763) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:144) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:197) ~[spring-cloud-context-3.0.3.jar:3.0.3]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:114) ~[spring-cloud-context-3.0.3.jar:3.0.3]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:77) ~[spring-cloud-context-3.0.3.jar:3.0.3]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131) ~[spring-context-5.3.8.jar:5.3.8]
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63) ~[spring-boot-2.4.7.jar:2.4.7]
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) ~[na:na]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:375) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:333) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) ~[spring-boot-2.4.7.jar:2.4.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318) ~[spring-boot-2.4.7.jar:2.4.7]
at me.ahoo.cosky.rest.RestApiServer.main(RestApiServer.java:30) ~[cosky-rest-api-1.2.5.jar:na]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [me.ahoo.cosky.config.redis.RedisConfigService]: Factory method 'redisConfigService' threw exception; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.8.jar:5.3.8]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.8.jar:5.3.8]
... 35 common frames omitted
Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:320) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.RedisClient.connect(RedisClient.java:211) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.RedisClient.connect(RedisClient.java:196) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at me.ahoo.cosky.core.redis.RedisConnectionFactory.getConnection(RedisConnectionFactory.java:90) ~[cosky-core-1.2.5.jar:na]
at me.ahoo.cosky.core.redis.RedisConnectionFactory.getShareConnection(RedisConnectionFactory.java:68) ~[cosky-core-1.2.5.jar:na]
at me.ahoo.cosky.core.redis.RedisConnectionFactory.getShareAsyncCommands(RedisConnectionFactory.java:73) ~[cosky-core-1.2.5.jar:na]
at me.ahoo.cosky.config.spring.cloud.CoskyConfigBootstrapConfiguration.redisConfigService(CoskyConfigBootstrapConfiguration.java:57) ~[spring-cloud-starter-cosky-config-1.2.5.jar:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.8.jar:5.3.8]
... 36 common frames omitted
Caused by: io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.
at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:137) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:110) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.CommandWrapper.complete(CommandWrapper.java:63) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:742) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:677) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:594) ~[lettuce-core-6.0.5.RELEASE.jar:6.0.5.RELEASE]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[netty-transport-4.1.65.Final.jar:4.1.65.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.65.Final.jar:4.1.65.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.65.Final.jar:4.1.65.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.65.Final.jar:4.1.65.Final]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
| Commit | Type | Description |
| --------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------------- |
| eda96def4 | fix | use global version of the CLI when running ng new |
| Commit | Type | Description |
| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| 48426852b | fix | show warning when a TS Config is not found during migrations |
Removed unused appDir option from Universal and App-Shell schematic. This option can safely be removed if present since it no longer has effect.
analyticsSharing option in the global angular configuration has been
removed without replacement. This option was used to configure the Angular CLI to access to your own users' CLI usage data.
If this option is used, it can be removed using ng config --global cli.analyticsSharing undefined.
analytics APIs have been removed without replacement from @angular-devkit/core and @angular-devkit/architect.
TypeScript versions older than 4.8.2 are no longer supported.
The server builder bundleDependencies option has been removed. This option was used pre Ivy. Currently, using this option is unlikely to produce working server bundles.
The externalDependencies option can be used instead to exclude specific node_module packages from the final bundle.
Deprecated support for tilde import has been removed. Please update the imports by removing the ~.
Before
@​import '~font-awesome/scss/font-awesome';
After
@​import 'font-awesome/scss/font-awesome';
By default the CLI will use Sass modern API, While not recommended, users can still opt to use legacy API by setting NG_BUILD_LEGACY_SASS=1.
Internally the Angular CLI now always set the TypeScript target to ES2022 and useDefineForClassFields to false unless the target is set to ES2022 or later in the TypeScript configuration. To control ECMA version and features use the Browerslist configuration.
require.context are no longer parsed. Webpack specific features are not supported nor guaranteed to work in the future.
Producing ES5 output is no longer possible. This was needed for Internet Explorer which is no longer supported. All browsers that Angular supports work with ES2015+
server builder bundleDependencies option now only accept a boolean value.
Deprecated support for Stylus has been removed. The Stylus package has never reached a stable version and its usage in the Angular CLI is minimal. It's recommended to migrate to another CSS preprocessor that the Angular CLI supports.
| Commit | Type | Description |
| --------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
| 4827d1b23 | feat | add support for Node.js version 18 |
| 4b623461a | feat | drop support for Node.js versions older than 14.20 |
| 3dea1fa71 | fix | add unique user id as user parameter in GA |
| af07aa340 | fix | add workspace information as part of analytics collection |
| 83524f625 | fix | allow ng add to find prerelease versions when CLI is prerelease |
| 22955f245 | fix | do not collect analytics when running in non TTY mode |
| 35e5f4278 | fix | exclude @angular/localize@<10.0.0 from ng add pa… (#24152) |
| 1a584364e | fix | exclude @angular/[email protected] from ng add package discovery |
| ff0382718 | fix | respect registry in RC when running update through yarn |
| 774d349b7 | refactor | remove deprecated path handler |
| Commit | Type | Description |
| --------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------- |
| 639a3071c | refactor | migrate analytics collector to use GA4 |
| c969152de | refactor | remove analytics API from core and architect |
| Commit | Type | Description |
| --------------------------------------------------------------------------------------------------- | ---- | -------------------------------------------------------------------------- |
| 43bd0abc1 | feat | drop support for TypeScript 4.6 and 4.7 |
| 1c1f985b9 | fix | support inline style sourcemaps when using css-loader for component styles |
Special Thanks
Alan Agius, Brent Schmidt, Charles Lyding, Cédric Exbrayat, Dariusz Ostolski, Doug Parker, Günhan Gülsoy, Jason Bedard, Lukas Spirig, Ruslan Lekhman, angular-robot[bot] and minijus
| Commit | Type | Description |
| --------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------------- |
| e3e787767 | fix | default to failure if no builder result is provided |
| Commit | Type | Description |
| --------------------------------------------------------------------------------------------------- | ---- | ---------------------------------------------- |
| 596037010 | fix | add missing space after period in warning text |
| Commit | Type | Description |
| --------------------------------------------------------------------------------------------------- | ---- | ---------------------------------------------------------------- |
| dd47a5e8c | fix | elide type only named imports when using emitDecoratorMetadata |
Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, BrowserPerson, Jens, Jessica Janiuk, Joey Perrott, JoostK, Konstantin Kharitonov, Lukas Matta, Piotr Kowalski, Virginia Dooley, Yannick Baron, dario-piotrowicz, lsst25, piyush132000 and why520crazy
| Commit | Type | Description |
| -- | -- | -- |
| 50b1c2bf52 | fix | Don't generate srcsets with very large sources (#47997) |
| bf44dc234a | fix | Update Location to support base href containing origin (#48327) |
compiler
| Commit | Type | Description |
| -- | -- | -- |
| 9a5d84249a | fix | make sure selectors inside container queries are correctly scoped (#48353) |
compiler-cli
| Commit | Type | Description |
| -- | -- | -- |
| 167bc0d163 | fix | Produce diagnostic rather than crash when using invalid hostDirective (#48314) |
Alan Agius, Alex Castle, Andrew Kushnir, Andrew Scott, Bob Watson, Derek Cormier, Joey Perrott, Konstantin Kharitonov, Kristiyan Kostadinov, Paul Gschwendtner, Pawel Kozlowski, dario-piotrowicz and piyush132000
| Commit | Type | Description |
| -- | -- | -- |
| 86a21f5569 | fix | accept inheriting the constructor from a class in a library (#48156) |
Special Thanks
Alan Agius, Andrew Scott, Aristeidis Bampakos, Bob Watson, Derek Cormier, JoostK, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Rokas Brazdžionis, mgechev and piyush132000
| Commit | Type | Description |
| -- | -- | -- |
| b342e55509 | fix | don't mutate validators array (#47830) |
| a12a120272 | fix | FormBuilder.group return right type with shorthand parameters. (#48084) |
language-service
| Commit | Type | Description |
| -- | -- | -- |
| cc8b76ef7c | fix | correctly handle host directive inputs/outputs (#48147) |
| a8c33bf931 | fix | update packages/language-service/build.sh script to work with vscode-ng-language-service's new Bazel build (#48120) |
router
| Commit | Type | Description |
| -- | -- | -- |
| e4309d57d8 | fix | correct type of nextState parameter in canDeactivate (#48038) |
| 9baefd085f | fix | Ensure renavigating in component init works with enabledBlocking (#48063) |
| fa5528fb5f | fix | restore 'history.state' on popstate even if navigationId missing (#48033) |
Special Thanks
Alan Agius, Andrew Scott, Bjarki, Bob Watson, Brooke, Derek Cormier, Dylan Hunn, George Kalpakas, Greg Magolan, Ikko Ashimine, Ivan Rodriguez, Jessica Janiuk, Joe Roxbury, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Mikhail Savchuk, Nebojsa Cvetkovic, Pawel Kozlowski, Volodymyr and Wooshaah
Keyframes names are now prefixed with the component's "scope name".
For example, the following keyframes rule in a component definition,
whose "scope name" is host-my-cmp:
Any TypeScript/JavaScript code which relied on the names of keyframes rules
will no longer match.
The recommended solutions in this case are to either:
change the component's view encapsulation to the None or ShadowDom
define keyframes rules in global stylesheets (e.g styles.css)
define keyframes rules programmatically in code.
compiler-cli
Invalid constructors for DI may now report compilation errors
When a class inherits its constructor from a base class, the compiler may now
report an error when that constructor cannot be used for DI purposes. This may
either be because the base class is missing an Angular decorator such as
@Injectable() or @Directive(), or because the constructor contains parameters
which do not have an associated token (such as primitive types like string).
These situations used to behave unexpectedly at runtime, where the class may be
constructed without any of its constructor parameters, so this is now reported
as an error during compilation.
Any new errors that may be reported because of this change can be resolved either
by decorating the base class from which the constructor is inherited, or by adding
an explicit constructor to the class for which the error is reported.
Angular compiler option enableIvy has been removed as Ivy is the only rendering engine.
core
Angular no longer supports Node.js versions 14.[15-19].x and 16.[10-12].x. Current supported versions of Node.js are 14.20.x, 16.13.x and 18.10.x.
TypeScript versions older than 4.8 are no longer supported.
Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.
Existing iframe usages may have src or srcdoc preceding other attributes. Such usages may need to be updated to ensure compliance with the new stricter rules around iframe bindings.
forms
setDisabledState will always be called when a ControlValueAccessor is attached. You can opt-out with FormsModule.withConfig or ReactiveFormsModule.withConfig.
localize
canParse method has been removed from all translation parsers in @angular/localize/tools. analyze should be used instead.
the hint parameter in theparse methods is now mandatory.
router
Previously, the RouterOutlet would immediately
instantiate the component being activated during navigation. Now the
component is not instantiated until the change detection runs. This
could affect tests which do not trigger change detection after a router
navigation. In rarer cases, this can affect production code that relies
on the exact timing of component availability.
The title property is now required on ActivatedRouteSnapshot
relativeLinkResolution is no longer configurable in
the Router. This option was used as a means to opt out of a bug fix.
Deprecations
common
The DATE_PIPE_DEFAULT_TIMEZONE token is now deprecated in favor
of the DATE_PIPE_DEFAULT_OPTIONS token, which accepts an object
as a value and the timezone can be defined as a field (called timezone)
on that object.
core
The ability to pass an NgModule to the providedIn option for
@Injectable and InjectionToken is now deprecated.
providedIn: NgModule was intended to be a tree-shakable alternative to
NgModule providers. It does not have wide usage, and in most cases is used
incorrectly, in circumstances where providedIn: 'root' should be
preferred. If providers should truly be scoped to a specific NgModule, use
NgModule.providers instead.
The ability to set providedIn: 'any' for an @Injectable or
InjectionToken is now deprecated.
providedIn: 'any' is an option with confusing semantics and is almost
never used apart from a handful of esoteric cases internal to the framework.
The bit field signature of Injector.get() has been deprecated, in favor of the new options object.
The bit field signature of TestBed.inject() has been deprecated, in favor of the new options object.
router
The RouterLinkWithHref directive is deprecated, use the RouterLink directive instead. The RouterLink contains the code from the RouterLinkWithHref to handle elements with href attributes.
common
| Commit | Type | Description |
| -- | -- | -- |
| c0c7efaf7c | feat | add provideLocationMocks() function to provide Location mocks (#47674) |
| 75e6297f09 | feat | add preload tag on server for priority img (#47343) |
| 4fde292bb5 | feat | Add automatic srcset generation to ngOptimizedImage (#47547) |
| 9483343ebf | feat | Add fill mode to NgOptimizedImage (#47738) |
| bdb5371033 | feat | add injection token for default DatePipe configuration (#47157) |
| 449d29b701 | fix | Add fetchpriority to ngOptimizedImage preloads (#48010) |
| 4f52d4e474 | fix | don't generate srcset if noopImageLoader is used (#47804) |
| 3a18398d83 | fix | Don't warn about image distortion is fill mode is enabled (#47824) |
| edea15f2c6 | fix | export the IMAGE_CONFIG token (#48051) |
| 8abf1c844c | fix | fix formatting on oversized image error (#47188) |
| ca7bf65933 | fix | rename rawSrc -> ngSrc in NgOptimizedImage directive (#47362) |
| b3879dbf14 | fix | support density descriptors with 2+ decimals (#47197) |
| fa4798095e | fix | update size error to mention 'fill' mode (#47797) |
| 23f210c0ab | fix | warn if using supported CDN but not built-in loader (#47330) |
| 945432e3fa | fix | Warn on fill ngOptimizedImage without height (#48036) |
| Commit | Type | Description |
| -- | -- | -- |
| bebef5fb43 | feat | Quick fix to import a component when its selector is used (#47088) |
| e7ee53c541 | feat | support to fix invalid banana in box (#47393) |
localize
| Commit | Type | Description |
| -- | -- | -- |
| 400a6b5e37 | fix | add polyfill in polyfills array instead of polyfills.ts (#47569) |
| b6fd814542 | fix | update ng add schematic to support Angular CLI version 15 (#47763) |
| d36fd3d9e4 | refactor | remove deprecated canParse method from TranslationParsers (#47275) |
platform-server
| Commit | Type | Description |
| -- | -- | -- |
| 2908eba59c | fix | align server renderer interface with base renderer (#47868) |
router
| Commit | Type | Description |
| -- | -- | -- |
| 7bee28d037 | feat | add a migration to remove relativeLinkResolution usages (#47604) |
| 5163e3d876 | feat | Add UrlTree constructor to public API (#47186) |
| da58801f95 | feat | auto-unwrap default exports when lazy loading (#47586) |
| c3f857975d | feat | make RouterOutlet name an Input so it can be set dynamically (#46569) |
| f73ef21442 | feat | merge RouterLinkWithHref into RouterLink (#47630) |
| 16c8f55663 | feat | migrate RouterLinkWithHref references to RouterLink (#47599) |
| 07017a7bd3 | feat | prevent provideRouter() from usage in @Component (#47669) |
| 79e9e8ab77 | fix | Delay router scroll event until navigated components have rendered (#47563) |
| 6a88bad019 | fix | Ensure ActivatedRouteSnapshot#title has correct value (#47481) |
| 7b89d95c0e | fix | Remove deprecated relativeLinkResolution (#47623) |
Special Thanks
Alan Agius, AleksanderBodurri, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Charles Lyding, Dylan Hunn, Ferdinand Malcher, George Kalpakas, Jeremy Elbourn, Jessica Janiuk, JiaLiPassion, Joey Perrott, JoostK, Kara Erickson, Kristiyan Kostadinov, Martin Probst, Matthias Weiß, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Sabareesh Kappagantu, WD Snoeijer, angular-robot[bot], arturovt, ced, dario-piotrowicz, ivanwonder and jaybell
Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.
core
| Commit | Type | Description |
| -- | -- | -- |
| 54814c8e9b | fix | hardening attribute and property binding rules for
| Commit | Type | Description |
| -- | -- | -- |
| 3fd176a905 | fix | add missing period to error message (#47744) |
| c3821f5ab5 | perf | minimize filesystem calls when generating shims (#47682) |
Special Thanks
Alan Agius, Andrew Kushnir, Andrew Scott, Aristeidis Bampakos, Bob Watson, Charles Lyding, Joey Perrott, Joshua Morony, Mathew Berg, Paul Gschwendtner, Peter Dickten, Renan Ferro, Sri Ram, WD Snoeijer, markostanimirovic and Álvaro Martínez
This release contains various API docs improvements.
Special Thanks
Alexander Wiebe, Ciprian Sauliuc, Dmytro Mezhenskyi, George Kalpakas, Joe Martin (Crowdstaffing), Jordan, Ole M, Paul Gschwendtner, Pawel Kozlowski and mgechev
| Commit | Type | Description |
| -- | -- | -- |
| a3e1303f04 | fix | imply @Optional flag when a default value is provided (#47242) |
forms
| Commit | Type | Description |
| -- | -- | -- |
| 80c66a1e57 | fix | don't prevent default behavior for forms with method="dialog" (#47308) |
Special Thanks
Abhishek Rawat, Andrew Kushnir, Benjamin Chanudet, Bob Watson, George Kalpakas, Ikko Ashimine, Kristiyan Kostadinov, Marc Wrobel, Mariia Subkov, Pawel Kozlowski, Sebastian, abergquist, dario-piotrowicz, onrails and vyom1611
Existing iframe usages may have security-sensitive attributes applied as an attribute or property binding in a template or via host bindings in a directive. Such usages would require an update to ensure compliance with the new stricter rules around iframe bindings.
core
| Commit | Type | Description |
| -- | -- | -- |
| 54814c8e9b | fix | hardening attribute and property binding rules for
| Commit | Type | Description |
| -- | -- | -- |
| 598b72bd05 | feat | support fix the component missing member (#46764) |
platform-browser
| Commit | Type | Description |
| -- | -- | -- |
| 07606e3181 | feat | add isEmpty method to the TransferState class (#46915) |
platform-server
| Commit | Type | Description |
| -- | -- | -- |
| 2b4d7f6733 | feat | support document reference in render functions (#47032) |
router
| Commit | Type | Description |
| -- | -- | -- |
| 0abb67af59 | feat | allow guards and resolvers to be plain functions (#46684) |
| 75df404467 | feat | Create APIs for using Router without RouterModule (#47010) |
| 10289f1f6e | feat | expose resolved route title (#46826) |
| 8600732b09 | feat | Expose the default matcher for Routes used by the Router (#46913) |
| 422323cee0 | feat | improve typings for RouterLink boolean inputs (#47101) |
| 26ea97688c | feat | Make router directives standalone (#46758) |
| 2a43beec15 | fix | Fix route recognition behavior with some versions of rxjs (#47098) |
service-worker
| Commit | Type | Description |
| -- | -- | -- |
| 383090858c | feat | support sendRequest as a notificationclick action (#46912) |
| 3f548610dd | fix | export NoNewVersionDetectedEvent (#47044) |
| 482b6119c2 | fix | update golden index.md (#47044) |
Special Thanks
Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bob Watson, Cédric Exbrayat, Dylan Hunn, Emmanuel Roux, FatalMerlin, George Kalpakas, Ilia Mirkin, Jan Kuehle, Jeremy Elbourn, Jessica Janiuk, JiaLiPassion, Kalbarczyk, Kara Erickson, Katie Hempenius, Kristiyan Kostadinov, Merlin, Paul Gschwendtner, Pawel Kozlowski, Tristan Sprößer, Victor Porof, angular-robot[bot], dario-piotrowicz, ivanwonder and vyom
AlirezaEbrahimkhani, Alma Eyre, Andrew Scott, Bob Watson, George Kalpakas, Kalbarczyk, Kristiyan Kostadinov, Leosvel Pérez Espinosa, Roman Matusevich and Sonu Kapoor
| Commit | Type | Description |
| -- | -- | -- |
| 5ff715c549 | fix | check if transplanted views are attached to change detector (#46974) |
router
| Commit | Type | Description |
| -- | -- | -- |
| 439d77e852 | fix | Fix route recognition behavior with some versions of rxjs (#47098) (#47112) |
Special Thanks
4javier, Andrew Kushnir, Andrew Scott, AntonioCardenas, Bob Watson, Bruno Barbosa, Eduardo Speroni, Edward, George Kalpakas, Jan Melcher, Kristiyan Kostadinov, Mladen Jakovljević, Paul Gschwendtner, Pawel Kozlowski, Roman Matusevich,
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
7dcf11f fix(50750): Object type literal with string literal property in contextual typing position causes language service error on all literal type references (#50757)
8d7ad8c fix(50375): Errors for missing enum-named properties should attempt to preserve names (#50382)
fb717df Discard union types before considering weak type checks on unit-like types (#50423)
b9a5bbc Syntax operations also need to ensure project is present for the open script infos since update could be pending to make sure open script info has project (#50418) [ #50131 ]
--project accepts path to a directory containing a tsconfig.json (#1829, #1830) @cspotcode
previously it required an explicit filename
Added helpful error message when swc version is too old to support our configuration (#1802) @cspotcode
Added experimentalTsImportSpecifiers option which allows using voluntary .ts file extensions in import specifiers (undocumented except for API docs) (#1815) @cspotcode
Fixed
Fixed bug where child_process.fork() would erroneously execute the parent's entrypoint script, not the intended child script (#1812, #1814) @devversion
Fixed support for jsx modes "react-jsx" and "react-jsxdev" in swc transpiler (#1800, #1802) @cspotcode
Must enable experimentalResolver, will be enabled by default in a future version (docs)
Typechecker requires importing the emitted file extension; ts-node resolves correctly to the source file. E.g. import "./foo.js" will execute foo.ts See also: TypeScript issue #37582
If typechecking is disabled, you can also use source file extensions. E.g. import "./foo.ts"
Allows importing JSON files from ESM with the requisite flag (docs)
ts-node -vvv also logs absolute paths to ts-node and typescript, to make it more obvious when you're accidentally using globally-installed versions (#1323, #1620)
Adds support for targets "es2020" and "es2021" to swc transpiler (#1521)
Adds automatic target downgrade when using older versions of swc (#1521)
If tsconfig specifies es2020, but your version of swc only supports up to es2019, ts-node will automatically switch to es2019 instead of throwing an error
We take care to load your project's version of typescript, falling back to a globally-installed version if necessary.
10.2.0 introduced a bug where we did not do this consistently, causing global or npx installations of ts-node to attempt loading typescript relative to themselves, not your project.
This failed if typescript was not globally installed or npx did not install peer dependencies.
Implement "extends" support for "ts-node" options in tsconfig.json (#1328, #1356)
"ts-node": {} options will be parsed from extended tsconfigs
allows sharing and deduplicating ts-node configuration
Un-deprecate scope and scopeDir; add both to CLI and tsconfig.json options; un-deprecate TS_NODE_SCOPE env var; add TS_NODE_SCOPE_DIR env var (docs) (#1346, #1367)
[BREAKING] Internal APIs removed from type declarations (#1242)
Removed DEFAULTS, normalizeSlashes, parse, split
No features were removed
This will only affect consumers of ts-node's programmatic API
Fixed
[BREAKING] Fix #1229 and #1235: always throw ERR_REQUIRE_ESM when attempting to execute ESM as CJS, even when not using --loader ts-node/esm (#1232)
This aligns our behavior with vanilla node
[BREAKING] Fix #1225: compiler is loaded relative to tsconfig.json instead of entrypoint script (#1155)
In most cases this change will have no noticable effect
Fix #1217: REPL not always using passed stdout and stderr (#1224)
Fix #1220: ts-node ./index may execute the wrong file extension because tsconfig search poisons the require.resolve cache (#1155)
Fix #1322: Sourcemaps fail for filenames with spaces or other characters which are percent-encoded in URLs (#1160, #1330)
Fix #1331: Resolution of node builtin modules in ESM loader fails on node >=12.20.0, <13 (#1332)
Docs
New documentation website: https://typestrong.org/ts-node
README is generated to match the website
Added page explaining CommonJS vs ESM
Added page with Performance advice
Added Troubleshooting page
Organized and added to "Recipes" section with third-party tool integrations
Allow --typeCheck flag to override --transpileOnly flag specified in tsconfig.json (#1142)
Changed
Rename interface Register to Service. It is still aliased as Register for backwards compatibility (#1158)
Update code copied from node's ESM resolver to be the latest from node 15, to keep our ESM resolver's behavior as close as possible to vanilla node (#1167)
Fixed
ESM resolver will preserve search portion of URL, used for cache busting (#1165) @frandiox
Fix ESM resolution of builtin modules on node >=14.13.1 (#1136)
Recognize --es-module-specifier-resolution as an alias of --experimental-specifier-resolution for node 12 compatibility (#1122) @nguyensomniac
schedulers: no longer cause TypeScript build failures when Node types aren't included (c1a07b7)
types: Improved subscribe and tap type overloads (#6718) (af1a9f4), closes #6717
Features
onErrorResumeNextWith: renamed onErrorResumeNext and exported from the top level. (onErrorResumeNext operator is stil available, but deprecated) (#6755) (51e3b2c)
share: No longer results in a bad-state observable in an edge case where a synchronous source was shared and refCounted, and the result is subscribed to twice in a row synchronously. (#7005) (5d4c1d9)
share & connect:share and connect no longer bundle scheduling code by default (#6873) (9948dc2), closes #6872
exhaustAll: Result will now complete properly when flattening all synchronous observables. (#6911) (3c1c6b8), closes #6910
TypeScript: Now compatible with TypeScript 4.6 type checks (#6895) (fce9aa1)
operators that ignore input values now use unknown rather than any, which should resolve issues with eslint no-unsafe-argument (#6738) (67cb317), closes #6536
ajax: crossDomain flag deprecated and properly reported to consumers (#6710) (7fd0575), closes #6663
share: No longer results in a bad-state observable in an edge case where a synchronous source was shared and refCounted, and the result is subscribed to twice in a row synchronously. (#7005) (5d4c1d9)
share & connect:share and connect no longer bundle scheduling code by default (#6873) (9948dc2), closes #6872
exhaustAll: Result will now complete properly when flattening all synchronous observables. (#6911) (3c1c6b8), closes #6910
TypeScript: Now compatible with TypeScript 4.6 type checks (#6895) (fce9aa1)
operators that ignore input values now use unknown rather than any, which should resolve issues with eslint no-unsafe-argument (#6738) (67cb317), closes #6536
ajax: crossDomain flag deprecated and properly reported to consumers (#6710) (7fd0575), closes #6663
debounceTime: unschedule dangling task on unsubscribe before complete (#6464) (7ab0a4c)
fromEvent: Types now properly infer when resultSelector is provided (#6447) (39b9d81)
Features
Operators are all exported at the top level, from "rxjs". From here on out, we encourage top-level imports with RxJS. Importing from rxjs/operators will be deprecated soon. (#6488) (512adc2), closes #6242
returned operator functions from multicast operators share, publish, publishReplay are now referentially transparent. Meaning if you take the result of calling publishReplay(3) and pass it to more than one observable's pipe method, it will behave the same in each case, rather than having a cumulative effect, which was a regression introduced sometime in version 6. If you required this broken behavior, there is a workaround posted here (#6410) (e2f2e51), closes /github.com/ReactiveX/rxjs/pull/6410#issuecomment-846087374#5411
Features
All subjects now have an observed property. This will allow users to check whether a subject has current subscribers without us allowing access to the observers array, which is going to be made private in future versions. (#6405) (f47425d)
groupBy: Support named arguments, support ObservableInputs for duration selector (#5679) (7a99397)
share: use another observable to control resets (#6169) (12c3716)
Angular version 12 support added.
Monaco editor moved to peer dependency. Now any monaco-editor version can be used.
Breaking Change: assets path updates in angular.json. Please refer updated readme.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
zone.js: in TaskTrackingZoneSpec track a periodic task until it is cancelled
The breaking change is scoped only to the plugin
zone.js/plugins/task-tracking. If you used TaskTrackingZoneSpec and
checked the pending macroTasks e.g. using (this.ngZone as any)._inner ._parent._properties.TaskTrackingZone.getTasksFor('macroTask'), then
its behavior slightly changed for periodic macrotasks. For example,
previously the setInterval macrotask was no longer tracked after its
callback was executed for the first time. Now it's tracked until
the task is explicitly cancelled, e.g with clearInterval(id).
zone.js: refactor(zone.js): rename several internal apis in fake async zone spec (#39127) (8a68669)
Build
zone.js: build(zone.js): zone.js should output esm format for fesm2015 bundles (#39203) (822b838)
BREAKING CHANGES
zone.js: ZoneJS no longer swallows errors produced by Object.defineProperty calls.
Prior to this change, ZoneJS monkey patched Object.defineProperty and if there is an error
(such as the property is not configurable or not writable) the patched logic swallowed it
and only console.log was produced. This behavior used to hide real errors,
so the logic is now updated to trigger original errors (if any). One exception
where the patch remains in place is document.registerElement
(to allow smooth transition for code/polyfills that rely on old behavior in legacy browsers).
If your code relies on the old behavior (where errors were not thrown before),
you may need to update the logic to handle the errors that are no longer masked by ZoneJS patch.
Use spring-data-redis instead of lettuce-core as the Redis client to improve user experience.
Configure Renovate by @renovate in https://github.com/Ahoo-Wang/CoSky/pull/17
Update plugin me.champeau.jmh to v0.6.6 by @renovate in https://github.com/Ahoo-Wang/CoSky/pull/21
Update dependency @types/jasmine to v3.10.5 by @renovate in https://github.com/Ahoo-Wang/CoSky/pull/22
Update dependency org.springframework.cloud:spring-cloud-starter-netflix-ribbon to v2.2.10.RELEASE by @renovate in https://github.com/Ahoo-Wang/CoSky/pull/19
Update dependency gradle to v7.4.2 by @renovate in https://github.com/Ahoo-Wang/CoSky/pull/23
Update dependency jasmine-core to v3.99.1 by @renovate in https://github.com/Ahoo-Wang/CoSky/pull/24
Update actions/checkout action to v3 by @renovate in https://github.com/Ahoo-Wang/CoSky/pull/29
Update dependency typescript to v4.6.3 by @renovate in https://github.com/Ahoo-Wang/CoSky/pull/28
Update actions/setup-java action to v3 by @renovate in https://github.com/Ahoo-Wang/CoSky/pull/30
New Contributors
@renovate made their first contribution in https://github.com/Ahoo-Wang/CoSky/pull/17
Full Changelog: https://github.com/Ahoo-Wang/CoSky/compare/v1.3.20...v2.0.0
cosky: Reserved username, super user, with the highest authority. When the application is launched for the first time, the super user (cosky) password will be initialized and printed on the console. Don't worry if you forget your password, you can configure enforce-init-super-user: true, CoSky will help you reinitialize the password and print it on the console.
---------------- ****** CoSky - init super user:[cosky] password:[6TrmOux4Oj] ****** ----------------
admin: Reserved roles, super administrator roles, have all permissions, a user can be bound to multiple roles, and a role can be bound to multiple resource operation permissions.
Permission control granularity is namespace, read and write operations
Microserver is a Java 8 native, zero configuration, standards based, battle hardened library to run Java Rest Microservices via a standard Java main class. Supporting pure Microservice or Micro-monolith styles.