diff --git a/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/config/SecurityConfig.java b/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/config/SecurityConfig.java index fcbddbaf8b3..873a539a747 100644 --- a/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/config/SecurityConfig.java +++ b/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -20,7 +21,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/amelding-service/src/main/java/no/nav/registre/testnav/ameldingservice/config/SecurityConfig.java b/apps/amelding-service/src/main/java/no/nav/registre/testnav/ameldingservice/config/SecurityConfig.java index 7fcae4204a5..49a1dd71577 100644 --- a/apps/amelding-service/src/main/java/no/nav/registre/testnav/ameldingservice/config/SecurityConfig.java +++ b/apps/amelding-service/src/main/java/no/nav/registre/testnav/ameldingservice/config/SecurityConfig.java @@ -22,7 +22,7 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity httpSecurity) { return httpSecurity - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeConfig -> authorizeConfig.pathMatchers( "/internal/**", "/webjars/**", diff --git a/apps/app-tilgang-analyse-service/src/main/java/no/nav/testnav/apps/apptilganganalyseservice/config/SecurityConfig.java b/apps/app-tilgang-analyse-service/src/main/java/no/nav/testnav/apps/apptilganganalyseservice/config/SecurityConfig.java index b9b65670b2f..e6a693174af 100644 --- a/apps/app-tilgang-analyse-service/src/main/java/no/nav/testnav/apps/apptilganganalyseservice/config/SecurityConfig.java +++ b/apps/app-tilgang-analyse-service/src/main/java/no/nav/testnav/apps/apptilganganalyseservice/config/SecurityConfig.java @@ -23,7 +23,7 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity httpSecurity) { return httpSecurity - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeConfig -> authorizeConfig.pathMatchers( "/internal/**", "/webjars/**", diff --git a/apps/arbeidsforhold-export-api/src/main/java/no/nav/no/registere/testnorge/arbeidsforholdexportapi/config/SecurityConfig.java b/apps/arbeidsforhold-export-api/src/main/java/no/nav/no/registere/testnorge/arbeidsforholdexportapi/config/SecurityConfig.java index 4a8cb1ae4a3..1557cf6b9df 100644 --- a/apps/arbeidsforhold-export-api/src/main/java/no/nav/no/registere/testnorge/arbeidsforholdexportapi/config/SecurityConfig.java +++ b/apps/arbeidsforhold-export-api/src/main/java/no/nav/no/registere/testnorge/arbeidsforholdexportapi/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/config/SecurityConfig.java b/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/config/SecurityConfig.java index f036df45948..224a0415f32 100644 --- a/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/config/SecurityConfig.java +++ b/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -21,7 +22,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/config/SecurityConfig.java b/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/config/SecurityConfig.java index 445fc51198b..a4d6b183de8 100644 --- a/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/config/SecurityConfig.java +++ b/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/bruker-service/src/main/java/no/nav/testnav/apps/brukerservice/config/SecurityConfig.java b/apps/bruker-service/src/main/java/no/nav/testnav/apps/brukerservice/config/SecurityConfig.java index 069237b983e..e49e518c090 100644 --- a/apps/bruker-service/src/main/java/no/nav/testnav/apps/brukerservice/config/SecurityConfig.java +++ b/apps/bruker-service/src/main/java/no/nav/testnav/apps/brukerservice/config/SecurityConfig.java @@ -23,7 +23,7 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity httpSecurity) { return httpSecurity - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeConfig -> authorizeConfig.pathMatchers( "/internal/**", "/webjars/**", diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/krrstub/mapper/DigitalKontaktMappingStrategy.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/krrstub/mapper/DigitalKontaktMappingStrategy.java index 242baeb917e..7a6d592d1a3 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/krrstub/mapper/DigitalKontaktMappingStrategy.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/krrstub/mapper/DigitalKontaktMappingStrategy.java @@ -20,27 +20,6 @@ @Component public class DigitalKontaktMappingStrategy implements MappingStrategy { - private static void kobleMaalformTilSpraak(RsDollyUtvidetBestilling bestilling, DigitalKontaktdata digitalKontaktdata) { - - String maalform = null; - - if (nonNull(bestilling.getTpsMessaging()) && isKrrMaalform(bestilling.getTpsMessaging().getSpraakKode())) { - maalform = bestilling.getTpsMessaging().getSpraakKode(); - } - - if (isNotBlank(maalform) && isBlank(digitalKontaktdata.getSpraak())) { - - digitalKontaktdata.setSpraak(isNotBlank(maalform) ? maalform.toLowerCase() : maalform); //NOSONAR - digitalKontaktdata.setSpraakOppdatert(ZonedDateTime.now()); - digitalKontaktdata.setRegistrert(true); - } - } - - private static boolean isKrrMaalform(String spraak) { - - return isNotBlank(spraak) && Stream.of("NB", "NN", "EN", "SE").anyMatch(spraak::equalsIgnoreCase); - } - @Override public void register(MapperFactory factory) { factory.classMap(RsDigitalKontaktdata.class, DigitalKontaktdata.class) @@ -52,21 +31,30 @@ public void mapAtoB(RsDigitalKontaktdata digitalKontaktdata, DigitalKontaktdata kontaktdataRequest.setGyldigFra(getDato(digitalKontaktdata)); - if (nonNull(digitalKontaktdata.getMobil())) { + if (isNotBlank(digitalKontaktdata.getMobil())) { kontaktdataRequest.setMobilOppdatert(getDato(digitalKontaktdata)); kontaktdataRequest.setMobilVerifisert(getDato(digitalKontaktdata)); + kontaktdataRequest.setMobil(digdirFormatertTlfNummer(digitalKontaktdata.getMobil())); } - if (nonNull(digitalKontaktdata.getEpost())) { + if (isNotBlank(digitalKontaktdata.getEpost())) { kontaktdataRequest.setEpostOppdatert(getDato(digitalKontaktdata)); kontaktdataRequest.setEpostVerifisert(getDato(digitalKontaktdata)); } - if (nonNull(digitalKontaktdata.getSpraak())) { + if (isNotBlank(digitalKontaktdata.getSpraak())) { kontaktdataRequest.setSpraakOppdatert(getDato(digitalKontaktdata)); } kobleMaalformTilSpraak((RsDollyUtvidetBestilling) context.getProperty("bestilling"), kontaktdataRequest); } + private String digdirFormatertTlfNummer(String mobil) { + if (isBlank(mobil)) { + return null; + } + var nummerUtenSpace = mobil.replace(" ", ""); + return nummerUtenSpace.contains("+47") ? nummerUtenSpace : "+47%s".formatted(nummerUtenSpace); + } + private ZonedDateTime getDato(RsDigitalKontaktdata digitalKontaktdata) { return nonNull(digitalKontaktdata.getGyldigFra()) ? ZonedDateTime.of(digitalKontaktdata.getGyldigFra(), ZoneId.systemDefault()) : @@ -77,4 +65,25 @@ private ZonedDateTime getDato(RsDigitalKontaktdata digitalKontaktdata) { .byDefault() .register(); } + + private static void kobleMaalformTilSpraak(RsDollyUtvidetBestilling bestilling, DigitalKontaktdata digitalKontaktdata) { + + String maalform = null; + + if (nonNull(bestilling.getTpsMessaging()) && isKrrMaalform(bestilling.getTpsMessaging().getSpraakKode())) { + maalform = bestilling.getTpsMessaging().getSpraakKode(); + } + + if (isNotBlank(maalform) && isBlank(digitalKontaktdata.getSpraak())) { + + digitalKontaktdata.setSpraak(isNotBlank(maalform) ? maalform.toLowerCase() : maalform); //NOSONAR + digitalKontaktdata.setSpraakOppdatert(ZonedDateTime.now()); + digitalKontaktdata.setRegistrert(true); + } + } + + private static boolean isKrrMaalform(String spraak) { + + return isNotBlank(spraak) && Stream.of("NB", "NN", "EN", "SE").anyMatch(spraak::equalsIgnoreCase); + } } diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/mapper/strategy/DigitalKontaktMappingStrategyTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/mapper/strategy/DigitalKontaktMappingStrategyTest.java index 9a6a7f055be..ae863288f09 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/mapper/strategy/DigitalKontaktMappingStrategyTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/mapper/strategy/DigitalKontaktMappingStrategyTest.java @@ -22,7 +22,9 @@ class DigitalKontaktMappingStrategyTest { private static final String EPOST = "test@nav.no"; - private static final String MOBIL = "99990000"; + private static final String MOBIL_INCORRECT = "99990000"; + private static final String MOBIL_INCORRECT_SPACE = "+47 99990000"; + private static final String MOBIL_CORRECT = "+4799990000"; private static final String SPRAAK = "NO"; private static final boolean RESERVERT = true; private static final LocalDateTime GYLDIG_FRA = LocalDateTime.of(2018, 1, 1, 0, 0); @@ -59,14 +61,27 @@ void mapReservert_OK() { } @Test - void mapMobil_OK() { + void mapMobil_Incorrect_OK() { var result = mapperFacade.map(RsDigitalKontaktdata.builder() .gyldigFra(GYLDIG_FRA) - .mobil(MOBIL) + .mobil(MOBIL_INCORRECT) .build(), DigitalKontaktdata.class, context); - assertThat(result.getMobil(), is(equalTo(MOBIL))); + assertThat(result.getMobil(), is(equalTo(MOBIL_CORRECT))); + assertThat(result.getMobilOppdatert(), is(equalTo(Z_GYLDIG_FRA))); + assertThat(result.getMobilVerifisert(), is(equalTo(Z_GYLDIG_FRA))); + } + + @Test + void mapMobil_WithSpace_OK() { + + var result = mapperFacade.map(RsDigitalKontaktdata.builder() + .gyldigFra(GYLDIG_FRA) + .mobil(MOBIL_INCORRECT_SPACE) + .build(), DigitalKontaktdata.class, context); + + assertThat(result.getMobil(), is(equalTo(MOBIL_CORRECT))); assertThat(result.getMobilOppdatert(), is(equalTo(Z_GYLDIG_FRA))); assertThat(result.getMobilVerifisert(), is(equalTo(Z_GYLDIG_FRA))); } diff --git a/apps/dolly-frontend/build.gradle b/apps/dolly-frontend/build.gradle index ab2eb4e57e1..3e53b0c7eae 100644 --- a/apps/dolly-frontend/build.gradle +++ b/apps/dolly-frontend/build.gradle @@ -40,7 +40,7 @@ dependencyManagement { applyMavenExclusions = false imports { mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2022.0.4' - mavenBom 'org.springframework.session:spring-session-bom:2021.2.0' + mavenBom 'org.springframework.session:spring-session-bom:2021.2.3' } } diff --git a/apps/dolly-frontend/config.idporten.yml b/apps/dolly-frontend/config.idporten.yml index edc734b1fe0..23e38e3e95f 100644 --- a/apps/dolly-frontend/config.idporten.yml +++ b/apps/dolly-frontend/config.idporten.yml @@ -49,6 +49,7 @@ spec: - host: testnav-pensjon-testdata-facade-proxy.dev-fss-pub.nais.io - host: testnav-sigrunstub-proxy.dev-fss-pub.nais.io - host: testnav-krrstub-proxy.dev-fss-pub.nais.io + - host: testnav-udistub-proxy.dev-fss-pub.nais.io - host: testnav-inst-proxy.dev-fss-pub.nais.io - host: testnav-aareg-proxy.dev-fss-pub.nais.io - host: testnav-medl-proxy.dev-fss-pub.nais.io diff --git a/apps/dolly-frontend/config.test.yml b/apps/dolly-frontend/config.test.yml index 0108040511d..a2cb7711cc8 100644 --- a/apps/dolly-frontend/config.test.yml +++ b/apps/dolly-frontend/config.test.yml @@ -54,6 +54,7 @@ spec: - host: testnav-pensjon-testdata-facade-proxy.dev-fss-pub.nais.io - host: testnav-sigrunstub-proxy.dev-fss-pub.nais.io - host: testnav-krrstub-proxy.dev-fss-pub.nais.io + - host: testnav-udistub-proxy.dev-fss-pub.nais.io - host: testnav-inst-proxy.dev-fss-pub.nais.io - host: testnav-histark-proxy.dev-fss-pub.nais.io - host: testnav-aareg-proxy.dev-fss-pub.nais.io diff --git a/apps/dolly-frontend/config.unstable.yml b/apps/dolly-frontend/config.unstable.yml index 5895ea7bd8a..cca947f794c 100644 --- a/apps/dolly-frontend/config.unstable.yml +++ b/apps/dolly-frontend/config.unstable.yml @@ -54,6 +54,7 @@ spec: - host: testnav-pensjon-testdata-facade-proxy.dev-fss-pub.nais.io - host: testnav-sigrunstub-proxy.dev-fss-pub.nais.io - host: testnav-krrstub-proxy.dev-fss-pub.nais.io + - host: testnav-udistub-proxy.dev-fss-pub.nais.io - host: testnav-inst-proxy.dev-fss-pub.nais.io - host: testnav-aareg-proxy.dev-fss-pub.nais.io - host: testnav-medl-proxy.dev-fss-pub.nais.io diff --git a/apps/dolly-frontend/config.yml b/apps/dolly-frontend/config.yml index 8ae0b3d274d..718c30f8f17 100644 --- a/apps/dolly-frontend/config.yml +++ b/apps/dolly-frontend/config.yml @@ -59,6 +59,7 @@ spec: - host: testnav-pensjon-testdata-facade-proxy.dev-fss-pub.nais.io - host: testnav-sigrunstub-proxy.dev-fss-pub.nais.io - host: testnav-krrstub-proxy.dev-fss-pub.nais.io + - host: testnav-udistub-proxy.dev-fss-pub.nais.io - host: testnav-inst-proxy.dev-fss-pub.nais.io - host: testnav-aareg-proxy.dev-fss-pub.nais.io - host: testnav-medl-proxy.dev-fss-pub.nais.io diff --git a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/DollyFrontendApplicationStarter.java b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/DollyFrontendApplicationStarter.java index 901df742336..a748e5ca4a8 100644 --- a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/DollyFrontendApplicationStarter.java +++ b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/DollyFrontendApplicationStarter.java @@ -48,6 +48,7 @@ public class DollyFrontendApplicationStarter { private final TestnavBrregstubProxyProperties testnavBrregstubProxyProperties; private final TestnavInstProxyProperties testnavInstProxyProperties; private final TestnavAaregProxyProperties testnavAaregProxyProperties; + private final TestnavUdistubProxyProperties testnavUdistubProxyProperties; private final TestnavArenaForvalterenProxyProperties testnavArenaForvalterenProxyProperties; private final TestnavKrrstubProxyProperties testnavKrrstubProxyProperties; private final TestnavMedlProxyProperties testnavMedlProxyProperties; @@ -97,6 +98,7 @@ public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { .route(createRoute(testnavInntektstubProxyProperties)) .route(createRoute(testnavBrregstubProxyProperties)) .route(createRoute(testnavAaregProxyProperties)) + .route(createRoute(testnavUdistubProxyProperties, "testnav-udistub-proxy")) .route(createRoute(testnavArenaForvalterenProxyProperties)) .route(createRoute(testnavKrrstubProxyProperties, "testnav-krrstub-proxy")) .route(createRoute(testnavMedlProxyProperties, "testnav-medl-proxy")) diff --git a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/IdportenSecurityConfig.java b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/IdportenSecurityConfig.java index a68f16c69c5..50c63387753 100644 --- a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/IdportenSecurityConfig.java +++ b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/IdportenSecurityConfig.java @@ -48,34 +48,32 @@ public SecurityWebFilterChain configure(ServerHttpSecurity http) { var logoutSuccessHandler = new LogoutSuccessHandler(); logoutSuccessHandler.applyOn("idporten", new IdportenOcidLogoutUrlResolver(wellKnownUrl, postLogoutRedirectUri)); - return http.cors() - .and().csrf().disable() - .authorizeExchange() - .pathMatchers( - "/internal/isReady", - "/internal/isAlive", - "/assets/*", - "/internal/metrics", - "/oauth2/callback", - "/favicon.ico", - LOGIN, - LOGOUT, - "/oauth2/logout", - "/*.css", - "/*.js", - "/*.mjs", - "/*.png" - ).permitAll() - .anyExchange().authenticated() - .and().oauth2Login(oAuth2LoginSpec -> oAuth2LoginSpec + return http.cors(ServerHttpSecurity.CorsSpec::disable) + .csrf(ServerHttpSecurity.CsrfSpec::disable) + .authorizeExchange(authorizeExchangeSpec -> authorizeExchangeSpec.pathMatchers( + "/internal/isReady", + "/internal/isAlive", + "/assets/*", + "/internal/metrics", + "/oauth2/callback", + "/favicon.ico", + LOGIN, + LOGOUT, + "/oauth2/logout", + "/*.css", + "/*.js", + "/*.mjs", + "/*.png" + ).permitAll() + .anyExchange().authenticated()) + .oauth2Login(oAuth2LoginSpec -> oAuth2LoginSpec .authenticationManager(authenticationManger) .authenticationSuccessHandler(authenticationSuccessHandler)) - .formLogin().loginPage(LOGIN) - .and().logout(logoutSpec -> logoutSpec + .formLogin(formLoginSpec -> formLoginSpec.loginPage(LOGIN)) + .logout(logoutSpec -> logoutSpec .logoutUrl(LOGOUT) .requiresLogout(ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET, LOGOUT)) .logoutSuccessHandler(logoutSuccessHandler)) .build(); } - } diff --git a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/LocalSecurityConfig.java b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/LocalSecurityConfig.java index 52ad0d6e004..2fdf751b210 100644 --- a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/LocalSecurityConfig.java +++ b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/LocalSecurityConfig.java @@ -29,29 +29,28 @@ public SecurityWebFilterChain configure(ServerHttpSecurity http) { var authenticationSuccessHandler = new DollyAuthenticationSuccessHandler(); var logoutSuccessHandler = new LogoutSuccessHandler(); - return http.cors() - .and().csrf().disable() - .authorizeExchange() - .pathMatchers( - "/internal/isReady", - "/internal/isAlive", - "/assets/*", - "/internal/metrics", - "/oauth2/callback", - "/favicon.ico", - LOGIN, - LOGOUT, - "/oauth2/logout", - "/*.css", - "/*.js", - "/*.mjs", - "/*.png" - ).permitAll() - .anyExchange().authenticated() - .and().oauth2Login(oAuth2LoginSpec -> oAuth2LoginSpec + return http.cors(ServerHttpSecurity.CorsSpec::disable) + .csrf(ServerHttpSecurity.CsrfSpec::disable) + .authorizeExchange(authorizeExchangeSpec -> authorizeExchangeSpec.pathMatchers( + "/internal/isReady", + "/internal/isAlive", + "/assets/*", + "/internal/metrics", + "/oauth2/callback", + "/favicon.ico", + LOGIN, + LOGOUT, + "/oauth2/logout", + "/*.css", + "/*.js", + "/*.mjs", + "/*.png" + ).permitAll() + .anyExchange().authenticated()) + .oauth2Login(oAuth2LoginSpec -> oAuth2LoginSpec .authenticationSuccessHandler(authenticationSuccessHandler)) - .formLogin().loginPage(LOGIN) - .and().logout(logoutSpec -> logoutSpec + .formLogin(formLoginSpec -> formLoginSpec.loginPage(LOGIN)) + .logout(logoutSpec -> logoutSpec .logoutUrl(LOGOUT) .requiresLogout(ServerWebExchangeMatchers.pathMatchers(HttpMethod.GET, LOGOUT)) .logoutSuccessHandler(logoutSuccessHandler)) diff --git a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/SecurityConfig.java b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/SecurityConfig.java index 6fd128b9ba6..40d52dd18a1 100644 --- a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/SecurityConfig.java +++ b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/SecurityConfig.java @@ -29,12 +29,10 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain configure(ServerHttpSecurity http) { - http.cors() - .and().csrf().disable() - .authorizeExchange() - .anyExchange() - .permitAll() - .and().oauth2ResourceServer().jwt(jwt -> jwtDecoder()); + http.cors(ServerHttpSecurity.CorsSpec::disable) + .csrf(ServerHttpSecurity.CsrfSpec::disable) + .authorizeExchange(authorizeExchangeSpec -> authorizeExchangeSpec.anyExchange().permitAll()) + .oauth2ResourceServer(oAuth2ResourceServerSpec -> oAuth2ResourceServerSpec.jwt(jwtSpec -> jwtDecoder())); return http.build(); } diff --git a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/credentials/TestnavUdistubProxyProperties.java b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/credentials/TestnavUdistubProxyProperties.java new file mode 100644 index 00000000000..c31f627ff8f --- /dev/null +++ b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/credentials/TestnavUdistubProxyProperties.java @@ -0,0 +1,10 @@ +package no.nav.dolly.web.credentials; + +import no.nav.testnav.libs.securitycore.domain.ServerProperties; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ConfigurationProperties(prefix = "consumers.testnav-udistub-proxy") +public class TestnavUdistubProxyProperties extends ServerProperties { +} \ No newline at end of file diff --git a/apps/dolly-frontend/src/main/js/cypress/e2e/Gruppe.cy.ts b/apps/dolly-frontend/src/main/js/cypress/e2e/Gruppe.cy.ts index bd2dcd6c221..257c2c92ced 100644 --- a/apps/dolly-frontend/src/main/js/cypress/e2e/Gruppe.cy.ts +++ b/apps/dolly-frontend/src/main/js/cypress/e2e/Gruppe.cy.ts @@ -5,6 +5,7 @@ import { uferdigBestillingMock, uferdigeBestillingerMock, } from '../mocks/BasicMocks' +import { ERROR_NAVIGATE_IDENT } from '../../src/ducks/errors/ErrorMessages' const uferdigBestilling = new RegExp(/dolly-backend\/api\/v1\/bestilling\/2$/) const uferdigeBestillinger = new RegExp(/dolly-backend\/api\/v1\/bestilling\/gruppe\/2\/ikkeferdig/) @@ -17,17 +18,25 @@ describe('Navigering, Opprett gruppe og start bestilling med alle mulige tilvalg //Midlertidig not found på navigering til ident etter søk cy.intercept({ method: 'GET', url: personFragmentNaviger }, { statusCode: 404 }) - cy.dollyType(CypressSelector.INPUT_PERSON_SOEK, '12345') - cy.dollyGet(CypressSelector.BUTTON_NAVIGER_PERSON).click() + cy.dollyType(CypressSelector.INPUT_DOLLY_SOEK, '12345') + cy.dollyGet(CypressSelector.BUTTON_NAVIGER_DOLLY).click() cy.wait(400) - cy.dollyGet(CypressSelector.ERROR_MESSAGE_NAVIGERING).should('contain.text', 'navigere') + cy.dollyGet(CypressSelector.ERROR_MESSAGE_NAVIGERING).should( + 'contains.text', + ERROR_NAVIGATE_IDENT, + ) //Korrekt navigering igjen cy.intercept({ method: 'GET', url: personFragmentNaviger }, personFragmentNavigerMock) - cy.dollyType(CypressSelector.INPUT_PERSON_SOEK, '12345') - cy.dollyGet(CypressSelector.BUTTON_NAVIGER_PERSON).click() + cy.dollyGet(CypressSelector.TOGGLE_SEARCH_BESTILLING).click() + cy.dollyType(CypressSelector.INPUT_DOLLY_SOEK, '1') + cy.dollyGet(CypressSelector.BUTTON_NAVIGER_DOLLY).click() + cy.dollyGet(CypressSelector.TOGGLE_SEARCH_PERSON).click() + + cy.dollyType(CypressSelector.INPUT_DOLLY_SOEK, '12345') + cy.dollyGet(CypressSelector.BUTTON_NAVIGER_DOLLY).click() cy.wait(400) cy.url().should('include', '/gruppe/1') diff --git a/apps/dolly-frontend/src/main/js/cypress/mocks/BasicMocks.tsx b/apps/dolly-frontend/src/main/js/cypress/mocks/BasicMocks.tsx index e1107d83c01..ae7b8d6eabb 100644 --- a/apps/dolly-frontend/src/main/js/cypress/mocks/BasicMocks.tsx +++ b/apps/dolly-frontend/src/main/js/cypress/mocks/BasicMocks.tsx @@ -21,6 +21,8 @@ export const personFragmentSearchMock = [ }, ] +export const bestillingFragmentSearchMock = [{ id: 1, navn: 'Testytest' }] + export const kodeverkMock = { name: 'Tema', koder: [ @@ -1869,3 +1871,11 @@ export const personFragmentNavigerMock = { identNavigerTil: '12345678912', sidetall: 0, } + +export const bestillingFragmentNavigerMock = { + gruppe: eksisterendeGruppeMock, + identHovedperson: null, + identNavigerTil: null, + bestillingNavigerTil: 1, + sidetall: 0, +} diff --git a/apps/dolly-frontend/src/main/js/cypress/mocks/Selectors.tsx b/apps/dolly-frontend/src/main/js/cypress/mocks/Selectors.tsx index c8502d38bb4..3048fa9b3ea 100644 --- a/apps/dolly-frontend/src/main/js/cypress/mocks/Selectors.tsx +++ b/apps/dolly-frontend/src/main/js/cypress/mocks/Selectors.tsx @@ -1,6 +1,6 @@ export enum CypressSelector { INPUT_MINSIDE_SOEK_MAL = 'input-minside-mal', - INPUT_PERSON_SOEK = 'input-person-soek', + INPUT_DOLLY_SOEK = 'input-dolly-soek', INPUT_TESTNORGE_FNR = 'input-testnorge-fnr', INPUT_NAVN = 'input-navn', INPUT_HENSIKT = 'input-hensikt', @@ -16,6 +16,8 @@ export enum CypressSelector { TOGGLE_MAL = 'toggle-mal', TOGGLE_NY_GRUPPE = 'toggle-ny-gruppe', TOGGLE_VISNING_PERSONER = 'toggle-visning-personer', + TOGGLE_SEARCH_PERSON = 'toggle-search-person', + TOGGLE_SEARCH_BESTILLING = 'toggle-search-bestilling', TOGGLE_VISNING_BESTILLINGER = 'toggle-visning-bestillinger', TOGGLE_PERSON_IBRUK = 'toggle-person-ibruk', TOGGLE_BESTILLING_MAL = 'toggle-bestilling-mal', @@ -41,7 +43,7 @@ export enum CypressSelector { BUTTON_VARSLING_LUKK = 'button-varsling-lukk', BUTTON_MALER_SLETT = 'button-maler-slett', BUTTON_MALER_SLETT_BEKREFT = 'button-maler-slett-bekreft', - BUTTON_NAVIGER_PERSON = 'button-naviger-person', + BUTTON_NAVIGER_DOLLY = 'button-naviger-dolly', BUTTON_HEADER_PERSONER = 'button-header-personer', BUTTON_HEADER_ORGANISASJONER = 'button-header-organisasjoner', BUTTON_HEADER_TESTNORGE = 'button-header-testnorge', diff --git a/apps/dolly-frontend/src/main/js/cypress/support/e2e.ts b/apps/dolly-frontend/src/main/js/cypress/support/e2e.ts index a0bdb8387ee..2ab4074255a 100644 --- a/apps/dolly-frontend/src/main/js/cypress/support/e2e.ts +++ b/apps/dolly-frontend/src/main/js/cypress/support/e2e.ts @@ -6,6 +6,8 @@ import { arenaMock, backendBestillingerMock, backendTransaksjonMock, + bestillingFragmentNavigerMock, + bestillingFragmentSearchMock, brregstubMock, brukerMalerMock, brukerOrganisasjonMalerMock, @@ -46,7 +48,11 @@ const profil = new RegExp(/\/profil\/bilde/) const hentGrupper = new RegExp(/api\/v1\/gruppe\?pageNo/) const histark = new RegExp(/testnav-histark-proxy\/api\//) const personFragmentSearch = new RegExp(/\/testnav-pdl-forvalter\/api\/v1\/identiteter\?fragment/) +const bestillingFragmentSearch = new RegExp( + /\/dolly-backend\/api\/v1\/bestilling\/soekBestilling\?fragment/, +) const personFragmentNaviger = new RegExp(/dolly-backend\/api\/v1\/ident\/naviger\/12345678912/) +const bestillingFragmentNaviger = new RegExp(/dolly-backend\/api\/v1\/bestilling\/naviger\/1/) const hentGruppeEn = new RegExp(/\/api\/v1\/gruppe\/1/) const hentGruppeTo = new RegExp(/\/api\/v1\/gruppe\/2/) const hentGruppeBestilling = new RegExp(/dolly-backend\/api\/v1\/bestilling\/gruppe\/1/) @@ -69,7 +75,7 @@ const pensjon = new RegExp(/testnav-pensjon-testdata-facade-proxy\/api\/v1\/innt const pensjonMiljoer = new RegExp(/testnav-pensjon-testdata-facade-proxy\/api\/v1\/miljo/) const pensjonTp = new RegExp(/testnav-pensjon-testdata-facade-proxy\/api\/v1\/tp(.*?)q1/) const krrstub = new RegExp(/testnav-krrstub-proxy\/api\/v2/) -const udistub = new RegExp(/dolly-backend\/api\/v1\/udistub/) +const udistub = new RegExp(/testnav-udistub-proxy\/api\/v1/) const brregstub = new RegExp(/testnav-brregstub/) const medl = new RegExp(/testnav-medl-proxy/) const sigrunstub = new RegExp(/testnav-sigrunstub-proxy\/api\/v1\/lignetinntekt/) @@ -100,7 +106,9 @@ beforeEach(() => { cy.intercept({ method: 'GET', url: miljoer }, miljoeMock).as('miljoer') cy.intercept({ method: 'GET', url: bilde }, { statusCode: 404 }).as('bilde') cy.intercept({ method: 'GET', url: personFragmentSearch }, personFragmentSearchMock) + cy.intercept({ method: 'GET', url: bestillingFragmentSearch }, bestillingFragmentSearchMock) cy.intercept({ method: 'GET', url: personFragmentNaviger }, personFragmentNavigerMock) + cy.intercept({ method: 'GET', url: bestillingFragmentNaviger }, bestillingFragmentNavigerMock) cy.intercept({ method: 'GET', url: hentGrupper }, paginerteGrupperMock) cy.intercept({ method: 'GET', url: histark }, histarkMock) cy.intercept({ method: 'GET', url: hentGruppeEn }, eksisterendeGruppeMock) diff --git a/apps/dolly-frontend/src/main/js/package-lock.json b/apps/dolly-frontend/src/main/js/package-lock.json index d8b989bcfa2..e06b609ae26 100644 --- a/apps/dolly-frontend/src/main/js/package-lock.json +++ b/apps/dolly-frontend/src/main/js/package-lock.json @@ -1,12 +1,12 @@ { "name": "dolly", - "version": "2.5.24", + "version": "2.5.29", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dolly", - "version": "2.5.24", + "version": "2.5.29", "license": "ISC", "dependencies": { "@babel/preset-flow": "^7.18.6", @@ -71,7 +71,7 @@ "@rollup/plugin-typescript": "^11.1.0", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", - "@types/node": "^20.0.0", + "@types/node": "^20.8.9", "@types/react": "^18.2.22", "@types/react-datepicker": "^4.4.2", "@types/react-dom": "^18.0.6", @@ -85,7 +85,7 @@ "@typescript-eslint/parser": "^6.0.0", "@vitejs/plugin-react": "^4.0.0", "babel-plugin-styled-components": "^2.1.1", - "cpx2": "^5.0.0", + "cpx2": "^6.0.0", "cross-env": "^7.0.3", "cypress": "^13.0.0", "cypress-react-selector": "^3.0.0", @@ -1146,9 +1146,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -1221,9 +1221,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", - "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", + "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -1278,9 +1278,9 @@ "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" }, "node_modules/@grafana/faro-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@grafana/faro-core/-/faro-core-1.2.1.tgz", - "integrity": "sha512-gI8CpyhAKRsMbPHom3sAa0qCgiQAXZrlv43Tv2q30PgMgNsV4iWI6UKHN/7NPJyvUFd+h0B/plukYDGZxO1kew==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@grafana/faro-core/-/faro-core-1.2.2.tgz", + "integrity": "sha512-ExI3dvPEdxnc2tEvhCsUBGeVExwESS4Gd6T04+PfTIKYqxf8R0SSqgJ1VJncA1FmOHvebqaghQ5rDmLv20o8XQ==", "dependencies": { "@opentelemetry/api": "^1.4.1", "@opentelemetry/api-metrics": "^0.33.0", @@ -1289,12 +1289,12 @@ } }, "node_modules/@grafana/faro-react": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@grafana/faro-react/-/faro-react-1.2.1.tgz", - "integrity": "sha512-pWdYxKnQXyVaTLXYUQ+ju/PJGen9WUy0VQkHi79pwat/cbMpC3UsOWDjHyau7vt2HdLXl9yxinZ0QQzyTbiiVw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@grafana/faro-react/-/faro-react-1.2.2.tgz", + "integrity": "sha512-eVdKsgR2uDRDyV2HS8hzFnKr+zrtvQ45i8mxYz7/hlYKM17L02GMBv3RqB4dbndBut2Fz3HKdSmhlGjGSS07cw==", "dependencies": { - "@grafana/faro-web-sdk": "^1.2.1", - "@grafana/faro-web-tracing": "^1.2.1", + "@grafana/faro-web-sdk": "^1.2.2", + "@grafana/faro-web-tracing": "^1.2.2", "hoist-non-react-statics": "^3.3.2" }, "peerDependencies": { @@ -1303,29 +1303,29 @@ } }, "node_modules/@grafana/faro-web-sdk": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@grafana/faro-web-sdk/-/faro-web-sdk-1.2.1.tgz", - "integrity": "sha512-86Bk3IjVNdV/WufkdPJVUvjx7PYKjPV5n2Szpn+dOewZqEDd1lIqhyFYqVVM9kdjT+ARbSzY5BZvb+r0Kh8tuQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@grafana/faro-web-sdk/-/faro-web-sdk-1.2.2.tgz", + "integrity": "sha512-0fnvPbfX6sgl3K2eiaQX9d/hTEoNA9kw5yVcznZgRVMfz/xBdSDwXEp680YVgcGWF9IQQEAHeFezKA5mNNZbIw==", "dependencies": { - "@grafana/faro-core": "^1.2.1", + "@grafana/faro-core": "^1.2.2", "ua-parser-js": "^1.0.32", "web-vitals": "^3.1.1" } }, "node_modules/@grafana/faro-web-tracing": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@grafana/faro-web-tracing/-/faro-web-tracing-1.2.1.tgz", - "integrity": "sha512-2GWXL0fhI+uaq0IO3RRTV2kJZaVLWGjYHIeNMcHnx2f46QETR8A73F3tLpVxyxtudJPGipK+lZ9ROtOznyu7fQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@grafana/faro-web-tracing/-/faro-web-tracing-1.2.2.tgz", + "integrity": "sha512-Zyj18tJWvgpkRxTf6dbgxPkZeJHCmcv5KECn9cSBIyDVwhsYMGT3B4XuVVmLXOvEVVIBb4dWtffPZUAdOpM8vg==", "dependencies": { - "@grafana/faro-web-sdk": "^1.2.1", + "@grafana/faro-web-sdk": "^1.2.2", "@opentelemetry/api": "^1.4.1", "@opentelemetry/context-zone": "^1.15.2", "@opentelemetry/core": "^1.15.2", "@opentelemetry/exporter-trace-otlp-http": "^0.41.2", - "@opentelemetry/instrumentation": "^0.41.2", + "@opentelemetry/instrumentation": "^0.44.0", "@opentelemetry/instrumentation-document-load": "^0.33.0", "@opentelemetry/instrumentation-fetch": "^0.41.2", - "@opentelemetry/instrumentation-xml-http-request": "^0.41.2", + "@opentelemetry/instrumentation-xml-http-request": "^0.44.0", "@opentelemetry/otlp-transformer": "^0.41.2", "@opentelemetry/resources": "^1.15.2", "@opentelemetry/sdk-trace-base": "^1.15.2", @@ -1349,11 +1349,11 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -1394,9 +1394,70 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", @@ -1443,9 +1504,9 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -1529,16 +1590,16 @@ "optional": true }, "node_modules/@navikt/aksel-icons": { - "version": "5.7.1", - "resolved": "https://npm.pkg.github.com/download/@navikt/aksel-icons/5.7.1/66f7c606cb01f1d577833327207330b76cc2c075", - "integrity": "sha512-QDZRHMYo1YeuBkE22RKgUErT+3792O5HIzsYKK9MeTXMpEl0rdG8FiSBSEMF3fE1URPn0BMt3mp1f8/WIN2D8g==", + "version": "5.7.6", + "resolved": "https://npm.pkg.github.com/download/@navikt/aksel-icons/5.7.6/0c3fc6f5044f60eb47358df7412be01365b82622", + "integrity": "sha512-GAQvvfVrS4n6qYIB9dCnzoVf5ZboWVDU8e9gfzQitVqysNFt8X2In9/BPX1eGZa44MCE5tr0mtnzkzLMkHpSHg==", "dev": true, "license": "MIT" }, "node_modules/@navikt/ds-css": { - "version": "5.7.1", - "resolved": "https://npm.pkg.github.com/download/@navikt/ds-css/5.7.1/1ea3574426f925cfc4664a4f1ca9a43503d98236", - "integrity": "sha512-2Z7Qj2wRBR2b900/k6sW7SLP4Y3HhH2rLqC+0X6M95jvO1m3kJEd3j1btX1danTN4RlR2Ik4p+uUhkZW3tKmhw==", + "version": "5.7.6", + "resolved": "https://npm.pkg.github.com/download/@navikt/ds-css/5.7.6/fef98381e0ed44b133390f7e2ed272b6fb5ec89e", + "integrity": "sha512-9sIffX+1nK8kkYemSJJ29urioEPI4vOqE5l1zpVtMrfmqcc8A5RWTV31V+7Rybj/fOO0F83HHP9oNJESTlsG6Q==", "dev": true, "license": "MIT" }, @@ -1560,15 +1621,15 @@ } }, "node_modules/@navikt/ds-react": { - "version": "5.7.1", - "resolved": "https://npm.pkg.github.com/download/@navikt/ds-react/5.7.1/a23773e521e9911f50cda20ca25273f18f82e56d", - "integrity": "sha512-P28wOxPzVB2c7IJZEG9EH4fR2c+xBd41jwLPJzPVNcpCQxQuOpRhM+VKUO3hiurC+AGyDclEjDjq7lnHK0Nclw==", + "version": "5.7.6", + "resolved": "https://npm.pkg.github.com/download/@navikt/ds-react/5.7.6/efba043f4e215f4724e122f19698431904529d71", + "integrity": "sha512-C+DAX2fl2jZX73lBgrMZCkHbIj8laOHjoZEOg6XAUIJEQgySIbeYv5Mtl5BnyOonZ7YOIvNAYhgG67gp+Fum7w==", "dev": true, "license": "MIT", "dependencies": { "@floating-ui/react": "0.25.4", - "@navikt/aksel-icons": "^5.7.1", - "@navikt/ds-tokens": "^5.7.1", + "@navikt/aksel-icons": "^5.7.6", + "@navikt/ds-tokens": "^5.7.6", "@radix-ui/react-tabs": "1.0.0", "@radix-ui/react-toggle-group": "1.0.0", "clsx": "^1.2.1", @@ -1708,9 +1769,9 @@ } }, "node_modules/@navikt/ds-tokens": { - "version": "5.7.1", - "resolved": "https://npm.pkg.github.com/download/@navikt/ds-tokens/5.7.1/95c2261013a7cb899f409026cb752d54ac20fde7", - "integrity": "sha512-3sv6bSAzA/yMGYf2an3daHkPsb8EcRkmQrLOWTvy9aSFsAWujv7Rb4prVBzINFfgyPIIcPTeXDL65IldguKzug==", + "version": "5.7.6", + "resolved": "https://npm.pkg.github.com/download/@navikt/ds-tokens/5.7.6/fbe6fee9d2df3add79e38162a491972814a4d625", + "integrity": "sha512-0zDth/bhegFthLK9FJPLAZayVAgGb+D4uFpfVRPKcu6fq2nBpcLttytoBhC6kPFe5pnBQmI6cgin4sZIbW5H/g==", "dev": true, "license": "MIT" }, @@ -1893,14 +1954,14 @@ } }, "node_modules/@opentelemetry/instrumentation": { - "version": "0.41.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.41.2.tgz", - "integrity": "sha512-rxU72E0pKNH6ae2w5+xgVYZLzc5mlxAbGzF4shxMVK8YC2QQsfN38B2GPbj0jvrKWWNUElfclQ+YTykkNg/grw==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.44.0.tgz", + "integrity": "sha512-B6OxJTRRCceAhhnPDBshyQO7K07/ltX3quOLu0icEvPK9QZ7r9P1y0RQX8O5DxB4vTv4URRkxkg+aFU/plNtQw==", "dependencies": { "@types/shimmer": "^1.0.2", "import-in-the-middle": "1.4.2", "require-in-the-middle": "^7.1.1", - "semver": "^7.5.1", + "semver": "^7.5.2", "shimmer": "^1.2.1" }, "engines": { @@ -1928,54 +1989,6 @@ "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@opentelemetry/instrumentation-document-load/node_modules/@opentelemetry/instrumentation": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.44.0.tgz", - "integrity": "sha512-B6OxJTRRCceAhhnPDBshyQO7K07/ltX3quOLu0icEvPK9QZ7r9P1y0RQX8O5DxB4vTv4URRkxkg+aFU/plNtQw==", - "dependencies": { - "@types/shimmer": "^1.0.2", - "import-in-the-middle": "1.4.2", - "require-in-the-middle": "^7.1.1", - "semver": "^7.5.2", - "shimmer": "^1.2.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-document-load/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/instrumentation-document-load/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/instrumentation-document-load/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/@opentelemetry/instrumentation-fetch": { "version": "0.41.2", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fetch/-/instrumentation-fetch-0.41.2.tgz", @@ -2007,6 +2020,24 @@ "@opentelemetry/api": ">=1.0.0 <1.5.0" } }, + "node_modules/@opentelemetry/instrumentation-fetch/node_modules/@opentelemetry/instrumentation": { + "version": "0.41.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.41.2.tgz", + "integrity": "sha512-rxU72E0pKNH6ae2w5+xgVYZLzc5mlxAbGzF4shxMVK8YC2QQsfN38B2GPbj0jvrKWWNUElfclQ+YTykkNg/grw==", + "dependencies": { + "@types/shimmer": "^1.0.2", + "import-in-the-middle": "1.4.2", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.1", + "shimmer": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, "node_modules/@opentelemetry/instrumentation-fetch/node_modules/@opentelemetry/resources": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.15.2.tgz", @@ -2062,90 +2093,51 @@ "node": ">=14" } }, - "node_modules/@opentelemetry/instrumentation-xml-http-request": { - "version": "0.41.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-xml-http-request/-/instrumentation-xml-http-request-0.41.2.tgz", - "integrity": "sha512-lRj9JPSVoE/lReUQ8afekoCyEAGdIWNrzF42Kv63cf5CCMqB/aoHH+NdnSXZ5ANsOvNQ9H65qTsqCbwkzn1x6g==", + "node_modules/@opentelemetry/instrumentation-fetch/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "@opentelemetry/core": "1.15.2", - "@opentelemetry/instrumentation": "0.41.2", - "@opentelemetry/sdk-trace-web": "1.15.2", - "@opentelemetry/semantic-conventions": "1.15.2" + "yallist": "^4.0.0" }, "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" + "node": ">=10" } }, - "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/core": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.15.2.tgz", - "integrity": "sha512-+gBv15ta96WqkHZaPpcDHiaz0utiiHZVfm2YOYSqFGrUaJpPkMoSuLBB58YFQGi6Rsb9EHos84X6X5+9JspmLw==", + "node_modules/@opentelemetry/instrumentation-fetch/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { - "@opentelemetry/semantic-conventions": "1.15.2" - }, - "engines": { - "node": ">=14" + "lru-cache": "^6.0.0" }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.5.0" - } - }, - "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/resources": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.15.2.tgz", - "integrity": "sha512-xmMRLenT9CXmm5HMbzpZ1hWhaUowQf8UB4jMjFlAxx1QzQcsD3KFNAVX/CAWzFPtllTyTplrA4JrQ7sCH3qmYw==", - "dependencies": { - "@opentelemetry/core": "1.15.2", - "@opentelemetry/semantic-conventions": "1.15.2" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.5.0" + "node": ">=10" } }, - "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.15.2.tgz", - "integrity": "sha512-BEaxGZbWtvnSPchV98qqqqa96AOcb41pjgvhfzDij10tkBhIu9m0Jd6tZ1tJB5ZHfHbTffqYVYE0AOGobec/EQ==", - "dependencies": { - "@opentelemetry/core": "1.15.2", - "@opentelemetry/resources": "1.15.2", - "@opentelemetry/semantic-conventions": "1.15.2" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.5.0" - } + "node_modules/@opentelemetry/instrumentation-fetch/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/sdk-trace-web": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.15.2.tgz", - "integrity": "sha512-OjCrwtu4b+cAt540wyIr7d0lCA/cY9y42lmYDFUfJ8Ixj2bByIUJ4yyd9M7mXHpQHdiR/Kq2vzsgS14Uj+RU0Q==", + "node_modules/@opentelemetry/instrumentation-xml-http-request": { + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-xml-http-request/-/instrumentation-xml-http-request-0.44.0.tgz", + "integrity": "sha512-wK3YoC40PzZUYRsdPo9VssOYLVeu1by05VQDBaL/Aiyoko7I0wakQ2Fg425IM06TJ2jbWQh4E+B3x4v0bsmoLw==", "dependencies": { - "@opentelemetry/core": "1.15.2", - "@opentelemetry/sdk-trace-base": "1.15.2", - "@opentelemetry/semantic-conventions": "1.15.2" + "@opentelemetry/core": "1.17.1", + "@opentelemetry/instrumentation": "0.44.0", + "@opentelemetry/sdk-trace-web": "1.17.1", + "@opentelemetry/semantic-conventions": "1.17.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.5.0" - } - }, - "node_modules/@opentelemetry/instrumentation-xml-http-request/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.15.2.tgz", - "integrity": "sha512-CjbOKwk2s+3xPIMcd5UNYQzsf+v94RczbdNix9/kQh38WiQkM90sUOi3if8eyHFgiBjBjhwXrA7W3ydiSQP9mw==", - "engines": { - "node": ">=14" + "@opentelemetry/api": "^1.0.0" } }, "node_modules/@opentelemetry/instrumentation/node_modules/lru-cache": { @@ -2447,6 +2439,16 @@ "node": ">=14" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pkgr/utils": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", @@ -2741,9 +2743,9 @@ } }, "node_modules/@rc-component/trigger": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.17.1.tgz", - "integrity": "sha512-ocD6GlyrPMtWfSdGmfURpudj6ZQqykG/+GH9QVhziG/0EtpPqK5FUbptwXDJGBJwvKhk4Z6jhxJE7utH464SgQ==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.18.0.tgz", + "integrity": "sha512-vloGnWpeTmt7DBw0OHnG9poQ8h1WFh0hebq6fpgVjGYSxm6JU8rLH+kNwVNNvhL6Rg5He4ESjOk6O7uF9dJhxA==", "dependencies": { "@babel/runtime": "^7.23.2", "@rc-component/portal": "^1.1.0", @@ -2808,9 +2810,9 @@ } }, "node_modules/@remix-run/router": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.9.0.tgz", - "integrity": "sha512-bV63itrKBC0zdT27qYm6SDZHlkXwFL1xMBuhkn+X7l0+IIhNaH5wuuvZKp6eKhCD4KFhujhfhCT1YxXW6esUIA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.10.0.tgz", + "integrity": "sha512-Lm+fYpMfZoEucJ7cMxgt4dYt8jLfbpwRCzAjm9UgSLOkmlqo9gupxt6YX3DY0Fk155NT9l17d/ydi+964uS9Lw==", "engines": { "node": ">=14.0.0" } @@ -3170,9 +3172,9 @@ "dev": true }, "node_modules/@types/babel__core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", - "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.3.tgz", + "integrity": "sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", @@ -3183,18 +3185,18 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.5", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", - "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", + "version": "7.6.6", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.6.tgz", + "integrity": "sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", - "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.3.tgz", + "integrity": "sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -3202,24 +3204,24 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", - "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.3.tgz", + "integrity": "sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/estree": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz", - "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.3.tgz", + "integrity": "sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==", "dev": true }, "node_modules/@types/hast": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.6.tgz", - "integrity": "sha512-47rJE80oqPmFdVDCD7IheXBrVdwuBgsYwoczFvKmwfo2Mzsnt+V9OONsYauFmICb6lQPpCuXYJWejBNs4pDJRg==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.7.tgz", + "integrity": "sha512-EVLigw5zInURhzfXUM65eixfadfsHKomGKUakToXo84t8gGIJuTcD2xooM2See7GyQ7DRtYjhCHnSUQez8JaLw==", "dependencies": { "@types/unist": "^2" } @@ -3231,9 +3233,9 @@ "dev": true }, "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.3.tgz", - "integrity": "sha512-Wny3a2UXn5FEA1l7gc6BbpoV5mD1XijZqgkp4TRgDCDL5r3B5ieOFGUX5h3n78Tr1MEG7BfvoM8qeztdvNU0fw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.4.tgz", + "integrity": "sha512-ZchYkbieA+7tnxwX/SCBySx9WwvWR8TaP5tb2jRAzwvLb/rWchGw3v0w3pqUbUvj0GCwW2Xz/AVPSk6kUGctXQ==", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -3245,9 +3247,9 @@ "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==" }, "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", + "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", "dev": true }, "node_modules/@types/json5": { @@ -3256,43 +3258,52 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, "node_modules/@types/lodash": { - "version": "4.14.199", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", - "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==", + "version": "4.14.200", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.200.tgz", + "integrity": "sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==", "dev": true }, "node_modules/@types/lodash-es": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.9.tgz", - "integrity": "sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==", + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.10.tgz", + "integrity": "sha512-YJP+w/2khSBwbUSFdGsSqmDvmnN3cCKoPOL7Zjle6s30ZtemkkqhjVfFqGwPN7ASil5VyjE2GtyU/yqYY6mC0A==", "dev": true, "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/node": { - "version": "20.8.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", - "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "version": "20.8.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.9.tgz", + "integrity": "sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.8.tgz", + "integrity": "sha512-vGXshY9vim9CJjrpcS5raqSjEfKlJcWy2HNdgUasR66fAnVEYarrf1ULV4nfvpC1nZq/moA9qyqBcu83x+Jlrg==", "dev": true, "dependencies": { - "undici-types": "~5.25.1" + "@types/node": "*" } }, "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.1.tgz", + "integrity": "sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng==" }, "node_modules/@types/prop-types": { - "version": "15.7.8", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.8.tgz", - "integrity": "sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==" + "version": "15.7.9", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", + "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==" }, "node_modules/@types/react": { - "version": "18.2.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.28.tgz", - "integrity": "sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg==", + "version": "18.2.33", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.33.tgz", + "integrity": "sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3300,9 +3311,9 @@ } }, "node_modules/@types/react-datepicker": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@types/react-datepicker/-/react-datepicker-4.19.0.tgz", - "integrity": "sha512-461OQou2oHJIfqeTPY+8lBn/V4Z7usmJhcGDWO/R8wQYm+H5/Cqsrwto89J2RTbhWdiynmvh78Beh8txN5y0mA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/@types/react-datepicker/-/react-datepicker-4.19.1.tgz", + "integrity": "sha512-HV52yjxuRi49psAVuHTFXXr+RSrCbIFDn9ayei0YH8xVVAXCO+5GwHAGKeREAmNbneweN0ySGoByr90yJCAnrQ==", "dev": true, "dependencies": { "@popperjs/core": "^2.9.2", @@ -3312,27 +3323,27 @@ } }, "node_modules/@types/react-dom": { - "version": "18.2.13", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.13.tgz", - "integrity": "sha512-eJIUv7rPP+EC45uNYp/ThhSpE16k22VJUknt5OLoH9tbXoi8bMhwLf5xRuWMywamNbWzhrSmU7IBJfPup1+3fw==", + "version": "18.2.14", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.14.tgz", + "integrity": "sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==", "dev": true, "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-highlight-words": { - "version": "0.16.5", - "resolved": "https://registry.npmjs.org/@types/react-highlight-words/-/react-highlight-words-0.16.5.tgz", - "integrity": "sha512-5vUJpVzB3G15nwXB8OEfWgAhEnwAlDXkm8SH6qF8i5jCSTEG2JOygKMJIsvetgYBJS6Sq1I8x3YQcAUDMjKxzg==", + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@types/react-highlight-words/-/react-highlight-words-0.16.6.tgz", + "integrity": "sha512-iGgne7Sf/vWfuOOWKURqj2LQwC8zBTZvNaw/uh9ZjwQfG40zfZKdkaE6387eWaDYjGdXQYPjUAhxjlaQhg4VYg==", "dev": true, "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-redux": { - "version": "7.1.27", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.27.tgz", - "integrity": "sha512-xj7d9z32p1K/eBmO+OEy+qfaWXtcPlN8f1Xk3Ne0p/ZRQ867RI5bQ/bpBtxbqU1AHNhKJSgGvld/P2myU2uYkg==", + "version": "7.1.28", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.28.tgz", + "integrity": "sha512-EQr7cChVzVUuqbA+J8ArWK1H0hLAHKOs21SIMrskKZ3nHNeE+LFYA+IsoZGhVOT8Ktjn3M20v4rnZKN3fLbypw==", "dev": true, "dependencies": { "@types/hoist-non-react-statics": "^3.3.0", @@ -3363,52 +3374,52 @@ } }, "node_modules/@types/react-syntax-highlighter": { - "version": "15.5.8", - "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.8.tgz", - "integrity": "sha512-GT1PLGzhF3ilGaQiCHFDShxDBb014s01MQi0nWfXJ23efjWfUrZ2i0g4tH1JGdfnIGBtQDge/k3ON3fLoAuU/w==", + "version": "15.5.9", + "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.9.tgz", + "integrity": "sha512-ven8zRSVMNkqt8ySJ2eEW5ugbfl/V/Z9S1c9UNhGqwkwVZNV5akk10rYDALxgwS25cLmN+/Q5UxlGj9CJmZ6Ew==", "dev": true, "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-transition-group": { - "version": "4.4.7", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.7.tgz", - "integrity": "sha512-ICCyBl5mvyqYp8Qeq9B5G/fyBSRC0zx3XM3sCC6KkcMsNeAHqXBKkmat4GqdJET5jtYUpZXrxI5flve5qhi2Eg==", + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.8.tgz", + "integrity": "sha512-QmQ22q+Pb+HQSn04NL3HtrqHwYMf4h3QKArOy5F8U5nEVMaihBs3SR10WiOM1iwPz5jIo8x/u11al+iEGZZrvg==", "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-window": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.6.tgz", - "integrity": "sha512-AVJr3A5rIO9dQQu5TwTN0lP2c1RtuqyyZGCt7PGP8e5gUpn1PuQRMJb/u3UpdbwTHh4wbEi33UMW5NI0IXt1Mg==", + "version": "1.8.7", + "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.7.tgz", + "integrity": "sha512-FpPHEhmGVOBKomuR4LD2nvua1Ajcw6PfnfbDysuCwwPae3JNulcq3+uZIpQNbDN2AI1z+Y4tKj2xQ4ELiQ4QDw==", "dev": true, "dependencies": { "@types/react": "*" } }, "node_modules/@types/redux-actions": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/redux-actions/-/redux-actions-2.6.3.tgz", - "integrity": "sha512-dmBoPJcJjiRXgc3Bw1dfUy2IiJI95DuN7dJ4V/G/FsbZ+LY5aKyS8qBAldMLq23JOLc/DxxwvLOF82Hr7HtY/g==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@types/redux-actions/-/redux-actions-2.6.4.tgz", + "integrity": "sha512-oXaibuxd4DOuWAz1W8Mbc18v9KDAi2Ex/pEv7Sml1CO2Xj1+cPYBR2esG/ioawXATBNhR0DXfFNHLPQsKB1wuQ==", "dev": true }, "node_modules/@types/scheduler": { - "version": "0.16.4", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.4.tgz", - "integrity": "sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==" + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz", + "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==" }, "node_modules/@types/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", "dev": true }, "node_modules/@types/shimmer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.0.3.tgz", - "integrity": "sha512-F/IjUGnV6pIN7R4ZV4npHJVoNtaLZWvb+2/9gctxjb99wkpI7Ozg8VPogwDiTRyjLwZXAYxjvdg1KS8LTHKdDA==" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.0.4.tgz", + "integrity": "sha512-hsughtxFsdJ9+Gxd/qH8zHE+KT6YEAxx9hJLoSXhxTBKHMQ2NMhN23fRJ75M9RRn2hDMNn13H3gS1EktA9VgDA==" }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.1", @@ -3417,20 +3428,20 @@ "dev": true }, "node_modules/@types/sizzle": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.4.tgz", - "integrity": "sha512-jA2llq2zNkg8HrALI7DtWzhALcVH0l7i89yhY3iBdOz6cBPeACoFq+fkQrjHA39t1hnSFOboZ7A/AY5MMZSlag==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.5.tgz", + "integrity": "sha512-tAe4Q+OLFOA/AMD+0lq8ovp8t3ysxAOeaScnfNdZpUxaGl51ZMDEITxkvFl1STudQ58mz6gzVGl9VhMKhwRnZQ==", "dev": true }, "node_modules/@types/stylis": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.1.tgz", - "integrity": "sha512-OSaMrXUKxVigGlKRrET39V2xdhzlztQ9Aqumn1WbCBKHOi9ry7jKSd7rkyj0GzmWaU960Rd+LpOFpLfx5bMQAg==" + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.2.tgz", + "integrity": "sha512-Rm17MsTpQQP5Jq4BF7CdrxJsDufoiL/q5IbJZYZmOZAJALyijgF7BzLgobXUqraNcQdqFYLYGeglDp6QzaxPpg==" }, "node_modules/@types/unist": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.8.tgz", - "integrity": "sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==" + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.9.tgz", + "integrity": "sha512-zC0iXxAv1C1ERURduJueYzkzZ2zaGyc+P2c95hgkikHPr3z8EdUZOlgEQ5X0DRmwDZn+hekycQnoeiiRVrmilQ==" }, "node_modules/@types/use-sync-external-store": { "version": "0.0.3", @@ -3439,9 +3450,9 @@ "dev": true }, "node_modules/@types/yauzl": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz", - "integrity": "sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==", + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.2.tgz", + "integrity": "sha512-Km7XAtUIduROw7QPgvcft0lIupeG8a8rdKL8RiSyKvlE7dYY31fEn41HVuQsRFDuROA8tA4K2UVL+WdfFmErBA==", "dev": true, "optional": true, "dependencies": { @@ -3449,16 +3460,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", - "integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.0.tgz", + "integrity": "sha512-lgX7F0azQwRPB7t7WAyeHWVfW1YJ9NIgd9mvGhfQpRY56X6AVf8mwM8Wol+0z4liE7XX3QOt8MN1rUKCfSjRIA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/type-utils": "6.7.5", - "@typescript-eslint/utils": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", + "@typescript-eslint/scope-manager": "6.9.0", + "@typescript-eslint/type-utils": "6.9.0", + "@typescript-eslint/utils": "6.9.0", + "@typescript-eslint/visitor-keys": "6.9.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -3517,15 +3528,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz", - "integrity": "sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.0.tgz", + "integrity": "sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/typescript-estree": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", + "@typescript-eslint/scope-manager": "6.9.0", + "@typescript-eslint/types": "6.9.0", + "@typescript-eslint/typescript-estree": "6.9.0", + "@typescript-eslint/visitor-keys": "6.9.0", "debug": "^4.3.4" }, "engines": { @@ -3545,13 +3556,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", - "integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.0.tgz", + "integrity": "sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5" + "@typescript-eslint/types": "6.9.0", + "@typescript-eslint/visitor-keys": "6.9.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -3562,13 +3573,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", - "integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.9.0.tgz", + "integrity": "sha512-XXeahmfbpuhVbhSOROIzJ+b13krFmgtc4GlEuu1WBT+RpyGPIA4Y/eGnXzjbDj5gZLzpAXO/sj+IF/x2GtTMjQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.5", - "@typescript-eslint/utils": "6.7.5", + "@typescript-eslint/typescript-estree": "6.9.0", + "@typescript-eslint/utils": "6.9.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -3589,9 +3600,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz", - "integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.0.tgz", + "integrity": "sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -3602,13 +3613,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", - "integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.0.tgz", + "integrity": "sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", + "@typescript-eslint/types": "6.9.0", + "@typescript-eslint/visitor-keys": "6.9.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3662,17 +3673,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", - "integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.9.0.tgz", + "integrity": "sha512-5Wf+Jsqya7WcCO8me504FBigeQKVLAMPmUzYgDbWchINNh1KJbxCgVya3EQ2MjvJMVeXl3pofRmprqX6mfQkjQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/scope-manager": "6.9.0", + "@typescript-eslint/types": "6.9.0", + "@typescript-eslint/typescript-estree": "6.9.0", "semver": "^7.5.4" }, "engines": { @@ -3720,12 +3731,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", - "integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.0.tgz", + "integrity": "sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/types": "6.9.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -3736,6 +3747,11 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, "node_modules/@vitejs/plugin-react": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.1.0.tgz", @@ -3767,9 +3783,9 @@ "optional": true }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "bin": { "acorn": "bin/acorn" }, @@ -3794,9 +3810,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", + "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", "dev": true, "engines": { "node": ">=0.4.0" @@ -4208,9 +4224,9 @@ } }, "node_modules/axios": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", - "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", + "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -4446,12 +4462,13 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4486,9 +4503,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001549", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001549.tgz", - "integrity": "sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA==", + "version": "1.0.30001554", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001554.tgz", + "integrity": "sha512-A2E3U//MBwbJVzebddm1YfNp7Nud5Ip+IPn4BozBmn4KqVX7AvluoIDFWjsv5OkGnKUXQVmMSoMKLa3ScCblcQ==", "funding": [ { "type": "opencollective", @@ -4719,6 +4736,56 @@ "node": ">=12" } }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/clsx": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", @@ -4851,18 +4918,18 @@ } }, "node_modules/cpx2": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cpx2/-/cpx2-5.0.0.tgz", - "integrity": "sha512-43LMini/KvlKMHjU7solCgVgNBspCmQ1noP5ckMa0VApaXrJFLcdfSxZxcdvH3wWcOvCwFGvOPBawOesI3oWMQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cpx2/-/cpx2-6.0.1.tgz", + "integrity": "sha512-yzeVueRl+HtxHYmaDnnFdpXkAocqtPD9STTh61m4GpX4B6+oFB/ClsoJLXwjj9lguA0Ry2EpLvWIpRJ/x0bWbw==", "dev": true, "dependencies": { "debounce": "^1.2.0", "debug": "^4.1.1", "duplexer": "^0.1.1", "fs-extra": "^11.1.0", - "glob-gitignore": "^1.0.14", + "glob": "^10.3.10", "glob2base": "0.0.12", - "ignore": "^5.1.8", + "ignore": "^5.2.4", "minimatch": "^9.0.0", "p-map": "^6.0.0", "resolve": "^1.12.0", @@ -4977,9 +5044,9 @@ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/cypress": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.3.1.tgz", - "integrity": "sha512-g4mJLZxYN+UAF2LMy3Znd4LBnUmS59Vynd81VES59RdW48Yt+QtR2cush3melOoVNz0PPbADpWr8DcUx6mif8Q==", + "version": "13.3.3", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.3.3.tgz", + "integrity": "sha512-mbdkojHhKB1xbrj7CrKWHi22uFx9P9vQFiR0sYDZZoK99OMp9/ZYN55TO5pjbXmV7xvCJ4JwBoADXjOJK8aCJw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -5059,10 +5126,13 @@ } }, "node_modules/cypress/node_modules/@types/node": { - "version": "18.18.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.5.tgz", - "integrity": "sha512-4slmbtwV59ZxitY4ixUZdy1uRLf9eSIvBWPQxNjhHYWEtn0FryfKpyS2cvADYXTayWdKEIsJengncrVvkI4I6A==", - "dev": true + "version": "18.18.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.7.tgz", + "integrity": "sha512-bw+lEsxis6eqJYW8Ql6+yTqkE6RuFtsQPSe5JxXbqYRFQEER5aJA9a5UH9igqDWm3X4iLHIKOHlnAXLM4mi7uQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/cypress/node_modules/ansi-styles": { "version": "4.3.0", @@ -5585,6 +5655,12 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -5596,9 +5672,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.554", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.554.tgz", - "integrity": "sha512-Q0umzPJjfBrrj8unkONTgbKQXzXRrH7sVV7D9ea2yBV3Oaogz991yhbpfvo2LMNkJItmruXTEzVpP9cp7vaIiQ==" + "version": "1.4.568", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.568.tgz", + "integrity": "sha512-3TCOv8+BY6Ltpt1/CmGBMups2IdKOyfEmz4J8yIS4xLSeMm0Rf+psSaxLuswG9qMKt+XbNbmADybtXGpTFlbDg==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -5681,25 +5757,25 @@ } }, "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", + "hasown": "^2.0.0", "internal-slot": "^1.0.5", "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", @@ -5709,7 +5785,7 @@ "is-string": "^1.0.7", "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.5.1", @@ -5723,7 +5799,7 @@ "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -5755,24 +5831,24 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -5845,17 +5921,18 @@ } }, "node_modules/eslint": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", - "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", + "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.51.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/js": "8.52.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -5976,25 +6053,25 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", + "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", "semver": "^6.3.1", "tsconfig-paths": "^3.14.2" }, @@ -6727,6 +6804,34 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -6921,14 +7026,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6994,41 +7099,27 @@ } }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-gitignore": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/glob-gitignore/-/glob-gitignore-1.0.14.tgz", - "integrity": "sha512-YuAEPqL58bOQDqDF2kMv009rIjSAtPs+WPzyGbwRWK+wD0UWQVRoP34Pz6yJ6ivco65C9tZnaIt0I3JCuQ8NZQ==", - "dev": true, - "dependencies": { - "glob": "^7.1.3", - "ignore": "^5.0.5", - "lodash.difference": "^4.5.0", - "lodash.union": "^4.6.0", - "make-array": "^1.0.5", - "util.inherits": "^1.0.3" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -7040,26 +7131,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/glob2base": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", @@ -7181,11 +7252,11 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dependencies": { - "get-intrinsic": "^1.1.1" + "get-intrinsic": "^1.2.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7233,6 +7304,17 @@ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "optional": true }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hast-util-parse-selector": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", @@ -7478,12 +7560,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -7607,11 +7689,11 @@ } }, "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8020,6 +8102,24 @@ "set-function-name": "^2.0.1" } }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/joi": { "version": "17.11.0", "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", @@ -8412,6 +8512,39 @@ } } }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/listr2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/listr2/node_modules/p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -8427,6 +8560,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -8451,12 +8601,6 @@ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -8473,12 +8617,6 @@ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -8688,19 +8826,10 @@ "yallist": "^3.0.2" } }, - "node_modules/make-array": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/make-array/-/make-array-1.0.5.tgz", - "integrity": "sha512-sgK2SAzxT19rWU+qxKUcn6PAh/swiIiz2F8C2cZjLc1z4iwYIfdoihqFIDQ8BDzAGtWPYJ6Sr13K1j/DXynDLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/make-cancellable-promise": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/make-cancellable-promise/-/make-cancellable-promise-1.3.1.tgz", - "integrity": "sha512-DWOzWdO3xhY5ESjVR+wVFy03rpt0ZccS4bunccNwngoX6rllKlMZm6S9ZnJ5nMuDDweqDMjtaO0g6tZeh+cCUA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/make-cancellable-promise/-/make-cancellable-promise-1.3.2.tgz", + "integrity": "sha512-GCXh3bq/WuMbS+Ky4JBPW1hYTOU+znU+Q5m9Pu+pI8EoUqIHk9+tviOKC6/qhHh8C4/As3tzJ69IF32kdz85ww==", "dev": true, "funding": { "url": "https://github.com/wojtekmaj/make-cancellable-promise?sponsor=1" @@ -8747,9 +8876,9 @@ "dev": true }, "node_modules/make-event-props": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.6.1.tgz", - "integrity": "sha512-JhvWq/iz1BvlmnPvLJjXv+xnMPJZuychrDC68V+yCGQJn5chcA8rLGKo5EP1XwIKVrigSXKLmbeXAGkf36wdCQ==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.6.2.tgz", + "integrity": "sha512-iDwf7mA03WPiR8QxvcVHmVWEPfMY1RZXerDVNCRYW7dUr2ppH3J58Rwb39/WG39yTZdRSxr3x+2v22tvI0VEvA==", "dev": true, "funding": { "url": "https://github.com/wojtekmaj/make-event-props?sponsor=1" @@ -8772,15 +8901,20 @@ "integrity": "sha512-QmpUu4KqDmX0plH4u+tf0riMc1KHE1+lw95cMrLlXQAFOx/xnBtwhZ52XJxd9X2O6kwKBqX32kmhbhlobD0cuw==" }, "node_modules/merge-refs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-1.2.1.tgz", - "integrity": "sha512-pRPz39HQz2xzHdXAGvtJ9S8aEpNgpUjzb5yPC3ytozodmsHg+9nqgRs7/YOmn9fM/TLzntAC8AdGTidKxOq9TQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-1.2.2.tgz", + "integrity": "sha512-RwcT7GsQR3KbuLw1rRuodq4Nt547BKEBkliZ0qqsrpyNne9bGTFtsFIsIpx82huWhcl3kOlOlH4H0xkPk/DqVw==", "dev": true, - "dependencies": { - "@types/react": "*" - }, "funding": { "url": "https://github.com/wojtekmaj/merge-refs?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/merge-stream": { @@ -8886,12 +9020,12 @@ } }, "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "optional": true, + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/minizlib": { @@ -9128,9 +9262,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.0.tgz", - "integrity": "sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9414,6 +9548,31 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -9746,13 +9905,13 @@ } }, "node_modules/rc-resize-observer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.3.1.tgz", - "integrity": "sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz", + "integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==", "dependencies": { "@babel/runtime": "^7.20.7", "classnames": "^2.2.1", - "rc-util": "^5.27.0", + "rc-util": "^5.38.0", "resize-observer-polyfill": "^1.5.1" }, "peerDependencies": { @@ -9761,12 +9920,12 @@ } }, "node_modules/rc-tooltip": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.1.1.tgz", - "integrity": "sha512-YoxL0Ev4htsX37qgN23eKr0L5PIRpZaLVL9GX6aJ4x6UEnwgXZYUNCAEHfKlKT3eD1felDq3ob4+Cn9lprLDBw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.1.2.tgz", + "integrity": "sha512-89zwvybvCxGJu3+gGF8w5AXd4HHk6hIN7K0vZbkzjilVaEAIWPqc1fcyeUeP71n3VCcw7pTL9LyFupFbrx8gHw==", "dependencies": { "@babel/runtime": "^7.11.2", - "@rc-component/trigger": "^1.17.0", + "@rc-component/trigger": "^1.18.0", "classnames": "^2.3.1" }, "peerDependencies": { @@ -9812,9 +9971,9 @@ } }, "node_modules/react-datepicker": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.20.0.tgz", - "integrity": "sha512-I29yHN9SabUDSy7Xq3P8+E8E+D2vyeuYAYYWWjeMisGGtsatltV4CSHodyA7W9z0BuGycc/bhSClDbizx4gZHA==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.21.0.tgz", + "integrity": "sha512-z0DtuRrKMz9i7dcTusW29VacbM9pn08g1yw0cG+Y5GpodJDxSWv7zUMxl3IwKN9Ap/AMphiepvmT5P+iNCgEiA==", "dependencies": { "@popperjs/core": "^2.11.8", "classnames": "^2.2.6", @@ -9829,9 +9988,9 @@ } }, "node_modules/react-day-picker": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.9.0.tgz", - "integrity": "sha512-XgoUgexp5KUy03lGsBDRkV+YQy73qJOLNPojeKe0dDNamrCM75PSBhMBkYVjgMSDy12LGWlbThSRK8p0kozAOA==", + "version": "8.9.1", + "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.9.1.tgz", + "integrity": "sha512-W0SPApKIsYq+XCtfGeMYDoU0KbsG3wfkYtlw8l+vZp6KoBXGOlhzBUp4tNx1XiwiOZwhfdGOlj7NGSCKGSlg5Q==", "funding": { "type": "individual", "url": "https://github.com/sponsors/gpbl" @@ -9915,14 +10074,14 @@ } }, "node_modules/react-inlinesvg": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-4.0.6.tgz", - "integrity": "sha512-4kByDS+0Ah3sNX9m0qS0SGafiQInz+nRksPFL1aTkmK5ExQYT9kjqQBUwhIFPvZyS/rxDLg9i56lYpHMJz7heg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-4.1.0.tgz", + "integrity": "sha512-S7kSE6ldKVpumEYTNXmCs4pAKoDzklP6TklI8oBx23fw8/+VBwO5X0M7/Ii0weieO1DqElUJg5EI8cq7zo5oPg==", "dependencies": { "react-from-dom": "^0.6.2" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "16.8 - 18" } }, "node_modules/react-is": { @@ -9999,9 +10158,9 @@ } }, "node_modules/react-pdf": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-7.5.0.tgz", - "integrity": "sha512-hX7SfQGd9T6pdd3H5HcR1VzrRCehkhnBh/tsyz9GO9cXrYHgoxupboVL2VCQpBBSak+/UQSMCj+3JTOdheuwwQ==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-7.5.1.tgz", + "integrity": "sha512-NVno97L3wfX3RLGB3C+QtroOiQrgCKPHLMFKMSQaRqDlH3gkq2CB2NyXJ+IDQNLrT/gSMPPgtZQL8cOUySc/3w==", "dev": true, "dependencies": { "clsx": "^2.0.0", @@ -10104,11 +10263,11 @@ } }, "node_modules/react-router": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.16.0.tgz", - "integrity": "sha512-VT4Mmc4jj5YyjpOi5jOf0I+TYzGpvzERy4ckNSvSh2RArv8LLoCxlsZ2D+tc7zgjxcY34oTz2hZaeX5RVprKqA==", + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.17.0.tgz", + "integrity": "sha512-YJR3OTJzi3zhqeJYADHANCGPUu9J+6fT5GLv82UWRGSxu6oJYCKVmxUcaBQuGm9udpWmPsvpme/CdHumqgsoaA==", "dependencies": { - "@remix-run/router": "1.9.0" + "@remix-run/router": "1.10.0" }, "engines": { "node": ">=14.0.0" @@ -10118,12 +10277,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.16.0.tgz", - "integrity": "sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg==", + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.17.0.tgz", + "integrity": "sha512-qWHkkbXQX+6li0COUUPKAUkxjNNqPJuiBd27dVwQGDNsuFBdMbrS6UZ0CLYc4CsbdLYTckn4oB4tGDuPZpPhaQ==", "dependencies": { - "@remix-run/router": "1.9.0", - "react-router": "6.16.0" + "@remix-run/router": "1.10.0", + "react-router": "6.17.0" }, "engines": { "node": ">=14.0.0" @@ -10535,6 +10694,45 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", @@ -10753,9 +10951,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.69.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.3.tgz", - "integrity": "sha512-X99+a2iGdXkdWn1akFPs0ZmelUzyAQfvqYc2P/MPTrJRuIRoTffGzT9W9nFqG00S+c8hXzVmgxhUuHFdrwxkhQ==", + "version": "1.69.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", + "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -10796,11 +10994,12 @@ } }, "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, "dependencies": { + "@types/node-forge": "^1.3.0", "node-forge": "^1" }, "engines": { @@ -10830,6 +11029,20 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "optional": true }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-function-name": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", @@ -11070,9 +11283,9 @@ } }, "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "dependencies": { "asn1": "~0.2.3", @@ -11234,6 +11447,27 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -11313,6 +11547,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -11495,6 +11742,15 @@ "node": ">=10" } }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/tar/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -11502,9 +11758,9 @@ "optional": true }, "node_modules/terser": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.21.0.tgz", - "integrity": "sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==", + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.22.0.tgz", + "integrity": "sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -11931,9 +12187,9 @@ } }, "node_modules/undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, "node_modules/universalify": { @@ -12038,15 +12294,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "optional": true }, - "node_modules/util.inherits": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util.inherits/-/util.inherits-1.0.3.tgz", - "integrity": "sha512-gMirHcfcq5D87nXDwbZqf5vl65S0mpMZBsHXJsXOO3Hc3G+JoQLwgaJa1h+PL7h3WhocnuLqoe8CuvMlztkyCA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", @@ -12080,9 +12327,9 @@ } }, "node_modules/vite": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", - "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", "dev": true, "dependencies": { "esbuild": "^0.18.10", @@ -12310,12 +12557,12 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" @@ -12337,6 +12584,24 @@ } }, "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", @@ -12353,7 +12618,7 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -12368,7 +12633,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -12380,12 +12645,68 @@ "node": ">=7.0.0" } }, - "node_modules/wrap-ansi/node_modules/color-name": { + "node_modules/wrap-ansi-cjs/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/apps/dolly-frontend/src/main/js/package.json b/apps/dolly-frontend/src/main/js/package.json index 8d8e76917cd..18855a36dda 100644 --- a/apps/dolly-frontend/src/main/js/package.json +++ b/apps/dolly-frontend/src/main/js/package.json @@ -1,6 +1,6 @@ { "name": "dolly", - "version": "2.5.24", + "version": "2.5.29", "description": "", "main": "index.js", "scripts": { @@ -78,7 +78,7 @@ "@rollup/plugin-typescript": "^11.1.0", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", - "@types/node": "^20.0.0", + "@types/node": "^20.8.9", "@types/react": "^18.2.22", "@types/react-datepicker": "^4.4.2", "@types/react-dom": "^18.0.6", @@ -92,7 +92,7 @@ "@typescript-eslint/parser": "^6.0.0", "@vitejs/plugin-react": "^4.0.0", "babel-plugin-styled-components": "^2.1.1", - "cpx2": "^5.0.0", + "cpx2": "^6.0.0", "cross-env": "^7.0.3", "cypress": "^13.0.0", "cypress-react-selector": "^3.0.0", diff --git a/apps/dolly-frontend/src/main/js/proxy-routes.json b/apps/dolly-frontend/src/main/js/proxy-routes.json index 5756c511445..ec1e44f6817 100644 --- a/apps/dolly-frontend/src/main/js/proxy-routes.json +++ b/apps/dolly-frontend/src/main/js/proxy-routes.json @@ -69,6 +69,11 @@ "changeOrigin": true, "secure": false }, + "/testnav-udistub-proxy/api": { + "target": "http://localhost:8020", + "changeOrigin": true, + "secure": false + }, "/testnav-inntektstub-proxy/api": { "target": "http://localhost:8020", "changeOrigin": true, diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/krrstub/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/krrstub/form/Form.tsx index 8c473a39dc3..97c9aeb68b6 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/krrstub/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/krrstub/form/Form.tsx @@ -73,7 +73,11 @@ export const KrrstubForm = ({ formikBag }: KrrstubFormProps) => { fastfield={false} /> - + { const opts = useContext(BestillingsveilederContext) const { nyBestilling, nyBestillingFraMal } = opts?.is + function kalkulerIdentFyltSyttenAar(values: FormikProps) { + const curDate = new Date() + const alder = + _.has(values, 'pdldata.opprettNyPerson.foedtEtter') && + _.get(values, 'pdldata.opprettNyPerson.foedtEtter') !== null + ? curDate.getFullYear() - + // @ts-ignore + new Date(_.get(values, 'pdldata.opprettNyPerson.foedtEtter')).getFullYear() + : _.get(values, 'pdldata.opprettNyPerson.alder') + return alder && curDate.getFullYear() - alder + 17 + } + + const syttenFraOgMedAar = kalkulerIdentFyltSyttenAar(formikBag.values) const minAar = new Date().getFullYear() - 17 const valgtAar = _.get(formikBag.values, `${pensjonPath}.fomAar`) @@ -48,7 +62,7 @@ export const PensjonForm = ({ formikBag }) => { diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/udistub/visning/UdiVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/udistub/visning/UdiVisning.tsx index 3a28ac06175..1f3412bf9e0 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/udistub/visning/UdiVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/udistub/visning/UdiVisning.tsx @@ -8,14 +8,16 @@ import { Annet } from './partials/Annet' import { ErrorBoundary } from '@/components/ui/appError/ErrorBoundary' import { hasProperty } from 'dot-prop' import { Alert } from '@navikt/ds-react' +import { filtrerKeysMedKunNullVerdier } from '@/components/fagsystem/utils' const kunTommeObjekter = (udiData) => { const { oppholdStatus, arbeidsadgang, aliaser } = udiData + const formatertOppholdStatus = filtrerKeysMedKunNullVerdier(oppholdStatus) return ( - (!oppholdStatus || Object.keys(oppholdStatus)?.length < 1) && - (!arbeidsadgang || Object.keys(arbeidsadgang)?.length < 1) && - (!aliaser || (Array.isArray(aliaser) && aliaser.length < 1)) && - !hasProperty(udiData, 'flyktning') && + (_.isEmpty(formatertOppholdStatus) || Object.keys(oppholdStatus)?.length < 1) && + (_.isEmpty(arbeidsadgang) || Object.keys(arbeidsadgang)?.length < 1) && + (_.isEmpty(aliaser) || (Array.isArray(aliaser) && aliaser.length < 1)) && + !udiData?.flyktning && !hasProperty(udiData, 'soeknadOmBeskyttelseUnderBehandling') ) } @@ -41,7 +43,7 @@ export const UdiVisning = ({ data, loading }) => { ) : (
diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/udistub/visning/partials/Oppholdsstatus.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/udistub/visning/partials/Oppholdsstatus.tsx index ca8e4c22552..ae1f4c5016d 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/udistub/visning/partials/Oppholdsstatus.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/udistub/visning/partials/Oppholdsstatus.tsx @@ -5,7 +5,7 @@ import { AvslagEllerBortfall, AvslagEllerBortfallVisning } from './AvslagEllerBo type Opphold = { oppholdsstatus: { - oppholdSammeVilkaar: {} + oppholdSammeVilkaar: object ikkeOppholdstilatelseIkkeVilkaarIkkeVisum: { avslagEllerBortfall: AvslagEllerBortfall } @@ -15,7 +15,8 @@ type Opphold = { } export const Oppholdsstatus = ({ oppholdsstatus, oppholdstillatelse }: Opphold) => { - if (!oppholdsstatus && !oppholdstillatelse) { + const opphold = _.omitBy(oppholdsstatus, _.isNil) + if (_.isEmpty(opphold) && !oppholdstillatelse) { return null } @@ -25,14 +26,14 @@ export const Oppholdsstatus = ({ oppholdsstatus, oppholdstillatelse }: Opphold) 'eosEllerEFTAOppholdstillatelse', ] // @ts-ignore - const currentOppholdsrettType = oppholdsrettTyper.find((type) => oppholdsstatus[type]) + const currentOppholdsrettType = oppholdsrettTyper.find((type) => opphold[type]) const currentTredjelandsborgereStatus = () => { - if (oppholdsstatus.oppholdSammeVilkaar) { + if (opphold.oppholdSammeVilkaar) { return 'Oppholdstillatelse eller opphold på samme vilkår' - } else if (oppholdsstatus.ikkeOppholdstilatelseIkkeVilkaarIkkeVisum) { + } else if (opphold.ikkeOppholdstilatelseIkkeVilkaarIkkeVisum) { return 'Ikke oppholdstillatelse eller ikke opphold på samme vilkår' - } else if (oppholdsstatus.uavklart) { + } else if (opphold.uavklart) { return 'Uavklart' } return null @@ -64,36 +65,36 @@ export const Oppholdsstatus = ({ oppholdsstatus, oppholdstillatelse }: Opphold) title="Oppholdstillatelse fra" value={formatStringDates( tredjelandsborger - ? _.get(oppholdsstatus, 'oppholdSammeVilkaar.oppholdSammeVilkaarPeriode.fra') - : _.get(oppholdsstatus, `${currentOppholdsrettType}Periode.fra`) + ? _.get(opphold, 'oppholdSammeVilkaar.oppholdSammeVilkaarPeriode.fra') + : _.get(opphold, `${currentOppholdsrettType}Periode.fra`), )} /> {oppholdstillatelse && } @@ -109,7 +110,7 @@ export const Oppholdsstatus = ({ oppholdsstatus, oppholdstillatelse }: Opphold)
diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/utils.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/utils.tsx index c806afaf1e7..f93a824e191 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/utils.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/utils.tsx @@ -20,6 +20,19 @@ export const testDatoTom = (val, fomPath, feilmelding = 'Dato må være etter fr }) } +export const filtrerKeysMedKunNullVerdier = (data) => { + if (!data) { + return null + } + JSON.stringify( + data, + (_key, value) => { + return value === null || value === '' ? undefined : value + }, + 4, + ) +} + export const getEksisterendeNyPerson = ( relasjoner: Array, ident: String, diff --git a/apps/dolly-frontend/src/main/js/src/ducks/errors/ErrorMessages.tsx b/apps/dolly-frontend/src/main/js/src/ducks/errors/ErrorMessages.tsx new file mode 100644 index 00000000000..9e5ec82d597 --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/ducks/errors/ErrorMessages.tsx @@ -0,0 +1,6 @@ +export const ERROR_NAVIGATE_IDENT = 'Klarte ikke å navigere til person' +export const ERROR_ACTIVE_USER = 'Klarte ikke å hente aktiv bruker, navigerer til login..' +export const ERROR_ACCESS_DENIED = 'Du mangler tilgang til denne gruppen.' +export const ERROR_FETCH_GRUPPE_FAILED = + 'Noe gikk galt med henting av gruppe. Ta kontakt med Team Dolly hvis feilen vedvarer.' +export const ERROR_GENERIC = 'Noe gikk galt.' diff --git a/apps/dolly-frontend/src/main/js/src/ducks/fagsystem/index.tsx b/apps/dolly-frontend/src/main/js/src/ducks/fagsystem/index.tsx index ad70f230cb3..4a22363e8cc 100644 --- a/apps/dolly-frontend/src/main/js/src/ducks/fagsystem/index.tsx +++ b/apps/dolly-frontend/src/main/js/src/ducks/fagsystem/index.tsx @@ -54,12 +54,6 @@ export const actions = createActions( ident, }), ], - getUdi: [ - DollyApi.getUdiPerson, - (ident) => ({ - ident, - }), - ], getBrreg: [ BrregstubApi.getPerson, (ident) => ({ @@ -157,9 +151,6 @@ export default handleActions( [onSuccess(actions.getKrr)](state, action) { state.krrstub[action.meta.ident] = action.payload.data }, - [onSuccess(actions.getUdi)](state, action) { - state.udistub[action.meta.ident] = action.payload?.data?.person - }, [onSuccess(actions.getBrreg)](state, action) { state.brregstub[action.meta.ident] = action.payload?.data }, @@ -270,8 +261,6 @@ export const fetchDataFraFagsystemer = (person, bestillingerById) => (dispatch) return dispatch(actions.getInntektstub(personId)) case 'TPS_MESSAGING': return dispatch(actions.getTpsMessaging(personId)) - case 'UDISTUB': - return dispatch(actions.getUdi(personId)) case 'BRREGSTUB': return dispatch(actions.getBrreg(personId)) case 'SKJERMINGSREGISTER': diff --git a/apps/dolly-frontend/src/main/js/src/ducks/finnPerson/index.tsx b/apps/dolly-frontend/src/main/js/src/ducks/finnPerson/index.tsx index 8302f456380..2eaf7f7ae4a 100644 --- a/apps/dolly-frontend/src/main/js/src/ducks/finnPerson/index.tsx +++ b/apps/dolly-frontend/src/main/js/src/ducks/finnPerson/index.tsx @@ -5,6 +5,7 @@ import { handleActions } from '@/ducks/utils/immerHandleActions' import { LOCATION_CHANGE } from 'redux-first-history' import { VisningType } from '@/pages/gruppe/Gruppe' import { isEmpty } from 'lodash' +import { ERROR_NAVIGATE_IDENT } from '../errors/ErrorMessages' export const { navigerTilPerson, @@ -56,7 +57,7 @@ export default handleActions( }, [onSuccess(navigerTilPerson)](state, action) { state.feilmelding = isEmpty(action.payload?.data) - ? 'Klarte ikke å navigere til person' + ? ERROR_NAVIGATE_IDENT : action.payload?.data?.message state.hovedperson = action.payload.data.identHovedperson state.visPerson = action.payload.data.identNavigerTil @@ -102,5 +103,5 @@ export default handleActions( state.update = new Date() }, }, - initialState + initialState, ) diff --git a/apps/dolly-frontend/src/main/js/src/pages/gruppe/GruppeFeil/GruppeFeilmelding.tsx b/apps/dolly-frontend/src/main/js/src/pages/gruppe/GruppeFeil/GruppeFeilmelding.tsx index 798f94d55a1..7ab10e4c2bf 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/gruppe/GruppeFeil/GruppeFeilmelding.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/gruppe/GruppeFeil/GruppeFeilmelding.tsx @@ -1,5 +1,10 @@ import './GruppeFeilmelding.less' import Icon from '@/components/ui/icon/Icon' +import { + ERROR_ACCESS_DENIED, + ERROR_FETCH_GRUPPE_FAILED, + ERROR_GENERIC, +} from '../../../ducks/errors/ErrorMessages' type Props = { feil: GruppeFeil @@ -22,11 +27,11 @@ export const GruppeFeilmelding = ({ feil }: Props) => { const getFeilmelding = (feil: GruppeFeil) => { switch (feil) { case GruppeFeil.ACCESS_DENIED: - return 'Du mangler tilgang til denne gruppen.' + return ERROR_ACCESS_DENIED case GruppeFeil.FETCH_FAILED: - return 'Noe gikk galt med henting av gruppe. Ta kontakt med Team Dolly hvis feilen vedvarer.' + return ERROR_FETCH_GRUPPE_FAILED default: - return 'Noe gikk galt.' + return ERROR_GENERIC } } diff --git a/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx b/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx index 27ae5ff2ef5..40ee93de4b1 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx @@ -33,7 +33,6 @@ import { RelatertPersonImportButton } from '@/components/ui/button/RelatertPerso import { useAsync } from 'react-use' import { DollyApi } from '@/service/Api' import { GjenopprettPerson } from '@/components/bestilling/gjenopprett/GjenopprettPerson' -import { sjekkManglerUdiData } from '@/components/fagsystem/udistub/visning/UdiVisning' import { sjekkManglerBrregData } from '@/components/fagsystem/brregstub/visning/BrregVisning' import { sjekkManglerPensjonData } from '@/components/fagsystem/pensjon/visning/PensjonVisning' import { sjekkManglerAaregData } from '@/components/fagsystem/aareg/visning/Visning' @@ -62,6 +61,7 @@ import { harPoppBestilling, harSykemeldingBestilling, harTpBestilling, + harUdistubBestilling, harUforetrygdBestilling, } from '@/utils/SjekkBestillingFagsystem' import { @@ -84,6 +84,7 @@ import { } from '@/components/fagsystem/uforetrygd/visning/UforetrygdVisning' import { usePensjonEnvironments } from '@/utils/hooks/useEnvironments' import { SigrunstubPensjonsgivendeVisning } from '@/components/fagsystem/sigrunstubPensjonsgivende/visning/Visning' +import { useUdistub } from '@/utils/hooks/useUdistub' const getIdenttype = (ident) => { if (parseInt(ident.charAt(0)) > 3) { @@ -144,6 +145,11 @@ export default ({ harMedlBestilling(bestillingerFagsystemer) || ident?.master === 'PDL', ) + const { loading: loadingUdistub, udistub } = useUdistub( + ident.ident, + harUdistubBestilling(bestillingerFagsystemer) || ident?.master === 'PDL', + ) + const visArbeidsforhold = ident?.master !== 'PDL' || arbeidsforhold?.some((miljodata) => miljodata?.data?.length > 0) @@ -221,7 +227,7 @@ export default ({ return null } - const { sigrunstub, sigrunstubPensjonsgivende, inntektstub, brregstub, krrstub, udistub } = data + const { sigrunstub, sigrunstubPensjonsgivende, inntektstub, brregstub, krrstub } = data const manglerFagsystemdata = () => { if ( @@ -249,9 +255,6 @@ export default ({ if (brregstub && sjekkManglerBrregData(brregstub)) { return true } - if (udistub && sjekkManglerUdiData(udistub)) { - return true - } if (instData && sjekkManglerInstData(instData)) { return true } @@ -329,7 +332,6 @@ export default ({ ) return arbeidsplassenBestillinger?.[0]?.data?.arbeidsplassenCV?.harHjemmel } - return (
@@ -479,7 +481,7 @@ export default ({ ( // @ts-ignore - + - + ) } diff --git a/apps/dolly-frontend/src/main/js/src/pages/gruppeOversikt/VelgSoekTypeToggle.tsx b/apps/dolly-frontend/src/main/js/src/pages/gruppeOversikt/VelgSoekTypeToggle.tsx index 2738b0dccce..3ca96413d8e 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/gruppeOversikt/VelgSoekTypeToggle.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/gruppeOversikt/VelgSoekTypeToggle.tsx @@ -2,6 +2,7 @@ import Icon from '@/components/ui/icon/Icon' import { ToggleGroup } from '@navikt/ds-react' import React from 'react' import styled from 'styled-components' +import { CypressSelector } from '../../../cypress/mocks/Selectors' type Props = { soekValg: SoekTypeValg @@ -29,10 +30,18 @@ export const VelgSoekTypeToggle = ({ soekValg, setValgtSoekType }: Props) => { defaultValue={SoekTypeValg.PERSON} style={{ backgroundColor: '#ffffff' }} > - + - + diff --git a/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyEndpoints.tsx b/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyEndpoints.tsx index f6ebd5896ef..ae7d3d67cc3 100644 --- a/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyEndpoints.tsx +++ b/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyEndpoints.tsx @@ -8,7 +8,6 @@ const tagsBase = `${uri}/tags` const identBase = `${uri}/ident` const brukerBase = `${uri}/bruker` const kodeverkBase = `${uri}/kodeverk` -const udiBase = `${uri}/udistub` const bestillingBase = `${uri}/bestilling` const personoppslagBase = `${personUri}/personer` const organisasjonBase = `${uri}/organisasjon` @@ -122,10 +121,6 @@ export default class DollyEndpoints { return `${uri}/excel/organisasjoner?brukerId=${brukerId}` } - static udiPerson(ident) { - return `${udiBase}/${ident}` - } - //TESTPERSON-CONTROLLER static slettPerson(ident) { return `${identBase}/${ident}` diff --git a/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyService.tsx b/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyService.tsx index 1c235593fa4..da0f392280d 100644 --- a/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyService.tsx +++ b/apps/dolly-frontend/src/main/js/src/service/services/dolly/DollyService.tsx @@ -92,11 +92,6 @@ export default { return Request.get(Endpoints.kodeverkByNavn(kodeverkNavn)) }, - //* Udistub - getUdiPerson(ident) { - return Request.get(Endpoints.udiPerson(ident)) - }, - //* Bestilling getBestillingerFragment(fragment) { return Request.get(Endpoints.bestillingerFragment(fragment)) diff --git a/apps/dolly-frontend/src/main/js/src/utils/SjekkBestillingFagsystem.tsx b/apps/dolly-frontend/src/main/js/src/utils/SjekkBestillingFagsystem.tsx index d4fb7028804..3d59400a674 100644 --- a/apps/dolly-frontend/src/main/js/src/utils/SjekkBestillingFagsystem.tsx +++ b/apps/dolly-frontend/src/main/js/src/utils/SjekkBestillingFagsystem.tsx @@ -18,6 +18,16 @@ export const harMedlBestilling = (bestillingerFagsystemer) => { return medl } +export const harUdistubBestilling = (bestillingerFagsystemer) => { + let udistub = false + bestillingerFagsystemer?.forEach((i) => { + if (i.udistub) { + udistub = true + } + }) + return udistub +} + export const harTpBestilling = (bestillingerFagsystemer) => { let tp = false bestillingerFagsystemer?.forEach((i) => { diff --git a/apps/dolly-frontend/src/main/js/src/utils/hooks/useBruker.tsx b/apps/dolly-frontend/src/main/js/src/utils/hooks/useBruker.tsx index 379c6b2904c..bbccb321987 100644 --- a/apps/dolly-frontend/src/main/js/src/utils/hooks/useBruker.tsx +++ b/apps/dolly-frontend/src/main/js/src/utils/hooks/useBruker.tsx @@ -3,6 +3,7 @@ import useSWRImmutable from 'swr/immutable' import { fetcher, imageFetcher } from '@/api' import { runningCypressE2E } from '@/service/services/Request' import { navigateToLogin } from '@/components/utlogging/navigateToLogin' +import { ERROR_ACTIVE_USER } from '../../ducks/errors/ErrorMessages' const getBrukereUrl = `/dolly-backend/api/v1/bruker` const getCurrentBrukerUrl = `/dolly-backend/api/v1/bruker/current` @@ -49,7 +50,7 @@ export const useCurrentBruker = () => { const { data, isLoading, error } = useSWR(getCurrentBrukerUrl, fetcher) if (error && !runningCypressE2E()) { - console.error('Klarte ikke å hente aktiv bruker, navigerer til login..') + console.error(ERROR_ACTIVE_USER) navigateToLogin() } diff --git a/apps/dolly-frontend/src/main/js/src/utils/hooks/useMedl.tsx b/apps/dolly-frontend/src/main/js/src/utils/hooks/useMedl.tsx index f353e249ac7..7e4769708e4 100644 --- a/apps/dolly-frontend/src/main/js/src/utils/hooks/useMedl.tsx +++ b/apps/dolly-frontend/src/main/js/src/utils/hooks/useMedl.tsx @@ -1,7 +1,7 @@ import useSWR from 'swr' import { fetcher } from '@/api' -const getMedlUrl = (ident) => `/testnav-medl-proxy/rest/v1/person/${ident}` +const getMedlUrl = (ident: string) => `/testnav-medl-proxy/rest/v1/person/${ident}` type MedlResponse = { response: any @@ -11,7 +11,7 @@ export const useMedlPerson = (ident: string, harMedlBestilling: boolean) => { const { data, isLoading, error, mutate } = useSWR( harMedlBestilling ? getMedlUrl(ident) : null, fetcher, - {} + {}, ) if (!ident) { diff --git a/apps/dolly-frontend/src/main/js/src/utils/hooks/useUdistub.tsx b/apps/dolly-frontend/src/main/js/src/utils/hooks/useUdistub.tsx new file mode 100644 index 00000000000..ef475f2aa23 --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/utils/hooks/useUdistub.tsx @@ -0,0 +1,26 @@ +import useSWR from 'swr' +import { fetcher } from '@/api' + +const udistubUrl = (ident: string) => `/testnav-udistub-proxy/api/v1/person/${ident}` + +export const useUdistub = (ident: string, harUdistubBestilling: boolean) => { + const { data, isLoading, error, mutate } = useSWR( + harUdistubBestilling ? udistubUrl(ident) : null, + fetcher, + {}, + ) + + if (!ident) { + return { + loading: false, + error: 'Ident mangler!', + } + } + + return { + udistub: data?.person, + loading: isLoading, + error: error, + mutate: mutate, + } +} diff --git a/apps/dolly-frontend/src/main/js/tsconfig.json b/apps/dolly-frontend/src/main/js/tsconfig.json index 81ec7ca0837..ae4c40f04c2 100644 --- a/apps/dolly-frontend/src/main/js/tsconfig.json +++ b/apps/dolly-frontend/src/main/js/tsconfig.json @@ -5,6 +5,11 @@ "DOM.Iterable", "ESNext" ], + "paths": { + "@/*": [ + "./src/*" + ] + }, "types": [ "vite/client", "vite-plugin-svgr/client", @@ -27,12 +32,7 @@ "moduleResolution": "Node", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "react-jsx", - "paths": { - "@/*": [ - "./src/*" - ] - } + "jsx": "react-jsx" }, "include": [ "src", diff --git a/apps/dolly-frontend/src/main/js/vite.config.js b/apps/dolly-frontend/src/main/js/vite.config.js index cc64b949441..64fdc8c96c9 100644 --- a/apps/dolly-frontend/src/main/js/vite.config.js +++ b/apps/dolly-frontend/src/main/js/vite.config.js @@ -2,7 +2,7 @@ import { defineConfig } from 'vite' import viteTsconfigPaths from 'vite-tsconfig-paths' import svgr from 'vite-plugin-svgr' import proxyRoutes from './proxy-routes.json' -import { resolve } from 'path' +import path from 'path' import EnvironmentPlugin from 'vite-plugin-environment' import react from '@vitejs/plugin-react' import * as child from 'child_process' @@ -53,7 +53,7 @@ export default defineConfig(({ mode }) => ({ }, resolve: { alias: { - '@': resolve(__dirname, './src'), + '@': path.resolve(__dirname, './src'), }, }, server: mode === 'local-dev' && { diff --git a/apps/dolly-frontend/src/main/resources/application.yml b/apps/dolly-frontend/src/main/resources/application.yml index 1d7d73b40e6..8992c3ba30b 100644 --- a/apps/dolly-frontend/src/main/resources/application.yml +++ b/apps/dolly-frontend/src/main/resources/application.yml @@ -23,7 +23,7 @@ spring: jwk-set-uri: ${AAD_ISSUER_URI}/discovery/v2.0/keys accepted-audience: ${azure.app.client.id}, api://${azure.app.client.id} tokenx: - issuer-uri: https://tokenx.dev-gcp.nav.cloud.nais.io + issuer-uri: https://tokenx.dev-gcp.nav.cloud.nais.io jwk-set-uri: https://tokenx.dev-gcp.nav.cloud.nais.io/jwks accepted-audience: ${TOKEN_X_CLIENT_ID} @@ -53,6 +53,11 @@ consumers: namespace: dolly name: testnav-brregstub-proxy url: https://testnav-brregstub-proxy.dev-fss-pub.nais.io + testnav-udistub-proxy: + cluster: dev-fss + namespace: dolly + name: testnav-udistub-proxy + url: https://testnav-udistub-proxy.dev-fss-pub.nais.io testnav-aareg-proxy: cluster: dev-fss namespace: dolly @@ -174,10 +179,10 @@ consumers: name: testnav-helsepersonell-service url: http://testnav-helsepersonell-service.dolly.svc.cluster.local generer-navn-service: - cluster: dev-gcp - namespace: dolly - name: generer-navn-service - url: http://generer-navn-service.dolly.svc.cluster.local + cluster: dev-gcp + namespace: dolly + name: generer-navn-service + url: http://generer-navn-service.dolly.svc.cluster.local testnav-kontoregister-person-proxy: name: testnav-kontoregister-person-proxy namespace: dolly diff --git a/apps/endringsmelding-frontend/src/main/java/no/nav/testnav/apps/endringsmeldingfrontend/config/SecurityConfig.java b/apps/endringsmelding-frontend/src/main/java/no/nav/testnav/apps/endringsmeldingfrontend/config/SecurityConfig.java index 389b116da0f..a6633b0baec 100644 --- a/apps/endringsmelding-frontend/src/main/java/no/nav/testnav/apps/endringsmeldingfrontend/config/SecurityConfig.java +++ b/apps/endringsmelding-frontend/src/main/java/no/nav/testnav/apps/endringsmeldingfrontend/config/SecurityConfig.java @@ -13,12 +13,13 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) { - return http.cors().and().csrf() - .disable() - .authorizeExchange() - .pathMatchers("/internal/isReady", "/internal/isAlive", "/internal/metrics").permitAll() - .anyExchange().authenticated() - .and().oauth2Login() - .and().build(); + return http.cors(ServerHttpSecurity.CorsSpec::disable) + .csrf(ServerHttpSecurity.CsrfSpec::disable) + .authorizeExchange(authorizeExchangeSpec -> authorizeExchangeSpec + .pathMatchers("/internal/isReady", "/internal/isAlive", "/internal/metrics").permitAll() + .anyExchange().authenticated()) + .oauth2Login(oAuth2LoginSpec -> { + }) + .build(); } } diff --git a/apps/endringsmelding-service/src/main/java/no/nav/testnav/endringsmeldingservice/config/SecurityConfig.java b/apps/endringsmelding-service/src/main/java/no/nav/testnav/endringsmeldingservice/config/SecurityConfig.java index 98cf1b252d5..7c7024dda99 100644 --- a/apps/endringsmelding-service/src/main/java/no/nav/testnav/endringsmeldingservice/config/SecurityConfig.java +++ b/apps/endringsmelding-service/src/main/java/no/nav/testnav/endringsmeldingservice/config/SecurityConfig.java @@ -22,7 +22,7 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity httpSecurity) { return httpSecurity - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeConfig -> authorizeConfig.pathMatchers( "/internal/**", "/webjars/**", diff --git a/apps/ereg-batch-status-service/src/main/java/no/nav/registre/testnorge/eregbatchstatusservice/config/SecurityConfig.java b/apps/ereg-batch-status-service/src/main/java/no/nav/registre/testnorge/eregbatchstatusservice/config/SecurityConfig.java index ec6102ed65e..11037bdd77f 100644 --- a/apps/ereg-batch-status-service/src/main/java/no/nav/registre/testnorge/eregbatchstatusservice/config/SecurityConfig.java +++ b/apps/ereg-batch-status-service/src/main/java/no/nav/registre/testnorge/eregbatchstatusservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/faste-data-frontend/src/main/java/no/nav/testnav/apps/fastedatafrontend/config/SecurityConfig.java b/apps/faste-data-frontend/src/main/java/no/nav/testnav/apps/fastedatafrontend/config/SecurityConfig.java index 5f66c77eefb..2ece99b9639 100644 --- a/apps/faste-data-frontend/src/main/java/no/nav/testnav/apps/fastedatafrontend/config/SecurityConfig.java +++ b/apps/faste-data-frontend/src/main/java/no/nav/testnav/apps/fastedatafrontend/config/SecurityConfig.java @@ -12,11 +12,12 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) { - return http.csrf().disable() - .authorizeExchange() - .pathMatchers("/internal/isReady", "/internal/isAlive", "/internal/metrics").permitAll() - .anyExchange().authenticated() - .and().oauth2Login() - .and().build(); + return http.csrf(ServerHttpSecurity.CsrfSpec::disable) + .authorizeExchange(authorizeExchangeSpec -> authorizeExchangeSpec + .pathMatchers("/internal/isReady", "/internal/isAlive", "/internal/metrics").permitAll() + .anyExchange().authenticated()) + .oauth2Login(oAuth2LoginSpec -> { + }) + .build(); } } diff --git a/apps/generer-arbeidsforhold-populasjon-service/src/main/java/no/nav/registre/testnav/genererarbeidsforholdpopulasjonservice/config/SecurityConfig.java b/apps/generer-arbeidsforhold-populasjon-service/src/main/java/no/nav/registre/testnav/genererarbeidsforholdpopulasjonservice/config/SecurityConfig.java index c46b340b94e..60193328810 100644 --- a/apps/generer-arbeidsforhold-populasjon-service/src/main/java/no/nav/registre/testnav/genererarbeidsforholdpopulasjonservice/config/SecurityConfig.java +++ b/apps/generer-arbeidsforhold-populasjon-service/src/main/java/no/nav/registre/testnav/genererarbeidsforholdpopulasjonservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -19,7 +20,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/config/SecurityConfig.java b/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/config/SecurityConfig.java index d36bdb17e42..7666c1c71e7 100644 --- a/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/config/SecurityConfig.java +++ b/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/config/SecurityConfig.java b/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/config/SecurityConfig.java index 7f375e30b44..20b33c217d0 100644 --- a/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/config/SecurityConfig.java +++ b/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -21,7 +22,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/config/SecurityConfig.java b/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/config/SecurityConfig.java index 4e39146fb0b..7afec2e6aac 100644 --- a/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/config/SecurityConfig.java +++ b/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/geografiske-kodeverk-service/src/main/java/no/nav/registre/testnav/geografiskekodeverkservice/config/SecurityConfig.java b/apps/geografiske-kodeverk-service/src/main/java/no/nav/registre/testnav/geografiskekodeverkservice/config/SecurityConfig.java index 0c00757d26a..44a64d34ac0 100644 --- a/apps/geografiske-kodeverk-service/src/main/java/no/nav/registre/testnav/geografiskekodeverkservice/config/SecurityConfig.java +++ b/apps/geografiske-kodeverk-service/src/main/java/no/nav/registre/testnav/geografiskekodeverkservice/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -20,7 +21,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/config/SecurityConfig.java b/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/config/SecurityConfig.java index 71c4b77899a..1f3aba47802 100644 --- a/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/config/SecurityConfig.java +++ b/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -21,7 +22,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/hodejegeren/src/main/java/no/nav/testnav/apps/hodejegeren/config/SecurityConfig.java b/apps/hodejegeren/src/main/java/no/nav/testnav/apps/hodejegeren/config/SecurityConfig.java index 34cdc116f83..d92f159d314 100644 --- a/apps/hodejegeren/src/main/java/no/nav/testnav/apps/hodejegeren/config/SecurityConfig.java +++ b/apps/hodejegeren/src/main/java/no/nav/testnav/apps/hodejegeren/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -22,7 +23,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/import-person-service/src/main/java/no/nav/testnav/apps/importpersonservice/config/SecurityConfig.java b/apps/import-person-service/src/main/java/no/nav/testnav/apps/importpersonservice/config/SecurityConfig.java index 34606fbf39f..c2ce826076a 100644 --- a/apps/import-person-service/src/main/java/no/nav/testnav/apps/importpersonservice/config/SecurityConfig.java +++ b/apps/import-person-service/src/main/java/no/nav/testnav/apps/importpersonservice/config/SecurityConfig.java @@ -24,7 +24,7 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity httpSecurity) { return httpSecurity - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeConfig -> authorizeConfig.pathMatchers( "/internal/**", "/webjars/**", diff --git a/apps/inntektsmelding-generator-service/src/main/java/no/nav/registre/inntektsmeldinggeneratorservice/config/SecurityConfig.java b/apps/inntektsmelding-generator-service/src/main/java/no/nav/registre/inntektsmeldinggeneratorservice/config/SecurityConfig.java index 468bfaf9797..741ed3d5b58 100644 --- a/apps/inntektsmelding-generator-service/src/main/java/no/nav/registre/inntektsmeldinggeneratorservice/config/SecurityConfig.java +++ b/apps/inntektsmelding-generator-service/src/main/java/no/nav/registre/inntektsmeldinggeneratorservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/config/SecurityConfig.java b/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/config/SecurityConfig.java index 5b000179273..32c19a92645 100644 --- a/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/config/SecurityConfig.java +++ b/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/config/SecurityConfig.java b/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/config/SecurityConfig.java index c79dd76bd47..94b83eb367d 100644 --- a/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/config/SecurityConfig.java +++ b/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -17,7 +18,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/config/SecurityConfig.java b/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/config/SecurityConfig.java index 6f9c33b1657..59c3b468d2a 100644 --- a/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/config/SecurityConfig.java +++ b/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/mn-synt-arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/mn/syntarbeidsforholdservice/config/SecurityConfig.java b/apps/mn-synt-arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/mn/syntarbeidsforholdservice/config/SecurityConfig.java index 7a32a601cb7..cdd85300ff8 100644 --- a/apps/mn-synt-arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/mn/syntarbeidsforholdservice/config/SecurityConfig.java +++ b/apps/mn-synt-arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/mn/syntarbeidsforholdservice/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -21,7 +22,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/config/SecurityConfig.java b/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/config/SecurityConfig.java index baac159e439..e2ff569c353 100644 --- a/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/config/SecurityConfig.java +++ b/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -19,7 +20,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/organisasjon-bestilling-service/src/main/java/no/nav/testnav/apps/organisasjonbestillingservice/config/SecurityConfig.java b/apps/organisasjon-bestilling-service/src/main/java/no/nav/testnav/apps/organisasjonbestillingservice/config/SecurityConfig.java index 2ea35fda1cd..919c6410571 100644 --- a/apps/organisasjon-bestilling-service/src/main/java/no/nav/testnav/apps/organisasjonbestillingservice/config/SecurityConfig.java +++ b/apps/organisasjon-bestilling-service/src/main/java/no/nav/testnav/apps/organisasjonbestillingservice/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -21,7 +22,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/config/SecurityConfig.java b/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/config/SecurityConfig.java index 16e870da80d..e35bce24978 100644 --- a/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/config/SecurityConfig.java +++ b/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -21,7 +22,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/organisasjon-forvalter/src/main/java/no/nav/organisasjonforvalter/config/SecurityConfig.java b/apps/organisasjon-forvalter/src/main/java/no/nav/organisasjonforvalter/config/SecurityConfig.java index c08b413ce91..768014691e3 100644 --- a/apps/organisasjon-forvalter/src/main/java/no/nav/organisasjonforvalter/config/SecurityConfig.java +++ b/apps/organisasjon-forvalter/src/main/java/no/nav/organisasjonforvalter/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -21,7 +22,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/organisasjon-mottak-service/src/main/java/no/nav/registre/testnorge/organisasjonmottak/config/SecurityConfig.java b/apps/organisasjon-mottak-service/src/main/java/no/nav/registre/testnorge/organisasjonmottak/config/SecurityConfig.java index d6bef8d9f4a..6466efa4681 100644 --- a/apps/organisasjon-mottak-service/src/main/java/no/nav/registre/testnorge/organisasjonmottak/config/SecurityConfig.java +++ b/apps/organisasjon-mottak-service/src/main/java/no/nav/registre/testnorge/organisasjonmottak/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/config/SecurityConfig.java b/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/config/SecurityConfig.java index e117013c75a..a3e11a6bfec 100644 --- a/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/config/SecurityConfig.java +++ b/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/organisasjon-tilgang-frontend/src/main/java/no/nav/testnav/apps/organisasjontilgangfrontend/config/SecurityConfig.java b/apps/organisasjon-tilgang-frontend/src/main/java/no/nav/testnav/apps/organisasjontilgangfrontend/config/SecurityConfig.java index 66bb3cbd872..bd3bd399711 100644 --- a/apps/organisasjon-tilgang-frontend/src/main/java/no/nav/testnav/apps/organisasjontilgangfrontend/config/SecurityConfig.java +++ b/apps/organisasjon-tilgang-frontend/src/main/java/no/nav/testnav/apps/organisasjontilgangfrontend/config/SecurityConfig.java @@ -13,12 +13,12 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) { - return http.csrf() - .disable() - .authorizeExchange() - .pathMatchers("/internal/isReady", "/internal/isAlive", "/internal/metrics").permitAll() - .anyExchange().authenticated() - .and().oauth2Login() - .and().build(); + return http.csrf(ServerHttpSecurity.CsrfSpec::disable) + .authorizeExchange(authorizeExchangeSpec -> + authorizeExchangeSpec.pathMatchers("/internal/isReady", "/internal/isAlive", "/internal/metrics").permitAll() + .anyExchange().authenticated()) + .oauth2Login(oAuth2LoginSpec -> { + }) + .build(); } } diff --git a/apps/organisasjon-tilgang-service/src/main/java/no/nav/testnav/apps/organisasjontilgangservice/config/SecurityConfig.java b/apps/organisasjon-tilgang-service/src/main/java/no/nav/testnav/apps/organisasjontilgangservice/config/SecurityConfig.java index feb36ffe4d0..79595cbdc7f 100644 --- a/apps/organisasjon-tilgang-service/src/main/java/no/nav/testnav/apps/organisasjontilgangservice/config/SecurityConfig.java +++ b/apps/organisasjon-tilgang-service/src/main/java/no/nav/testnav/apps/organisasjontilgangservice/config/SecurityConfig.java @@ -23,7 +23,7 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity httpSecurity) { return httpSecurity - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeConfig -> authorizeConfig.pathMatchers( "/internal/**", "/webjars/**", diff --git a/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/config/SecurityConfig.java b/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/config/SecurityConfig.java index e14ad70d821..0333247c67f 100644 --- a/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/config/SecurityConfig.java +++ b/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/config/SecurityConfig.java b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/config/SecurityConfig.java index 752681c3f15..4c69ceb5986 100644 --- a/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/config/SecurityConfig.java +++ b/apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/config/SecurityConfig.java @@ -5,6 +5,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -16,7 +17,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/person-export-api/src/main/java/no/nav/testnav/apps/personexportapi/config/SecurityConfig.java b/apps/person-export-api/src/main/java/no/nav/testnav/apps/personexportapi/config/SecurityConfig.java index acf49f5cd08..0bd507f64e4 100644 --- a/apps/person-export-api/src/main/java/no/nav/testnav/apps/personexportapi/config/SecurityConfig.java +++ b/apps/person-export-api/src/main/java/no/nav/testnav/apps/personexportapi/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -19,7 +20,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/person-export-api/src/main/java/no/nav/testnav/apps/personexportapi/consumer/dto/LandkodeEncoder.java b/apps/person-export-api/src/main/java/no/nav/testnav/apps/personexportapi/consumer/dto/LandkodeEncoder.java index bf6ba869fc7..a889015b0e3 100644 --- a/apps/person-export-api/src/main/java/no/nav/testnav/apps/personexportapi/consumer/dto/LandkodeEncoder.java +++ b/apps/person-export-api/src/main/java/no/nav/testnav/apps/personexportapi/consumer/dto/LandkodeEncoder.java @@ -1,10 +1,9 @@ package no.nav.testnav.apps.personexportapi.consumer.dto; -import static java.util.Objects.nonNull; - +import lombok.experimental.UtilityClass; import org.bouncycastle.asn1.eac.BidirectionalMap; -import lombok.experimental.UtilityClass; +import static java.util.Objects.nonNull; @UtilityClass public class LandkodeEncoder { diff --git a/apps/person-faste-data-service/src/main/java/no/nav/testnav/personfastedataservice/config/SecurityConfig.java b/apps/person-faste-data-service/src/main/java/no/nav/testnav/personfastedataservice/config/SecurityConfig.java index 626b599f700..e26393a24c9 100644 --- a/apps/person-faste-data-service/src/main/java/no/nav/testnav/personfastedataservice/config/SecurityConfig.java +++ b/apps/person-faste-data-service/src/main/java/no/nav/testnav/personfastedataservice/config/SecurityConfig.java @@ -21,7 +21,7 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity httpSecurity) { return httpSecurity - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeConfig -> authorizeConfig.pathMatchers( "/internal/**", "/webjars/**", diff --git a/apps/person-organisasjon-tilgang-service/src/main/java/no/nav/testnav/apps/persontilgangservice/config/SecurityConfig.java b/apps/person-organisasjon-tilgang-service/src/main/java/no/nav/testnav/apps/persontilgangservice/config/SecurityConfig.java index a2e5113e417..0701a612ba3 100644 --- a/apps/person-organisasjon-tilgang-service/src/main/java/no/nav/testnav/apps/persontilgangservice/config/SecurityConfig.java +++ b/apps/person-organisasjon-tilgang-service/src/main/java/no/nav/testnav/apps/persontilgangservice/config/SecurityConfig.java @@ -23,7 +23,7 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity httpSecurity) { return httpSecurity - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeConfig -> authorizeConfig.pathMatchers( "/internal/**", "/webjars/**", diff --git a/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/config/SecurityConfig.java b/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/config/SecurityConfig.java index 4659dda6bae..be570dd7772 100644 --- a/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/config/SecurityConfig.java +++ b/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/config/SecurityConfig.java b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/config/SecurityConfig.java index deabba60472..261d3445d81 100644 --- a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/config/SecurityConfig.java +++ b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Bostedsadresse.java b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Bostedsadresse.java index 78eba099a87..2acd5c6d5f9 100644 --- a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Bostedsadresse.java +++ b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Bostedsadresse.java @@ -1,9 +1,11 @@ package no.nav.testnav.apps.personservice.consumer.v1.pdl.graphql; import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.Value; +@EqualsAndHashCode(callSuper = true) @Value @AllArgsConstructor @NoArgsConstructor(force = true) diff --git a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Foedsel.java b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Foedsel.java index 43265fa0529..df16825967a 100644 --- a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Foedsel.java +++ b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Foedsel.java @@ -1,11 +1,13 @@ package no.nav.testnav.apps.personservice.consumer.v1.pdl.graphql; import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.Value; import java.time.LocalDate; +@EqualsAndHashCode(callSuper = true) @Value @AllArgsConstructor @NoArgsConstructor(force = true) diff --git a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Folkeregisteridentifikator.java b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Folkeregisteridentifikator.java index 2f825b6ace8..c48818b0298 100644 --- a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Folkeregisteridentifikator.java +++ b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Folkeregisteridentifikator.java @@ -1,9 +1,11 @@ package no.nav.testnav.apps.personservice.consumer.v1.pdl.graphql; import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.Value; +@EqualsAndHashCode(callSuper = true) @Value @AllArgsConstructor @NoArgsConstructor(force = true) diff --git a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Folkeregisterpersonstatus.java b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Folkeregisterpersonstatus.java index 1eedab30b53..43c671afe47 100644 --- a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Folkeregisterpersonstatus.java +++ b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Folkeregisterpersonstatus.java @@ -1,9 +1,11 @@ package no.nav.testnav.apps.personservice.consumer.v1.pdl.graphql; import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.Value; +@EqualsAndHashCode(callSuper = true) @Value @AllArgsConstructor @NoArgsConstructor(force = true) diff --git a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Navn.java b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Navn.java index eab5874b20c..2aab52845f1 100644 --- a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Navn.java +++ b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/consumer/v1/pdl/graphql/Navn.java @@ -1,9 +1,11 @@ package no.nav.testnav.apps.personservice.consumer.v1.pdl.graphql; import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.Value; +@EqualsAndHashCode(callSuper = true) @Value @AllArgsConstructor @NoArgsConstructor(force = true) diff --git a/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/config/SecurityConfiguration.java b/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/config/SecurityConfiguration.java index 7f467471ff1..7d810ae9a20 100644 --- a/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/config/SecurityConfiguration.java +++ b/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/config/SecurityConfiguration.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfiguration { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/config/SecurityConfig.java b/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/config/SecurityConfig.java index bddd84ea4dc..a758bb395a6 100644 --- a/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/config/SecurityConfig.java +++ b/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -21,7 +22,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/config/SecurityConfig.java b/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/config/SecurityConfig.java index f96bdfd2631..7c4fe72962b 100644 --- a/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/config/SecurityConfig.java +++ b/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -21,7 +22,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/SecurityConfig.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/SecurityConfig.java index 854330b650b..aa68eaf5a3c 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/SecurityConfig.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -21,7 +22,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/testnav-ident-pool/src/main/java/no/nav/testnav/identpool/config/SecurityConfig.java b/apps/testnav-ident-pool/src/main/java/no/nav/testnav/identpool/config/SecurityConfig.java index 8f7d5042fbb..b4f02ff8b89 100644 --- a/apps/testnav-ident-pool/src/main/java/no/nav/testnav/identpool/config/SecurityConfig.java +++ b/apps/testnav-ident-pool/src/main/java/no/nav/testnav/identpool/config/SecurityConfig.java @@ -5,6 +5,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -16,7 +17,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/testnorge-tp/src/main/java/no/nav/registre/tp/config/SecurityConfig.java b/apps/testnorge-tp/src/main/java/no/nav/registre/tp/config/SecurityConfig.java index 90b9a052e59..2876f548482 100644 --- a/apps/testnorge-tp/src/main/java/no/nav/registre/tp/config/SecurityConfig.java +++ b/apps/testnorge-tp/src/main/java/no/nav/registre/tp/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/tilbakemelding-api/src/main/java/no/nav/registre/testnorge/tilbakemeldingapi/config/SecurityConfig.java b/apps/tilbakemelding-api/src/main/java/no/nav/registre/testnorge/tilbakemeldingapi/config/SecurityConfig.java index 30d81e6a131..577f5335a1c 100644 --- a/apps/tilbakemelding-api/src/main/java/no/nav/registre/testnorge/tilbakemeldingapi/config/SecurityConfig.java +++ b/apps/tilbakemelding-api/src/main/java/no/nav/registre/testnorge/tilbakemeldingapi/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/config/SecurityConfig.java b/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/config/SecurityConfig.java index e1dbd8a575e..f559342d4e1 100644 --- a/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/config/SecurityConfig.java +++ b/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/config/SecurityConfig.java @@ -7,6 +7,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -20,7 +21,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/udi-stub/src/main/java/no/nav/udistub/config/SecurityConfig.java b/apps/udi-stub/src/main/java/no/nav/udistub/config/SecurityConfig.java index e72d859f0b7..cb9a09b712c 100644 --- a/apps/udi-stub/src/main/java/no/nav/udistub/config/SecurityConfig.java +++ b/apps/udi-stub/src/main/java/no/nav/udistub/config/SecurityConfig.java @@ -6,6 +6,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -18,7 +19,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/config/SecurityConfig.java b/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/config/SecurityConfig.java index b734fa96cdc..ff9d9e312d0 100644 --- a/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/config/SecurityConfig.java +++ b/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/config/SecurityConfig.java @@ -5,6 +5,7 @@ import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @@ -16,7 +17,7 @@ public class SecurityConfig { public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( "/internal/**", "/webjars/**", diff --git a/examples/reactive-rest-example/src/main/java/no/nav/testnav/examples/reactiverestexample/config/SecurityConfig.java b/examples/reactive-rest-example/src/main/java/no/nav/testnav/examples/reactiverestexample/config/SecurityConfig.java index f54af83f376..616aebdc994 100644 --- a/examples/reactive-rest-example/src/main/java/no/nav/testnav/examples/reactiverestexample/config/SecurityConfig.java +++ b/examples/reactive-rest-example/src/main/java/no/nav/testnav/examples/reactiverestexample/config/SecurityConfig.java @@ -24,7 +24,7 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity httpSecurity) { return httpSecurity - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeConfig -> authorizeConfig.pathMatchers( "/internal/**", "/webjars/**", diff --git a/libs/reactive-proxy/src/main/java/no/nav/testnav/libs/reactiveproxy/config/SecurityConfig.java b/libs/reactive-proxy/src/main/java/no/nav/testnav/libs/reactiveproxy/config/SecurityConfig.java index 7dd8b153771..31b70a9a825 100644 --- a/libs/reactive-proxy/src/main/java/no/nav/testnav/libs/reactiveproxy/config/SecurityConfig.java +++ b/libs/reactive-proxy/src/main/java/no/nav/testnav/libs/reactiveproxy/config/SecurityConfig.java @@ -24,7 +24,7 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity httpSecurity) { return httpSecurity - .csrf(csrfSpec -> csrfSpec.disable()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeConfig -> authorizeConfig.pathMatchers( "/internal/**", "/webjars/**", diff --git a/mocks/maskinporten-mock/src/main/java/no/nav/testnav/mocks/tokendingsmock/config/SecurityConfig.java b/mocks/maskinporten-mock/src/main/java/no/nav/testnav/mocks/tokendingsmock/config/SecurityConfig.java index 5602d2388ce..d6d96ac346e 100644 --- a/mocks/maskinporten-mock/src/main/java/no/nav/testnav/mocks/tokendingsmock/config/SecurityConfig.java +++ b/mocks/maskinporten-mock/src/main/java/no/nav/testnav/mocks/tokendingsmock/config/SecurityConfig.java @@ -18,6 +18,6 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) { - return http.csrf(csrfSpec -> csrfSpec.disable()).build(); + return http.csrf(ServerHttpSecurity.CsrfSpec::disable).build(); } } diff --git a/mocks/tokendings-mock/src/main/java/no/nav/testnav/mocks/tokendingsmock/config/SecurityConfig.java b/mocks/tokendings-mock/src/main/java/no/nav/testnav/mocks/tokendingsmock/config/SecurityConfig.java index 5602d2388ce..d6d96ac346e 100644 --- a/mocks/tokendings-mock/src/main/java/no/nav/testnav/mocks/tokendingsmock/config/SecurityConfig.java +++ b/mocks/tokendings-mock/src/main/java/no/nav/testnav/mocks/tokendingsmock/config/SecurityConfig.java @@ -18,6 +18,6 @@ public class SecurityConfig { @Bean public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) { - return http.csrf(csrfSpec -> csrfSpec.disable()).build(); + return http.csrf(ServerHttpSecurity.CsrfSpec::disable).build(); } }