Merge branch v3.6 into v3.7

This commit is contained in:
kevinpollet
2026-06-05 15:26:12 +02:00
13 changed files with 404 additions and 280 deletions
+3
View File
@@ -348,6 +348,9 @@ linters:
text: 'appendAssign: append result not assigned to the same slice' text: 'appendAssign: append result not assigned to the same slice'
linters: linters:
- gocritic - gocritic
- path: pkg/server/conncontext.go
linters:
- fatcontext
paths: paths:
- pkg/provider/kubernetes/crd/generated/ - pkg/provider/kubernetes/crd/generated/
+19
View File
@@ -1,3 +1,22 @@
## [v3.6.20](https://github.com/traefik/traefik/tree/v3.6.20) (2026-06-05)
[All Commits](https://github.com/traefik/traefik/compare/v3.6.19...v3.6.20)
**Bug fixes:**
- **[middleware]** Fix redis write timeout option configuration ([#13273](https://github.com/traefik/traefik/pull/13273) @bzyy1024)
- **[webui]** Bump react-router and jsdom ([#13301](https://github.com/traefik/traefik/pull/13301) @gndz07)
- **[k8s/gatewayapi]** Fix BackendTLSPolicy status update ([#13306](https://github.com/traefik/traefik/pull/13306) @AnatoleLucet)
- **[http3]** Bump github.com/quic-go/quic-go to v0.59.1 ([#13300](https://github.com/traefik/traefik/pull/13300) @rtribotte)
- **[webui]** Bump axios to v1.17.0 ([#13299](https://github.com/traefik/traefik/pull/13299) @gndz07)
- **[tls]** Fix snicheck with keepalive ([#13305](https://github.com/traefik/traefik/pull/13305) @juliens)
## [v2.11.49](https://github.com/traefik/traefik/tree/v2.11.49) (2026-06-05)
[All Commits](https://github.com/traefik/traefik/compare/v2.11.48...v2.11.49)
**Bug fixes:**
- **[http3]** Bump github.com/quic-go/quic-go to v0.59.1 ([#13300](https://github.com/traefik/traefik/pull/13300) @rtribotte)
- **[webui]** Bump axios to v1.17.0 ([#13299](https://github.com/traefik/traefik/pull/13299) @gndz07)
- **[tls]** Fix snicheck with keepalive ([#13305](https://github.com/traefik/traefik/pull/13305) @juliens)
## [v3.7.3](https://github.com/traefik/traefik/tree/v3.7.3) (2026-06-04) ## [v3.7.3](https://github.com/traefik/traefik/tree/v3.7.3) (2026-06-04)
[All Commits](https://github.com/traefik/traefik/compare/v3.7.1...v3.7.3) [All Commits](https://github.com/traefik/traefik/compare/v3.7.1...v3.7.3)
+1 -1
View File
@@ -57,7 +57,7 @@ require (
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // No tag on the repo. github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // No tag on the repo.
github.com/prometheus/client_golang v1.23.2 github.com/prometheus/client_golang v1.23.2
github.com/prometheus/client_model v0.6.2 github.com/prometheus/client_model v0.6.2
github.com/quic-go/quic-go v0.59.0 github.com/quic-go/quic-go v0.59.1
github.com/redis/go-redis/v9 v9.8.0 github.com/redis/go-redis/v9 v9.8.0
github.com/rs/zerolog v1.33.0 github.com/rs/zerolog v1.33.0
github.com/sirupsen/logrus v1.9.4 github.com/sirupsen/logrus v1.9.4
+2 -2
View File
@@ -1811,8 +1811,8 @@ github.com/prometheus/procfs v0.19.2/go.mod h1:M0aotyiemPhBCM0z5w87kL22CxfcH05Zp
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8= github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8=
github.com/quic-go/qpack v0.6.0/go.mod h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII= github.com/quic-go/qpack v0.6.0/go.mod h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII=
github.com/quic-go/quic-go v0.59.0 h1:OLJkp1Mlm/aS7dpKgTc6cnpynnD2Xg7C1pwL6vy/SAw= github.com/quic-go/quic-go v0.59.1 h1:0Gmua0HW1Tv7ANR7hUYwRyD0MG5OJfgvYSZasGZzBic=
github.com/quic-go/quic-go v0.59.0/go.mod h1:upnsH4Ju1YkqpLXC305eW3yDZ4NfnNbmQRCMWS58IKU= github.com/quic-go/quic-go v0.59.1/go.mod h1:upnsH4Ju1YkqpLXC305eW3yDZ4NfnNbmQRCMWS58IKU=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI= github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI=
+1 -1
View File
@@ -49,7 +49,7 @@ func newRedisLimiter(ctx context.Context, rate rate.Limit, burst int64, maxDelay
} }
if config.Redis.WriteTimeout != nil { if config.Redis.WriteTimeout != nil {
if *config.Redis.ReadTimeout > 0 { if *config.Redis.WriteTimeout > 0 {
options.WriteTimeout = time.Duration(*config.Redis.WriteTimeout) options.WriteTimeout = time.Duration(*config.Redis.WriteTimeout)
} else { } else {
options.WriteTimeout = -1 options.WriteTimeout = -1
+10 -3
View File
@@ -721,20 +721,27 @@ func (c *clientWrapper) UpdateBackendTLSPolicyStatus(ctx context.Context, policy
ancestorStatuses := make([]gatev1.PolicyAncestorStatus, len(status.Ancestors)) ancestorStatuses := make([]gatev1.PolicyAncestorStatus, len(status.Ancestors))
copy(ancestorStatuses, status.Ancestors) copy(ancestorStatuses, status.Ancestors)
// keep statuses added by other gateway controllers,
// and statuses for Traefik gateway controller but not for the same Gateway as the one in parameter (AncestorRef).
for _, ancestorStatus := range currentPolicy.Status.Ancestors { for _, ancestorStatus := range currentPolicy.Status.Ancestors {
// Keep statuses added by other gateway controllers.
if ancestorStatus.ControllerName != controllerName { if ancestorStatus.ControllerName != controllerName {
ancestorStatuses = append(ancestorStatuses, ancestorStatus) ancestorStatuses = append(ancestorStatuses, ancestorStatus)
continue continue
} }
// Keep statuses added by Traefik for other ancestors.
// A BackendTLSPolicy can target services attached to different listeners.
if !slices.ContainsFunc(status.Ancestors, func(s gatev1.PolicyAncestorStatus) bool {
return reflect.DeepEqual(s.AncestorRef, ancestorStatus.AncestorRef)
}) {
ancestorStatuses = append(ancestorStatuses, ancestorStatus)
}
} }
if len(ancestorStatuses) > 16 { if len(ancestorStatuses) > 16 {
return fmt.Errorf("failed to update BackendTLSPolicy %s/%s status: PolicyAncestor statuses count exceeds 16", policy.Namespace, policy.Name) return fmt.Errorf("failed to update BackendTLSPolicy %s/%s status: PolicyAncestor statuses count exceeds 16", policy.Namespace, policy.Name)
} }
// do not update status when nothing has changed. // Do not update status when nothing has changed.
if policyAncestorStatusesEqual(currentPolicy.Status.Ancestors, ancestorStatuses) { if policyAncestorStatusesEqual(currentPolicy.Status.Ancestors, ancestorStatuses) {
return nil return nil
} }
@@ -468,6 +468,12 @@ func (p *Provider) loadHTTPServers(ctx context.Context, namespace string, route
var serversTransport *dynamic.ServersTransport var serversTransport *dynamic.ServersTransport
for _, policy := range backendTLSPolicies { for _, policy := range backendTLSPolicies {
for _, targetRef := range policy.Spec.TargetRefs { for _, targetRef := range policy.Spec.TargetRefs {
// Skip targetRefs that doesn't match the backendRef,
// since a BackendTLSPolicy can select multiple services.
if targetRef.Name != backendRef.Name {
continue
}
// Skip the targetRef if the sectionName doesn't match the backendRef port.
if targetRef.SectionName != nil && svcPort.Name != string(*targetRef.SectionName) { if targetRef.SectionName != nil && svcPort.Name != string(*targetRef.SectionName) {
continue continue
} }
+29
View File
@@ -0,0 +1,29 @@
package server
import (
"context"
"net"
)
type connContextFunc func(context.Context, net.Conn) context.Context
type multipleConnContext struct {
fns []connContextFunc
}
func (m *multipleConnContext) AddConnContextFunc(fn connContextFunc) {
m.fns = append(m.fns, fn)
}
func (m *multipleConnContext) Build() connContextFunc {
if len(m.fns) == 0 {
return nil
}
return func(ctx context.Context, c net.Conn) context.Context {
for _, contextFunc := range m.fns {
ctx = contextFunc(ctx, c)
}
return ctx
}
}
+26
View File
@@ -0,0 +1,26 @@
package server
import (
"context"
"net"
"testing"
"github.com/stretchr/testify/require"
)
type keyTest string
func TestConnContext(t *testing.T) {
var connContext multipleConnContext
connContext.AddConnContextFunc(func(ctx context.Context, _ net.Conn) context.Context {
return context.WithValue(ctx, keyTest("test"), "test")
})
connContext.AddConnContextFunc(func(ctx context.Context, _ net.Conn) context.Context {
return context.WithValue(ctx, keyTest("test2"), "test2")
})
ctx := connContext.Build()(context.Background(), nil)
require.Equal(t, "test", ctx.Value(keyTest("test")))
require.Equal(t, "test2", ctx.Value(keyTest("test2")))
}
+3 -1
View File
@@ -168,10 +168,12 @@ func (m *Manager) buildEntryPointHandler(ctx context.Context, configs map[string
// # Otherwise, it will fallback to the default TLS config. // # Otherwise, it will fallback to the default TLS config.
if tlsOptionsName != traefiktls.DefaultTLSConfigName { if tlsOptionsName != traefiktls.DefaultTLSConfigName {
logger.Warn().Msgf("No domain found in rule %v, the TLS option %s cannot be applied", routerHTTPConfig.Rule, tlsOptionsName) logger.Warn().Msgf("No domain found in rule %v, the TLS option %s cannot be applied", routerHTTPConfig.Rule, tlsOptionsName)
routerHTTPConfig.AddError(fmt.Errorf("no domain found in rule %v, the TLS option %s cannot be applied", routerHTTPConfig.Rule, tlsOptionsName), false)
} }
} }
if routerHTTPConfig.TLS.ResolvedOptions != tlsOptionsName { if len(domains) > 0 && routerHTTPConfig.TLS.ResolvedOptions != tlsOptionsName {
logger.Warn().Msg("Found different TLS options for routers on the same host, so using the default TLS options instead.")
routerHTTPConfig.AddError(errors.New("found different TLS options for routers on the same host, so using the default TLS options instead"), false) routerHTTPConfig.AddError(errors.New("found different TLS options for routers on the same host, so using the default TLS options instead"), false)
} }
+40 -40
View File
@@ -678,6 +678,44 @@ func newHTTPServer(ctx context.Context, ln net.Listener, configuration *static.E
handler = denyFragment(handler) handler = denyFragment(handler)
var connContext multipleConnContext
connContext.AddConnContextFunc(func(ctx context.Context, c net.Conn) context.Context {
// This adds an empty struct in order to store a RoundTripper in the ConnContext in case of Kerberos or NTLM.
ctx = service.AddTransportOnContext(ctx)
if tlsConn, ok := c.(*tls.Conn); ok {
if tlsConnWithOptionsName, ok := tlsConn.NetConn().(tcp.TLSConn); ok {
return tcp.AddTLSOptionsNameInContext(ctx, tlsConnWithOptionsName.TLSOptionsName)
}
}
return ctx
})
if debugConnection || (configuration.Transport != nil && (configuration.Transport.KeepAliveMaxTime > 0 || configuration.Transport.KeepAliveMaxRequests > 0)) {
connContext.AddConnContextFunc(func(ctx context.Context, c net.Conn) context.Context {
cState := &connState{Start: time.Now()}
if debugConnection {
clientConnectionStatesMu.Lock()
clientConnectionStates[getConnKey(c)] = cState
clientConnectionStatesMu.Unlock()
}
return context.WithValue(ctx, connStateKey, cState)
})
}
var connState func(c net.Conn, state http.ConnState)
if debugConnection {
connState = func(c net.Conn, state http.ConnState) {
clientConnectionStatesMu.Lock()
if clientConnectionStates[getConnKey(c)] != nil {
clientConnectionStates[getConnKey(c)].State = state.String()
}
clientConnectionStatesMu.Unlock()
}
}
serverHTTP := &http.Server{ serverHTTP := &http.Server{
Protocols: &protocols, Protocols: &protocols,
Handler: handler, Handler: handler,
@@ -691,46 +729,8 @@ func newHTTPServer(ctx context.Context, ln net.Listener, configuration *static.E
MaxDecoderHeaderTableSize: int(configuration.HTTP2.MaxDecoderHeaderTableSize), MaxDecoderHeaderTableSize: int(configuration.HTTP2.MaxDecoderHeaderTableSize),
MaxEncoderHeaderTableSize: int(configuration.HTTP2.MaxEncoderHeaderTableSize), MaxEncoderHeaderTableSize: int(configuration.HTTP2.MaxEncoderHeaderTableSize),
}, },
ConnContext: func(ctx context.Context, c net.Conn) context.Context { ConnContext: connContext.Build(),
if tlsConn, ok := c.(*tls.Conn); ok { ConnState: connState,
if tlsConnWithOptionsName, ok := tlsConn.NetConn().(tcp.TLSConn); ok {
return tcp.AddTLSOptionsNameInContext(ctx, tlsConnWithOptionsName.TLSOptionsName)
}
}
return ctx
},
}
if debugConnection || (configuration.Transport != nil && (configuration.Transport.KeepAliveMaxTime > 0 || configuration.Transport.KeepAliveMaxRequests > 0)) {
serverHTTP.ConnContext = func(ctx context.Context, c net.Conn) context.Context {
cState := &connState{Start: time.Now()}
if debugConnection {
clientConnectionStatesMu.Lock()
clientConnectionStates[getConnKey(c)] = cState
clientConnectionStatesMu.Unlock()
}
return context.WithValue(ctx, connStateKey, cState)
}
if debugConnection {
serverHTTP.ConnState = func(c net.Conn, state http.ConnState) {
clientConnectionStatesMu.Lock()
if clientConnectionStates[getConnKey(c)] != nil {
clientConnectionStates[getConnKey(c)].State = state.String()
}
clientConnectionStatesMu.Unlock()
}
}
}
prevConnContext := serverHTTP.ConnContext
serverHTTP.ConnContext = func(ctx context.Context, c net.Conn) context.Context {
// This adds an empty struct in order to store a RoundTripper in the ConnContext in case of Kerberos or NTLM.
ctx = service.AddTransportOnContext(ctx)
if prevConnContext != nil {
return prevConnContext(ctx, c)
}
return ctx
} }
listener := newHTTPForwarder(ln) listener := newHTTPForwarder(ln)
+5 -3
View File
@@ -64,7 +64,7 @@
"framer-motion": "^11.18.2", "framer-motion": "^11.18.2",
"globals": "^16.0.0", "globals": "^16.0.0",
"jest-extended": "^4.0.2", "jest-extended": "^4.0.2",
"jsdom": "^24.0.0", "jsdom": "29.1.1",
"lodash": "4.18.1", "lodash": "4.18.1",
"msw": "^2.1.7", "msw": "^2.1.7",
"query-string": "^6.9.0", "query-string": "^6.9.0",
@@ -75,7 +75,7 @@
"react-helmet-async": "^2.0.4", "react-helmet-async": "^2.0.4",
"react-icons": "^5.0.1", "react-icons": "^5.0.1",
"react-infinite-scroll-hook": "^4.1.1", "react-infinite-scroll-hook": "^4.1.1",
"react-router-dom": "6.30.2", "react-router-dom": "6.30.4",
"swr": "^2.2.4", "swr": "^2.2.4",
"typescript": "^5.2.2", "typescript": "^5.2.2",
"typescript-eslint": "^8.38.0", "typescript-eslint": "^8.38.0",
@@ -98,6 +98,8 @@
"packageManager": "yarn@4.13.0", "packageManager": "yarn@4.13.0",
"resolutions": { "resolutions": {
"form-data": "4.0.4", "form-data": "4.0.4",
"js-yaml": "4.1.1" "js-yaml": "4.1.1",
"@csstools/css-syntax-patches-for-csstree": "1.1.4",
"undici": "7.27.0"
} }
} }
+259 -229
View File
@@ -22,16 +22,43 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@asamuzakjp/css-color@npm:^3.1.1": "@asamuzakjp/css-color@npm:^5.1.11":
version: 3.1.1 version: 5.1.11
resolution: "@asamuzakjp/css-color@npm:3.1.1" resolution: "@asamuzakjp/css-color@npm:5.1.11"
dependencies: dependencies:
"@csstools/css-calc": "npm:^2.1.2" "@asamuzakjp/generational-cache": "npm:^1.0.1"
"@csstools/css-color-parser": "npm:^3.0.8" "@csstools/css-calc": "npm:^3.2.0"
"@csstools/css-parser-algorithms": "npm:^3.0.4" "@csstools/css-color-parser": "npm:^4.1.0"
"@csstools/css-tokenizer": "npm:^3.0.3" "@csstools/css-parser-algorithms": "npm:^4.0.0"
lru-cache: "npm:^10.4.3" "@csstools/css-tokenizer": "npm:^4.0.0"
checksum: 10c0/4abb010fd29de8acae8571eba738468c22cb45a1f77647df3c59a80f1c83d83d728cae3ebbf99e5c73f2517761abaaffbe5e4176fc46b5f9bf60f1478463b51e checksum: 10c0/32720bdff8daea6a8847aba6cdfae55baa3b4a2690b51d21db7f0382bbd183f3d9f2d5126df50afd889062635684b2819e47113629ee2e80c99389e75f48d060
languageName: node
linkType: hard
"@asamuzakjp/dom-selector@npm:^7.1.1":
version: 7.1.1
resolution: "@asamuzakjp/dom-selector@npm:7.1.1"
dependencies:
"@asamuzakjp/generational-cache": "npm:^1.0.1"
"@asamuzakjp/nwsapi": "npm:^2.3.9"
bidi-js: "npm:^1.0.3"
css-tree: "npm:^3.2.1"
is-potential-custom-element-name: "npm:^1.0.1"
checksum: 10c0/8cec1c618781c94de5836a215bbe5aafb4d8b835b18c51faf8547f4574afa39f92def3951e40123860062467613dd825f1e1600ff32e8045cc099a91796dcfb8
languageName: node
linkType: hard
"@asamuzakjp/generational-cache@npm:^1.0.1":
version: 1.0.1
resolution: "@asamuzakjp/generational-cache@npm:1.0.1"
checksum: 10c0/1de62de43764e13fca3b9a31b7ea9b1bf0780fe053d266e40378a19ff8c66b543e011e6a0df02d410cd59bf981126706f176cdbb938985165202c4a079fe1057
languageName: node
linkType: hard
"@asamuzakjp/nwsapi@npm:^2.3.9":
version: 2.3.9
resolution: "@asamuzakjp/nwsapi@npm:2.3.9"
checksum: 10c0/869b81382e775499c96c45c6dbe0d0766a6da04bcf0abb79f5333535c4e19946851acaa43398f896e2ecc5a1de9cf3db7cf8c4b1afac1ee3d15e21584546d74d
languageName: node languageName: node
linkType: hard linkType: hard
@@ -301,6 +328,17 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@bramus/specificity@npm:^2.4.2":
version: 2.4.2
resolution: "@bramus/specificity@npm:2.4.2"
dependencies:
css-tree: "npm:^3.0.0"
bin:
specificity: bin/cli.js
checksum: 10c0/c5f4e04e0bca0d2202598207a5eb0733c8109d12a68a329caa26373bec598d99db5bb785b8865fefa00fc01b08c6068138807ceb11a948fe15e904ed6cf4ba72
languageName: node
linkType: hard
"@bundled-es-modules/cookie@npm:^2.0.1": "@bundled-es-modules/cookie@npm:^2.0.1":
version: 2.0.1 version: 2.0.1
resolution: "@bundled-es-modules/cookie@npm:2.0.1" resolution: "@bundled-es-modules/cookie@npm:2.0.1"
@@ -329,49 +367,61 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@csstools/color-helpers@npm:^5.0.2": "@csstools/color-helpers@npm:^6.0.2":
version: 5.0.2 version: 6.0.2
resolution: "@csstools/color-helpers@npm:5.0.2" resolution: "@csstools/color-helpers@npm:6.0.2"
checksum: 10c0/bebaddb28b9eb58b0449edd5d0c0318fa88f3cb079602ee27e88c9118070d666dcc4e09a5aa936aba2fde6ba419922ade07b7b506af97dd7051abd08dfb2959b checksum: 10c0/4c66574563d7c960010c11e41c2673675baff07c427cca6e8dddffa5777de45770d13ff3efce1c0642798089ad55de52870d9d8141f78db3fa5bba012f2d3789
languageName: node languageName: node
linkType: hard linkType: hard
"@csstools/css-calc@npm:^2.1.2": "@csstools/css-calc@npm:^3.2.0, @csstools/css-calc@npm:^3.2.1":
version: 2.1.2 version: 3.2.1
resolution: "@csstools/css-calc@npm:2.1.2" resolution: "@csstools/css-calc@npm:3.2.1"
peerDependencies: peerDependencies:
"@csstools/css-parser-algorithms": ^3.0.4 "@csstools/css-parser-algorithms": ^4.0.0
"@csstools/css-tokenizer": ^3.0.3 "@csstools/css-tokenizer": ^4.0.0
checksum: 10c0/34ced30553968ef5d5f9e00e3b90b48c47480cf130e282e99d57ec9b09f803aab8bc06325683e72a1518b5e7180a3da8b533f1b462062757c21989a53b482e1a checksum: 10c0/0191c8d1cd4dffa0d3b6bfd1e78a721934b1d7a6c972966e4fdaa72208c6789e8ff443ee81764a32f1e6107825695b5524ef2b4dc1681b5b29230f2a1277e5df
languageName: node languageName: node
linkType: hard linkType: hard
"@csstools/css-color-parser@npm:^3.0.8": "@csstools/css-color-parser@npm:^4.1.0":
version: 3.0.8 version: 4.1.1
resolution: "@csstools/css-color-parser@npm:3.0.8" resolution: "@csstools/css-color-parser@npm:4.1.1"
dependencies: dependencies:
"@csstools/color-helpers": "npm:^5.0.2" "@csstools/color-helpers": "npm:^6.0.2"
"@csstools/css-calc": "npm:^2.1.2" "@csstools/css-calc": "npm:^3.2.1"
peerDependencies: peerDependencies:
"@csstools/css-parser-algorithms": ^3.0.4 "@csstools/css-parser-algorithms": ^4.0.0
"@csstools/css-tokenizer": ^3.0.3 "@csstools/css-tokenizer": ^4.0.0
checksum: 10c0/90722c5a62ca94e9d578ddf59be604a76400b932bd3d4bd23cb1ae9b7ace8fcf83c06995d2b31f96f4afef24a7cefba79beb11ed7ee4999d7ecfec3869368359 checksum: 10c0/427bd32f1a8917342a70a6fd97b93bb492aae7c8790e7782b5d6edc8c08064bb8aef0a86099f286db00288f9afea85eb92c46350e9057f5fea058e03a2a09203
languageName: node languageName: node
linkType: hard linkType: hard
"@csstools/css-parser-algorithms@npm:^3.0.4": "@csstools/css-parser-algorithms@npm:^4.0.0":
version: 3.0.4 version: 4.0.0
resolution: "@csstools/css-parser-algorithms@npm:3.0.4" resolution: "@csstools/css-parser-algorithms@npm:4.0.0"
peerDependencies: peerDependencies:
"@csstools/css-tokenizer": ^3.0.3 "@csstools/css-tokenizer": ^4.0.0
checksum: 10c0/d411f07765e14eede17bccc6bd4f90ff303694df09aabfede3fd104b2dfacfd4fe3697cd25ddad14684c850328f3f9420ebfa9f78380892492974db24ae47dbd checksum: 10c0/94558c2428d6ef0ddef542e86e0a8376aa1263a12a59770abb13ba50d7b83086822c75433f32aa2e7fef00555e1cc88292f9ca5bce79aed232bb3fed73b1528d
languageName: node languageName: node
linkType: hard linkType: hard
"@csstools/css-tokenizer@npm:^3.0.3": "@csstools/css-syntax-patches-for-csstree@npm:1.1.4":
version: 3.0.3 version: 1.1.4
resolution: "@csstools/css-tokenizer@npm:3.0.3" resolution: "@csstools/css-syntax-patches-for-csstree@npm:1.1.4"
checksum: 10c0/c31bf410e1244b942e71798e37c54639d040cb59e0121b21712b40015fced2b0fb1ffe588434c5f8923c9cd0017cfc1c1c8f3921abc94c96edf471aac2eba5e5 peerDependencies:
css-tree: ^3.2.1
peerDependenciesMeta:
css-tree:
optional: true
checksum: 10c0/3872a7befb553c53249c87e964ac00f55d059f4574d2cc023e03e1dafc86a5ad19f6a6d05fa2c14fb192e6a4538a73158104cc2e32e0688f27fd841b9ba76568
languageName: node
linkType: hard
"@csstools/css-tokenizer@npm:^4.0.0":
version: 4.0.0
resolution: "@csstools/css-tokenizer@npm:4.0.0"
checksum: 10c0/669cf3d0f9c8e1ffdf8c9955ad8beba0c8cfe03197fe29a4fcbd9ee6f7a18856cfa42c62670021a75183d9ab37f5d14a866e6a9df753a6c07f59e36797a9ea9f
languageName: node languageName: node
linkType: hard linkType: hard
@@ -850,6 +900,18 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@exodus/bytes@npm:^1.11.0, @exodus/bytes@npm:^1.15.0, @exodus/bytes@npm:^1.6.0":
version: 1.15.1
resolution: "@exodus/bytes@npm:1.15.1"
peerDependencies:
"@noble/hashes": ^1.8.0 || ^2.0.0
peerDependenciesMeta:
"@noble/hashes":
optional: true
checksum: 10c0/333056a6953bbf875d9f3b86c32314de29458d842e5f56f6ef8034b18c2d9660184550093d1bae5de0064043d5e23f54cc03148798d9d29cf5167ac03f2e9f8c
languageName: node
linkType: hard
"@floating-ui/core@npm:^1.6.0": "@floating-ui/core@npm:^1.6.0":
version: 1.6.9 version: 1.6.9
resolution: "@floating-ui/core@npm:1.6.9" resolution: "@floating-ui/core@npm:1.6.9"
@@ -2417,10 +2479,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@remix-run/router@npm:1.23.1": "@remix-run/router@npm:1.23.3":
version: 1.23.1 version: 1.23.3
resolution: "@remix-run/router@npm:1.23.1" resolution: "@remix-run/router@npm:1.23.3"
checksum: 10c0/94ac9632c0070199b8275cd6dffe78eb4c02e8926328937c65561c5c30d7ddf842743df3c8f7df302f00a593dd204846d93667fbbbe3c3641437d7b8f333ed90 checksum: 10c0/73622465dd9e9a2c5a7ced7d1151ea6e9195a8a979c99b4f70a67093eeff7f339daf03a7c6304709a9c27deb2081a8fff6737663aacb33529c1a12a0a0827a17
languageName: node languageName: node
linkType: hard linkType: hard
@@ -3841,13 +3903,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"asynckit@npm:^0.4.0":
version: 0.4.0
resolution: "asynckit@npm:0.4.0"
checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d
languageName: node
linkType: hard
"available-typed-arrays@npm:^1.0.7": "available-typed-arrays@npm:^1.0.7":
version: 1.0.7 version: 1.0.7
resolution: "available-typed-arrays@npm:1.0.7" resolution: "available-typed-arrays@npm:1.0.7"
@@ -3878,6 +3933,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"bidi-js@npm:^1.0.3":
version: 1.0.3
resolution: "bidi-js@npm:1.0.3"
dependencies:
require-from-string: "npm:^2.0.2"
checksum: 10c0/fdddea4aa4120a34285486f2267526cd9298b6e8b773ad25e765d4f104b6d7437ab4ba542e6939e3ac834a7570bcf121ee2cf6d3ae7cd7082c4b5bedc8f271e1
languageName: node
linkType: hard
"brace-expansion@npm:^1.1.7": "brace-expansion@npm:^1.1.7":
version: 1.1.11 version: 1.1.11
resolution: "brace-expansion@npm:1.1.11" resolution: "brace-expansion@npm:1.1.11"
@@ -4103,15 +4167,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"combined-stream@npm:^1.0.8":
version: 1.0.8
resolution: "combined-stream@npm:1.0.8"
dependencies:
delayed-stream: "npm:~1.0.0"
checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5
languageName: node
linkType: hard
"commander@npm:^13.1.0": "commander@npm:^13.1.0":
version: 13.1.0 version: 13.1.0
resolution: "commander@npm:13.1.0" resolution: "commander@npm:13.1.0"
@@ -4151,6 +4206,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"css-tree@npm:^3.0.0, css-tree@npm:^3.2.1":
version: 3.2.1
resolution: "css-tree@npm:3.2.1"
dependencies:
mdn-data: "npm:2.27.1"
source-map-js: "npm:^1.2.1"
checksum: 10c0/1f65e9ccaa56112a4706d6f003dd43d777f0dbcf848e66fd320f823192533581f8dd58daa906cb80622658332d50284d6be13b87a6ab4556cbbfe9ef535bbf7e
languageName: node
linkType: hard
"css-what@npm:^6.1.0": "css-what@npm:^6.1.0":
version: 6.2.2 version: 6.2.2
resolution: "css-what@npm:6.2.2" resolution: "css-what@npm:6.2.2"
@@ -4172,16 +4237,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"cssstyle@npm:^4.0.1":
version: 4.3.0
resolution: "cssstyle@npm:4.3.0"
dependencies:
"@asamuzakjp/css-color": "npm:^3.1.1"
rrweb-cssom: "npm:^0.8.0"
checksum: 10c0/770ccb288a99257fd0d5b129e03878f848e922d3b017358acb02e8dd530e8f0c7c6f74e6ae5367d715e2da36a490a734b4177fc1b78f3f08eca25f204a56a692
languageName: node
linkType: hard
"csstype@npm:^3.0.2": "csstype@npm:^3.0.2":
version: 3.1.3 version: 3.1.3
resolution: "csstype@npm:3.1.3" resolution: "csstype@npm:3.1.3"
@@ -4203,13 +4258,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"data-urls@npm:^5.0.0": "data-urls@npm:^7.0.0":
version: 5.0.0 version: 7.0.0
resolution: "data-urls@npm:5.0.0" resolution: "data-urls@npm:7.0.0"
dependencies: dependencies:
whatwg-mimetype: "npm:^4.0.0" whatwg-mimetype: "npm:^5.0.0"
whatwg-url: "npm:^14.0.0" whatwg-url: "npm:^16.0.0"
checksum: 10c0/1b894d7d41c861f3a4ed2ae9b1c3f0909d4575ada02e36d3d3bc584bdd84278e20709070c79c3b3bff7ac98598cb191eb3e86a89a79ea4ee1ef360e1694f92ad checksum: 10c0/08d88ef50d8966a070ffdaa703e1e4b29f01bb2da364dfbc1612b1c2a4caa8045802c9532d81347b21781100132addb36a585071c8323b12cce97973961dee9f
languageName: node languageName: node
linkType: hard linkType: hard
@@ -4298,10 +4353,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"decimal.js@npm:^10.4.3": "decimal.js@npm:^10.6.0":
version: 10.5.0 version: 10.6.0
resolution: "decimal.js@npm:10.5.0" resolution: "decimal.js@npm:10.6.0"
checksum: 10c0/785c35279df32762143914668df35948920b6c1c259b933e0519a69b7003fc0a5ed2a766b1e1dda02574450c566b21738a45f15e274b47c2ac02072c0d1f3ac3 checksum: 10c0/07d69fbcc54167a340d2d97de95f546f9ff1f69d2b45a02fd7a5292412df3cd9eb7e23065e532a318f5474a2e1bccf8392fdf0443ef467f97f3bf8cb0477e5aa
languageName: node languageName: node
linkType: hard linkType: hard
@@ -4393,13 +4448,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"delayed-stream@npm:~1.0.0":
version: 1.0.0
resolution: "delayed-stream@npm:1.0.0"
checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19
languageName: node
linkType: hard
"dequal@npm:^2.0.3": "dequal@npm:^2.0.3":
version: 2.0.3 version: 2.0.3
resolution: "dequal@npm:2.0.3" resolution: "dequal@npm:2.0.3"
@@ -4499,10 +4547,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"entities@npm:^4.5.0": "entities@npm:^8.0.0":
version: 4.5.0 version: 8.0.0
resolution: "entities@npm:4.5.0" resolution: "entities@npm:8.0.0"
checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250 checksum: 10c0/938e631664c19451823344a351aeeafd74fae2d5fa51e4d5b6ff635afaefd4bacf0f609989888c04c42733f46ffdac15211608267ebb02488005891a4793e94d
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5430,19 +5478,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"form-data@npm:4.0.4":
version: 4.0.4
resolution: "form-data@npm:4.0.4"
dependencies:
asynckit: "npm:^0.4.0"
combined-stream: "npm:^1.0.8"
es-set-tostringtag: "npm:^2.1.0"
hasown: "npm:^2.0.2"
mime-types: "npm:^2.1.12"
checksum: 10c0/373525a9a034b9d57073e55eab79e501a714ffac02e7a9b01be1c820780652b16e4101819785e1e18f8d98f0aee866cc654d660a435c378e16a72f2e7cac9695
languageName: node
linkType: hard
"framer-motion@npm:^11.18.2": "framer-motion@npm:^11.18.2":
version: 11.18.2 version: 11.18.2
resolution: "framer-motion@npm:11.18.2" resolution: "framer-motion@npm:11.18.2"
@@ -5761,12 +5796,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"html-encoding-sniffer@npm:^4.0.0": "html-encoding-sniffer@npm:^6.0.0":
version: 4.0.0 version: 6.0.0
resolution: "html-encoding-sniffer@npm:4.0.0" resolution: "html-encoding-sniffer@npm:6.0.0"
dependencies: dependencies:
whatwg-encoding: "npm:^3.1.1" "@exodus/bytes": "npm:^1.6.0"
checksum: 10c0/523398055dc61ac9b34718a719cb4aa691e4166f29187e211e1607de63dc25ac7af52ca7c9aead0c4b3c0415ffecb17326396e1202e2e86ff4bca4c0ee4c6140 checksum: 10c0/66dc3f6f5539cc3beb814fcbfae7eacf4ec38cf824d6e1425b72039b51a40f4456bd8541ba66f4f4fe09cdf885ab5cd5bae6ec6339d6895a930b2fdb83c53025
languageName: node languageName: node
linkType: hard linkType: hard
@@ -5784,7 +5819,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2": "http-proxy-agent@npm:^7.0.0":
version: 7.0.2 version: 7.0.2
resolution: "http-proxy-agent@npm:7.0.2" resolution: "http-proxy-agent@npm:7.0.2"
dependencies: dependencies:
@@ -5794,7 +5829,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.5": "https-proxy-agent@npm:^7.0.1":
version: 7.0.6 version: 7.0.6
resolution: "https-proxy-agent@npm:7.0.6" resolution: "https-proxy-agent@npm:7.0.6"
dependencies: dependencies:
@@ -5820,7 +5855,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": "iconv-lite@npm:^0.6.2":
version: 0.6.3 version: 0.6.3
resolution: "iconv-lite@npm:0.6.3" resolution: "iconv-lite@npm:0.6.3"
dependencies: dependencies:
@@ -6355,37 +6390,37 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"jsdom@npm:^24.0.0": "jsdom@npm:29.1.1":
version: 24.1.3 version: 29.1.1
resolution: "jsdom@npm:24.1.3" resolution: "jsdom@npm:29.1.1"
dependencies: dependencies:
cssstyle: "npm:^4.0.1" "@asamuzakjp/css-color": "npm:^5.1.11"
data-urls: "npm:^5.0.0" "@asamuzakjp/dom-selector": "npm:^7.1.1"
decimal.js: "npm:^10.4.3" "@bramus/specificity": "npm:^2.4.2"
form-data: "npm:^4.0.0" "@csstools/css-syntax-patches-for-csstree": "npm:^1.1.3"
html-encoding-sniffer: "npm:^4.0.0" "@exodus/bytes": "npm:^1.15.0"
http-proxy-agent: "npm:^7.0.2" css-tree: "npm:^3.2.1"
https-proxy-agent: "npm:^7.0.5" data-urls: "npm:^7.0.0"
decimal.js: "npm:^10.6.0"
html-encoding-sniffer: "npm:^6.0.0"
is-potential-custom-element-name: "npm:^1.0.1" is-potential-custom-element-name: "npm:^1.0.1"
nwsapi: "npm:^2.2.12" lru-cache: "npm:^11.3.5"
parse5: "npm:^7.1.2" parse5: "npm:^8.0.1"
rrweb-cssom: "npm:^0.7.1"
saxes: "npm:^6.0.0" saxes: "npm:^6.0.0"
symbol-tree: "npm:^3.2.4" symbol-tree: "npm:^3.2.4"
tough-cookie: "npm:^4.1.4" tough-cookie: "npm:^6.0.1"
undici: "npm:^7.25.0"
w3c-xmlserializer: "npm:^5.0.0" w3c-xmlserializer: "npm:^5.0.0"
webidl-conversions: "npm:^7.0.0" webidl-conversions: "npm:^8.0.1"
whatwg-encoding: "npm:^3.1.1" whatwg-mimetype: "npm:^5.0.0"
whatwg-mimetype: "npm:^4.0.0" whatwg-url: "npm:^16.0.1"
whatwg-url: "npm:^14.0.0"
ws: "npm:^8.18.0"
xml-name-validator: "npm:^5.0.0" xml-name-validator: "npm:^5.0.0"
peerDependencies: peerDependencies:
canvas: ^2.11.2 canvas: ^3.0.0
peerDependenciesMeta: peerDependenciesMeta:
canvas: canvas:
optional: true optional: true
checksum: 10c0/e48b342afacd7418a23dac204a62deea729c50f4d072a7c04c09fd32355fdb4335f8779fa79fd0277a2dbeb2d356250a950955719d00047324b251233b11277f checksum: 10c0/20e2174b09d9d06393cb48e1392b7a1cb7191d6656a6f7b3b8fbf9853b4ab0ef60b4a42c2c55f71b55ca5da50ffa75bcdc6986210963182e7993c6f9cd4f499b
languageName: node languageName: node
linkType: hard linkType: hard
@@ -6595,6 +6630,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"lru-cache@npm:^11.3.5":
version: 11.5.1
resolution: "lru-cache@npm:11.5.1"
checksum: 10c0/7b341cea79a8efe9c6a6f20c8757a77eca5b25d7ff983ccf4e11e547b81f6787824baa1c84705251dff84ab4ffac85717ac354b9d02e465f86a9f8b166409979
languageName: node
linkType: hard
"lru-cache@npm:^5.1.1": "lru-cache@npm:^5.1.1":
version: 5.1.1 version: 5.1.1
resolution: "lru-cache@npm:5.1.1" resolution: "lru-cache@npm:5.1.1"
@@ -6677,6 +6719,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"mdn-data@npm:2.27.1":
version: 2.27.1
resolution: "mdn-data@npm:2.27.1"
checksum: 10c0/eb8abf5d22e4d1e090346f5e81b67d23cef14c83940e445da5c44541ad874dc8fb9f6ca236e8258c3a489d9fb5884188a4d7d58773adb9089ac2c0b966796393
languageName: node
linkType: hard
"media-query-parser@npm:^2.0.2": "media-query-parser@npm:^2.0.2":
version: 2.0.2 version: 2.0.2
resolution: "media-query-parser@npm:2.0.2" resolution: "media-query-parser@npm:2.0.2"
@@ -6710,22 +6759,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"mime-db@npm:1.52.0":
version: 1.52.0
resolution: "mime-db@npm:1.52.0"
checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
languageName: node
linkType: hard
"mime-types@npm:^2.1.12":
version: 2.1.35
resolution: "mime-types@npm:2.1.35"
dependencies:
mime-db: "npm:1.52.0"
checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2
languageName: node
linkType: hard
"mimic-fn@npm:^4.0.0": "mimic-fn@npm:^4.0.0":
version: 4.0.0 version: 4.0.0
resolution: "mimic-fn@npm:4.0.0" resolution: "mimic-fn@npm:4.0.0"
@@ -7015,13 +7048,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"nwsapi@npm:^2.2.12":
version: 2.2.20
resolution: "nwsapi@npm:2.2.20"
checksum: 10c0/07f4dafa3186aef7c007863e90acd4342a34ba9d44b22f14f644fdb311f6086887e21c2fc15efaa826c2bc39ab2bc841364a1a630e7c87e0cb723ba59d729297
languageName: node
linkType: hard
"object-assign@npm:^4.1.1": "object-assign@npm:^4.1.1":
version: 4.1.1 version: 4.1.1
resolution: "object-assign@npm:4.1.1" resolution: "object-assign@npm:4.1.1"
@@ -7205,12 +7231,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"parse5@npm:^7.1.2": "parse5@npm:^8.0.1":
version: 7.2.1 version: 8.0.1
resolution: "parse5@npm:7.2.1" resolution: "parse5@npm:8.0.1"
dependencies: dependencies:
entities: "npm:^4.5.0" entities: "npm:^8.0.0"
checksum: 10c0/829d37a0c709215a887e410a7118d754f8e1afd7edb529db95bc7bbf8045fb0266a7b67801331d8e8d9d073ea75793624ec27ce9ff3b96862c3b9008f4d68e80 checksum: 10c0/c3c1c5aab55f6e4be5245599790e56e64be7764a4a0edd7f98db4fe3bb380f63add752fa047dff0496446c25f4104f0c7c1967723de640bde92306a7bb67ed2f
languageName: node languageName: node
linkType: hard linkType: hard
@@ -7604,27 +7630,27 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"react-router-dom@npm:6.30.2": "react-router-dom@npm:6.30.4":
version: 6.30.2 version: 6.30.4
resolution: "react-router-dom@npm:6.30.2" resolution: "react-router-dom@npm:6.30.4"
dependencies: dependencies:
"@remix-run/router": "npm:1.23.1" "@remix-run/router": "npm:1.23.3"
react-router: "npm:6.30.2" react-router: "npm:6.30.4"
peerDependencies: peerDependencies:
react: ">=16.8" react: ">=16.8"
react-dom: ">=16.8" react-dom: ">=16.8"
checksum: 10c0/d0c6edf4e2aa7639b4a4f64a7747f03d8861bdf4857e8981b1cff1451b7cb91fcdcd7e315a6e3df910271b2f5071825d2aec218d5f7890f2269fc074f198e42a checksum: 10c0/1b25ab26a288da852f7b58eec5c14b3f37919e6773a557cd846d3a05d7a7d890c8d49bda93c0a7f497f240df1df8b0ad50635f990aafb55f2fc545ad8269a822
languageName: node languageName: node
linkType: hard linkType: hard
"react-router@npm:6.30.2": "react-router@npm:6.30.4":
version: 6.30.2 version: 6.30.4
resolution: "react-router@npm:6.30.2" resolution: "react-router@npm:6.30.4"
dependencies: dependencies:
"@remix-run/router": "npm:1.23.1" "@remix-run/router": "npm:1.23.3"
peerDependencies: peerDependencies:
react: ">=16.8" react: ">=16.8"
checksum: 10c0/cff5ea92d248d2230adc46d4e2ed3fbeddfaf1ae2e63411da8b7ea6ddc207d71dbc522c05c492e671e553e2153934f4ab180ac02bd36205b274e097f2cfe6fc4 checksum: 10c0/fb6de7d1002bcab9ea12c4072d93792eca494f1e4f30cfec334ccb6523756d23ce3e093c7c1241399296cebed94789a3fb89f96ee76004e0e746458a8f6bab33
languageName: node languageName: node
linkType: hard linkType: hard
@@ -7707,6 +7733,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"require-from-string@npm:^2.0.2":
version: 2.0.2
resolution: "require-from-string@npm:2.0.2"
checksum: 10c0/aaa267e0c5b022fc5fd4eef49d8285086b15f2a1c54b28240fdf03599cbd9c26049fee3eab894f2e1f6ca65e513b030a7c264201e3f005601e80c49fb2937ce2
languageName: node
linkType: hard
"requires-port@npm:^1.0.0": "requires-port@npm:^1.0.0":
version: 1.0.0 version: 1.0.0
resolution: "requires-port@npm:1.0.0" resolution: "requires-port@npm:1.0.0"
@@ -7967,20 +8000,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"rrweb-cssom@npm:^0.7.1":
version: 0.7.1
resolution: "rrweb-cssom@npm:0.7.1"
checksum: 10c0/127b8ca6c8aac45e2755abbae6138d4a813b1bedc2caabf79466ae83ab3cfc84b5bfab513b7033f0aa4561c7753edf787d0dd01163ceacdee2e8eb1b6bf7237e
languageName: node
linkType: hard
"rrweb-cssom@npm:^0.8.0":
version: 0.8.0
resolution: "rrweb-cssom@npm:0.8.0"
checksum: 10c0/56f2bfd56733adb92c0b56e274c43f864b8dd48784d6fe946ef5ff8d438234015e59ad837fc2ad54714b6421384141c1add4eb569e72054e350d1f8a50b8ac7b
languageName: node
linkType: hard
"run-parallel@npm:^1.1.9": "run-parallel@npm:^1.1.9":
version: 1.2.0 version: 1.2.0
resolution: "run-parallel@npm:1.2.0" resolution: "run-parallel@npm:1.2.0"
@@ -8628,6 +8647,24 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"tldts-core@npm:^7.4.2":
version: 7.4.2
resolution: "tldts-core@npm:7.4.2"
checksum: 10c0/e8e02a43f6823ea1beab8f5a9da370b9a6cbf1a942d4f7d828700e65f03a119348f8d19faa95b599f3ca76fcb5fe5c4611d5b9c274f5a58c7487d342f6083a06
languageName: node
linkType: hard
"tldts@npm:^7.0.5":
version: 7.4.2
resolution: "tldts@npm:7.4.2"
dependencies:
tldts-core: "npm:^7.4.2"
bin:
tldts: bin/cli.js
checksum: 10c0/68f7ec58c9ea41f1583a6384f0fdf1b33d2d8ee55e7d403ec5cf9de4a7226a25c585b5ce1a73de8ddc9abbbe7b783bb3554d1c811fd47fceb0d5511e06d0d766
languageName: node
linkType: hard
"to-regex-range@npm:^5.0.1": "to-regex-range@npm:^5.0.1":
version: 5.0.1 version: 5.0.1
resolution: "to-regex-range@npm:5.0.1" resolution: "to-regex-range@npm:5.0.1"
@@ -8649,12 +8686,21 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"tr46@npm:^5.1.0": "tough-cookie@npm:^6.0.1":
version: 5.1.0 version: 6.0.1
resolution: "tr46@npm:5.1.0" resolution: "tough-cookie@npm:6.0.1"
dependencies:
tldts: "npm:^7.0.5"
checksum: 10c0/ec70bd6b1215efe4ed31a158f0be3e4c9088fcbd8620edc23a5860d4f3d85c757b77e274baaa700f7b25e409f4181552ed189603c2b2e1a9f88104da3a61a37d
languageName: node
linkType: hard
"tr46@npm:^6.0.0":
version: 6.0.0
resolution: "tr46@npm:6.0.0"
dependencies: dependencies:
punycode: "npm:^2.3.1" punycode: "npm:^2.3.1"
checksum: 10c0/d761f7144e0cb296187674ef245c74f761e334d7cf25ca73ef60e4c72c097c75051031c093fa1a2fee04b904977b316716a7915854bcae8fb1a371746513cbe8 checksum: 10c0/83130df2f649228aa91c17754b66248030a3af34911d713b5ea417066fa338aa4bc8668d06bd98aa21a2210f43fc0a3db8b9099e7747fb5830e40e39a6a1058e
languageName: node languageName: node
linkType: hard linkType: hard
@@ -8691,7 +8737,7 @@ __metadata:
globals: "npm:^16.0.0" globals: "npm:^16.0.0"
husky: "npm:^9.0.0" husky: "npm:^9.0.0"
jest-extended: "npm:^4.0.2" jest-extended: "npm:^4.0.2"
jsdom: "npm:^24.0.0" jsdom: "npm:29.1.1"
lint-staged: "npm:^15.0.0" lint-staged: "npm:^15.0.0"
lodash: "npm:4.18.1" lodash: "npm:4.18.1"
msw: "npm:^2.1.7" msw: "npm:^2.1.7"
@@ -8704,7 +8750,7 @@ __metadata:
react-helmet-async: "npm:^2.0.4" react-helmet-async: "npm:^2.0.4"
react-icons: "npm:^5.0.1" react-icons: "npm:^5.0.1"
react-infinite-scroll-hook: "npm:^4.1.1" react-infinite-scroll-hook: "npm:^4.1.1"
react-router-dom: "npm:6.30.2" react-router-dom: "npm:6.30.4"
swr: "npm:^2.2.4" swr: "npm:^2.2.4"
typescript: "npm:^5.2.2" typescript: "npm:^5.2.2"
typescript-eslint: "npm:^8.38.0" typescript-eslint: "npm:^8.38.0"
@@ -8888,6 +8934,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"undici@npm:7.27.0":
version: 7.27.0
resolution: "undici@npm:7.27.0"
checksum: 10c0/6fd15a81b0ca177b2667738b830ed175363e5e2164e992251d03aaee6c6517098b930085bd68b8fe5911920371076526657de035e07dc72377b9c5c731b90f0b
languageName: node
linkType: hard
"unique-filename@npm:^4.0.0": "unique-filename@npm:^4.0.0":
version: 4.0.0 version: 4.0.0
resolution: "unique-filename@npm:4.0.0" resolution: "unique-filename@npm:4.0.0"
@@ -9266,36 +9319,28 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"webidl-conversions@npm:^7.0.0": "webidl-conversions@npm:^8.0.1":
version: 7.0.0 version: 8.0.1
resolution: "webidl-conversions@npm:7.0.0" resolution: "webidl-conversions@npm:8.0.1"
checksum: 10c0/228d8cb6d270c23b0720cb2d95c579202db3aaf8f633b4e9dd94ec2000a04e7e6e43b76a94509cdb30479bd00ae253ab2371a2da9f81446cc313f89a4213a2c4 checksum: 10c0/3f6f327ca5fa0c065ed8ed0ef3b72f33623376e68f958e9b7bd0df49fdb0b908139ac2338d19fb45bd0e05595bda96cb6d1622222a8b413daa38a17aacc4dd46
languageName: node languageName: node
linkType: hard linkType: hard
"whatwg-encoding@npm:^3.1.1": "whatwg-mimetype@npm:^5.0.0":
version: 3.1.1 version: 5.0.0
resolution: "whatwg-encoding@npm:3.1.1" resolution: "whatwg-mimetype@npm:5.0.0"
checksum: 10c0/eead164fe73a00dd82f817af6fc0bd22e9c273e1d55bf4bc6bdf2da7ad8127fca82ef00ea6a37892f5f5641f8e34128e09508f92126086baba126b9e0d57feb4
languageName: node
linkType: hard
"whatwg-url@npm:^16.0.0, whatwg-url@npm:^16.0.1":
version: 16.0.1
resolution: "whatwg-url@npm:16.0.1"
dependencies: dependencies:
iconv-lite: "npm:0.6.3" "@exodus/bytes": "npm:^1.11.0"
checksum: 10c0/273b5f441c2f7fda3368a496c3009edbaa5e43b71b09728f90425e7f487e5cef9eb2b846a31bd760dd8077739c26faf6b5ca43a5f24033172b003b72cf61a93e tr46: "npm:^6.0.0"
languageName: node webidl-conversions: "npm:^8.0.1"
linkType: hard checksum: 10c0/e75565566abf3a2cdbd9f06c965dbcccee6ec4e9f0d3728ad5e08ceb9944279848bcaa211d35a29cb6d2df1e467dd05cfb59fbddf8a0adcd7d0bce9ffb703fd2
"whatwg-mimetype@npm:^4.0.0":
version: 4.0.0
resolution: "whatwg-mimetype@npm:4.0.0"
checksum: 10c0/a773cdc8126b514d790bdae7052e8bf242970cebd84af62fb2f35a33411e78e981f6c0ab9ed1fe6ec5071b09d5340ac9178e05b52d35a9c4bcf558ba1b1551df
languageName: node
linkType: hard
"whatwg-url@npm:^14.0.0":
version: 14.2.0
resolution: "whatwg-url@npm:14.2.0"
dependencies:
tr46: "npm:^5.1.0"
webidl-conversions: "npm:^7.0.0"
checksum: 10c0/f746fc2f4c906607d09537de1227b13f9494c171141e5427ed7d2c0dd0b6a48b43d8e71abaae57d368d0c06b673fd8ec63550b32ad5ed64990c7b0266c2b4272
languageName: node languageName: node
linkType: hard linkType: hard
@@ -9445,21 +9490,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ws@npm:^8.18.0":
version: 8.18.1
resolution: "ws@npm:8.18.1"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2"
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
checksum: 10c0/e498965d6938c63058c4310ffb6967f07d4fa06789d3364829028af380d299fe05762961742971c764973dce3d1f6a2633fe8b2d9410c9b52e534b4b882a99fa
languageName: node
linkType: hard
"xml-name-validator@npm:^5.0.0": "xml-name-validator@npm:^5.0.0":
version: 5.0.0 version: 5.0.0
resolution: "xml-name-validator@npm:5.0.0" resolution: "xml-name-validator@npm:5.0.0"